-uh well good evening again uh I think I +Good evening again. I think I
have a little time here
-uh to talk about macros uh is there +to talk about macros. Is there
-still room in our in our schedule for -
-that +00:00:07.359 --> 00:00:09.440 +still room in our +schedule for that,
-or should I just kind of jump to some of +or should I just jump to some of
-my thoughts on the day +my thoughts on the day?
-you are now unmuted um pretty sure we +([Amin:] Pretty sure we
-have some time +have some time.)
-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.)
-just drive into my pre +00:00:19.039 --> 00:00:20.720 +Well, I'll just drive into my
-prepared thing to hear that yeah +00:00:20.720 --> 00:00:22.384 +prepared thing here then.
-actually you're right on time so +00:00:22.384 --> 00:00:24.720 +(Amin: yeah, actually, you're +right on time, so...)
-oh what an amazing thing I I just uh +00:00:24.720 --> 00:00:27.664 +[Corwin:] oh what an amazing thing.
-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...
-I've got a big thank you planet to get +I've got a big thank you planned
-at the end but let me just say I uh +at the end, but let me just say,
-it's it's been really cool to watch the +it's been really cool to watch the
-way that people work together -
-absolutely it's this whole event today +way that people work together.
-has been +00:00:42.160 --> 00:00:46.800 +([Amin:] Absolutely. It's... +This whole event today has been
-nothing but awesome and uh no less like +nothing but awesome, and
no little part thanks to all of the help
-from all of you guys +00:00:53.120 --> 00:00:56.909 +from all of you guys and everyone.
-and um everyone oh yeah it's awesome +00:00:56.909 --> 00:00:59.120 +Yeah, it's awesome.
-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.
-for now and uh +00:01:03.065 --> 00:01:04.891 +Take it away, Corwin.)
-take it away corwin you know how to make +00:01:04.891 --> 00:01:06.479 +[Corwin:] Who knows how to make
-make that the default and good old cemex +make that the default in good old smex?
-all right so I'm gonna try to continue +All right. So I'm gonna try to continue
-my theme from the previous talk I'm a +00:01:12.799 --> 00:01:14.551 +my theme from the previous talk.
-longtime Emacs user but I'm +00:01:14.551 --> 00:01:16.393 +I'm a longtime Emacs user,
-a pretty new person +00:01:16.393 --> 00:01:20.240 +but I'm a pretty new person
-to trying to really understand what's +00:01:20.240 --> 00:01:22.380 +to trying to really understand
-going on within Emacs and make +00:01:22.380 --> 00:01:24.960 +what's going on within Emacs and make
-my customizations to it uh simple for +my customizations to it--simple for
-what I tend to just think of will work -
-and maybe that's that's that's a nice +what I tend to just think of will work.
-bow to put on that earlier talk +00:01:30.960 --> 00:01:33.566 +And maybe that's a nice bow
-so uh whoops +00:01:33.566 --> 00:01:36.240 +to put on that earlier talk.
-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.
-alt I that's right +00:01:44.981 --> 00:01:48.159 +That's right.
-and let's try that again okay good -
-so demoing is fun uh but I -
-will save most of that for tomorrow +And let's try that again. Okay, good.
-where my +00:01:52.960 --> 00:01:55.240 +So demoing is fun,
-dear friend and co-collaborator in +00:01:55.240 --> 00:01:57.192 +but I will save most of that
-bringing you the dungeon mode project +00:01:57.192 --> 00:01:59.759 +for tomorrow where my
-which is uh sort of +00:01:59.759 --> 00:02:02.750 +dear friend and co-collaborator
-the exciting thing that we we hope +00:02:02.750 --> 00:02:04.799 +in bringing you the dungeon-mode project,
-you'll be interested in +00:02:04.799 --> 00:02:07.261 +which is sort of the exciting thing
-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,
-reveal +00:02:10.800 --> 00:02:15.680 +gets a little more of a reveal.
-uh tonight I'll just uh close saying +Tonight, I'll just close saying
-um a few things about the process of +a few things about the process of
+00:02:22.640 --> 00:02:25.680 making it and continuing my theme of +community.
-community -
-uh first of all a specific and upfront -
+00:02:25.680 --> 00:02:29.760 +First of all, a specific and upfront shout out
-to tv's wasa masa who +to tv's wasamasa who
-um absolutely shaped and guided this -
-this program I I may have taken out a +absolutely shaped and guided this
-slide with your name on it but +00:02:36.239 --> 00:02:38.582 +this program. I may have taken out
-thank you um +00:02:38.582 --> 00:02:39.898 +a slide with your name on it,
-so when we think about Emacs macros and +00:02:39.898 --> 00:02:43.599 +but thank you.
-the +00:02:43.599 --> 00:02:46.479 +So when we think about Emacs macros
-power that they give us -
-I think about them the the +00:02:46.479 --> 00:02:50.239 +and the power that they give us,
-you know I think about them as a really +I think about them as a really
-deep rabbit hole they confuse +deep rabbit hole. They confuse
-people a lot and so to try to center +people a lot. And so, to try to center
-myself on that I remember first that -
-they're +myself on that, I remember first that
-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.
-code -
-uh excuse me I realize I hadn't set my -
-timer +00:03:09.599 --> 00:03:13.519 +Excuse me, I realize I hadn't +set my timer.
-here we are +Here we are.
-um so a simple macro syntax is going to +00:03:18.000 --> 00:03:20.543 +So a simple macro syntax is
-generate +00:03:20.543 --> 00:03:22.239 +going to generate
something that is implicitly confusing
-to somebody that knows the syntax of +00:03:25.920 --> 00:03:27.657 +to somebody that knows the syntax
-emax lisp +00:03:27.657 --> 00:03:28.988 +of Emacs Lisp well.
-well we see something like this and a +00:03:28.988 --> 00:03:30.785 +We see something like this
-veteran I +00:03:30.785 --> 00:03:32.784 +and a veteran eye says
-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?"
-but it can be hard to miss +but it can be hard to miss.
-um a lot of the functions as we'll talk -
-about in a moment that are built into +A lot of the functions (as we'll talk
-Emacs +00:03:43.040 --> 00:03:46.640 +about in a moment) that are built +into Emacs
-really are macros so a lot of Emacs +00:03:46.640 --> 00:03:48.572 +really are macros, so a lot of
-features work this way +00:03:48.572 --> 00:03:50.480 +Emacs features work this way.
-it might be scary but we have to look at +It might be scary, but we have to look at
it closely if we really want to get
-friendly with Emacs +friendly with Emacs.
-um let's just jump right into deaf macro +Let's just jump right into defmacro,
-which is which is our key entry point +which is our key entry point.
-and the +00:04:04.720 --> 00:04:05.833 +The notes from this talk
-notes from this talk include the link um +00:04:05.833 --> 00:04:09.420 +include the link to that,
-to that uh which which definitely +00:04:09.420 --> 00:04:12.000 +which... Definitely
-uh read through a couple of times and +read through a couple of times.
-that may take you through +That may take you through
-into the cldf macro which adds +into the cl-def macro, which adds
-the common list lisp extensions +the Common Lisp extensions.
-and uh definitely +00:04:23.440 --> 00:04:28.080 +Definitely challenging.
-uh challenging uh I've struggled there +00:04:28.080 --> 00:04:30.560 +I've struggled there,
-as we'll take a look at in +as we'll take a look at
-in a moment um +in a moment.
-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
-maclet perhaps success in +00:04:36.266 --> 00:04:38.320 +cl-maclet. Perhaps success in
-in that uh keyword space and figuring +00:04:38.320 --> 00:04:40.804 +in that keyword space
-out what the right balance is there +00:04:40.804 --> 00:04:44.320 +and figuring out what +the right balance is there
-what will give me the confidence to try +will give me the confidence to try
-some more lexical +00:04:46.000 --> 00:04:51.680 +some more lexical macros.
-uh macros +00:04:51.680 --> 00:04:53.402 +Let me also briefly introduce
-let me also briefly introduce the comma +00:04:53.402 --> 00:04:55.134 +the comma (,) and back quote (`).
-and back quote if you +00:04:55.134 --> 00:04:57.389 +If you have allowed your eyes
-have uh allowed your eyes to cross when +00:04:57.389 --> 00:04:59.321 +to cross when you see these,
-you see these and that's not +00:04:59.321 --> 00:05:03.113 +that's not a shameful, +shameful thing.
-uh a shameful shameful thing it's +00:05:03.113 --> 00:05:06.080 +It's confusing, and we should be
-confusing and we should be +00:05:06.080 --> 00:05:07.543 +alerting each other
-alerting each other when we when we -
-stick macros in +00:05:07.543 --> 00:05:09.520 +when we stick macros in,
-often by putting them in different +often by putting them in
-different library spaces for complicated +00:05:11.199 --> 00:05:12.255 +different library spaces
-projects +00:05:12.255 --> 00:05:14.160 +for complicated projects,
-or um otherwise sort of warning people +or otherwise warning people
-that this is not an interactive function +that this is not an interactive function,
-if you get away with using it like one -
-um +even if you get away +with using it like one.
-to watch your back +Watch your back.
-the uh -
-the manual itself talks about macros +00:05:26.000 --> 00:05:32.800 +The manual itself talks about macros
-as being a way of evaluating -
-you know as as being um +as being a way of evaluating,
-an evaluator that will take our amex +00:05:35.840 --> 00:05:39.993 +as being an evaluator that will take
-lisp expression +00:05:39.993 --> 00:05:42.800 +our Emacs Lisp expression
-and the set of forms that kind of that +and the set of forms that
-will feed to it our code -
-[Music] -
-but it also provides us with this +will feed to it our code,
-concept of an +00:05:48.960 --> 00:05:50.792 +but it also provides us with
-environment and and and that's really +00:05:50.792 --> 00:05:53.467 +this concept of an environment.
-where the power +00:05:53.467 --> 00:05:57.027 +That's really where the power +comes in.
-comes in through that we can have +00:05:57.027 --> 00:05:58.240 +Through that, we can have
lexical variables and
-um think about uh bring in some of the +think about--bring in some of the
capabilities that
-um can be harder to reach with +can be harder to reach with
-a a a pure declarative statement that +a pure declarative statement that
-doesn't allow -
-for uh -
-top level +00:06:13.840 --> 00:06:21.440 +doesn't allow for top level
-um asynchronous asynchronicity +asynchronous... Asynchronicity...
-uh I'm gonna basically -
-[Music] +I'm gonna basically
-ignore the bike compilation phase for +00:06:33.520 --> 00:06:35.577 +ignore the byte-compilation phase
-this talk +00:06:35.577 --> 00:06:36.880 +for this talk
-uh in order to have any prayer of +00:06:36.880 --> 00:06:38.463 +in order to have any prayer
-getting through it in the +00:06:38.463 --> 00:06:39.919 +of getting through it in the
-remaining nine or 11 minutes or whatever +remaining 9 or 11 minutes or whatever.
-uh but +00:06:43.600 --> 00:06:50.441 +But suffice to say, +that's a scary space,
-suffice it to say it that's a scary +00:06:50.441 --> 00:06:52.240 +and that's really
-space and that's that's that's really +00:06:52.240 --> 00:06:53.800 +the thing that you want to
-the thing that you want to start +00:06:53.800 --> 00:06:55.277 +start learning about
-learning about as you think about taking +00:06:55.277 --> 00:06:57.199 +as you think about
-taking macros on uh in earnest +taking macros on in earnest.
-the um coming back to the comma syntax +Coming back to the comma syntax,
-then -
-having having given ourselves sort of a +00:07:05.919 --> 00:07:09.759 +then, having given ourselves a
-working definition for the Emacs lisp +working definition for the Emacs Lisp
-runtime environment then we can say that +runtime environment, then we can say that
macros are going to
-inject code back into that stream +inject code back into that stream,
-whereas back quote is going to +whereas backquote (`)
-uh going to give code back +is going to give code back.
-to the to the stream or interject sorry +to the stream--or interject, sorry,
-it's going to interject uh back into the +00:07:31.919 --> 00:07:33.632 +it's going to interject
-stream +00:07:33.632 --> 00:07:35.360 +back into the stream.
-uh sort of uh an exclamatory excuse me -
-I'd like to uh +Sort of an exclamatory "Excuse me,
-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
-value from the environment as it exists +00:07:46.966 --> 00:07:48.639 +from the environment as it exists
-when our macro is evaluated +when our macro is evaluated.
-back quote on the other hand takes the +00:07:54.160 --> 00:07:56.003 +Backquote, on the other hand,
-result +00:07:56.003 --> 00:08:00.560 +takes the result from that
-from that and uh +00:08:00.560 --> 00:08:02.201 +and returns it back to the stream
-and returns it back to the stream for +00:08:02.201 --> 00:08:03.467 +for evaluation at the
-evaluation at the processing level that -
-invoked us +00:08:03.467 --> 00:08:05.680 +processing level that invoked us.
-so in other words perhaps back up to +So in other words, perhaps back up to
-a top level eval expression where our +a top-level eval expression where our
-macro is invoked -
-uh wrong way so um +macro is invoked.
-with what's I'm going to briefly bring +I'm going to briefly bring
you back to the game
-for just a moment -
-um I won't +for just a moment.
-I won't has I won't linger on this slide -
-but but +I won't linger on this slide,
-briefly uh this is a +00:08:32.479 --> 00:08:37.039 +but briefly: this is a
-roll paper role-playing pen +00:08:37.039 --> 00:08:41.615 +role-playing, pen and pencil,
-and pencil uh physical dice +00:08:41.615 --> 00:08:43.829 +physical dice tradition
-tradition that dates back a long time +00:08:43.829 --> 00:08:46.320 +that dates back a long time
-from a technology perspective +from a technology perspective.
-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
-other tools uh that I like are +00:08:50.727 --> 00:08:58.560 +that other tools that I like +are old.
-old +00:08:58.560 --> 00:09:00.185 +It's simple to understand.
-uh it's simple to understand and I can +00:09:00.185 --> 00:09:01.873 +I can communicate a lot with it
-communicate a lot with it with a simple +00:09:01.873 --> 00:09:03.952 +with a simple amount of typing
-amount of you know typing or +00:09:03.952 --> 00:09:09.120 +or scribbling something +on a piece of paper.
-scribbling something on a piece of paper +00:09:09.120 --> 00:09:13.500 +It has a complicated problem space +of its own.
-it has a complicated problem space um +00:09:13.500 --> 00:09:15.519 +Again, I don't want to
-of its own again I don't want to +00:09:15.519 --> 00:09:18.212 +get too much into the game here,
-get too much into the game here but +00:09:18.212 --> 00:09:20.177 +but in this talk,
-uh in this in this talk for the last +00:09:20.177 --> 00:09:22.590 +for the last five minutes,
-five minutes I'll focus +00:09:22.590 --> 00:09:24.751 +I'll focus on the process
-on the process that we took to to +00:09:24.751 --> 00:09:26.640 +that we took to
-automate uh getting data out of the org +00:09:26.640 --> 00:09:29.190 +automate getting data out of
-mode tables which +00:09:29.190 --> 00:09:31.564 +the Org Mode tables +which eventually
-eventually as we'll talk about more +00:09:31.564 --> 00:09:33.855 +(as we'll talk about more +tomorrow)
-tomorrow are used to draw +00:09:33.855 --> 00:09:36.000 +are used to draw
-game maps and other things +game maps and other things.
-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.
-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,
-and say instead that at a high level +and say instead that at a high level,
-it's it's symbolic informatics we're +00:09:49.360 --> 00:09:51.440 +it's symbolic informatics.
-giving a symbolic name +00:09:51.440 --> 00:09:53.519 +We're giving a symbolic name
-to a tile set and then -
-uh +to a tile set,
and then assigning that tile set some
-some characteristics like physical -
-speeds +00:10:04.000 --> 00:10:04.840 +some characteristics
-screen space a variable that we might +00:10:04.840 --> 00:10:06.820 +like physical speeds, screen space
-want to swap in +00:10:06.820 --> 00:10:08.399 +(a variable that we might
-and so forth uh and +00:10:08.399 --> 00:10:12.800 +want to swap in), and so forth.
-you know our project rests heavily on on -
-org mode and +You know, our project rests heavily on
-it's it's fundamental capabilities +00:10:15.200 --> 00:10:21.040 +Org Mode and its +fundamental capabilities.
-so the the code I'm going to show here -
-is -
-uh is +The code I'm going to show here
-is focused around sort of a a sticky +is focused around a sticky
-problem space in in the information +00:10:31.360 --> 00:10:32.380 +problem space in
-technology and I'm I'm a professional +00:10:32.380 --> 00:10:33.861 +information technology.
-uh uh software engineer turned uh +00:10:33.861 --> 00:10:38.240 +I'm a professional software engineer
-technology architect I support +00:10:38.240 --> 00:10:40.362 +turned technology architect.
-the websites for a recognizable +00:10:40.362 --> 00:10:43.495 +I support the websites for
-financial services brand that I don't +00:10:43.495 --> 00:10:46.533 +a recognizable financial services brand
-identify just so I don't accidentally +00:10:46.533 --> 00:10:48.500 +that I don't identify
-end up +00:10:48.500 --> 00:10:50.720 +just so I don't accidentally end up
-uh inadvertently misrepresenting my firm -
-in some financial -
-uh perspective if I let some other -
-companies slip at certain let some other -
-companies slip +inadvertently misrepresenting my firm
-name slip or my own it's certainly no +00:10:54.399 --> 00:10:56.456 +in some financial perspective
-representation of an opinion other than +00:10:56.456 --> 00:10:57.760 +if I let some other
-my own +00:10:57.760 --> 00:11:03.300 +companies' name slip, or my own.
-the um +00:11:03.300 --> 00:11:07.700 +It's certainly no representation
-[Music] +00:11:07.700 --> 00:11:11.279 +of an opinion other than my own.
-so etl has to do with moving data around +So ETL has to do with moving data around.
-we we have the idea of of +We have the idea of
a pipeline where we'll be able to verify
-certain assumptions not +certain assumptions,
-nominally about data quality but it +00:11:30.560 --> 00:11:32.106 +nominally about data quality,
-could be about anything +00:11:32.106 --> 00:11:33.600 +but it could be about anything.
-before the pipeline starts okay we've +00:11:33.600 --> 00:11:35.630 +Before the pipeline starts, okay,
-got a state where we think it should +00:11:35.630 --> 00:11:36.886 +we've got a state where we think
-work if we run it +00:11:36.886 --> 00:11:38.560 +it should work if we run it.
-we have uh some extraction where we'll +We have some extraction where we'll
-get our sources and we may have the the +00:11:41.920 --> 00:11:43.973 +get our sources, and we may have
-opportunity to +00:11:43.973 --> 00:11:45.040 +the opportunity to
-uh make some assertions there and in the +00:11:45.040 --> 00:11:47.327 +make some assertions there.
-transform +00:11:47.327 --> 00:11:50.510 +In the transform stage, +as well as the load,
-stage as well as the load things get a -
-little dicer +00:11:50.510 --> 00:11:52.720 +things get a little dicer,
to the point where we come out of the @@ -837,770 +748,699 @@ to the point where we come out of the
load stage and we should have some
-really solid assertions again that we +00:11:55.360 --> 00:11:56.676 +really solid assertions again
-can even go back and compare to the +00:11:56.676 --> 00:11:57.724 +that we can even go back
-extract stage +00:11:57.724 --> 00:11:59.680 +and compare to the extract stage.
-and from this we have the rudimentaries +From this, we have the rudimentaries
-of a data quality practice +of a data quality practice.
-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
-mode files that will all +00:12:08.120 --> 00:12:09.360 +Org Mode files that will all
be distributed across a
-number of players uh computers +number of players' computers,
so we might not want to update every
-part of every buffer +part of every buffer.
-I think it's a complicated problem space +I think it's a complicated problem space.
-and so we tried to take +So we tried to take
a long-term view of
-the solution that we needed um so I'll -
-go ahead +00:12:27.839 --> 00:12:30.321 +the solution that we needed.
-and open up the fun function +00:12:30.321 --> 00:12:32.160 +So I'll go ahead
-that well let's let's actually start +00:12:32.160 --> 00:12:36.279 +and open up the function +that...
-with the one that's pretty easy to read +00:12:36.279 --> 00:12:39.020 +Let's actually start with the one
-and uh I'm gonna go ahead and just crank +00:12:39.020 --> 00:12:41.680 +that's pretty easy to read.
-it up huge +00:12:41.680 --> 00:12:46.800 +I'm gonna go ahead and +just crank it up huge,
in case anybody's watching in 480.
-um so this this program is not -
-a work of art it's a simple +00:12:51.680 --> 00:12:57.733 +This program is not a work of art
-implementation of the idea that a list +00:12:57.733 --> 00:13:01.120 +It's a simple implementation +of the idea that
-an a list of functions that return +00:13:01.120 --> 00:13:04.000 +an alist of functions
-maybe some data maybe some data and an +00:13:04.000 --> 00:13:06.633 +that return maybe some data,
-entry back into that a list +00:13:06.633 --> 00:13:10.399 +maybe some data and an entry +back into that alist,
-um can be done quite extensively with +can be done quite extensively with
-very few lines of code +very few lines of code.
-neither is it an especially tight or +00:13:15.680 --> 00:13:17.586 +Neither is it an especially tight
-thrifty implementation +00:13:17.586 --> 00:13:19.600 +or thrifty implementation.
-it's just trying to get the job done -
-with a doc -
-statement for everything at the heart +It's just trying to get the job done
-um we see a call to this macro called dm +00:13:22.000 --> 00:13:25.056 +with a doc statement for everything.
-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
-to focus in on you can see I think +00:13:28.595 --> 00:13:32.067 +this macro called dm-coalesce-hash,
-that something on unpleasant is +00:13:32.067 --> 00:13:33.714 +and that's what I'd like +to focus in on.
-happening here +00:13:33.714 --> 00:13:35.360 +You can see... I think
-I've got an eval in um +00:13:35.360 --> 00:13:38.800 +that something unpleasant is +happening here.
-what is I will share a a +00:13:38.800 --> 00:13:43.991 +I've got an eval in what is...
-fairly central function that that that +00:13:43.991 --> 00:13:49.519 +I will share a fairly central function
-that +00:13:49.519 --> 00:13:52.160 +that those implementing +this ETL pattern are
-those implementing this etl pattern are +00:13:52.160 --> 00:13:54.933 +welcome to derive from.
-welcome to +00:13:54.933 --> 00:13:57.680 +That is, this is a +default transform
-derive from that is this is a default -
-transform -
-that you can get when loading certain -
-kinds of +00:13:57.680 --> 00:14:00.959 +that you can get when loading +certain kinds of
-uh orgmo tables that have been uh +org-mode tables that have been
-properly adorned and again we'll get +properly adorned. Again, we'll get
-into that all tomorrow +into that all tomorrow.
-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.
-left let's look at the macro itself and +00:14:11.900 --> 00:14:13.760 +Let's look at the macro itself.
-I have a slide on this but let's go +00:14:13.760 --> 00:14:15.000 +I have a slide on this,
-ahead and risk getting off page +00:14:15.000 --> 00:14:24.639 +but let's go ahead +and risk getting off page.
-oh boy here we go so this is my +Oh boy. Here we go. So this is my
-utilities bucket +utilities bucket.
-it has such basic features as give me a +It has such basic features as "give me a
-hash table with some defaults I'll think +hash table with some defaults, I'll think
-about that later +about that later,"
-and -
-and add to list um a special version +00:14:36.000 --> 00:14:44.720 +and "add to list," a special version
that enables us to be a little cavalier
-in experimenting with a-list versus +in experimenting with alist versus
-hashes versus p +00:14:49.360 --> 00:14:50.967 +hashes versus plists.
-lists we've made a right mess for +00:14:50.967 --> 00:14:53.178 +We've made a right mess for +ourselves
-ourselves in the proof of concept area +00:14:53.178 --> 00:14:54.399 +in the proof of concept area,
-and it's ripe +00:14:54.399 --> 00:14:57.433 +and it's ripe for someone to write a
-for someone to write a white paper about +00:14:57.433 --> 00:14:58.560 +whitepaper about
-when to prefer these things -
-and fix +when to prefer these things.
-the merge a list uh +The merge alist...
-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.
-to business +00:15:12.959 --> 00:15:14.667 +This function has quite a...
-this function has quite a this a macro +00:15:14.667 --> 00:15:17.467 +This macro has quite a doc string.
-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
-mentioned earlier that I got myself into +00:15:20.720 --> 00:15:22.088 +trouble with the keyword properties.
-trouble with the keyword properties you +00:15:22.088 --> 00:15:23.519 +You can see that we have
-can see that we have +00:15:23.519 --> 00:15:27.359 +not only quite a number of them,
-not only quite a number of them but +00:15:27.359 --> 00:15:31.155 +but a lot of default values,
-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
-which +00:15:35.446 --> 00:15:37.264 +the values that are passed in here.
-may be relying on the -
-values that are passed in here this is -
-complicated and as it turns out +00:15:37.264 --> 00:15:40.000 +This is complicated. As it turns out,
-um I wasn't brave enough in most cases +I wasn't brave enough in most cases
-to try to write a lambda that could +00:15:44.000 --> 00:15:45.485 +to try to write a lambda
-understand and +00:15:45.485 --> 00:15:47.279 +that could understand and
-replace uh its own local variable I just +00:15:47.279 --> 00:15:49.300 +replace its own local variable.
-didn't +00:15:49.300 --> 00:15:50.399 +I just didn't...
-it didn't save me enough time this was -
-really easy +It didn't save me enough time. This was
-to read and write and understand as I +00:15:53.519 --> 00:15:56.532 +really easy to read and write and +understand
-thought through my problem +00:15:56.532 --> 00:15:58.240 +as I thought through my problem,
-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,
-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.
-sure +00:16:02.486 --> 00:16:04.079 +I'm not even sure
-I like what I got from uh the many +00:16:04.079 --> 00:16:06.453 +I like what I got from
-keyword +00:16:06.453 --> 00:16:09.341 +the many keyword properties +when it...
-properties when it and we can look -
-perhaps if we have +00:16:09.341 --> 00:16:11.920 +And we can look, perhaps if we have
-the time at what that looks like in uh -
-[Music] +the time, at what that looks like in
-oh all right I have to separately +Oh, all right, I have to separately
-dismiss and restart that +dismiss and restart that.
-um so that so that's just about my time +So that's just about my time.
-uh and being respectful of that I want +Being respectful of that, I want
to invite presenters to just jump in at
-any of the many large pauses I leave +any of the many large pauses I leave.
-uh as I'll just leave up the doc string +I'll just leave up the doc string
for a moment and maybe split the screen
-and pull open an item +and pull open an item.
-you are now unmuted uh thank you very +([Amin]: Thank you very
-much for your talk corwin +much for your talk, Corwin.
-um I think you still have like uh +I think you still have
-maybe three or four more minutes if you +00:16:53.839 --> 00:16:55.027 +maybe three or four more minutes,
-want to quickly wrap up +00:16:55.027 --> 00:16:57.680 +if you want to quickly wrap up.)
-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
-easily spend -
-on thank yous +00:17:00.644 --> 00:17:05.439 +I can easily spend on thank yous.
I might switch to that if there aren't
-questions on the path -
-[Music] +questions on the pad.
-um would you like me to pull up the pad +([Amin:] Would you like me to pull up the pad,
-or are you looking at it +or are you looking at it?)
-I am I bookmarked it I am +00:17:14.079 --> 00:17:16.777 +[Corwin:] I am. I bookmarked it.
-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.
-okay -
-all right this is the wrong ether pad +00:17:30.840 --> 00:17:38.799 +Okay. All right. This is the wrong +Etherpad.
-thanks for the link -
-all right um so I think I'm looking for +Thanks for the link.
-macros +00:17:44.480 --> 00:17:54.880 +All right. So I think I'm +looking for macros.
-uh okay key message sure so the +00:17:54.880 --> 00:17:57.630 +Okay. Key message. Sure.
-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
-jungle out there +a jungle out there.
-macros along with any other design can +00:18:02.960 --> 00:18:05.912 +Macros, along with any other design,
-leave you in a position +00:18:05.912 --> 00:18:08.559 +can leave you in a position
-where you have a nice api and I can show +where you have a nice API. I can show
-you other examples you can find them in +you other examples (you can find them in
-the dungeon mode source +the dungeon-mode source)
-of many many other places where I use +of many, many other places where I use
-this exact same formula quickly +00:18:18.480 --> 00:18:20.820 +this exact same formula,
-sketching out how a character sheet +00:18:20.820 --> 00:18:23.840 +quickly sketching out +how a character sheet
-or another big data set needs to +00:18:23.840 --> 00:18:26.180 +or another big data set
-needs to figure out what tables are +00:18:26.180 --> 00:18:28.480 +needs to figure out +what tables are
-going to be interesting from the +00:18:28.480 --> 00:18:29.320 +going to be interesting
-collection of files +00:18:29.320 --> 00:18:30.720 +from the collection of files,
-and then load up the tile set and +00:18:30.720 --> 00:18:33.967 +and then load up the tile set,
-the uh layout file from that +00:18:33.967 --> 00:18:38.880 +and the layout file from that.
-and I mean it works this the project is +00:18:38.880 --> 00:18:40.542 +And I mean, it works.
-moving forward with this I have the +00:18:40.542 --> 00:18:42.677 +The project is moving forward +with this.
-flexibility that I need +00:18:42.677 --> 00:18:44.799 +I have the flexibility that I need.
-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
-make darn sure even if I get by +00:18:46.559 --> 00:18:48.640 +to make darn sure even if I get
-by compiled uh this macro doesn't uh +byte-compiled, this macro
does get evaluated in the user's real
-run time clearly a design fail so that +00:18:55.440 --> 00:18:57.684 +run time. Clearly a design fail.
-would be +00:18:57.684 --> 00:18:58.890 +So that would be...
-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
-present this design -
-fail and uh thank +00:19:00.880 --> 00:19:05.600 +present this design fail and
-um thank the community but especially -
-wasa masa -
-for for some patience and let me add at +thank the community, but especially
-this moment that +00:19:08.320 --> 00:19:10.942 +wasamasa for some patience.
-uh he was so frustrated with me they +00:19:10.942 --> 00:19:13.280 +Let me add at this moment that
-were sort of frustrated with me I think +00:19:13.280 --> 00:19:13.333 +he was so frustrated with me.
-I +00:19:13.333 --> 00:19:17.115 +They were sort of frustrated with me
-didn't qualify pronouns um +00:19:17.115 --> 00:19:20.400 +(I think I didn't qualify pronouns)
-with um +00:19:24.240 --> 00:19:26.287 +with doing this. The first...
-with doing this the the first the this +00:19:26.287 --> 00:19:27.985 +This was one of our first +interactions,
-was one of our first interactions and -
-the feedback was +00:19:27.985 --> 00:19:29.919 +and the feedback was,
-why is this a macro full stop +"Why is this a macro. Full stop."
-and uh that's a great message actually +And that's a great message, actually.
-and I and I hope that +00:19:36.640 --> 00:19:39.520 +I hope that maybe this +can encourage
-uh maybe this can encourage further +00:19:39.520 --> 00:19:42.720 +further talks across the subject about,
-talks across the subject about +00:19:42.720 --> 00:19:43.808 +you know, "Hey, wait a minute,
-you know hey wait a minute macros are +00:19:43.808 --> 00:19:45.549 +macros are really fantastic,"
-really fantastic as I hope I made +00:19:45.549 --> 00:19:47.018 +as I hope I made clear.
-clear you can do a tremendous amount +00:19:47.018 --> 00:19:48.559 +You can do a tremendous amount
-about uh with them and we rely on them -
-for +with them, and we rely on them
-almost all the fun goodies um from you +00:19:51.039 --> 00:19:55.200 +for almost all the fun goodies,
-know defund +00:19:55.200 --> 00:20:02.159 +from defun, setq...
-secu +00:20:02.159 --> 00:20:04.639 +I want to get to my thank yous.
-um I want to get to my my thank yous let -
-me just -
-peek back at the pad -
-oh +00:20:04.639 --> 00:20:18.840 +Let me just peek back at the pad.
-well that was actually a scratch buffer -
-so I'll have to sort of read it cold off +Well, that was actually a scratch buffer,
-my notes -
-um +00:20:22.080 --> 00:20:24.720 +so I'll have to read it cold off +my notes.
-but also but I'll switch to I'll also +But I'll switch to... I'll also...
-I'll say a couple of thank yous if you +I'll say a couple of thank-yous if you
-don't mind +don't mind, Amin.
-in addition to the big thank you that I -
-hope was implied by my shout out to wasa +In addition to the big thank you that I
-masa +00:20:36.080 --> 00:20:39.360 +hope was implied by my shout out +to wasamasa,
-um I also want to thank you amen for +I also want to thank you, Amin, for
-um your kindness in extending +your kindness in extending
-to the project as well as to me the +to the project as well as to me, the
-the chance to present here and and and -
-you've you've also +the chance to present here.
-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
-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.
-sasha +00:20:59.360 --> 00:21:03.400 +Sacha Chua (I'll get there),
-I'll get there um thank you so much for +00:21:03.400 --> 00:21:15.919 +thank you so much for
the inspiration that you are to our
-whole community +whole community.
I also want to thank the presenters
-um for just being so flexible and +for just being so flexible and
-uh nagging back through the whole thing +nagging back through the whole thing,
-and especially to leo -
-who has done so much to drive the show -
-today +and especially to Leo
-um I +00:21:29.120 --> 00:21:32.159 +who has done so much to +drive the show today.
-this is a fractious tent at times and +00:21:32.159 --> 00:21:37.242 +This is a fractious tent at times,
-sometimes +00:21:37.242 --> 00:21:39.800 +and sometimes it is indeed
-it is indeed a little bit of a circus +00:21:39.800 --> 00:21:41.360 +a little bit of a circus,
-but I +00:21:41.360 --> 00:21:44.746 +but I am learning so much so fast.
-am learning so much so fast I'm just +00:21:44.746 --> 00:21:46.880 +I'm just inspired by how much
-inspired by how much +00:21:46.880 --> 00:21:49.333 +Emacs can teach us.
-Emacs can teach us thank you +00:21:49.333 --> 00:21:52.901 +([Amin:] thank you, Corwin, +for your kind words
-uh corbin for your kind words and you -
-know about me of course but all about +00:21:52.901 --> 00:21:54.960 +about me, of course,
-you know all of us +about all of us
-and the conference and you know indeed +00:21:56.000 --> 00:21:58.000 +and the conference...
-thanks to everyone who's helped uh +00:21:58.000 --> 00:22:02.400 +Indeed, thanks to everyone who's helped,
-including the speakers of course +including the speakers, of course,
-without whom you know a maxcom really +without whom EmacsConf really
-wouldn't have been a EmacsConf +wouldn't have been a EmacsConf.
-and you know it's been a pleasure -
-knowing you and working with +It's been a pleasure
-you um I guess um from afar for the most +00:22:10.640 --> 00:22:12.366 +knowing you and +working with you,
-part on dungeon mode like helping +00:22:12.366 --> 00:22:15.743 +from afar for the most part
-helping with like small things here and +00:22:15.743 --> 00:22:17.360 +on dungeon-mode,
-there but um +00:22:17.360 --> 00:22:19.937 +helping with small things +here and there
-yeah it's been my pleasure and it's +00:22:19.937 --> 00:22:21.796 +but yeah, it's been my pleasure,
-great to have you and +00:22:21.796 --> 00:22:23.840 +and it's great to have you and
-um everyone else you know part of the +00:22:23.840 --> 00:22:26.582 +everyone else part of the +community,
-community and +00:22:26.582 --> 00:22:29.180 +and for me to be part of the +community.
-for me to be part of the community it's -
-been a lot of fun +00:22:29.180 --> 00:22:30.559 +It's been a lot of fun.
-thank you -
-it's it's it's it's an honor and I don't +Thank you.)
-use that word an awful lot because I +00:22:33.679 --> 00:22:35.206 +[Corwin]: It's an honor.
-sort of +00:22:35.206 --> 00:22:37.428 +I don't use that word an awful lot
-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.
-lot of trouble honor does but +00:22:39.867 --> 00:22:43.941 +It gets us in a lot of trouble, +honor does,
-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.
-you +00:22:46.904 --> 00:22:48.840 +([Amin:] Thank you.)
-likewise +[Corwin:] Likewise. -- cgit v1.2.3