From e7d7db03ac4e24d2ee7d7a8741f9e3da7edffab1 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Wed, 9 Dec 2020 11:25:30 -0500 Subject: Add some more subtitles --- ...f-2020--20-omg-macros--corwin-brust-autogen.sbv | 1605 ++++++++++++++++++++ 1 file changed, 1605 insertions(+) create mode 100644 2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.sbv (limited to '2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.sbv') 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 new file mode 100644 index 00000000..03aea6e2 --- /dev/null +++ b/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.sbv @@ -0,0 +1,1605 @@ +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 maxcon + +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 + -- cgit v1.2.3