summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--2020/info/20.md2
-rw-r--r--2020/organizers-notebook.org4
-rw-r--r--2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt1738
3 files changed, 792 insertions, 952 deletions
diff --git a/2020/info/20.md b/2020/info/20.md
index c426572c..0909ff73 100644
--- a/2020/info/20.md
+++ b/2020/info/20.md
@@ -1,7 +1,7 @@
# OMG Macros
Corwin Brust
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--20-omg-macros--corwin-brust.webm"]]
+[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--20-omg-macros--corwin-brust.webm" subtitles="/2020/subtitles/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust.vtt"]]
[Download compressed .webm video (24.3M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--20-omg-macros--corwin-brust--vp9-q56-video-original-audio.webm)
Macros are a powerful tool. In the context of Emacs Lisp programming
diff --git a/2020/organizers-notebook.org b/2020/organizers-notebook.org
index b8ad59f8..9f86f397 100644
--- a/2020/organizers-notebook.org
+++ b/2020/organizers-notebook.org
@@ -46,8 +46,8 @@ I modified the =subed= package to work with VTT files. The modified version is a
- [X] sachac [[./info/16.md]] [[./subtitles/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier.vtt]]
- [X] sachac [[./info/17.md]] [[./subtitles/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan.vtt]]
- [X] sachac [[./info/18.md]] [[./subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier.vtt]]
-- [ ] sachac [[./info/19.md]] [[./subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt]]
-- [ ] sachac [[./subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt]]
+- [X] sachac [[./info/19.md]] [[./subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt]]
+- [X] sachac [[./info/20.md]] [[./subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt]]
- [ ] [[./subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.vtt]]
- [ ] sachac [[./subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt]]
- [ ] [[./subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--questions--tuan-anh-nguyen-autogen.vtt]]
diff --git a/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt b/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt
index 0455366c..e9ecb9af 100644
--- a/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt
+++ b/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt
@@ -1,835 +1,746 @@
WEBVTT
00:00:00.480 --> 00:00:02.879
-uh well good evening again uh I think I
+Good evening again. I think I
00:00:02.879 --> 00:00:04.319
have a little time here
00:00:04.319 --> 00:00:07.359
-uh to talk about macros uh is there
+to talk about macros. Is there
-00:00:07.359 --> 00:00:09.120
-still room in our in our schedule for
-
-00:00:09.120 --> 00:00:09.440
-that
+00:00:07.359 --> 00:00:09.440
+still room in our
+schedule for that,
00:00:09.440 --> 00:00:11.440
-or should I just kind of jump to some of
+or should I just jump to some of
00:00:11.440 --> 00:00:12.559
-my thoughts on the day
+my thoughts on the day?
00:00:12.559 --> 00:00:15.920
-you are now unmuted um pretty sure we
+([Amin:] Pretty sure we
00:00:15.920 --> 00:00:17.039
-have some time
+have some time.)
-00:00:17.039 --> 00:00:19.439
-all right great yeah go for it well I'll
+00:00:17.039 --> 00:00:19.039
+[Corwin:] All right. Great.
+([Amin:] Yeah, go for it.)
-00:00:19.439 --> 00:00:20.720
-just drive into my pre
+00:00:19.039 --> 00:00:20.720
+Well, I'll just drive into my
-00:00:20.720 --> 00:00:22.640
-prepared thing to hear that yeah
+00:00:20.720 --> 00:00:22.384
+prepared thing here then.
-00:00:22.640 --> 00:00:24.720
-actually you're right on time so
+00:00:22.384 --> 00:00:24.720
+(Amin: yeah, actually, you're
+right on time, so...)
-00:00:24.720 --> 00:00:28.400
-oh what an amazing thing I I just uh
+00:00:24.720 --> 00:00:27.664
+[Corwin:] oh what an amazing thing.
-00:00:28.400 --> 00:00:31.199
-you know I have been trying to do what I
+00:00:27.664 --> 00:00:31.199
+I just... You know, I have been
+trying to do what I...
00:00:31.199 --> 00:00:33.040
-I've got a big thank you planet to get
+I've got a big thank you planned
00:00:33.040 --> 00:00:36.239
-at the end but let me just say I uh
+at the end, but let me just say,
00:00:36.239 --> 00:00:39.200
-it's it's been really cool to watch the
+it's been really cool to watch the
00:00:39.200 --> 00:00:42.160
-way that people work together
-
-00:00:42.160 --> 00:00:46.000
-absolutely it's this whole event today
+way that people work together.
-00:00:46.000 --> 00:00:46.800
-has been
+00:00:42.160 --> 00:00:46.800
+([Amin:] Absolutely. It's...
+This whole event today has been
00:00:46.800 --> 00:00:50.879
-nothing but awesome and uh no less like
+nothing but awesome, and
00:00:50.879 --> 00:00:53.120
no little part thanks to all of the help
-00:00:53.120 --> 00:00:54.719
-from all of you guys
+00:00:53.120 --> 00:00:56.909
+from all of you guys and everyone.
-00:00:54.719 --> 00:00:59.120
-and um everyone oh yeah it's awesome
+00:00:56.909 --> 00:00:59.120
+Yeah, it's awesome.
-00:00:59.120 --> 00:01:02.399
-um yeah with that all just um shut up
+00:00:59.120 --> 00:01:03.065
+With that, I'll just shut up
+for now.
-00:01:02.399 --> 00:01:03.520
-for now and uh
+00:01:03.065 --> 00:01:04.891
+Take it away, Corwin.)
-00:01:03.520 --> 00:01:06.479
-take it away corwin you know how to make
+00:01:04.891 --> 00:01:06.479
+[Corwin:] Who knows how to make
00:01:06.479 --> 00:01:09.840
-make that the default and good old cemex
+make that the default in good old smex?
00:01:09.840 --> 00:01:12.799
-all right so I'm gonna try to continue
+All right. So I'm gonna try to continue
-00:01:12.799 --> 00:01:14.880
-my theme from the previous talk I'm a
+00:01:12.799 --> 00:01:14.551
+my theme from the previous talk.
-00:01:14.880 --> 00:01:16.960
-longtime Emacs user but I'm
+00:01:14.551 --> 00:01:16.393
+I'm a longtime Emacs user,
-00:01:16.960 --> 00:01:20.240
-a pretty new person
+00:01:16.393 --> 00:01:20.240
+but I'm a pretty new person
-00:01:20.240 --> 00:01:22.880
-to trying to really understand what's
+00:01:20.240 --> 00:01:22.380
+to trying to really understand
-00:01:22.880 --> 00:01:24.960
-going on within Emacs and make
+00:01:22.380 --> 00:01:24.960
+what's going on within Emacs and make
00:01:24.960 --> 00:01:28.240
-my customizations to it uh simple for
+my customizations to it--simple for
00:01:28.240 --> 00:01:30.960
-what I tend to just think of will work
-
-00:01:30.960 --> 00:01:33.280
-and maybe that's that's that's a nice
+what I tend to just think of will work.
-00:01:33.280 --> 00:01:36.240
-bow to put on that earlier talk
+00:01:30.960 --> 00:01:33.566
+And maybe that's a nice bow
-00:01:36.240 --> 00:01:40.479
-so uh whoops
+00:01:33.566 --> 00:01:36.240
+to put on that earlier talk.
-00:01:40.479 --> 00:01:43.759
-uh let's see here now it's ctrl x
+00:01:40.479 --> 00:01:44.981
+Let's see here now. It's C-x M-i.
-00:01:43.759 --> 00:01:48.159
-alt I that's right
+00:01:44.981 --> 00:01:48.159
+That's right.
00:01:48.159 --> 00:01:52.960
-and let's try that again okay good
-
-00:01:52.960 --> 00:01:56.000
-so demoing is fun uh but I
-
-00:01:56.000 --> 00:01:58.000
-will save most of that for tomorrow
+And let's try that again. Okay, good.
-00:01:58.000 --> 00:01:59.759
-where my
+00:01:52.960 --> 00:01:55.240
+So demoing is fun,
-00:01:59.759 --> 00:02:03.040
-dear friend and co-collaborator in
+00:01:55.240 --> 00:01:57.192
+but I will save most of that
-00:02:03.040 --> 00:02:04.799
-bringing you the dungeon mode project
+00:01:57.192 --> 00:01:59.759
+for tomorrow where my
-00:02:04.799 --> 00:02:07.119
-which is uh sort of
+00:01:59.759 --> 00:02:02.750
+dear friend and co-collaborator
-00:02:07.119 --> 00:02:08.720
-the exciting thing that we we hope
+00:02:02.750 --> 00:02:04.799
+in bringing you the dungeon-mode project,
-00:02:08.720 --> 00:02:10.800
-you'll be interested in
+00:02:04.799 --> 00:02:07.261
+which is sort of the exciting thing
-00:02:10.800 --> 00:02:14.480
-um I think gets a little more of a
+00:02:07.261 --> 00:02:10.800
+that we hope you'll be interested in,
-00:02:14.480 --> 00:02:15.680
-reveal
+00:02:10.800 --> 00:02:15.680
+gets a little more of a reveal.
00:02:15.680 --> 00:02:19.360
-uh tonight I'll just uh close saying
+Tonight, I'll just close saying
00:02:19.360 --> 00:02:22.640
-um a few things about the process of
+a few things about the process of
-00:02:22.640 --> 00:02:24.319
+00:02:22.640 --> 00:02:25.680
making it and continuing my theme of
+community.
-00:02:24.319 --> 00:02:25.680
-community
-
-00:02:25.680 --> 00:02:28.720
-uh first of all a specific and upfront
-
-00:02:28.720 --> 00:02:29.760
+00:02:25.680 --> 00:02:29.760
+First of all, a specific and upfront
shout out
00:02:29.760 --> 00:02:33.120
-to tv's wasa masa who
+to tv's wasamasa who
00:02:33.120 --> 00:02:36.239
-um absolutely shaped and guided this
-
-00:02:36.239 --> 00:02:38.720
-this program I I may have taken out a
+absolutely shaped and guided this
-00:02:38.720 --> 00:02:40.080
-slide with your name on it but
+00:02:36.239 --> 00:02:38.582
+this program. I may have taken out
-00:02:40.080 --> 00:02:43.599
-thank you um
+00:02:38.582 --> 00:02:39.898
+a slide with your name on it,
-00:02:43.599 --> 00:02:46.720
-so when we think about Emacs macros and
+00:02:39.898 --> 00:02:43.599
+but thank you.
-00:02:46.720 --> 00:02:47.120
-the
+00:02:43.599 --> 00:02:46.479
+So when we think about Emacs macros
-00:02:47.120 --> 00:02:50.239
-power that they give us
-
-00:02:50.239 --> 00:02:53.280
-I think about them the the
+00:02:46.479 --> 00:02:50.239
+and the power that they give us,
00:02:53.280 --> 00:02:54.720
-you know I think about them as a really
+I think about them as a really
00:02:54.720 --> 00:02:56.400
-deep rabbit hole they confuse
+deep rabbit hole. They confuse
00:02:56.400 --> 00:03:00.239
-people a lot and so to try to center
+people a lot. And so, to try to center
00:03:00.239 --> 00:03:02.480
-myself on that I remember first that
-
-00:03:02.480 --> 00:03:03.599
-they're
+myself on that, I remember first that
-00:03:03.599 --> 00:03:05.840
-they're going to be talking to us about
+00:03:03.599 --> 00:03:09.599
+they're going to be talking to us
+about code.
-00:03:05.840 --> 00:03:09.599
-code
-
-00:03:09.599 --> 00:03:12.080
-uh excuse me I realize I hadn't set my
-
-00:03:12.080 --> 00:03:13.519
-timer
+00:03:09.599 --> 00:03:13.519
+Excuse me, I realize I hadn't
+set my timer.
00:03:13.519 --> 00:03:18.000
-here we are
+Here we are.
-00:03:18.000 --> 00:03:21.680
-um so a simple macro syntax is going to
+00:03:18.000 --> 00:03:20.543
+So a simple macro syntax is
-00:03:21.680 --> 00:03:22.239
-generate
+00:03:20.543 --> 00:03:22.239
+going to generate
00:03:22.239 --> 00:03:25.920
something that is implicitly confusing
-00:03:25.920 --> 00:03:27.760
-to somebody that knows the syntax of
+00:03:25.920 --> 00:03:27.657
+to somebody that knows the syntax
-00:03:27.760 --> 00:03:28.720
-emax lisp
+00:03:27.657 --> 00:03:28.988
+of Emacs Lisp well.
-00:03:28.720 --> 00:03:31.200
-well we see something like this and a
+00:03:28.988 --> 00:03:30.785
+We see something like this
-00:03:31.200 --> 00:03:32.000
-veteran I
+00:03:30.785 --> 00:03:32.784
+and a veteran eye says
-00:03:32.000 --> 00:03:36.239
-says that x isn't quoted what's going on
+00:03:32.784 --> 00:03:36.239
+"That x isn't quoted. What's going on?"
00:03:36.239 --> 00:03:39.840
-but it can be hard to miss
+but it can be hard to miss.
00:03:39.840 --> 00:03:43.040
-um a lot of the functions as we'll talk
-
-00:03:43.040 --> 00:03:44.640
-about in a moment that are built into
+A lot of the functions (as we'll talk
-00:03:44.640 --> 00:03:46.640
-Emacs
+00:03:43.040 --> 00:03:46.640
+about in a moment) that are built
+into Emacs
-00:03:46.640 --> 00:03:48.959
-really are macros so a lot of Emacs
+00:03:46.640 --> 00:03:48.572
+really are macros, so a lot of
-00:03:48.959 --> 00:03:50.480
-features work this way
+00:03:48.572 --> 00:03:50.480
+Emacs features work this way.
00:03:50.480 --> 00:03:53.040
-it might be scary but we have to look at
+It might be scary, but we have to look at
00:03:53.040 --> 00:03:54.640
it closely if we really want to get
00:03:54.640 --> 00:03:58.400
-friendly with Emacs
+friendly with Emacs.
00:03:58.400 --> 00:04:01.439
-um let's just jump right into deaf macro
+Let's just jump right into defmacro,
00:04:01.439 --> 00:04:03.920
-which is which is our key entry point
+which is our key entry point.
-00:04:03.920 --> 00:04:04.720
-and the
+00:04:04.720 --> 00:04:05.833
+The notes from this talk
-00:04:04.720 --> 00:04:08.560
-notes from this talk include the link um
+00:04:05.833 --> 00:04:09.420
+include the link to that,
-00:04:08.560 --> 00:04:12.000
-to that uh which which definitely
+00:04:09.420 --> 00:04:12.000
+which... Definitely
00:04:12.000 --> 00:04:14.640
-uh read through a couple of times and
+read through a couple of times.
00:04:14.640 --> 00:04:16.000
-that may take you through
+That may take you through
00:04:16.000 --> 00:04:19.440
-into the cldf macro which adds
+into the cl-def macro, which adds
00:04:19.440 --> 00:04:23.440
-the common list lisp extensions
+the Common Lisp extensions.
-00:04:23.440 --> 00:04:26.840
-and uh definitely
+00:04:23.440 --> 00:04:28.080
+Definitely challenging.
-00:04:26.840 --> 00:04:30.560
-uh challenging uh I've struggled there
+00:04:28.080 --> 00:04:30.560
+I've struggled there,
00:04:30.560 --> 00:04:31.759
-as we'll take a look at in
+as we'll take a look at
00:04:31.759 --> 00:04:34.800
-in a moment um
+in a moment.
-00:04:34.800 --> 00:04:36.400
-so I haven't played too much with cl
+00:04:34.800 --> 00:04:36.266
+So I haven't played too much with
-00:04:36.400 --> 00:04:38.320
-maclet perhaps success in
+00:04:36.266 --> 00:04:38.320
+cl-maclet. Perhaps success in
-00:04:38.320 --> 00:04:42.160
-in that uh keyword space and figuring
+00:04:38.320 --> 00:04:40.804
+in that keyword space
-00:04:42.160 --> 00:04:44.320
-out what the right balance is there
+00:04:40.804 --> 00:04:44.320
+and figuring out what
+the right balance is there
00:04:44.320 --> 00:04:46.000
-what will give me the confidence to try
+will give me the confidence to try
-00:04:46.000 --> 00:04:47.680
-some more lexical
+00:04:46.000 --> 00:04:51.680
+some more lexical macros.
-00:04:47.680 --> 00:04:51.680
-uh macros
+00:04:51.680 --> 00:04:53.402
+Let me also briefly introduce
-00:04:51.680 --> 00:04:53.919
-let me also briefly introduce the comma
+00:04:53.402 --> 00:04:55.134
+the comma (,) and back quote (`).
-00:04:53.919 --> 00:04:55.440
-and back quote if you
+00:04:55.134 --> 00:04:57.389
+If you have allowed your eyes
-00:04:55.440 --> 00:04:58.479
-have uh allowed your eyes to cross when
+00:04:57.389 --> 00:04:59.321
+to cross when you see these,
-00:04:58.479 --> 00:05:00.080
-you see these and that's not
+00:04:59.321 --> 00:05:03.113
+that's not a shameful,
+shameful thing.
-00:05:00.080 --> 00:05:03.600
-uh a shameful shameful thing it's
+00:05:03.113 --> 00:05:06.080
+It's confusing, and we should be
-00:05:03.600 --> 00:05:06.080
-confusing and we should be
+00:05:06.080 --> 00:05:07.543
+alerting each other
-00:05:06.080 --> 00:05:08.160
-alerting each other when we when we
-
-00:05:08.160 --> 00:05:09.520
-stick macros in
+00:05:07.543 --> 00:05:09.520
+when we stick macros in,
00:05:09.520 --> 00:05:11.199
-often by putting them in different
+often by putting them in
-00:05:11.199 --> 00:05:12.960
-different library spaces for complicated
+00:05:11.199 --> 00:05:12.255
+different library spaces
-00:05:12.960 --> 00:05:14.160
-projects
+00:05:12.255 --> 00:05:14.160
+for complicated projects,
00:05:14.160 --> 00:05:17.520
-or um otherwise sort of warning people
+or otherwise warning people
00:05:17.520 --> 00:05:19.520
-that this is not an interactive function
+that this is not an interactive function,
00:05:19.520 --> 00:05:21.919
-if you get away with using it like one
-
-00:05:21.919 --> 00:05:22.639
-um
+even if you get away
+with using it like one.
00:05:22.639 --> 00:05:26.000
-to watch your back
+Watch your back.
-00:05:26.000 --> 00:05:29.440
-the uh
-
-00:05:29.440 --> 00:05:32.800
-the manual itself talks about macros
+00:05:26.000 --> 00:05:32.800
+The manual itself talks about macros
00:05:32.800 --> 00:05:35.840
-as being a way of evaluating
-
-00:05:35.840 --> 00:05:39.039
-you know as as being um
+as being a way of evaluating,
-00:05:39.039 --> 00:05:41.520
-an evaluator that will take our amex
+00:05:35.840 --> 00:05:39.993
+as being an evaluator that will take
-00:05:41.520 --> 00:05:42.800
-lisp expression
+00:05:39.993 --> 00:05:42.800
+our Emacs Lisp expression
00:05:42.800 --> 00:05:44.800
-and the set of forms that kind of that
+and the set of forms that
00:05:44.800 --> 00:05:47.590
-will feed to it our code
-
-00:05:47.590 --> 00:05:48.960
-[Music]
-
-00:05:48.960 --> 00:05:51.120
-but it also provides us with this
+will feed to it our code,
-00:05:51.120 --> 00:05:52.000
-concept of an
+00:05:48.960 --> 00:05:50.792
+but it also provides us with
-00:05:52.000 --> 00:05:55.039
-environment and and and that's really
+00:05:50.792 --> 00:05:53.467
+this concept of an environment.
-00:05:55.039 --> 00:05:56.639
-where the power
+00:05:53.467 --> 00:05:57.027
+That's really where the power
+comes in.
-00:05:56.639 --> 00:05:58.240
-comes in through that we can have
+00:05:57.027 --> 00:05:58.240
+Through that, we can have
00:05:58.240 --> 00:06:00.080
lexical variables and
00:06:00.080 --> 00:06:03.199
-um think about uh bring in some of the
+think about--bring in some of the
00:06:03.199 --> 00:06:06.400
capabilities that
00:06:06.400 --> 00:06:09.759
-um can be harder to reach with
+can be harder to reach with
00:06:09.759 --> 00:06:13.840
-a a a pure declarative statement that
+a pure declarative statement that
-00:06:13.840 --> 00:06:14.800
-doesn't allow
-
-00:06:14.800 --> 00:06:18.000
-for uh
-
-00:06:18.000 --> 00:06:21.440
-top level
+00:06:13.840 --> 00:06:21.440
+doesn't allow for top level
00:06:21.440 --> 00:06:28.639
-um asynchronous asynchronicity
+asynchronous... Asynchronicity...
00:06:28.639 --> 00:06:31.950
-uh I'm gonna basically
-
-00:06:31.950 --> 00:06:33.520
-[Music]
+I'm gonna basically
-00:06:33.520 --> 00:06:35.759
-ignore the bike compilation phase for
+00:06:33.520 --> 00:06:35.577
+ignore the byte-compilation phase
-00:06:35.759 --> 00:06:36.880
-this talk
+00:06:35.577 --> 00:06:36.880
+for this talk
-00:06:36.880 --> 00:06:38.639
-uh in order to have any prayer of
+00:06:36.880 --> 00:06:38.463
+in order to have any prayer
-00:06:38.639 --> 00:06:39.919
-getting through it in the
+00:06:38.463 --> 00:06:39.919
+of getting through it in the
00:06:39.919 --> 00:06:43.600
-remaining nine or 11 minutes or whatever
+remaining 9 or 11 minutes or whatever.
-00:06:43.600 --> 00:06:48.319
-uh but
+00:06:43.600 --> 00:06:50.441
+But suffice to say,
+that's a scary space,
-00:06:48.319 --> 00:06:50.160
-suffice it to say it that's a scary
+00:06:50.441 --> 00:06:52.240
+and that's really
-00:06:50.160 --> 00:06:52.240
-space and that's that's that's really
+00:06:52.240 --> 00:06:53.800
+the thing that you want to
-00:06:52.240 --> 00:06:54.160
-the thing that you want to start
+00:06:53.800 --> 00:06:55.277
+start learning about
-00:06:54.160 --> 00:06:57.199
-learning about as you think about taking
+00:06:55.277 --> 00:06:57.199
+as you think about
00:06:57.199 --> 00:07:02.160
-taking macros on uh in earnest
+taking macros on in earnest.
00:07:02.160 --> 00:07:05.919
-the um coming back to the comma syntax
+Coming back to the comma syntax,
-00:07:05.919 --> 00:07:07.440
-then
-
-00:07:07.440 --> 00:07:09.759
-having having given ourselves sort of a
+00:07:05.919 --> 00:07:09.759
+then, having given ourselves a
00:07:09.759 --> 00:07:12.479
-working definition for the Emacs lisp
+working definition for the Emacs Lisp
00:07:12.479 --> 00:07:14.479
-runtime environment then we can say that
+runtime environment, then we can say that
00:07:14.479 --> 00:07:15.840
macros are going to
00:07:15.840 --> 00:07:21.120
-inject code back into that stream
+inject code back into that stream,
00:07:21.120 --> 00:07:25.280
-whereas back quote is going to
+whereas backquote (`)
00:07:25.280 --> 00:07:28.479
-uh going to give code back
+is going to give code back.
00:07:28.479 --> 00:07:31.919
-to the to the stream or interject sorry
+to the stream--or interject, sorry,
-00:07:31.919 --> 00:07:34.560
-it's going to interject uh back into the
+00:07:31.919 --> 00:07:33.632
+it's going to interject
-00:07:34.560 --> 00:07:35.360
-stream
+00:07:33.632 --> 00:07:35.360
+back into the stream.
00:07:35.360 --> 00:07:39.840
-uh sort of uh an exclamatory excuse me
-
-00:07:39.840 --> 00:07:43.280
-I'd like to uh
+Sort of an exclamatory "Excuse me,
-00:07:43.280 --> 00:07:46.720
-have a value here and we can take that
+00:07:39.840 --> 00:07:46.966
+I'd like to have a value here."
+We can take that value
-00:07:46.720 --> 00:07:48.639
-value from the environment as it exists
+00:07:46.966 --> 00:07:48.639
+from the environment as it exists
00:07:48.639 --> 00:07:54.160
-when our macro is evaluated
+when our macro is evaluated.
-00:07:54.160 --> 00:07:56.639
-back quote on the other hand takes the
+00:07:54.160 --> 00:07:56.003
+Backquote, on the other hand,
-00:07:56.639 --> 00:07:57.280
-result
+00:07:56.003 --> 00:08:00.560
+takes the result from that
-00:07:57.280 --> 00:08:00.560
-from that and uh
+00:08:00.560 --> 00:08:02.201
+and returns it back to the stream
-00:08:00.560 --> 00:08:02.400
-and returns it back to the stream for
+00:08:02.201 --> 00:08:03.467
+for evaluation at the
-00:08:02.400 --> 00:08:04.319
-evaluation at the processing level that
-
-00:08:04.319 --> 00:08:05.680
-invoked us
+00:08:03.467 --> 00:08:05.680
+processing level that invoked us.
00:08:05.680 --> 00:08:08.720
-so in other words perhaps back up to
+So in other words, perhaps back up to
00:08:08.720 --> 00:08:10.960
-a top level eval expression where our
+a top-level eval expression where our
00:08:10.960 --> 00:08:16.720
-macro is invoked
-
-00:08:16.720 --> 00:08:20.080
-uh wrong way so um
+macro is invoked.
00:08:20.080 --> 00:08:22.560
-with what's I'm going to briefly bring
+I'm going to briefly bring
00:08:22.560 --> 00:08:23.759
you back to the game
00:08:23.759 --> 00:08:27.120
-for just a moment
-
-00:08:27.120 --> 00:08:30.240
-um I won't
+for just a moment.
00:08:30.240 --> 00:08:32.479
-I won't has I won't linger on this slide
-
-00:08:32.479 --> 00:08:33.599
-but but
+I won't linger on this slide,
-00:08:33.599 --> 00:08:37.039
-briefly uh this is a
+00:08:32.479 --> 00:08:37.039
+but briefly: this is a
-00:08:37.039 --> 00:08:40.080
-roll paper role-playing pen
+00:08:37.039 --> 00:08:41.615
+role-playing, pen and pencil,
-00:08:40.080 --> 00:08:43.599
-and pencil uh physical dice
+00:08:41.615 --> 00:08:43.829
+physical dice tradition
-00:08:43.599 --> 00:08:46.320
-tradition that dates back a long time
+00:08:43.829 --> 00:08:46.320
+that dates back a long time
00:08:46.320 --> 00:08:48.080
-from a technology perspective
+from a technology perspective.
-00:08:48.080 --> 00:08:51.279
-it's it's old in the same way that uh
+00:08:48.080 --> 00:08:50.727
+It's old in the same way
-00:08:51.279 --> 00:08:54.640
-other tools uh that I like are
+00:08:50.727 --> 00:08:58.560
+that other tools that I like
+are old.
-00:08:54.640 --> 00:08:58.560
-old
+00:08:58.560 --> 00:09:00.185
+It's simple to understand.
-00:08:58.560 --> 00:09:00.560
-uh it's simple to understand and I can
+00:09:00.185 --> 00:09:01.873
+I can communicate a lot with it
-00:09:00.560 --> 00:09:02.560
-communicate a lot with it with a simple
+00:09:01.873 --> 00:09:03.952
+with a simple amount of typing
-00:09:02.560 --> 00:09:04.160
-amount of you know typing or
+00:09:03.952 --> 00:09:09.120
+or scribbling something
+on a piece of paper.
-00:09:04.160 --> 00:09:09.120
-scribbling something on a piece of paper
+00:09:09.120 --> 00:09:13.500
+It has a complicated problem space
+of its own.
-00:09:09.120 --> 00:09:12.399
-it has a complicated problem space um
+00:09:13.500 --> 00:09:15.519
+Again, I don't want to
-00:09:12.399 --> 00:09:15.519
-of its own again I don't want to
+00:09:15.519 --> 00:09:18.212
+get too much into the game here,
-00:09:15.519 --> 00:09:18.560
-get too much into the game here but
+00:09:18.212 --> 00:09:20.177
+but in this talk,
-00:09:18.560 --> 00:09:21.680
-uh in this in this talk for the last
+00:09:20.177 --> 00:09:22.590
+for the last five minutes,
-00:09:21.680 --> 00:09:23.360
-five minutes I'll focus
+00:09:22.590 --> 00:09:24.751
+I'll focus on the process
-00:09:23.360 --> 00:09:26.640
-on the process that we took to to
+00:09:24.751 --> 00:09:26.640
+that we took to
-00:09:26.640 --> 00:09:29.920
-automate uh getting data out of the org
+00:09:26.640 --> 00:09:29.190
+automate getting data out of
-00:09:29.920 --> 00:09:31.120
-mode tables which
+00:09:29.190 --> 00:09:31.564
+the Org Mode tables
+which eventually
-00:09:31.120 --> 00:09:32.720
-eventually as we'll talk about more
+00:09:31.564 --> 00:09:33.855
+(as we'll talk about more
+tomorrow)
-00:09:32.720 --> 00:09:36.000
-tomorrow are used to draw
+00:09:33.855 --> 00:09:36.000
+are used to draw
00:09:36.000 --> 00:09:39.440
-game maps and other things
+game maps and other things.
-00:09:39.440 --> 00:09:42.240
-um here I talk about kind of why we did
+00:09:39.440 --> 00:09:42.543
+Here I talk about why we did
+that.
-00:09:42.240 --> 00:09:45.279
-that I'm going to skip briefly past that
+00:09:42.543 --> 00:09:45.279
+I'm going to skip briefly past that,
00:09:45.279 --> 00:09:49.360
-and say instead that at a high level
+and say instead that at a high level,
-00:09:49.360 --> 00:09:51.920
-it's it's symbolic informatics we're
+00:09:49.360 --> 00:09:51.440
+it's symbolic informatics.
-00:09:51.920 --> 00:09:53.519
-giving a symbolic name
+00:09:51.440 --> 00:09:53.519
+We're giving a symbolic name
00:09:53.519 --> 00:09:58.080
-to a tile set and then
-
-00:09:58.080 --> 00:10:02.000
-uh
+to a tile set,
00:10:02.000 --> 00:10:04.000
and then assigning that tile set some
-00:10:04.000 --> 00:10:05.360
-some characteristics like physical
-
-00:10:05.360 --> 00:10:06.000
-speeds
+00:10:04.000 --> 00:10:04.840
+some characteristics
-00:10:06.000 --> 00:10:08.399
-screen space a variable that we might
+00:10:04.840 --> 00:10:06.820
+like physical speeds, screen space
-00:10:08.399 --> 00:10:09.279
-want to swap in
+00:10:06.820 --> 00:10:08.399
+(a variable that we might
-00:10:09.279 --> 00:10:12.800
-and so forth uh and
+00:10:08.399 --> 00:10:12.800
+want to swap in), and so forth.
00:10:12.800 --> 00:10:15.200
-you know our project rests heavily on on
-
-00:10:15.200 --> 00:10:16.160
-org mode and
+You know, our project rests heavily on
-00:10:16.160 --> 00:10:21.040
-it's it's fundamental capabilities
+00:10:15.200 --> 00:10:21.040
+Org Mode and its
+fundamental capabilities.
00:10:21.040 --> 00:10:24.000
-so the the code I'm going to show here
-
-00:10:24.000 --> 00:10:24.959
-is
-
-00:10:24.959 --> 00:10:28.320
-uh is
+The code I'm going to show here
00:10:28.320 --> 00:10:31.360
-is focused around sort of a a sticky
+is focused around a sticky
-00:10:31.360 --> 00:10:33.040
-problem space in in the information
+00:10:31.360 --> 00:10:32.380
+problem space in
-00:10:33.040 --> 00:10:35.600
-technology and I'm I'm a professional
+00:10:32.380 --> 00:10:33.861
+information technology.
-00:10:35.600 --> 00:10:39.120
-uh uh software engineer turned uh
+00:10:33.861 --> 00:10:38.240
+I'm a professional software engineer
-00:10:39.120 --> 00:10:41.120
-technology architect I support
+00:10:38.240 --> 00:10:40.362
+turned technology architect.
-00:10:41.120 --> 00:10:45.120
-the websites for a recognizable
+00:10:40.362 --> 00:10:43.495
+I support the websites for
-00:10:45.120 --> 00:10:47.600
-financial services brand that I don't
+00:10:43.495 --> 00:10:46.533
+a recognizable financial services brand
-00:10:47.600 --> 00:10:49.680
-identify just so I don't accidentally
+00:10:46.533 --> 00:10:48.500
+that I don't identify
-00:10:49.680 --> 00:10:50.720
-end up
+00:10:48.500 --> 00:10:50.720
+just so I don't accidentally end up
00:10:50.720 --> 00:10:54.399
-uh inadvertently misrepresenting my firm
-
-00:10:54.399 --> 00:10:55.600
-in some financial
-
-00:10:55.600 --> 00:10:57.760
-uh perspective if I let some other
-
-00:10:57.760 --> 00:11:00.480
-companies slip at certain let some other
-
-00:11:00.480 --> 00:11:01.760
-companies slip
+inadvertently misrepresenting my firm
-00:11:01.760 --> 00:11:06.560
-name slip or my own it's certainly no
+00:10:54.399 --> 00:10:56.456
+in some financial perspective
-00:11:06.560 --> 00:11:08.160
-representation of an opinion other than
+00:10:56.456 --> 00:10:57.760
+if I let some other
-00:11:08.160 --> 00:11:11.279
-my own
+00:10:57.760 --> 00:11:03.300
+companies' name slip, or my own.
-00:11:11.279 --> 00:11:13.980
-the um
+00:11:03.300 --> 00:11:07.700
+It's certainly no representation
-00:11:13.980 --> 00:11:18.800
-[Music]
+00:11:07.700 --> 00:11:11.279
+of an opinion other than my own.
00:11:18.800 --> 00:11:22.720
-so etl has to do with moving data around
+So ETL has to do with moving data around.
00:11:22.720 --> 00:11:26.240
-we we have the idea of of
+We have the idea of
00:11:26.240 --> 00:11:29.200
a pipeline where we'll be able to verify
00:11:29.200 --> 00:11:30.560
-certain assumptions not
+certain assumptions,
-00:11:30.560 --> 00:11:32.480
-nominally about data quality but it
+00:11:30.560 --> 00:11:32.106
+nominally about data quality,
-00:11:32.480 --> 00:11:33.600
-could be about anything
+00:11:32.106 --> 00:11:33.600
+but it could be about anything.
-00:11:33.600 --> 00:11:36.000
-before the pipeline starts okay we've
+00:11:33.600 --> 00:11:35.630
+Before the pipeline starts, okay,
-00:11:36.000 --> 00:11:37.279
-got a state where we think it should
+00:11:35.630 --> 00:11:36.886
+we've got a state where we think
-00:11:37.279 --> 00:11:38.560
-work if we run it
+00:11:36.886 --> 00:11:38.560
+it should work if we run it.
00:11:38.560 --> 00:11:41.920
-we have uh some extraction where we'll
+We have some extraction where we'll
-00:11:41.920 --> 00:11:44.160
-get our sources and we may have the the
+00:11:41.920 --> 00:11:43.973
+get our sources, and we may have
-00:11:44.160 --> 00:11:45.040
-opportunity to
+00:11:43.973 --> 00:11:45.040
+the opportunity to
-00:11:45.040 --> 00:11:47.920
-uh make some assertions there and in the
+00:11:45.040 --> 00:11:47.327
+make some assertions there.
-00:11:47.920 --> 00:11:48.720
-transform
+00:11:47.327 --> 00:11:50.510
+In the transform stage,
+as well as the load,
-00:11:48.720 --> 00:11:51.360
-stage as well as the load things get a
-
-00:11:51.360 --> 00:11:52.720
-little dicer
+00:11:50.510 --> 00:11:52.720
+things get a little dicer,
00:11:52.720 --> 00:11:54.079
to the point where we come out of the
@@ -837,770 +748,699 @@ to the point where we come out of the
00:11:54.079 --> 00:11:55.360
load stage and we should have some
-00:11:55.360 --> 00:11:57.040
-really solid assertions again that we
+00:11:55.360 --> 00:11:56.676
+really solid assertions again
-00:11:57.040 --> 00:11:58.480
-can even go back and compare to the
+00:11:56.676 --> 00:11:57.724
+that we can even go back
-00:11:58.480 --> 00:11:59.680
-extract stage
+00:11:57.724 --> 00:11:59.680
+and compare to the extract stage.
00:11:59.680 --> 00:12:02.639
-and from this we have the rudimentaries
+From this, we have the rudimentaries
00:12:02.639 --> 00:12:04.959
-of a data quality practice
+of a data quality practice.
-00:12:04.959 --> 00:12:08.399
-uh in this case we have a number of org
+00:12:04.959 --> 00:12:08.120
+In this case, we have a number of
-00:12:08.399 --> 00:12:09.360
-mode files that will all
+00:12:08.120 --> 00:12:09.360
+Org Mode files that will all
00:12:09.360 --> 00:12:12.639
be distributed across a
00:12:12.639 --> 00:12:16.720
-number of players uh computers
+number of players' computers,
00:12:16.720 --> 00:12:18.959
so we might not want to update every
00:12:18.959 --> 00:12:20.320
-part of every buffer
+part of every buffer.
00:12:20.320 --> 00:12:22.720
-I think it's a complicated problem space
+I think it's a complicated problem space.
00:12:22.720 --> 00:12:24.560
-and so we tried to take
+So we tried to take
00:12:24.560 --> 00:12:27.839
a long-term view of
-00:12:27.839 --> 00:12:31.120
-the solution that we needed um so I'll
-
-00:12:31.120 --> 00:12:32.160
-go ahead
+00:12:27.839 --> 00:12:30.321
+the solution that we needed.
-00:12:32.160 --> 00:12:35.760
-and open up the fun function
+00:12:30.321 --> 00:12:32.160
+So I'll go ahead
-00:12:35.760 --> 00:12:37.839
-that well let's let's actually start
+00:12:32.160 --> 00:12:36.279
+and open up the function
+that...
-00:12:37.839 --> 00:12:41.680
-with the one that's pretty easy to read
+00:12:36.279 --> 00:12:39.020
+Let's actually start with the one
-00:12:41.680 --> 00:12:45.040
-and uh I'm gonna go ahead and just crank
+00:12:39.020 --> 00:12:41.680
+that's pretty easy to read.
-00:12:45.040 --> 00:12:46.800
-it up huge
+00:12:41.680 --> 00:12:46.800
+I'm gonna go ahead and
+just crank it up huge,
00:12:46.800 --> 00:12:51.680
in case anybody's watching in 480.
-00:12:51.680 --> 00:12:56.480
-um so this this program is not
-
-00:12:56.480 --> 00:12:58.560
-a work of art it's a simple
+00:12:51.680 --> 00:12:57.733
+This program is not a work of art
-00:12:58.560 --> 00:13:01.120
-implementation of the idea that a list
+00:12:57.733 --> 00:13:01.120
+It's a simple implementation
+of the idea that
-00:13:01.120 --> 00:13:05.440
-an a list of functions that return
+00:13:01.120 --> 00:13:04.000
+an alist of functions
-00:13:05.440 --> 00:13:08.160
-maybe some data maybe some data and an
+00:13:04.000 --> 00:13:06.633
+that return maybe some data,
-00:13:08.160 --> 00:13:10.399
-entry back into that a list
+00:13:06.633 --> 00:13:10.399
+maybe some data and an entry
+back into that alist,
00:13:10.399 --> 00:13:13.040
-um can be done quite extensively with
+can be done quite extensively with
00:13:13.040 --> 00:13:15.680
-very few lines of code
+very few lines of code.
-00:13:15.680 --> 00:13:17.760
-neither is it an especially tight or
+00:13:15.680 --> 00:13:17.586
+Neither is it an especially tight
-00:13:17.760 --> 00:13:19.600
-thrifty implementation
+00:13:17.586 --> 00:13:19.600
+or thrifty implementation.
00:13:19.600 --> 00:13:22.000
-it's just trying to get the job done
-
-00:13:22.000 --> 00:13:22.800
-with a doc
-
-00:13:22.800 --> 00:13:26.160
-statement for everything at the heart
+It's just trying to get the job done
-00:13:26.160 --> 00:13:30.880
-um we see a call to this macro called dm
+00:13:22.000 --> 00:13:25.056
+with a doc statement for everything.
-00:13:30.880 --> 00:13:32.480
-coalesce hash and that's what I'd like
+00:13:25.056 --> 00:13:28.595
+At the heart, we see a call to
-00:13:32.480 --> 00:13:35.360
-to focus in on you can see I think
+00:13:28.595 --> 00:13:32.067
+this macro called dm-coalesce-hash,
-00:13:35.360 --> 00:13:37.680
-that something on unpleasant is
+00:13:32.067 --> 00:13:33.714
+and that's what I'd like
+to focus in on.
-00:13:37.680 --> 00:13:38.800
-happening here
+00:13:33.714 --> 00:13:35.360
+You can see... I think
-00:13:38.800 --> 00:13:42.480
-I've got an eval in um
+00:13:35.360 --> 00:13:38.800
+that something unpleasant is
+happening here.
-00:13:42.480 --> 00:13:46.560
-what is I will share a a
+00:13:38.800 --> 00:13:43.991
+I've got an eval in what is...
-00:13:46.560 --> 00:13:49.519
-fairly central function that that that
+00:13:43.991 --> 00:13:49.519
+I will share a fairly central function
-00:13:49.519 --> 00:13:49.920
-that
+00:13:49.519 --> 00:13:52.160
+that those implementing
+this ETL pattern are
-00:13:49.920 --> 00:13:52.160
-those implementing this etl pattern are
+00:13:52.160 --> 00:13:54.933
+welcome to derive from.
-00:13:52.160 --> 00:13:53.920
-welcome to
+00:13:54.933 --> 00:13:57.680
+That is, this is a
+default transform
-00:13:53.920 --> 00:13:56.639
-derive from that is this is a default
-
-00:13:56.639 --> 00:13:57.680
-transform
-
-00:13:57.680 --> 00:13:59.680
-that you can get when loading certain
-
-00:13:59.680 --> 00:14:00.959
-kinds of
+00:13:57.680 --> 00:14:00.959
+that you can get when loading
+certain kinds of
00:14:00.959 --> 00:14:04.560
-uh orgmo tables that have been uh
+org-mode tables that have been
00:14:04.560 --> 00:14:06.399
-properly adorned and again we'll get
+properly adorned. Again, we'll get
00:14:06.399 --> 00:14:09.120
-into that all tomorrow
+into that all tomorrow.
-00:14:09.120 --> 00:14:11.440
-so keep an eye on time couple minutes
+00:14:09.120 --> 00:14:11.900
+So, keeping an eye on time.
+Couple minutes left.
-00:14:11.440 --> 00:14:13.760
-left let's look at the macro itself and
+00:14:11.900 --> 00:14:13.760
+Let's look at the macro itself.
-00:14:13.760 --> 00:14:15.360
-I have a slide on this but let's go
+00:14:13.760 --> 00:14:15.000
+I have a slide on this,
-00:14:15.360 --> 00:14:24.639
-ahead and risk getting off page
+00:14:15.000 --> 00:14:24.639
+but let's go ahead
+and risk getting off page.
00:14:24.639 --> 00:14:27.199
-oh boy here we go so this is my
+Oh boy. Here we go. So this is my
00:14:27.199 --> 00:14:28.959
-utilities bucket
+utilities bucket.
00:14:28.959 --> 00:14:31.920
-it has such basic features as give me a
+It has such basic features as "give me a
00:14:31.920 --> 00:14:34.000
-hash table with some defaults I'll think
+hash table with some defaults, I'll think
00:14:34.000 --> 00:14:36.000
-about that later
+about that later,"
-00:14:36.000 --> 00:14:39.680
-and
-
-00:14:39.680 --> 00:14:44.720
-and add to list um a special version
+00:14:36.000 --> 00:14:44.720
+and "add to list," a special version
00:14:44.720 --> 00:14:47.600
that enables us to be a little cavalier
00:14:47.600 --> 00:14:49.360
-in experimenting with a-list versus
+in experimenting with alist versus
-00:14:49.360 --> 00:14:50.480
-hashes versus p
+00:14:49.360 --> 00:14:50.967
+hashes versus plists.
-00:14:50.480 --> 00:14:52.800
-lists we've made a right mess for
+00:14:50.967 --> 00:14:53.178
+We've made a right mess for
+ourselves
-00:14:52.800 --> 00:14:54.399
-ourselves in the proof of concept area
+00:14:53.178 --> 00:14:54.399
+in the proof of concept area,
-00:14:54.399 --> 00:14:55.279
-and it's ripe
+00:14:54.399 --> 00:14:57.433
+and it's ripe for someone to write a
-00:14:55.279 --> 00:14:58.560
-for someone to write a white paper about
+00:14:57.433 --> 00:14:58.560
+whitepaper about
00:14:58.560 --> 00:15:00.240
-when to prefer these things
-
-00:15:00.240 --> 00:15:04.800
-and fix
+when to prefer these things.
00:15:04.800 --> 00:15:08.000
-the merge a list uh
+The merge alist...
-00:15:08.000 --> 00:15:10.720
-same work here let's get let's get down
+00:15:08.000 --> 00:15:12.959
+Same work here.
+Let's get down to business.
-00:15:10.720 --> 00:15:12.959
-to business
+00:15:12.959 --> 00:15:14.667
+This function has quite a...
-00:15:12.959 --> 00:15:16.000
-this function has quite a this a macro
+00:15:14.667 --> 00:15:17.467
+This macro has quite a doc string.
-00:15:16.000 --> 00:15:18.560
-has quite a doc string and I think I
+00:15:17.467 --> 00:15:20.720
+I think I mentioned earlier
+that I got myself into
-00:15:18.560 --> 00:15:20.720
-mentioned earlier that I got myself into
+00:15:20.720 --> 00:15:22.088
+trouble with the keyword properties.
-00:15:20.720 --> 00:15:22.240
-trouble with the keyword properties you
+00:15:22.088 --> 00:15:23.519
+You can see that we have
-00:15:22.240 --> 00:15:23.519
-can see that we have
+00:15:23.519 --> 00:15:27.359
+not only quite a number of them,
-00:15:23.519 --> 00:15:27.839
-not only quite a number of them but
+00:15:27.359 --> 00:15:31.155
+but a lot of default values,
-00:15:27.839 --> 00:15:32.240
-a lot of a lot of default values many of
+00:15:31.155 --> 00:15:35.446
+many of which may be relying on
-00:15:32.240 --> 00:15:32.880
-which
+00:15:35.446 --> 00:15:37.264
+the values that are passed in here.
-00:15:32.880 --> 00:15:36.000
-may be relying on the
-
-00:15:36.000 --> 00:15:37.680
-values that are passed in here this is
-
-00:15:37.680 --> 00:15:40.000
-complicated and as it turns out
+00:15:37.264 --> 00:15:40.000
+This is complicated. As it turns out,
00:15:40.000 --> 00:15:44.000
-um I wasn't brave enough in most cases
+I wasn't brave enough in most cases
-00:15:44.000 --> 00:15:46.079
-to try to write a lambda that could
+00:15:44.000 --> 00:15:45.485
+to try to write a lambda
-00:15:46.079 --> 00:15:47.279
-understand and
+00:15:45.485 --> 00:15:47.279
+that could understand and
-00:15:47.279 --> 00:15:49.680
-replace uh its own local variable I just
+00:15:47.279 --> 00:15:49.300
+replace its own local variable.
-00:15:49.680 --> 00:15:50.399
-didn't
+00:15:49.300 --> 00:15:50.399
+I just didn't...
00:15:50.399 --> 00:15:53.519
-it didn't save me enough time this was
-
-00:15:53.519 --> 00:15:54.800
-really easy
+It didn't save me enough time. This was
-00:15:54.800 --> 00:15:56.800
-to read and write and understand as I
+00:15:53.519 --> 00:15:56.532
+really easy to read and write and
+understand
-00:15:56.800 --> 00:15:58.240
-thought through my problem
+00:15:56.532 --> 00:15:58.240
+as I thought through my problem,
-00:15:58.240 --> 00:16:01.440
-but now as I use it I I've lost a little
+00:15:58.240 --> 00:16:00.000
+but now, as I use it,
-00:16:01.440 --> 00:16:03.360
-ground maybe with this and I'm not even
+00:16:00.000 --> 00:16:02.486
+I've lost a little ground with
+this.
-00:16:03.360 --> 00:16:04.079
-sure
+00:16:02.486 --> 00:16:04.079
+I'm not even sure
-00:16:04.079 --> 00:16:07.279
-I like what I got from uh the many
+00:16:04.079 --> 00:16:06.453
+I like what I got from
-00:16:07.279 --> 00:16:08.079
-keyword
+00:16:06.453 --> 00:16:09.341
+the many keyword properties
+when it...
-00:16:08.079 --> 00:16:10.560
-properties when it and we can look
-
-00:16:10.560 --> 00:16:11.920
-perhaps if we have
+00:16:09.341 --> 00:16:11.920
+And we can look, perhaps if we have
00:16:11.920 --> 00:16:17.340
-the time at what that looks like in uh
-
-00:16:17.340 --> 00:16:19.920
-[Music]
+the time, at what that looks like in
00:16:19.920 --> 00:16:22.720
-oh all right I have to separately
+Oh, all right, I have to separately
00:16:22.720 --> 00:16:24.480
-dismiss and restart that
+dismiss and restart that.
00:16:24.480 --> 00:16:27.519
-um so that so that's just about my time
+So that's just about my time.
00:16:27.519 --> 00:16:29.600
-uh and being respectful of that I want
+Being respectful of that, I want
00:16:29.600 --> 00:16:31.920
to invite presenters to just jump in at
00:16:31.920 --> 00:16:35.519
-any of the many large pauses I leave
+any of the many large pauses I leave.
00:16:35.519 --> 00:16:38.079
-uh as I'll just leave up the doc string
+I'll just leave up the doc string
00:16:38.079 --> 00:16:40.160
for a moment and maybe split the screen
00:16:40.160 --> 00:16:45.199
-and pull open an item
+and pull open an item.
00:16:45.199 --> 00:16:48.720
-you are now unmuted uh thank you very
+([Amin]: Thank you very
00:16:48.720 --> 00:16:50.720
-much for your talk corwin
+much for your talk, Corwin.
00:16:50.720 --> 00:16:53.839
-um I think you still have like uh
+I think you still have
-00:16:53.839 --> 00:16:55.279
-maybe three or four more minutes if you
+00:16:53.839 --> 00:16:55.027
+maybe three or four more minutes,
-00:16:55.279 --> 00:16:57.680
-want to quickly wrap up
+00:16:55.027 --> 00:16:57.680
+if you want to quickly wrap up.)
-00:16:57.680 --> 00:17:01.040
-okay so three or four more minutes I can
+00:16:57.680 --> 00:17:00.644
+[Corwin:] Okay, so three or four
+more minutes
-00:17:01.040 --> 00:17:02.160
-easily spend
-
-00:17:02.160 --> 00:17:05.439
-on thank yous
+00:17:00.644 --> 00:17:05.439
+I can easily spend on thank yous.
00:17:05.439 --> 00:17:07.280
I might switch to that if there aren't
00:17:07.280 --> 00:17:08.270
-questions on the path
-
-00:17:08.270 --> 00:17:10.160
-[Music]
+questions on the pad.
00:17:10.160 --> 00:17:12.559
-um would you like me to pull up the pad
+([Amin:] Would you like me to pull up the pad,
00:17:12.559 --> 00:17:14.079
-or are you looking at it
+or are you looking at it?)
-00:17:14.079 --> 00:17:17.199
-I am I bookmarked it I am
+00:17:14.079 --> 00:17:16.777
+[Corwin:] I am. I bookmarked it.
-00:17:17.199 --> 00:17:30.840
-pulling the tab and I'll bring it in
+00:17:16.777 --> 00:17:30.840
+I am pulling the tab
+and I'll bring it in.
-00:17:30.840 --> 00:17:34.960
-okay
-
-00:17:34.960 --> 00:17:38.799
-all right this is the wrong ether pad
+00:17:30.840 --> 00:17:38.799
+Okay. All right. This is the wrong
+Etherpad.
00:17:38.799 --> 00:17:44.480
-thanks for the link
-
-00:17:44.480 --> 00:17:48.000
-all right um so I think I'm looking for
+Thanks for the link.
-00:17:48.000 --> 00:17:54.880
-macros
+00:17:44.480 --> 00:17:54.880
+All right. So I think I'm
+looking for macros.
-00:17:54.880 --> 00:17:58.400
-uh okay key message sure so the
+00:17:54.880 --> 00:17:57.630
+Okay. Key message. Sure.
-00:17:58.400 --> 00:18:01.679
-the key message is that it's um it's a
+00:17:57.630 --> 00:18:01.679
+So, the key message is that it's
00:18:01.679 --> 00:18:02.960
-jungle out there
+a jungle out there.
-00:18:02.960 --> 00:18:06.240
-macros along with any other design can
+00:18:02.960 --> 00:18:05.912
+Macros, along with any other design,
-00:18:06.240 --> 00:18:08.559
-leave you in a position
+00:18:05.912 --> 00:18:08.559
+can leave you in a position
00:18:08.559 --> 00:18:11.919
-where you have a nice api and I can show
+where you have a nice API. I can show
00:18:11.919 --> 00:18:13.600
-you other examples you can find them in
+you other examples (you can find them in
00:18:13.600 --> 00:18:14.960
-the dungeon mode source
+the dungeon-mode source)
00:18:14.960 --> 00:18:18.480
-of many many other places where I use
+of many, many other places where I use
-00:18:18.480 --> 00:18:21.600
-this exact same formula quickly
+00:18:18.480 --> 00:18:20.820
+this exact same formula,
-00:18:21.600 --> 00:18:23.840
-sketching out how a character sheet
+00:18:20.820 --> 00:18:23.840
+quickly sketching out
+how a character sheet
-00:18:23.840 --> 00:18:26.960
-or another big data set needs to
+00:18:23.840 --> 00:18:26.180
+or another big data set
-00:18:26.960 --> 00:18:28.480
-needs to figure out what tables are
+00:18:26.180 --> 00:18:28.480
+needs to figure out
+what tables are
-00:18:28.480 --> 00:18:29.600
-going to be interesting from the
+00:18:28.480 --> 00:18:29.320
+going to be interesting
-00:18:29.600 --> 00:18:30.720
-collection of files
+00:18:29.320 --> 00:18:30.720
+from the collection of files,
-00:18:30.720 --> 00:18:34.400
-and then load up the tile set and
+00:18:30.720 --> 00:18:33.967
+and then load up the tile set,
-00:18:34.400 --> 00:18:38.880
-the uh layout file from that
+00:18:33.967 --> 00:18:38.880
+and the layout file from that.
-00:18:38.880 --> 00:18:41.600
-and I mean it works this the project is
+00:18:38.880 --> 00:18:40.542
+And I mean, it works.
-00:18:41.600 --> 00:18:43.280
-moving forward with this I have the
+00:18:40.542 --> 00:18:42.677
+The project is moving forward
+with this.
-00:18:43.280 --> 00:18:44.799
-flexibility that I need
+00:18:42.677 --> 00:18:44.799
+I have the flexibility that I need.
-00:18:44.799 --> 00:18:46.720
-but here I am evaling my own code to
+00:18:44.799 --> 00:18:46.559
+But here I am evaling my own code
-00:18:46.720 --> 00:18:48.640
-make darn sure even if I get by
+00:18:46.559 --> 00:18:48.640
+to make darn sure even if I get
00:18:48.640 --> 00:18:52.400
-by compiled uh this macro doesn't uh
+byte-compiled, this macro
00:18:52.400 --> 00:18:55.440
does get evaluated in the user's real
-00:18:55.440 --> 00:18:58.160
-run time clearly a design fail so that
+00:18:55.440 --> 00:18:57.684
+run time. Clearly a design fail.
-00:18:58.160 --> 00:18:58.880
-would be
+00:18:57.684 --> 00:18:58.890
+So that would be...
-00:18:58.880 --> 00:19:00.880
-the key point of my talk is is to
+00:18:58.890 --> 00:19:00.880
+The key point of my talk is to
-00:19:00.880 --> 00:19:02.400
-present this design
-
-00:19:02.400 --> 00:19:05.600
-fail and uh thank
+00:19:00.880 --> 00:19:05.600
+present this design fail and
00:19:05.600 --> 00:19:08.320
-um thank the community but especially
-
-00:19:08.320 --> 00:19:09.520
-wasa masa
-
-00:19:09.520 --> 00:19:12.160
-for for some patience and let me add at
+thank the community, but especially
-00:19:12.160 --> 00:19:13.280
-this moment that
+00:19:08.320 --> 00:19:10.942
+wasamasa for some patience.
-00:19:13.280 --> 00:19:15.200
-uh he was so frustrated with me they
+00:19:10.942 --> 00:19:13.280
+Let me add at this moment that
-00:19:15.200 --> 00:19:16.799
-were sort of frustrated with me I think
+00:19:13.280 --> 00:19:13.333
+he was so frustrated with me.
-00:19:16.799 --> 00:19:17.360
-I
+00:19:13.333 --> 00:19:17.115
+They were sort of frustrated with me
-00:19:17.360 --> 00:19:20.400
-didn't qualify pronouns um
+00:19:17.115 --> 00:19:20.400
+(I think I didn't qualify pronouns)
-00:19:20.400 --> 00:19:24.240
-with um
+00:19:24.240 --> 00:19:26.287
+with doing this. The first...
-00:19:24.240 --> 00:19:26.640
-with doing this the the first the this
+00:19:26.287 --> 00:19:27.985
+This was one of our first
+interactions,
-00:19:26.640 --> 00:19:28.160
-was one of our first interactions and
-
-00:19:28.160 --> 00:19:29.919
-the feedback was
+00:19:27.985 --> 00:19:29.919
+and the feedback was,
00:19:29.919 --> 00:19:34.240
-why is this a macro full stop
+"Why is this a macro. Full stop."
00:19:34.240 --> 00:19:36.640
-and uh that's a great message actually
+And that's a great message, actually.
-00:19:36.640 --> 00:19:38.320
-and I and I hope that
+00:19:36.640 --> 00:19:39.520
+I hope that maybe this
+can encourage
-00:19:38.320 --> 00:19:40.160
-uh maybe this can encourage further
+00:19:39.520 --> 00:19:42.720
+further talks across the subject about,
-00:19:40.160 --> 00:19:42.720
-talks across the subject about
+00:19:42.720 --> 00:19:43.808
+you know, "Hey, wait a minute,
-00:19:42.720 --> 00:19:44.160
-you know hey wait a minute macros are
+00:19:43.808 --> 00:19:45.549
+macros are really fantastic,"
-00:19:44.160 --> 00:19:46.720
-really fantastic as I hope I made
+00:19:45.549 --> 00:19:47.018
+as I hope I made clear.
-00:19:46.720 --> 00:19:48.559
-clear you can do a tremendous amount
+00:19:47.018 --> 00:19:48.559
+You can do a tremendous amount
00:19:48.559 --> 00:19:51.039
-about uh with them and we rely on them
-
-00:19:51.039 --> 00:19:52.320
-for
+with them, and we rely on them
-00:19:52.320 --> 00:19:55.200
-almost all the fun goodies um from you
+00:19:51.039 --> 00:19:55.200
+for almost all the fun goodies,
-00:19:55.200 --> 00:19:56.480
-know defund
+00:19:55.200 --> 00:20:02.159
+from defun, setq...
-00:19:56.480 --> 00:20:02.159
-secu
+00:20:02.159 --> 00:20:04.639
+I want to get to my thank yous.
-00:20:02.159 --> 00:20:04.960
-um I want to get to my my thank yous let
-
-00:20:04.960 --> 00:20:05.440
-me just
-
-00:20:05.440 --> 00:20:18.840
-peek back at the pad
-
-00:20:18.840 --> 00:20:20.000
-oh
+00:20:04.639 --> 00:20:18.840
+Let me just peek back at the pad.
00:20:20.000 --> 00:20:22.080
-well that was actually a scratch buffer
-
-00:20:22.080 --> 00:20:23.760
-so I'll have to sort of read it cold off
+Well, that was actually a scratch buffer,
-00:20:23.760 --> 00:20:24.720
-my notes
-
-00:20:24.720 --> 00:20:27.919
-um
+00:20:22.080 --> 00:20:24.720
+so I'll have to read it cold off
+my notes.
00:20:27.919 --> 00:20:30.320
-but also but I'll switch to I'll also
+But I'll switch to... I'll also...
00:20:30.320 --> 00:20:31.600
-I'll say a couple of thank yous if you
+I'll say a couple of thank-yous if you
00:20:31.600 --> 00:20:34.320
-don't mind
+don't mind, Amin.
00:20:34.320 --> 00:20:36.080
-in addition to the big thank you that I
-
-00:20:36.080 --> 00:20:38.400
-hope was implied by my shout out to wasa
+In addition to the big thank you that I
-00:20:38.400 --> 00:20:39.360
-masa
+00:20:36.080 --> 00:20:39.360
+hope was implied by my shout out
+to wasamasa,
00:20:39.360 --> 00:20:42.720
-um I also want to thank you amen for
+I also want to thank you, Amin, for
00:20:42.720 --> 00:20:46.640
-um your kindness in extending
+your kindness in extending
00:20:46.640 --> 00:20:51.360
-to the project as well as to me the
+to the project as well as to me, the
00:20:51.360 --> 00:20:54.320
-the chance to present here and and and
-
-00:20:54.320 --> 00:20:55.440
-you've you've also
+the chance to present here.
-00:20:55.440 --> 00:20:56.799
-just done a lot of great stuff for our
+00:20:54.320 --> 00:20:56.358
+You've also done a lot of great stuff
-00:20:56.799 --> 00:20:59.360
-project thank you very much for that and
+00:20:56.358 --> 00:20:59.360
+for our project. Thank you very much for
+that.
-00:20:59.360 --> 00:21:13.120
-sasha
+00:20:59.360 --> 00:21:03.400
+Sacha Chua (I'll get there),
-00:21:13.120 --> 00:21:15.919
-I'll get there um thank you so much for
+00:21:03.400 --> 00:21:15.919
+thank you so much for
00:21:15.919 --> 00:21:17.200
the inspiration that you are to our
00:21:17.200 --> 00:21:18.320
-whole community
+whole community.
00:21:18.320 --> 00:21:22.400
I also want to thank the presenters
00:21:22.400 --> 00:21:25.600
-um for just being so flexible and
+for just being so flexible and
00:21:25.600 --> 00:21:27.600
-uh nagging back through the whole thing
+nagging back through the whole thing,
00:21:27.600 --> 00:21:29.120
-and especially to leo
-
-00:21:29.120 --> 00:21:30.960
-who has done so much to drive the show
-
-00:21:30.960 --> 00:21:32.159
-today
+and especially to Leo
-00:21:32.159 --> 00:21:35.520
-um I
+00:21:29.120 --> 00:21:32.159
+who has done so much to
+drive the show today.
-00:21:35.520 --> 00:21:37.840
-this is a fractious tent at times and
+00:21:32.159 --> 00:21:37.242
+This is a fractious tent at times,
-00:21:37.840 --> 00:21:38.960
-sometimes
+00:21:37.242 --> 00:21:39.800
+and sometimes it is indeed
-00:21:38.960 --> 00:21:41.360
-it is indeed a little bit of a circus
+00:21:39.800 --> 00:21:41.360
+a little bit of a circus,
-00:21:41.360 --> 00:21:43.039
-but I
+00:21:41.360 --> 00:21:44.746
+but I am learning so much so fast.
-00:21:43.039 --> 00:21:45.520
-am learning so much so fast I'm just
+00:21:44.746 --> 00:21:46.880
+I'm just inspired by how much
-00:21:45.520 --> 00:21:46.880
-inspired by how much
+00:21:46.880 --> 00:21:49.333
+Emacs can teach us.
-00:21:46.880 --> 00:21:50.320
-Emacs can teach us thank you
+00:21:49.333 --> 00:21:52.901
+([Amin:] thank you, Corwin,
+for your kind words
-00:21:50.320 --> 00:21:53.120
-uh corbin for your kind words and you
-
-00:21:53.120 --> 00:21:54.960
-know about me of course but all about
+00:21:52.901 --> 00:21:54.960
+about me, of course,
00:21:54.960 --> 00:21:56.000
-you know all of us
+about all of us
-00:21:56.000 --> 00:21:59.760
-and the conference and you know indeed
+00:21:56.000 --> 00:21:58.000
+and the conference...
-00:21:59.760 --> 00:22:02.400
-thanks to everyone who's helped uh
+00:21:58.000 --> 00:22:02.400
+Indeed, thanks to everyone who's helped,
00:22:02.400 --> 00:22:04.159
-including the speakers of course
+including the speakers, of course,
00:22:04.159 --> 00:22:05.840
-without whom you know a maxcom really
+without whom EmacsConf really
00:22:05.840 --> 00:22:08.960
-wouldn't have been a EmacsConf
+wouldn't have been a EmacsConf.
00:22:08.960 --> 00:22:10.640
-and you know it's been a pleasure
-
-00:22:10.640 --> 00:22:12.080
-knowing you and working with
+It's been a pleasure
-00:22:12.080 --> 00:22:15.520
-you um I guess um from afar for the most
+00:22:10.640 --> 00:22:12.366
+knowing you and
+working with you,
-00:22:15.520 --> 00:22:17.360
-part on dungeon mode like helping
+00:22:12.366 --> 00:22:15.743
+from afar for the most part
-00:22:17.360 --> 00:22:18.960
-helping with like small things here and
+00:22:15.743 --> 00:22:17.360
+on dungeon-mode,
-00:22:18.960 --> 00:22:20.720
-there but um
+00:22:17.360 --> 00:22:19.937
+helping with small things
+here and there
-00:22:20.720 --> 00:22:22.320
-yeah it's been my pleasure and it's
+00:22:19.937 --> 00:22:21.796
+but yeah, it's been my pleasure,
-00:22:22.320 --> 00:22:23.840
-great to have you and
+00:22:21.796 --> 00:22:23.840
+and it's great to have you and
-00:22:23.840 --> 00:22:25.840
-um everyone else you know part of the
+00:22:23.840 --> 00:22:26.582
+everyone else part of the
+community,
-00:22:25.840 --> 00:22:26.880
-community and
+00:22:26.582 --> 00:22:29.180
+and for me to be part of the
+community.
-00:22:26.880 --> 00:22:29.440
-for me to be part of the community it's
-
-00:22:29.440 --> 00:22:30.559
-been a lot of fun
+00:22:29.180 --> 00:22:30.559
+It's been a lot of fun.
00:22:30.559 --> 00:22:33.679
-thank you
-
-00:22:33.679 --> 00:22:36.080
-it's it's it's it's an honor and I don't
+Thank you.)
-00:22:36.080 --> 00:22:38.000
-use that word an awful lot because I
+00:22:33.679 --> 00:22:35.206
+[Corwin]: It's an honor.
-00:22:38.000 --> 00:22:38.720
-sort of
+00:22:35.206 --> 00:22:37.428
+I don't use that word an awful lot
-00:22:38.720 --> 00:22:41.760
-sort of smirk at it but um gets us in a
+00:22:37.428 --> 00:22:39.867
+because I sort of smirk at it.
-00:22:41.760 --> 00:22:44.320
-lot of trouble honor does but
+00:22:39.867 --> 00:22:43.941
+It gets us in a lot of trouble,
+honor does,
-00:22:44.320 --> 00:22:47.360
-this will be a sure time to use it thank
+00:22:43.941 --> 00:22:46.904
+but this will be a sure time
+to use it.
-00:22:47.360 --> 00:22:48.840
-you
+00:22:46.904 --> 00:22:48.840
+([Amin:] Thank you.)
00:22:48.840 --> 00:22:51.840
-likewise
+[Corwin:] Likewise.