diff options
Diffstat (limited to '2025/info/commonlisp-after.md')
| -rw-r--r-- | 2025/info/commonlisp-after.md | 430 |
1 files changed, 430 insertions, 0 deletions
diff --git a/2025/info/commonlisp-after.md b/2025/info/commonlisp-after.md index ac9eae20..01819fdc 100644 --- a/2025/info/commonlisp-after.md +++ b/2025/info/commonlisp-after.md @@ -1,6 +1,436 @@ <!-- 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 "ecl"). 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 "sleep-for"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 "foo bar baz!" 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) |
