summaryrefslogtreecommitdiffstats
path: root/2025/info/commonlisp-after.md
blob: 01819fdcee08ea7b8c64196f268c0dc370bfd817 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
<!-- Automatically generated by emacsconf-publish-after-page -->


<div class="transcript transcript-mainVideo"><a name="commonlisp-mainVideo-transcript"></a><h1>Transcript</h1>


<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-commonlisp" id="subtitle"]]</div>[[!template text="""Hey, everyone. This talk is on this tradition,""" start="00:00:00.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""intelligent agents in Emacs""" start="00:00:07.120" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""using my Leonardo software individuals,""" start="00:00:10.640" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""which I've mistyped as I just wrote here, I see.""" start="00:00:13.800" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Thank you to Sacha and everyone""" start="00:00:16.920" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""at EmacsConf and Emacs, I guess.""" start="00:00:20.160" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Sorry that I was running late.""" start="00:00:25.240" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I'm screwlisp.small-web.org.""" start="00:00:26.600" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I run those one or two weekly shows for a long time,""" start="00:00:29.760" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""the Lispy Gopher Climate.""" start="00:00:34.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I'm active on the Mastodon at @screwlisp@gamerplus.org.""" start="00:00:35.600" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I'm screwtape on lambda.moo.mud.org.""" start="00:00:42.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And I ported, over the last kind of year,""" start="00:00:46.720" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""years, to some extent, I ported Eric Sandewall's system""" start="00:00:50.475" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""for developing intelligent software agents,""" start="00:00:58.500" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""which he finished working on in 2014.""" start="00:01:01.520" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I got it working again around 2025.""" start="00:01:04.880" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""First, we're going to take a long arc.""" start="00:01:10.120" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""We're going to motivate... This is the idea.""" start="00:01:14.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""You can see I'm using Org Mode,""" start="00:01:16.760" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""which I hope provides a good example""" start="00:01:18.120" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""for all the Org-Mode-oriented talks this conference.""" start="00:01:19.960" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""But you can also see""" start="00:01:25.360" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""that I'm using Eduardo Ochs's eev minor mode with Org.""" start="00:01:26.400" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""But we can see a little bit of the difference""" start="00:01:33.108" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""between these two, and that will kind of evolve into""" start="00:01:35.641" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""my style with the agent communication in Emacs.""" start="00:01:39.208" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So you can see I used eev anchors as my Emacs headings.""" start="00:01:45.260" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""In eev, you just evaluate Elisp expressions""" start="00:01:53.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""as links to places.""" start="00:01:56.840" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""An anchor will link you somewhere else in the document.""" start="00:01:58.680" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So my table of contents links to my talk, I guess.""" start="00:02:01.680" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Anchors come in two halves,""" start="00:02:04.808" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""so that's why I built that unique table of contents""" start="00:02:07.508" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""experience there. What else am I going to say?""" start="00:02:12.941" video="mainVideo-commonlisp" id="subtitle"]]

<div class="transcript-heading">[[!template new="1" text="""Totally normal computing""" start="00:02:21.480" video="mainVideo-commonlisp" id="subtitle"]]</div>[[!template text="""So first, let's just do some totally normal computing""" start="00:02:21.480" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""because intelligence is going to be difficult to describe.""" start="00:02:24.175" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Let's just try and compute normally in Emacs in Org Mode""" start="00:02:27.141" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and then segue more so into eev,""" start="00:02:31.101" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and then maybe I would like if an agent was intelligent,""" start="00:02:34.360" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I would think that an intelligent agent""" start="00:02:38.360" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""would do something like what I'm doing.""" start="00:02:40.840" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""It should be recognizably similar to what I do myself.""" start="00:02:43.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I don't think the word intelligence is relevant""" start="00:02:47.240" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""if it's not related to something I'm not familiar with.""" start="00:02:52.400" video="mainVideo-commonlisp" id="subtitle"]]

<div class="transcript-heading">[[!template new="1" text="""Using Emacs as a human""" start="00:02:55.680" video="mainVideo-commonlisp" id="subtitle"]]</div>[[!template text="""Using Emacs as a human, reading headings from my article,""" start="00:02:55.680" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""using Common Lisp. Right, my friend jeremy_list""" start="00:03:01.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""wrote actually a big project,""" start="00:03:03.920" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""but part of it was base64 encoding,""" start="00:03:06.880" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and I just yoinked his C code for base64 encoding, I think.""" start="00:03:09.800" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""This is just clearly some C-based 64 encoding.""" start="00:03:17.440" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""If you go to my blog, his project is actually a C++ project""" start="00:03:20.760" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and you can see me doing this with C++ rather than C.""" start="00:03:24.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""But basically, you can go to my blog articles""" start="00:03:29.580" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""if you want more detail to read something instead.""" start="00:03:33.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And then here's some embeddable Common Lisp,""" start="00:03:40.300" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Jack Daniel's ECL ANSI Common Lisp compiler I guess.""" start="00:03:42.434" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""This is just what it looks like.""" start="00:03:48.440" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""You can see I'm using Org Mode trickily,""" start="00:03:49.640" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""using noweb to put the lines of the C source block""" start="00:03:52.240" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""in this one. We're tangling it to this file""" start="00:03:56.120" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""rather than evaluating it.""" start="00:04:00.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So, you know, literate programming, tangle and weave.""" start="00:04:01.920" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""We're just using Org Mode""" start="00:04:05.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""like the other Org Mode people""" start="00:04:07.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""are all showing us this conference, I guess.""" start="00:04:09.198" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Then we have to compile it.""" start="00:04:12.080" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""It's always hard to remember these invocations for me.""" start="00:04:13.400" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Results file. The file is my .fas file,""" start="00:04:16.040" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""because the way ECL's C and C++ integration works""" start="00:04:20.160" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""is that it just has to be seen by compile-file in Lisp.""" start="00:04:24.560" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I cached this earlier.""" start="00:04:30.520" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Oh, I should actually start Lisp, actually, shouldn't I?""" start="00:04:32.120" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""How are we going to do this?""" start="00:04:36.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""(setq inferior-lisp-program &quot;ecl&quot;). We could M-x slime.""" start="00:04:39.640" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Because... we better actually load this.""" start="00:04:47.100" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I did a dry run before.""" start="00:04:48.920" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I think we can just load this, because I already did it.""" start="00:04:54.120" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""But I cached it. Let's nuke the cache.""" start="00:04:58.260" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Okay, I'm going to say that that probably worked.""" start="00:05:04.080" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Now, as you saw, that base64 encoding""" start="00:05:06.600" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""was just, I guess, number to character code""" start="00:05:09.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""to other character code. So I wrote this higher-level Lisp one,""" start="00:05:13.620" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""but that's not really the point.""" start="00:05:19.141" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Obviously, Emacs also has Base64 encoding.""" start="00:05:20.600" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""It's just a point that we might have""" start="00:05:26.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""C++ and C external programs""" start="00:05:27.980" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""that we'd like to be integrating""" start="00:05:29.960" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""into our Emacs agents capabilities.""" start="00:05:31.240" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Here we can see a normal named Org Mode source block.""" start="00:05:37.140" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""that calls that function, then an Org Mode source block""" start="00:05:46.475" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""that calls Emacs's base64-decode-string as a way of""" start="00:05:50.475" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""validating it, I guess.""" start="00:05:56.300" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""We go to Org, so we can see...""" start="00:05:57.941" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I have a named call to that function calling the Lisp function""" start="00:06:00.141" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Org is just kind of like this.""" start="00:06:04.408" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""It's cached but I don't seem to have run it before.""" start="00:06:07.041" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Then I do the Emacs decode.""" start="00:06:11.560" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So if we just run this using C-c C-c,""" start="00:06:13.575" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and we can kind of see""" start="00:06:15.975" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""what Org Mode is like a little bit here.""" start="00:06:17.241" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""All right, yes, so as we can see,""" start="00:06:22.180" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""oh hang on, let's run this as well actually.""" start="00:06:24.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So the C embeddable Common Lisp""" start="00:06:27.660" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""base64 encoding gets us this.""" start="00:06:32.194" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And then Emacs is decoding and gets us back,""" start="00:06:35.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""kind of validates it. I think I'm missing some things.""" start="00:06:38.080" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I don't pad characters out to the correct byte lengths,""" start="00:06:40.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""that kind of thing, but it's fine.""" start="00:06:43.080" video="mainVideo-commonlisp" id="subtitle"]]

<div class="transcript-heading">[[!template new="1" text="""using this via eev as a human""" start="00:06:45.400" video="mainVideo-commonlisp" id="subtitle"]]</div>[[!template text="""And then I kind of contrast that to,""" start="00:06:45.400" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I really like what my friend mdhughes.tech,""" start="00:06:48.720" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""game dev of the ages, calls REPL-driven development,""" start="00:06:53.180" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""which he says is kind of the opposite of literate coding.""" start="00:06:57.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I think eev, at least for me,""" start="00:07:06.140" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""is kind of like REPL-driven development.""" start="00:07:08.941" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So in eev, if you just press F8, the thing happens.""" start="00:07:11.080" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And if it's a red star line,""" start="00:07:16.160" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""the thing is an Emacs Lisp thing,""" start="00:07:17.480" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and otherwise it goes to the eepitch target.""" start="00:07:19.440" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So if I do this, great, now I'm pitching to that slime""" start="00:07:23.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""REPL ECL I made. And then I pressed F8. Press F8 again.""" start="00:07:26.720" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""The string got coerced to a list.""" start="00:07:32.760" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""F8. Now it's car codified.""" start="00:07:34.481" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I quite like this, because this looks like something I can do""" start="00:07:38.360" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and understand doing and reason about doing.""" start="00:07:41.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Then I form a command to send from Lisp to Emacs.""" start="00:07:44.240" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Then I do it and I recover the string from the beginning.""" start="00:07:49.520" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I guess I had one of these here. Oh, by the way, look at""" start="00:07:52.600" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""What Org Mode did with an eev source block.""" start="00:07:56.120" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And then when I close the source block""" start="00:07:59.160" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""using C-c ',""" start="00:08:01.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""it brings me back to the Org doc,""" start="00:08:02.680" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""which was a cool synergy between the eev minor mode""" start="00:08:05.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and eev source blocks in Org Mode that I noticed.""" start="00:08:09.160" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And so I kind of want my agents to be like this eev usage.""" start="00:08:16.020" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Clearly, Org is super powerful,""" start="00:08:22.600" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""but I don't even like writing calls like this,""" start="00:08:25.160" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""where you write the function that will happen last first,""" start="00:08:28.160" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""so you're kind of writing right to left, first to last.""" start="00:08:32.080" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Whereas in REPL-driven development,""" start="00:08:39.040" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I guess I'm writing top to bottom,""" start="00:08:41.240" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and eev, I guess, executable logs""" start="00:08:43.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""are logs that are like that.""" start="00:08:46.980" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So I kind of like eev's view for reasoning""" start="00:08:48.600" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""more than Org's Tangle.""" start="00:08:52.379" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Obviously, Tangle is trying to do tricky things,""" start="00:08:54.400" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""but maybe they have different specializations,""" start="00:08:57.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and eev's one is more close""" start="00:09:01.360" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""to my own version of intelligence, maybe.""" start="00:09:04.880" video="mainVideo-commonlisp" id="subtitle"]]

<div class="transcript-heading">[[!template new="1" text="""Software individuals using eev in Emacs like a human""" start="00:09:07.800" video="mainVideo-commonlisp" id="subtitle"]]</div>[[!template text="""Software individuals using eev in Emacs like a human.""" start="00:09:07.800" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Yeah, you can always visit my blog post for more detail.""" start="00:09:13.540" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Right, I made a CLOS object""" start="00:09:17.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""in Common Lisp to wrap doing this.""" start="00:09:20.040" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""It's not really the topic.""" start="00:09:22.520" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""It's in the appendix somewhere if you need it.""" start="00:09:23.640" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So I've just executed that.""" start="00:09:27.960" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""You can look at the appendix in your own time.""" start="00:09:29.560" video="mainVideo-commonlisp" id="subtitle"]]

<div class="transcript-heading">[[!template new="1" text="""Sandewall's leonardo system""" start="00:09:32.080" video="mainVideo-commonlisp" id="subtitle"]]</div>[[!template text="""Jumping over to actually starting""" start="00:09:32.080" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""our hypothetical intelligent agent.""" start="00:09:33.960" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I guess we're doing eev here.""" start="00:09:36.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So if we open this, press F8 a bunch of times.""" start="00:09:38.240" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Oh, and if you were cloning it yourself,""" start="00:09:46.760" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I guess that's what you would do. setq eepitch-buffer-name.""" start="00:09:49.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Oh yeah, if you went to an eepitch shell and then came back.""" start="00:09:56.720" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""You would have had to do that, but I didn't.""" start="00:10:00.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I didn't, so I didn't need to.""" start="00:10:01.680" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Sandewall's style is to use relative paths""" start="00:10:04.240" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""to tell which agent is acting inside a software individual.""" start="00:10:07.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Remembering a software individual""" start="00:10:11.975" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""is potentially a bunch of agents.""" start="00:10:13.360" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And we load... So one individual,""" start="00:10:15.240" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""all the agents in each individual share a kernel.""" start="00:10:18.480" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So only one agent in one software individual""" start="00:10:21.920" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""is active at any given time, but the agents are separate.""" start="00:10:25.600" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""They just all have to share the kernel resource,""" start="00:10:28.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""which is the Remus agent. Oh, I got rid of this.""" start="00:10:31.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And start the CLE is the thing.""" start="00:10:38.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Oh, I did need to have an EmacsConf knowledge base.""" start="00:10:43.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Well, let's just keep eepitching for a little bit.""" start="00:10:46.120" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So I think I made... I'm going to call it emacsconf-kb.""" start="00:10:48.960" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Right, that looks likely. And I think that the agent...""" start="00:10:55.260" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I can check this. I could have checked that.""" start="00:10:59.680" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I could have done something like (get emacsconf-kb contents).""" start="00:11:03.480" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Yeah, and you can see""" start="00:11:12.700" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""there's a location inside it which is agent1,""" start="00:11:13.480" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""which I assume is an entity file""" start="00:11:15.880" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""that I was working with before.""" start="00:11:17.520" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And then what were we going to do?""" start="00:11:20.600" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Oh yeah, back to the embeddable Common Lisp image.""" start="00:11:21.920" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So if I just press our button back to there...""" start="00:11:28.280" video="mainVideo-commonlisp" id="subtitle"]]

<div class="transcript-heading">[[!template new="1" text="""Start a loop for one leonardo software individual""" start="00:11:36.100" video="mainVideo-commonlisp" id="subtitle"]]</div>[[!template text="""And so my idea is that for an Emacs agent,""" start="00:11:36.100" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""basically, I'd like to have an Emacs Lisp list.""" start="00:11:41.120" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And just when stuff gets into that list,""" start="00:11:47.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""the agent which is always running, but running slowly,""" start="00:11:49.641" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""will incrementally just do the stuff it finds in that list.""" start="00:11:53.240" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Populating that list probably gets into stuff""" start="00:11:58.360" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""like your Beliefs, Desires, Intents framework""" start="00:12:00.760" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and those kind of well-known and well-studied algorithms.""" start="00:12:03.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""That's not the point here.""" start="00:12:06.160" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I just want to have a list in Emacs that my ECL...""" start="00:12:07.800" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I'm just going to run a loop in ECL,""" start="00:12:14.260" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and the ECL is going to keep sending""" start="00:12:16.080" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""anything it finds in that Emacs Lisp list""" start="00:12:18.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""to the software agent. The agent is also in Emacs,""" start="00:12:22.400" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""so it would be able to populate its own list itself""" start="00:12:25.400" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""if it had an idea of evaluating desires and chances to improve""" start="00:12:28.760" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""whatever it wants to improve""" start="00:12:36.160" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and chances to avoid whatever it wants to avoid.""" start="00:12:37.560" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""We talked a little bit too much. Let's just start this.""" start="00:12:40.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Sorry that I'm manually setting up my screen.""" start="00:12:47.600" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Then let's put CLisp over here.""" start="00:12:51.540" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Right, we could work with this, right?""" start="00:12:55.500" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""This loop isn't very important.""" start="00:12:58.680" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""It's just a Common Lisp loop. I copy my friend jmbr's style""" start="00:13:00.100" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""of using Lisp machine-style keyword arguments""" start="00:13:04.920" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""instead of symbols like cl-loop,""" start="00:13:08.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""the compatibility thing in Emacs Lisp does.""" start="00:13:12.120" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I'd never initialized that. Well, let's do that.""" start="00:13:16.720" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Okay, now we have the list.""" start="00:13:28.140" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And just every 30, let's turn it down to every 20 seconds.""" start="00:13:30.680" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Hypothetically, it's going to put""" start="00:13:35.020" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""whatever it finds in there, into there.""" start="00:13:37.160" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And so, I think, yeah, and now... Great.""" start="00:13:40.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So here I'm just going to fill it with stuff.""" start="00:13:46.240" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And this is quite interesting, I think.""" start="00:13:50.100" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""It just shows I can put a whole bunch of stuff into that list.""" start="00:13:54.840" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Ideally, the agent would populate it itself""" start="00:13:58.480" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""with a BDI algorithm or something.""" start="00:14:01.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""But if we just put some stuff in there,""" start="00:14:03.360" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""we'll see that it will all get sent""" start="00:14:04.920" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""basically using Eduardo's eepitch internal machinery, at least.""" start="00:14:07.800" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And hence, it meets my requirement""" start="00:14:14.800" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""that it works exactly like I work.""" start="00:14:17.480" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And then in eev, I just have to press M-e.""" start="00:14:20.780" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Oh, it works via Emacs server, and I didn't start that,""" start="00:14:25.860" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""so if we server-start, hopefully...""" start="00:14:31.480" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And then, ideally, things will just begin happening""" start="00:14:39.720" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""in this slime-repl C/Lisp agent.""" start="00:14:42.800" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Oh, if this was still running.""" start="00:14:53.120" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Okay, well we got at least one,""" start="00:15:05.420" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""but hypothetically lots of these will happen.""" start="00:15:07.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So, show agent, I guess,""" start="00:15:09.640" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""happened over here. I put a whole bunch of &quot;sleep-for&quot;s in,""" start="00:15:13.700" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""because I thought that going slowly""" start="00:15:17.040" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""would make it seem more human.""" start="00:15:19.720" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Like I saw in Eduardo's talk last year""" start="00:15:21.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""which is where I learned about eev.""" start="00:15:24.640" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""The system is a little fragile.""" start="00:15:29.100" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Hypothetically, we have a whole bunch of agents.""" start="00:15:32.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I guess every time it gets sent,""" start="00:15:41.080" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""it checks that we're in the right agent.""" start="00:15:43.040" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And it's not actually just sending a string,""" start="00:15:45.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""it's sending a sequence of string actions over there.""" start="00:15:47.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And so we see Emacs Lisp hypothetically put,""" start="00:15:52.800" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I guess it put this &quot;foo bar baz!&quot; into an entity, message-1,""" start="00:15:57.480" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""which should be of type message, I guess, conceivably.""" start="00:16:06.860" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I forget if I set that up earlier.""" start="00:16:11.900" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""It's in the appendix somewhere.""" start="00:16:13.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And then it just called, it did a sequence of actions""" start="00:16:14.720" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""which was really just one action of showing that.""" start="00:16:18.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And then I called b64-encode on message1,""" start="00:16:21.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""which I believe will have set message-1 encoded.""" start="00:16:26.400" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Can I check that manually while it's happening?""" start="00:16:30.600" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Disaster. Well that's what it should have been.""" start="00:16:37.243" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Well, I did mention it was a little bit fragile.""" start="00:16:51.500" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""What if we put... Can we kind of rescue this?""" start="00:16:54.941" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I don't want to try redoing this. It's slightly fragile.""" start="00:17:03.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""What it would do, we can see the actions are kind of getting there,""" start="00:17:07.240" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""but somehow my message didn't end up getting encoded""" start="00:17:12.640" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""by that sequence of actions.""" start="00:17:16.720" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So this decode will have also made the decoded one be null.""" start="00:17:18.120" video="mainVideo-commonlisp" id="subtitle"]]

<div class="transcript-heading">[[!template new="1" text="""Let's do it manually""" start="00:17:23.280" video="mainVideo-commonlisp" id="subtitle"]]</div>[[!template text="""Let's just do it manually. Should have worked.""" start="00:17:23.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""b64-encode, which calls out to Emacs""" start="00:17:26.240" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""to get everything actually done.""" start="00:17:30.560" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Oh, I got interrupted by the agent.""" start="00:17:37.300" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Well, if I do it manually, it worked.""" start="00:17:41.520" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Hypothetically, the queue thing should have worked. Great.""" start="00:17:43.321" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Well, you can see it's kind of working.""" start="00:17:53.520" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Could be more robust.""" start="00:17:56.841" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""The reason is that I think what I did is a bit fragile,""" start="00:17:57.441" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""but the intent is that FIPA,""" start="00:18:03.641" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Foundation for Intelligent Physical Agents's""" start="00:18:07.108" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""SL standard has tools for reliability""" start="00:18:09.308" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""through repetition and checking outcomes and that kind of thing.""" start="00:18:15.640" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So I would use those. I'm not putting too much work""" start="00:18:19.920" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""into being ultra-reliable right now, but it kind of worked.""" start="00:18:22.960" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""We saw, I guess, at least Embeddable Common Lisp""" start="00:18:26.680" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""believed it used emacsclient externally, asynchronously,""" start="00:18:29.760" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""to send these to Emacs within Emacs.""" start="00:18:35.600" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I put a whole bunch of sleeps into its thing""" start="00:18:38.360" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""to make it look slow and human-like, kind of happened""" start="00:18:41.600" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""because Emacs' model is that it's kind of single-threaded.""" start="00:18:45.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Can I just... I bet if we run this again""" start="00:18:52.720" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""It'll at least look like it's succeeding""" start="00:18:59.640" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""because I fixed the base64 encoding""" start="00:19:02.120" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and so forth in the background. I wonder if it will.""" start="00:19:05.040" video="mainVideo-commonlisp" id="subtitle"]]

<div class="transcript-heading">[[!template new="1" text="""Wrapping up""" start="00:19:11.400" video="mainVideo-commonlisp" id="subtitle"]]</div>[[!template text="""In the meantime, let's wrap up this talk to some extent.""" start="00:19:11.400" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Then I'm just kind of saying what I'm expecting to happen.""" start="00:19:15.560" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I took out next action.""" start="00:19:18.800" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Originally, I was keeping the list inside of the agent.""" start="00:19:20.480" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Then I decided to keep the list inside Emacs""" start="00:19:25.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""because I have kind of first class Emacs is my IDE,""" start="00:19:27.880" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""so I have better access to what's going on in my IDE.""" start="00:19:31.680" video="mainVideo-commonlisp" id="subtitle"]]

<div class="transcript-heading">[[!template new="1" text="""Intelligence""" start="00:19:37.608" video="mainVideo-commonlisp" id="subtitle"]]</div>[[!template text="""Then I wanted to talk about intelligence a little bit""" start="00:19:37.608" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""in whatever my remaining time is.""" start="00:19:39.560" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I just have these great bullet points""" start="00:19:41.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""of nosrednA yduJ and Eric Sandewall.""" start="00:19:43.040" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So nosrednA yduJ, when she was on the show quite a long time ago,""" start="00:19:45.560" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""she... I keep describing things as expert systems""" start="00:19:50.040" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and she wanted to know what I meant""" start="00:19:55.560" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""when I said expert systems,""" start="00:19:57.040" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and I gave her a Lisp software example""" start="00:19:58.360" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and she said she personally wrote""" start="00:20:00.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""that software in the 80s that I was referring to""" start="00:20:02.619" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and she wanted to know how it was an expert system.""" start="00:20:06.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""What I mean when I say expert system""" start="00:20:08.240" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""is a system that works kind of like I do and eev's eepitch does.""" start="00:20:10.040" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""It's where we can really reason""" start="00:20:19.840" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""in a very human-relatable way""" start="00:20:22.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""about what the inputs to the program is.""" start="00:20:24.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And also a program should be exposed to other programs""" start="00:20:26.480" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""in terms of like a well-structured transfer of knowledge as inputs,""" start="00:20:31.400" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and it should have a well-structured""" start="00:20:36.560" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""transfer of knowledge kind of outputs.""" start="00:20:38.011" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I don't know why this b64-encode message wasn't working.""" start="00:20:41.940" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Then we kind of faked it into working.""" start="00:20:47.160" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""It's going to be embarrassing for me""" start="00:20:50.000" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""if anybody watches this. But yeah, so yduJ's thing...""" start="00:20:52.400" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And then I was going to also build""" start="00:20:58.740" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""that into Eric Sandewall's one.""" start="00:20:59.960" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So this is my vision of expert systems""" start="00:21:02.680" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""as kind of maybe this is an important""" start="00:21:05.640" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""general style loosely associated with Lisp.""" start="00:21:07.780" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Same as the Lisp editor Emacs.""" start="00:21:11.680" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So Eric Sandewall's description of intelligence""" start="00:21:14.400" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""was that his grandchildren were intelligent.""" start="00:21:17.666" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""So if we had software agents that were intelligent,""" start="00:21:21.160" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""this would be true if and maybe only if they were similar""" start="00:21:26.440" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""to his grandchildren""" start="00:21:32.440" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""who were a good reference for intelligence.""" start="00:21:33.720" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And grandchildren live for a really long time.""" start="00:21:36.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""They kind of learn gradually.""" start="00:21:39.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""They don't run on GPUs for a few minutes""" start="00:21:42.880" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and then get thrown out forever, something like that.""" start="00:21:46.880" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And so this is the kind of vision of, I guess,""" start="00:21:51.880" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""the Leonardo system software individual stuff.""" start="00:21:54.960" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""You can see we kind of faked it into...""" start="00:21:57.920" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""at least the show get message one decoded bits were working.""" start="00:22:03.947" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I'm not sure what was happening""" start="00:22:06.321" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""with the Elisp ones that worked interactively,""" start="00:22:07.301" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""but then they didn't work in my loopy thing.""" start="00:22:12.675" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Oh yeah, and then so I mentioned""" start="00:22:18.608" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""thank you to Sacha at the start of this talk.""" start="00:22:21.308" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And so Eric Sandewall's emphasis""" start="00:22:24.641" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""that you'd really like intelligent software agents,""" start="00:22:26.975" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Leonardo system agents, to be like your grandchildren.""" start="00:22:31.341" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And I was talking to somebody, maybe to Ramin Honary""" start="00:22:34.175" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""who's doing the schemacs talk this year""" start="00:22:40.660" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""about Sacha's writing.""" start="00:22:44.960" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""A lot of Sacha's writing is about""" start="00:22:46.875" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""her experiences of life and technology,""" start="00:22:48.841" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and especially raising A\*""" start="00:22:51.775" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and her observations of her progeny A\*'s""" start="00:22:54.375" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""experiences of life and technology,""" start="00:22:59.741" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I would say as well as being""" start="00:23:05.320" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""the Emacs News and Emacs conf doer that she is.""" start="00:23:07.875" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Yeah, and so I think a lot of what Sacha is seen doing""" start="00:23:18.040" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and concerned with are specifically what Eric Sandewall""" start="00:23:22.741" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""identifies as the study of intelligence as such,""" start="00:23:25.841" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""as should apply to computing as well. That was my thought""" start="00:23:31.208" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""on Sacha, Eric Sandewall, intelligence, and yduJ.""" start="00:23:36.480" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I have this note from pizzapal...""" start="00:23:42.980" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I didn't realize that Microsoft had announced""" start="00:23:44.241" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""that 2025 was going to be the year of the software agent.""" start="00:23:46.275" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I only found this out in hindsight""" start="00:23:49.680" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""when I saw people crowing on the Mastodon""" start="00:23:51.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""about how Microsoft had basically declared""" start="00:23:54.200" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""that their Year of the Agent marketing campaign""" start="00:23:58.080" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""was a failure""" start="00:24:00.780" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""where basically people didn't like the same old web services""" start="00:24:04.460" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""but now while you're accessing,""" start="00:24:09.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""while you're formally kind of accessing a web service,""" start="00:24:11.360" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""the kind of web service that used to be called""" start="00:24:15.240" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""serverless web services, this kind of thing,""" start="00:24:16.960" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""but you're just being gibbered at by Microsoft Copilot""" start="00:24:19.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""while you're trying to use regular services.""" start="00:24:23.880" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And people turned out not to like this.""" start="00:24:27.120" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I think that, as we can see in this agent,""" start="00:24:29.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""the agent really needs to be running on its own clock""" start="00:24:32.400" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and independently of you.""" start="00:24:36.375" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Like if you imagine your body is getting""" start="00:24:37.908" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""novel, slightly speculative instructions from your brain""" start="00:24:42.280" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""constantly throughout your entire waking day, quite slowly,""" start="00:24:46.075" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""this is what an agent should be like.""" start="00:24:50.681" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""And it should be... Sandewall wrote about this.""" start="00:24:54.975" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Basically, computer programs""" start="00:24:59.541" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""aren't going to want to use human natural language with each other.""" start="00:25:01.541" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""There's nothing desirable about that,""" start="00:25:04.841" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""so you wouldn't have two hypothetical Microsoft agents,""" start="00:25:06.675" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""which are just regular web services with""" start="00:25:10.675" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""a GPT model gibbering at you""" start="00:25:13.400" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""while you're trying to use the web service.""" start="00:25:16.341" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I think we can see...""" start="00:25:19.840" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Microsoft did the wrong thing with the word agent,""" start="00:25:22.540" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""allowing that agent is an overloaded term like static.""" start="00:25:26.741" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I'm going to stop this. I'm not going to try and fix this.""" start="00:25:30.708" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Sorry, everybody. Thank you. Talk to you on the Mastodon.""" start="00:25:34.257" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""Hopefully, see you on the show.""" start="00:25:36.314" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""See you at your conference talks.""" start="00:25:37.920" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""My blog has writing and examples of this with multi-agents,""" start="00:25:40.400" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""more C and C++ stuff, Lisp things.""" start="00:25:45.600" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""You're welcome to come on my show to be interviewed,""" start="00:25:50.820" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""however formally we do that. See everybody next time.""" start="00:25:53.440" video="mainVideo-commonlisp" id="subtitle"]]

</div>

Captioner: sachac

Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20commonlisp%3A%20Common%20Lisp%20images%20communicating%20like-a-human%20through%20shared%20Emacs%20slime%20and%20eev)


<!-- End of emacsconf-publish-after-page -->