summaryrefslogtreecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.sbv
diff options
context:
space:
mode:
Diffstat (limited to '2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.sbv')
-rw-r--r--2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.sbv1605
1 files changed, 0 insertions, 1605 deletions
diff --git a/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.sbv b/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.sbv
deleted file mode 100644
index 83a99db6..00000000
--- a/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.sbv
+++ /dev/null
@@ -1,1605 +0,0 @@
-0:00:00.480,0:00:04.319
-uh well good evening again uh I think I
-
-0:00:02.879,0:00:07.359
-have a little time here
-
-0:00:04.319,0:00:09.120
-uh to talk about macros uh is there
-
-0:00:07.359,0:00:09.440
-still room in our in our schedule for
-
-0:00:09.120,0:00:11.440
-that
-
-0:00:09.440,0:00:12.559
-or should I just kind of jump to some of
-
-0:00:11.440,0:00:15.920
-my thoughts on the day
-
-0:00:12.559,0:00:17.039
-you are now unmuted um pretty sure we
-
-0:00:15.920,0:00:19.439
-have some time
-
-0:00:17.039,0:00:20.720
-all right great yeah go for it well I'll
-
-0:00:19.439,0:00:22.640
-just drive into my pre
-
-0:00:20.720,0:00:24.720
-prepared thing to hear that yeah
-
-0:00:22.640,0:00:28.400
-actually you're right on time so
-
-0:00:24.720,0:00:31.199
-oh what an amazing thing I I just uh
-
-0:00:28.400,0:00:33.040
-you know I have been trying to do what I
-
-0:00:31.199,0:00:36.239
-I've got a big thank you planet to get
-
-0:00:33.040,0:00:39.200
-at the end but let me just say I uh
-
-0:00:36.239,0:00:42.160
-it's it's been really cool to watch the
-
-0:00:39.200,0:00:46.000
-way that people work together
-
-0:00:42.160,0:00:46.800
-absolutely it's this whole event today
-
-0:00:46.000,0:00:50.879
-has been
-
-0:00:46.800,0:00:53.120
-nothing but awesome and uh no less like
-
-0:00:50.879,0:00:54.719
-no little part thanks to all of the help
-
-0:00:53.120,0:00:59.120
-from all of you guys
-
-0:00:54.719,0:01:02.399
-and um everyone oh yeah it's awesome
-
-0:00:59.120,0:01:03.520
-um yeah with that all just um shut up
-
-0:01:02.399,0:01:06.479
-for now and uh
-
-0:01:03.520,0:01:09.840
-take it away corwin you know how to make
-
-0:01:06.479,0:01:12.799
-make that the default and good old cemex
-
-0:01:09.840,0:01:14.880
-all right so I'm gonna try to continue
-
-0:01:12.799,0:01:16.960
-my theme from the previous talk I'm a
-
-0:01:14.880,0:01:20.240
-longtime Emacs user but I'm
-
-0:01:16.960,0:01:22.880
-a pretty new person
-
-0:01:20.240,0:01:24.960
-to trying to really understand what's
-
-0:01:22.880,0:01:28.240
-going on within Emacs and make
-
-0:01:24.960,0:01:30.960
-my customizations to it uh simple for
-
-0:01:28.240,0:01:33.280
-what I tend to just think of will work
-
-0:01:30.960,0:01:36.240
-and maybe that's that's that's a nice
-
-0:01:33.280,0:01:40.479
-bow to put on that earlier talk
-
-0:01:36.240,0:01:43.759
-so uh whoops
-
-0:01:40.479,0:01:47.759
-uh let's see here now it's ctrl x
-
-0:01:43.759,0:01:47.759
-alt I that's right
-
-0:01:48.159,0:01:52.000
-and let's try that again okay good
-
-0:01:52.960,0:01:58.000
-so demoing is fun uh but I
-
-0:01:56.000,0:01:59.759
-will save most of that for tomorrow
-
-0:01:58.000,0:02:03.040
-where my
-
-0:01:59.759,0:02:04.799
-dear friend and co-collaborator in
-
-0:02:03.040,0:02:07.119
-bringing you the dungeon mode project
-
-0:02:04.799,0:02:08.720
-which is uh sort of
-
-0:02:07.119,0:02:10.800
-the exciting thing that we we hope
-
-0:02:08.720,0:02:14.480
-you'll be interested in
-
-0:02:10.800,0:02:15.680
-um I think gets a little more of a
-
-0:02:14.480,0:02:19.360
-reveal
-
-0:02:15.680,0:02:22.640
-uh tonight I'll just uh close saying
-
-0:02:19.360,0:02:24.319
-um a few things about the process of
-
-0:02:22.640,0:02:25.680
-making it and continuing my theme of
-
-0:02:24.319,0:02:28.720
-community
-
-0:02:25.680,0:02:29.760
-uh first of all a specific and upfront
-
-0:02:28.720,0:02:33.120
-shout out
-
-0:02:29.760,0:02:36.239
-to tv's wasa masa who
-
-0:02:33.120,0:02:38.720
-um absolutely shaped and guided this
-
-0:02:36.239,0:02:40.080
-this program I I may have taken out a
-
-0:02:38.720,0:02:43.599
-slide with your name on it but
-
-0:02:40.080,0:02:46.720
-thank you um
-
-0:02:43.599,0:02:47.120
-so when we think about Emacs macros and
-
-0:02:46.720,0:02:50.239
-the
-
-0:02:47.120,0:02:53.280
-power that they give us
-
-0:02:50.239,0:02:54.720
-I think about them the the
-
-0:02:53.280,0:02:56.400
-you know I think about them as a really
-
-0:02:54.720,0:03:00.239
-deep rabbit hole they confuse
-
-0:02:56.400,0:03:02.480
-people a lot and so to try to center
-
-0:03:00.239,0:03:03.599
-myself on that I remember first that
-
-0:03:02.480,0:03:05.840
-they're
-
-0:03:03.599,0:03:08.239
-they're going to be talking to us about
-
-0:03:05.840,0:03:08.239
-code
-
-0:03:09.599,0:03:13.519
-uh excuse me I realize I hadn't set my
-
-0:03:12.080,0:03:18.000
-timer
-
-0:03:13.519,0:03:21.680
-here we are
-
-0:03:18.000,0:03:22.239
-um so a simple macro syntax is going to
-
-0:03:21.680,0:03:25.920
-generate
-
-0:03:22.239,0:03:27.760
-something that is implicitly confusing
-
-0:03:25.920,0:03:28.720
-to somebody that knows the syntax of
-
-0:03:27.760,0:03:31.200
-emax lisp
-
-0:03:28.720,0:03:32.000
-well we see something like this and a
-
-0:03:31.200,0:03:36.239
-veteran I
-
-0:03:32.000,0:03:39.760
-says that x isn't quoted what's going on
-
-0:03:36.239,0:03:39.760
-but it can be hard to miss
-
-0:03:39.840,0:03:44.640
-um a lot of the functions as we'll talk
-
-0:03:43.040,0:03:46.640
-about in a moment that are built into
-
-0:03:44.640,0:03:48.959
-Emacs
-
-0:03:46.640,0:03:50.480
-really are macros so a lot of Emacs
-
-0:03:48.959,0:03:53.040
-features work this way
-
-0:03:50.480,0:03:54.640
-it might be scary but we have to look at
-
-0:03:53.040,0:03:57.760
-it closely if we really want to get
-
-0:03:54.640,0:03:57.760
-friendly with Emacs
-
-0:03:58.400,0:04:03.920
-um let's just jump right into deaf macro
-
-0:04:01.439,0:04:04.720
-which is which is our key entry point
-
-0:04:03.920,0:04:08.560
-and the
-
-0:04:04.720,0:04:12.000
-notes from this talk include the link um
-
-0:04:08.560,0:04:14.640
-to that uh which which definitely
-
-0:04:12.000,0:04:16.000
-uh read through a couple of times and
-
-0:04:14.640,0:04:19.440
-that may take you through
-
-0:04:16.000,0:04:23.440
-into the cldf macro which adds
-
-0:04:19.440,0:04:26.840
-the common list lisp extensions
-
-0:04:23.440,0:04:30.560
-and uh definitely
-
-0:04:26.840,0:04:31.759
-uh challenging uh I've struggled there
-
-0:04:30.560,0:04:34.800
-as we'll take a look at in
-
-0:04:31.759,0:04:36.400
-in a moment um
-
-0:04:34.800,0:04:38.320
-so I haven't played too much with cl
-
-0:04:36.400,0:04:42.160
-maclet perhaps success in
-
-0:04:38.320,0:04:44.320
-in that uh keyword space and figuring
-
-0:04:42.160,0:04:46.000
-out what the right balance is there
-
-0:04:44.320,0:04:47.680
-what will give me the confidence to try
-
-0:04:46.000,0:04:51.600
-some more lexical
-
-0:04:47.680,0:04:51.600
-uh macros
-
-0:04:51.680,0:04:55.440
-let me also briefly introduce the comma
-
-0:04:53.919,0:04:58.479
-and back quote if you
-
-0:04:55.440,0:05:00.080
-have uh allowed your eyes to cross when
-
-0:04:58.479,0:05:03.600
-you see these and that's not
-
-0:05:00.080,0:05:06.080
-uh a shameful shameful thing it's
-
-0:05:03.600,0:05:08.160
-confusing and we should be
-
-0:05:06.080,0:05:09.520
-alerting each other when we when we
-
-0:05:08.160,0:05:11.199
-stick macros in
-
-0:05:09.520,0:05:12.960
-often by putting them in different
-
-0:05:11.199,0:05:14.160
-different library spaces for complicated
-
-0:05:12.960,0:05:17.520
-projects
-
-0:05:14.160,0:05:19.520
-or um otherwise sort of warning people
-
-0:05:17.520,0:05:21.919
-that this is not an interactive function
-
-0:05:19.520,0:05:22.639
-if you get away with using it like one
-
-0:05:21.919,0:05:25.840
-um
-
-0:05:22.639,0:05:25.840
-to watch your back
-
-0:05:26.000,0:05:32.800
-the uh
-
-0:05:29.440,0:05:35.840
-the manual itself talks about macros
-
-0:05:32.800,0:05:39.039
-as being a way of evaluating
-
-0:05:35.840,0:05:41.520
-you know as as being um
-
-0:05:39.039,0:05:42.800
-an evaluator that will take our amex
-
-0:05:41.520,0:05:44.800
-lisp expression
-
-0:05:42.800,0:05:47.590
-and the set of forms that kind of that
-
-0:05:44.800,0:05:48.960
-will feed to it our code
-
-0:05:47.590,0:05:51.120
-[Music]
-
-0:05:48.960,0:05:52.000
-but it also provides us with this
-
-0:05:51.120,0:05:55.039
-concept of an
-
-0:05:52.000,0:05:56.639
-environment and and and that's really
-
-0:05:55.039,0:05:58.240
-where the power
-
-0:05:56.639,0:06:00.080
-comes in through that we can have
-
-0:05:58.240,0:06:03.199
-lexical variables and
-
-0:06:00.080,0:06:06.400
-um think about uh bring in some of the
-
-0:06:03.199,0:06:09.759
-capabilities that
-
-0:06:06.400,0:06:13.840
-um can be harder to reach with
-
-0:06:09.759,0:06:14.800
-a a a pure declarative statement that
-
-0:06:13.840,0:06:18.000
-doesn't allow
-
-0:06:14.800,0:06:21.440
-for uh
-
-0:06:18.000,0:06:27.360
-top level
-
-0:06:21.440,0:06:27.360
-um asynchronous asynchronicity
-
-0:06:28.639,0:06:33.520
-uh I'm gonna basically
-
-0:06:31.950,0:06:35.759
-[Music]
-
-0:06:33.520,0:06:36.880
-ignore the bike compilation phase for
-
-0:06:35.759,0:06:38.639
-this talk
-
-0:06:36.880,0:06:39.919
-uh in order to have any prayer of
-
-0:06:38.639,0:06:43.600
-getting through it in the
-
-0:06:39.919,0:06:48.319
-remaining nine or 11 minutes or whatever
-
-0:06:43.600,0:06:50.160
-uh but
-
-0:06:48.319,0:06:52.240
-suffice it to say it that's a scary
-
-0:06:50.160,0:06:54.160
-space and that's that's that's really
-
-0:06:52.240,0:06:57.199
-the thing that you want to start
-
-0:06:54.160,0:07:02.160
-learning about as you think about taking
-
-0:06:57.199,0:07:05.919
-taking macros on uh in earnest
-
-0:07:02.160,0:07:07.440
-the um coming back to the comma syntax
-
-0:07:05.919,0:07:09.759
-then
-
-0:07:07.440,0:07:12.479
-having having given ourselves sort of a
-
-0:07:09.759,0:07:14.479
-working definition for the Emacs lisp
-
-0:07:12.479,0:07:15.840
-runtime environment then we can say that
-
-0:07:14.479,0:07:20.880
-macros are going to
-
-0:07:15.840,0:07:20.880
-inject code back into that stream
-
-0:07:21.120,0:07:28.479
-whereas back quote is going to
-
-0:07:25.280,0:07:31.919
-uh going to give code back
-
-0:07:28.479,0:07:34.560
-to the to the stream or interject sorry
-
-0:07:31.919,0:07:35.360
-it's going to interject uh back into the
-
-0:07:34.560,0:07:39.840
-stream
-
-0:07:35.360,0:07:43.280
-uh sort of uh an exclamatory excuse me
-
-0:07:39.840,0:07:46.720
-I'd like to uh
-
-0:07:43.280,0:07:48.639
-have a value here and we can take that
-
-0:07:46.720,0:07:52.560
-value from the environment as it exists
-
-0:07:48.639,0:07:52.560
-when our macro is evaluated
-
-0:07:54.160,0:07:57.280
-back quote on the other hand takes the
-
-0:07:56.639,0:08:00.560
-result
-
-0:07:57.280,0:08:02.400
-from that and uh
-
-0:08:00.560,0:08:04.319
-and returns it back to the stream for
-
-0:08:02.400,0:08:05.680
-evaluation at the processing level that
-
-0:08:04.319,0:08:08.720
-invoked us
-
-0:08:05.680,0:08:10.960
-so in other words perhaps back up to
-
-0:08:08.720,0:08:14.080
-a top level eval expression where our
-
-0:08:10.960,0:08:14.080
-macro is invoked
-
-0:08:16.720,0:08:22.560
-uh wrong way so um
-
-0:08:20.080,0:08:23.759
-with what's I'm going to briefly bring
-
-0:08:22.560,0:08:27.120
-you back to the game
-
-0:08:23.759,0:08:30.240
-for just a moment
-
-0:08:27.120,0:08:32.479
-um I won't
-
-0:08:30.240,0:08:33.599
-I won't has I won't linger on this slide
-
-0:08:32.479,0:08:37.039
-but but
-
-0:08:33.599,0:08:40.080
-briefly uh this is a
-
-0:08:37.039,0:08:43.599
-roll paper role-playing pen
-
-0:08:40.080,0:08:46.320
-and pencil uh physical dice
-
-0:08:43.599,0:08:48.080
-tradition that dates back a long time
-
-0:08:46.320,0:08:51.279
-from a technology perspective
-
-0:08:48.080,0:08:54.640
-it's it's old in the same way that uh
-
-0:08:51.279,0:08:56.959
-other tools uh that I like are
-
-0:08:54.640,0:08:56.959
-old
-
-0:08:58.560,0:09:02.560
-uh it's simple to understand and I can
-
-0:09:00.560,0:09:04.160
-communicate a lot with it with a simple
-
-0:09:02.560,0:09:09.120
-amount of you know typing or
-
-0:09:04.160,0:09:12.399
-scribbling something on a piece of paper
-
-0:09:09.120,0:09:15.519
-it has a complicated problem space um
-
-0:09:12.399,0:09:18.560
-of its own again I don't want to
-
-0:09:15.519,0:09:21.680
-get too much into the game here but
-
-0:09:18.560,0:09:23.360
-uh in this in this talk for the last
-
-0:09:21.680,0:09:26.640
-five minutes I'll focus
-
-0:09:23.360,0:09:29.920
-on the process that we took to to
-
-0:09:26.640,0:09:31.120
-automate uh getting data out of the org
-
-0:09:29.920,0:09:32.720
-mode tables which
-
-0:09:31.120,0:09:36.000
-eventually as we'll talk about more
-
-0:09:32.720,0:09:39.279
-tomorrow are used to draw
-
-0:09:36.000,0:09:39.279
-game maps and other things
-
-0:09:39.440,0:09:45.279
-um here I talk about kind of why we did
-
-0:09:42.240,0:09:49.360
-that I'm going to skip briefly past that
-
-0:09:45.279,0:09:51.920
-and say instead that at a high level
-
-0:09:49.360,0:09:53.519
-it's it's symbolic informatics we're
-
-0:09:51.920,0:09:58.080
-giving a symbolic name
-
-0:09:53.519,0:10:00.320
-to a tile set and then
-
-0:09:58.080,0:10:00.320
-uh
-
-0:10:02.000,0:10:05.360
-and then assigning that tile set some
-
-0:10:04.000,0:10:06.000
-some characteristics like physical
-
-0:10:05.360,0:10:08.399
-speeds
-
-0:10:06.000,0:10:09.279
-screen space a variable that we might
-
-0:10:08.399,0:10:12.800
-want to swap in
-
-0:10:09.279,0:10:15.200
-and so forth uh and
-
-0:10:12.800,0:10:16.160
-you know our project rests heavily on on
-
-0:10:15.200,0:10:19.839
-org mode and
-
-0:10:16.160,0:10:19.839
-it's it's fundamental capabilities
-
-0:10:21.040,0:10:24.959
-so the the code I'm going to show here
-
-0:10:24.000,0:10:28.320
-is
-
-0:10:24.959,0:10:31.360
-uh is
-
-0:10:28.320,0:10:33.040
-is focused around sort of a a sticky
-
-0:10:31.360,0:10:35.600
-problem space in in the information
-
-0:10:33.040,0:10:39.120
-technology and I'm I'm a professional
-
-0:10:35.600,0:10:41.120
-uh uh software engineer turned uh
-
-0:10:39.120,0:10:45.120
-technology architect I support
-
-0:10:41.120,0:10:47.600
-the websites for a recognizable
-
-0:10:45.120,0:10:49.680
-financial services brand that I don't
-
-0:10:47.600,0:10:50.720
-identify just so I don't accidentally
-
-0:10:49.680,0:10:54.399
-end up
-
-0:10:50.720,0:10:55.600
-uh inadvertently misrepresenting my firm
-
-0:10:54.399,0:10:57.760
-in some financial
-
-0:10:55.600,0:11:00.480
-uh perspective if I let some other
-
-0:10:57.760,0:11:01.760
-companies slip at certain let some other
-
-0:11:00.480,0:11:05.839
-companies slip
-
-0:11:01.760,0:11:05.839
-name slip or my own it's certainly no
-
-0:11:06.560,0:11:10.560
-representation of an opinion other than
-
-0:11:08.160,0:11:10.560
-my own
-
-0:11:11.279,0:11:17.109
-the um
-
-0:11:13.980,0:11:17.109
-[Music]
-
-0:11:18.800,0:11:26.240
-so etl has to do with moving data around
-
-0:11:22.720,0:11:29.200
-we we have the idea of of
-
-0:11:26.240,0:11:30.560
-a pipeline where we'll be able to verify
-
-0:11:29.200,0:11:32.480
-certain assumptions not
-
-0:11:30.560,0:11:33.600
-nominally about data quality but it
-
-0:11:32.480,0:11:36.000
-could be about anything
-
-0:11:33.600,0:11:37.279
-before the pipeline starts okay we've
-
-0:11:36.000,0:11:38.560
-got a state where we think it should
-
-0:11:37.279,0:11:41.920
-work if we run it
-
-0:11:38.560,0:11:44.160
-we have uh some extraction where we'll
-
-0:11:41.920,0:11:45.040
-get our sources and we may have the the
-
-0:11:44.160,0:11:47.920
-opportunity to
-
-0:11:45.040,0:11:48.720
-uh make some assertions there and in the
-
-0:11:47.920,0:11:51.360
-transform
-
-0:11:48.720,0:11:52.720
-stage as well as the load things get a
-
-0:11:51.360,0:11:54.079
-little dicer
-
-0:11:52.720,0:11:55.360
-to the point where we come out of the
-
-0:11:54.079,0:11:57.040
-load stage and we should have some
-
-0:11:55.360,0:11:58.480
-really solid assertions again that we
-
-0:11:57.040,0:11:59.680
-can even go back and compare to the
-
-0:11:58.480,0:12:02.639
-extract stage
-
-0:11:59.680,0:12:04.959
-and from this we have the rudimentaries
-
-0:12:02.639,0:12:08.399
-of a data quality practice
-
-0:12:04.959,0:12:09.360
-uh in this case we have a number of org
-
-0:12:08.399,0:12:12.639
-mode files that will all
-
-0:12:09.360,0:12:16.720
-be distributed across a
-
-0:12:12.639,0:12:18.959
-number of players uh computers
-
-0:12:16.720,0:12:20.320
-so we might not want to update every
-
-0:12:18.959,0:12:22.720
-part of every buffer
-
-0:12:20.320,0:12:24.560
-I think it's a complicated problem space
-
-0:12:22.720,0:12:27.839
-and so we tried to take
-
-0:12:24.560,0:12:31.120
-a long-term view of
-
-0:12:27.839,0:12:32.160
-the solution that we needed um so I'll
-
-0:12:31.120,0:12:35.760
-go ahead
-
-0:12:32.160,0:12:37.839
-and open up the fun function
-
-0:12:35.760,0:12:41.680
-that well let's let's actually start
-
-0:12:37.839,0:12:45.040
-with the one that's pretty easy to read
-
-0:12:41.680,0:12:46.800
-and uh I'm gonna go ahead and just crank
-
-0:12:45.040,0:12:51.600
-it up huge
-
-0:12:46.800,0:12:51.600
-in case anybody's watching in 480.
-
-0:12:51.680,0:12:58.560
-um so this this program is not
-
-0:12:56.480,0:13:01.120
-a work of art it's a simple
-
-0:12:58.560,0:13:05.440
-implementation of the idea that a list
-
-0:13:01.120,0:13:08.160
-an a list of functions that return
-
-0:13:05.440,0:13:10.399
-maybe some data maybe some data and an
-
-0:13:08.160,0:13:13.040
-entry back into that a list
-
-0:13:10.399,0:13:15.680
-um can be done quite extensively with
-
-0:13:13.040,0:13:17.760
-very few lines of code
-
-0:13:15.680,0:13:19.600
-neither is it an especially tight or
-
-0:13:17.760,0:13:22.000
-thrifty implementation
-
-0:13:19.600,0:13:22.800
-it's just trying to get the job done
-
-0:13:22.000,0:13:26.160
-with a doc
-
-0:13:22.800,0:13:30.880
-statement for everything at the heart
-
-0:13:26.160,0:13:32.480
-um we see a call to this macro called dm
-
-0:13:30.880,0:13:35.360
-coalesce hash and that's what I'd like
-
-0:13:32.480,0:13:37.680
-to focus in on you can see I think
-
-0:13:35.360,0:13:38.800
-that something on unpleasant is
-
-0:13:37.680,0:13:42.480
-happening here
-
-0:13:38.800,0:13:46.560
-I've got an eval in um
-
-0:13:42.480,0:13:49.519
-what is I will share a a
-
-0:13:46.560,0:13:49.920
-fairly central function that that that
-
-0:13:49.519,0:13:52.160
-that
-
-0:13:49.920,0:13:53.920
-those implementing this etl pattern are
-
-0:13:52.160,0:13:56.639
-welcome to
-
-0:13:53.920,0:13:57.680
-derive from that is this is a default
-
-0:13:56.639,0:13:59.680
-transform
-
-0:13:57.680,0:14:00.959
-that you can get when loading certain
-
-0:13:59.680,0:14:04.560
-kinds of
-
-0:14:00.959,0:14:06.399
-uh orgmo tables that have been uh
-
-0:14:04.560,0:14:09.120
-properly adorned and again we'll get
-
-0:14:06.399,0:14:11.440
-into that all tomorrow
-
-0:14:09.120,0:14:13.760
-so keep an eye on time couple minutes
-
-0:14:11.440,0:14:15.360
-left let's look at the macro itself and
-
-0:14:13.760,0:14:19.040
-I have a slide on this but let's go
-
-0:14:15.360,0:14:19.040
-ahead and risk getting off page
-
-0:14:24.639,0:14:28.959
-oh boy here we go so this is my
-
-0:14:27.199,0:14:31.920
-utilities bucket
-
-0:14:28.959,0:14:34.000
-it has such basic features as give me a
-
-0:14:31.920,0:14:36.000
-hash table with some defaults I'll think
-
-0:14:34.000,0:14:38.320
-about that later
-
-0:14:36.000,0:14:38.320
-and
-
-0:14:39.680,0:14:47.600
-and add to list um a special version
-
-0:14:44.720,0:14:49.360
-that enables us to be a little cavalier
-
-0:14:47.600,0:14:50.480
-in experimenting with a-list versus
-
-0:14:49.360,0:14:52.800
-hashes versus p
-
-0:14:50.480,0:14:54.399
-lists we've made a right mess for
-
-0:14:52.800,0:14:55.279
-ourselves in the proof of concept area
-
-0:14:54.399,0:14:58.560
-and it's ripe
-
-0:14:55.279,0:15:00.240
-for someone to write a white paper about
-
-0:14:58.560,0:15:03.360
-when to prefer these things
-
-0:15:00.240,0:15:03.360
-and fix
-
-0:15:04.800,0:15:10.720
-the merge a list uh
-
-0:15:08.000,0:15:12.959
-same work here let's get let's get down
-
-0:15:10.720,0:15:16.000
-to business
-
-0:15:12.959,0:15:18.560
-this function has quite a this a macro
-
-0:15:16.000,0:15:20.720
-has quite a doc string and I think I
-
-0:15:18.560,0:15:22.240
-mentioned earlier that I got myself into
-
-0:15:20.720,0:15:23.519
-trouble with the keyword properties you
-
-0:15:22.240,0:15:27.839
-can see that we have
-
-0:15:23.519,0:15:32.240
-not only quite a number of them but
-
-0:15:27.839,0:15:32.880
-a lot of a lot of default values many of
-
-0:15:32.240,0:15:36.000
-which
-
-0:15:32.880,0:15:37.680
-may be relying on the
-
-0:15:36.000,0:15:40.000
-values that are passed in here this is
-
-0:15:37.680,0:15:44.000
-complicated and as it turns out
-
-0:15:40.000,0:15:46.079
-um I wasn't brave enough in most cases
-
-0:15:44.000,0:15:47.279
-to try to write a lambda that could
-
-0:15:46.079,0:15:49.680
-understand and
-
-0:15:47.279,0:15:50.399
-replace uh its own local variable I just
-
-0:15:49.680,0:15:53.519
-didn't
-
-0:15:50.399,0:15:54.800
-it didn't save me enough time this was
-
-0:15:53.519,0:15:56.800
-really easy
-
-0:15:54.800,0:15:58.240
-to read and write and understand as I
-
-0:15:56.800,0:16:01.440
-thought through my problem
-
-0:15:58.240,0:16:03.360
-but now as I use it I I've lost a little
-
-0:16:01.440,0:16:04.079
-ground maybe with this and I'm not even
-
-0:16:03.360,0:16:07.279
-sure
-
-0:16:04.079,0:16:08.079
-I like what I got from uh the many
-
-0:16:07.279,0:16:10.560
-keyword
-
-0:16:08.079,0:16:11.920
-properties when it and we can look
-
-0:16:10.560,0:16:17.120
-perhaps if we have
-
-0:16:11.920,0:16:17.120
-the time at what that looks like in uh
-
-0:16:17.340,0:16:22.720
-[Music]
-
-0:16:19.920,0:16:24.480
-oh all right I have to separately
-
-0:16:22.720,0:16:27.519
-dismiss and restart that
-
-0:16:24.480,0:16:29.600
-um so that so that's just about my time
-
-0:16:27.519,0:16:31.920
-uh and being respectful of that I want
-
-0:16:29.600,0:16:35.519
-to invite presenters to just jump in at
-
-0:16:31.920,0:16:38.079
-any of the many large pauses I leave
-
-0:16:35.519,0:16:40.160
-uh as I'll just leave up the doc string
-
-0:16:38.079,0:16:43.279
-for a moment and maybe split the screen
-
-0:16:40.160,0:16:43.279
-and pull open an item
-
-0:16:45.199,0:16:50.720
-you are now unmuted uh thank you very
-
-0:16:48.720,0:16:53.839
-much for your talk corwin
-
-0:16:50.720,0:16:55.279
-um I think you still have like uh
-
-0:16:53.839,0:16:57.680
-maybe three or four more minutes if you
-
-0:16:55.279,0:17:01.040
-want to quickly wrap up
-
-0:16:57.680,0:17:02.160
-okay so three or four more minutes I can
-
-0:17:01.040,0:17:05.439
-easily spend
-
-0:17:02.160,0:17:07.280
-on thank yous
-
-0:17:05.439,0:17:08.270
-I might switch to that if there aren't
-
-0:17:07.280,0:17:10.160
-questions on the path
-
-0:17:08.270,0:17:12.559
-[Music]
-
-0:17:10.160,0:17:14.079
-um would you like me to pull up the pad
-
-0:17:12.559,0:17:17.199
-or are you looking at it
-
-0:17:14.079,0:17:21.839
-I am I bookmarked it I am
-
-0:17:17.199,0:17:21.839
-pulling the tab and I'll bring it in
-
-0:17:30.840,0:17:33.840
-okay
-
-0:17:34.960,0:17:41.520
-all right this is the wrong ether pad
-
-0:17:38.799,0:17:41.520
-thanks for the link
-
-0:17:44.480,0:17:50.640
-all right um so I think I'm looking for
-
-0:17:48.000,0:17:50.640
-macros
-
-0:17:54.880,0:18:01.679
-uh okay key message sure so the
-
-0:17:58.400,0:18:02.960
-the key message is that it's um it's a
-
-0:18:01.679,0:18:06.240
-jungle out there
-
-0:18:02.960,0:18:08.559
-macros along with any other design can
-
-0:18:06.240,0:18:11.919
-leave you in a position
-
-0:18:08.559,0:18:13.600
-where you have a nice api and I can show
-
-0:18:11.919,0:18:14.960
-you other examples you can find them in
-
-0:18:13.600,0:18:18.480
-the dungeon mode source
-
-0:18:14.960,0:18:21.600
-of many many other places where I use
-
-0:18:18.480,0:18:23.840
-this exact same formula quickly
-
-0:18:21.600,0:18:26.960
-sketching out how a character sheet
-
-0:18:23.840,0:18:28.480
-or another big data set needs to
-
-0:18:26.960,0:18:29.600
-needs to figure out what tables are
-
-0:18:28.480,0:18:30.720
-going to be interesting from the
-
-0:18:29.600,0:18:34.400
-collection of files
-
-0:18:30.720,0:18:38.880
-and then load up the tile set and
-
-0:18:34.400,0:18:41.600
-the uh layout file from that
-
-0:18:38.880,0:18:43.280
-and I mean it works this the project is
-
-0:18:41.600,0:18:44.799
-moving forward with this I have the
-
-0:18:43.280,0:18:46.720
-flexibility that I need
-
-0:18:44.799,0:18:48.640
-but here I am evaling my own code to
-
-0:18:46.720,0:18:52.400
-make darn sure even if I get by
-
-0:18:48.640,0:18:55.440
-by compiled uh this macro doesn't uh
-
-0:18:52.400,0:18:58.160
-does get evaluated in the user's real
-
-0:18:55.440,0:18:58.880
-run time clearly a design fail so that
-
-0:18:58.160,0:19:00.880
-would be
-
-0:18:58.880,0:19:02.400
-the key point of my talk is is to
-
-0:19:00.880,0:19:05.600
-present this design
-
-0:19:02.400,0:19:08.320
-fail and uh thank
-
-0:19:05.600,0:19:09.520
-um thank the community but especially
-
-0:19:08.320,0:19:12.160
-wasa masa
-
-0:19:09.520,0:19:13.280
-for for some patience and let me add at
-
-0:19:12.160,0:19:15.200
-this moment that
-
-0:19:13.280,0:19:16.799
-uh he was so frustrated with me they
-
-0:19:15.200,0:19:17.360
-were sort of frustrated with me I think
-
-0:19:16.799,0:19:20.400
-I
-
-0:19:17.360,0:19:24.240
-didn't qualify pronouns um
-
-0:19:20.400,0:19:26.640
-with um
-
-0:19:24.240,0:19:28.160
-with doing this the the first the this
-
-0:19:26.640,0:19:29.919
-was one of our first interactions and
-
-0:19:28.160,0:19:34.240
-the feedback was
-
-0:19:29.919,0:19:36.640
-why is this a macro full stop
-
-0:19:34.240,0:19:38.320
-and uh that's a great message actually
-
-0:19:36.640,0:19:40.160
-and I and I hope that
-
-0:19:38.320,0:19:42.720
-uh maybe this can encourage further
-
-0:19:40.160,0:19:44.160
-talks across the subject about
-
-0:19:42.720,0:19:46.720
-you know hey wait a minute macros are
-
-0:19:44.160,0:19:48.559
-really fantastic as I hope I made
-
-0:19:46.720,0:19:51.039
-clear you can do a tremendous amount
-
-0:19:48.559,0:19:52.320
-about uh with them and we rely on them
-
-0:19:51.039,0:19:55.200
-for
-
-0:19:52.320,0:19:56.480
-almost all the fun goodies um from you
-
-0:19:55.200,0:19:58.880
-know defund
-
-0:19:56.480,0:19:58.880
-secu
-
-0:20:02.159,0:20:05.440
-um I want to get to my my thank yous let
-
-0:20:04.960,0:20:08.559
-me just
-
-0:20:05.440,0:20:08.559
-peek back at the pad
-
-0:20:18.840,0:20:22.080
-oh
-
-0:20:20.000,0:20:23.760
-well that was actually a scratch buffer
-
-0:20:22.080,0:20:24.720
-so I'll have to sort of read it cold off
-
-0:20:23.760,0:20:27.039
-my notes
-
-0:20:24.720,0:20:27.039
-um
-
-0:20:27.919,0:20:31.600
-but also but I'll switch to I'll also
-
-0:20:30.320,0:20:34.320
-I'll say a couple of thank yous if you
-
-0:20:31.600,0:20:36.080
-don't mind
-
-0:20:34.320,0:20:38.400
-in addition to the big thank you that I
-
-0:20:36.080,0:20:39.360
-hope was implied by my shout out to wasa
-
-0:20:38.400,0:20:42.720
-masa
-
-0:20:39.360,0:20:46.640
-um I also want to thank you amen for
-
-0:20:42.720,0:20:51.360
-um your kindness in extending
-
-0:20:46.640,0:20:54.320
-to the project as well as to me the
-
-0:20:51.360,0:20:55.440
-the chance to present here and and and
-
-0:20:54.320,0:20:56.799
-you've you've also
-
-0:20:55.440,0:20:59.360
-just done a lot of great stuff for our
-
-0:20:56.799,0:21:02.080
-project thank you very much for that and
-
-0:20:59.360,0:21:02.080
-sasha
-
-0:21:13.120,0:21:17.200
-I'll get there um thank you so much for
-
-0:21:15.919,0:21:18.320
-the inspiration that you are to our
-
-0:21:17.200,0:21:22.400
-whole community
-
-0:21:18.320,0:21:25.600
-I also want to thank the presenters
-
-0:21:22.400,0:21:27.600
-um for just being so flexible and
-
-0:21:25.600,0:21:29.120
-uh nagging back through the whole thing
-
-0:21:27.600,0:21:30.960
-and especially to leo
-
-0:21:29.120,0:21:32.159
-who has done so much to drive the show
-
-0:21:30.960,0:21:35.520
-today
-
-0:21:32.159,0:21:37.840
-um I
-
-0:21:35.520,0:21:38.960
-this is a fractious tent at times and
-
-0:21:37.840,0:21:41.360
-sometimes
-
-0:21:38.960,0:21:43.039
-it is indeed a little bit of a circus
-
-0:21:41.360,0:21:45.520
-but I
-
-0:21:43.039,0:21:46.880
-am learning so much so fast I'm just
-
-0:21:45.520,0:21:50.320
-inspired by how much
-
-0:21:46.880,0:21:53.120
-Emacs can teach us thank you
-
-0:21:50.320,0:21:54.960
-uh corbin for your kind words and you
-
-0:21:53.120,0:21:56.000
-know about me of course but all about
-
-0:21:54.960,0:21:59.760
-you know all of us
-
-0:21:56.000,0:22:02.400
-and the conference and you know indeed
-
-0:21:59.760,0:22:04.159
-thanks to everyone who's helped uh
-
-0:22:02.400,0:22:05.840
-including the speakers of course
-
-0:22:04.159,0:22:08.960
-without whom you know a maxcom really
-
-0:22:05.840,0:22:10.640
-wouldn't have been a EmacsConf
-
-0:22:08.960,0:22:12.080
-and you know it's been a pleasure
-
-0:22:10.640,0:22:15.520
-knowing you and working with
-
-0:22:12.080,0:22:17.360
-you um I guess um from afar for the most
-
-0:22:15.520,0:22:18.960
-part on dungeon mode like helping
-
-0:22:17.360,0:22:20.720
-helping with like small things here and
-
-0:22:18.960,0:22:22.320
-there but um
-
-0:22:20.720,0:22:23.840
-yeah it's been my pleasure and it's
-
-0:22:22.320,0:22:25.840
-great to have you and
-
-0:22:23.840,0:22:26.880
-um everyone else you know part of the
-
-0:22:25.840,0:22:29.440
-community and
-
-0:22:26.880,0:22:30.559
-for me to be part of the community it's
-
-0:22:29.440,0:22:33.039
-been a lot of fun
-
-0:22:30.559,0:22:33.039
-thank you
-
-0:22:33.679,0:22:38.000
-it's it's it's it's an honor and I don't
-
-0:22:36.080,0:22:38.720
-use that word an awful lot because I
-
-0:22:38.000,0:22:41.760
-sort of
-
-0:22:38.720,0:22:44.320
-sort of smirk at it but um gets us in a
-
-0:22:41.760,0:22:47.360
-lot of trouble honor does but
-
-0:22:44.320,0:22:48.840
-this will be a sure time to use it thank
-
-0:22:47.360,0:22:51.840
-you
-
-0:22:48.840,0:22:51.840
-likewise
-