diff options
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.sbv | 1605 |
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 - |