WEBVTT NOTE Introduction 00:00.000 --> 00:07.879 All right, take it away. Okay, am I, are we live? 00:07.880 --> 00:12.759 Yes, we're live. Oh man, holy moly. 00:12.760 --> 00:19.359 Oh, that's surreal. Hi everyone. Oh man. 00:19.360 --> 00:26.319 Ah, so excited to be here. So good to see all of you. Okay. 00:26.320 --> 00:29.479 So, should we just go ahead and get right into it? 00:29.480 --> 00:38.479 Yeah, let me, let me see here. So I have. 00:38.480 --> 00:41.559 Yeah, I see, I see some, I see some questions coming in. 00:41.560 --> 00:00:53.416 Perfect. I am going to share my screen real quick. 00:00:53.417 --> 00:00:59.079 Currently, we have a sort of a ?? thing going. 00:59.080 --> 01:04.519 And so I just wanted to, while we're waiting 01:04.520 --> 01:05.559 for some more stuff to come in, 01:05.560 --> 01:11.919 I just wanted to sort of idle on this buffer here. 01:11.920 --> 01:13.559 If you increase your font size slightly, 01:13.560 --> 01:15.959 that might be even nicer. 01:15.960 --> 01:38.159 Yes, absolutely, gladly. Whoa, okay. There we go. NOTE Q: Did you show examples of files in bookclub style? 01:38.160 --> 00:01:40.899 All right, the first question 00:01:40.900 --> 01:45.839 was looking for examples of files in book club style. 01:45.840 --> 01:48.799 The person says, that seems to be related 01:48.800 --> 01:49.679 to what I've been doing, 01:49.680 --> 01:54.239 but coming from different influences. Yes, yes. 01:54.240 --> 02:03.559 So I included a... 02:03.560 --> 02:07.879 Let me see, I'm just looking at the IRC here 02:07.880 --> 02:16.719 and smiling at all the people. So, yes, I provided a link. 02:16.720 --> 02:19.039 So I think that an excellent... 02:19.040 --> 02:24.159 So I have gone ahead and provided 02:24.160 --> 00:02:28.125 the link to the repo 00:02:28.126 --> 02:30.479 and I'm going to go ahead and post that again. 02:30.480 --> 02:34.039 So this should serve as a full example 02:34.040 --> 02:39.519 of what a just sort of standard book club file looks like. 02:39.520 --> 02:41.559 And if anyone has specific questions 02:41.560 --> 02:42.839 about anything in particular, 02:42.840 --> 02:47.799 they would love to see my walkthrough 02:47.800 --> 02:52.239 and narrate specifically, you know, any place in this file 02:52.240 --> 02:55.319 that they would like to see me go over live, 02:55.320 --> 02:58.719 I would be super happy to do that. 02:58.720 --> 03:03.439 So I have the whole more or less complete 03:03.440 --> 03:10.799 book club file for Squint pulled up here. 03:10.800 --> 03:14.599 Yeah, I have my vision laid out, 03:14.600 --> 03:18.639 which has my initial sort of goal. 03:18.640 --> 03:22.879 The background and the vision sort of combined 03:22.880 --> 03:28.559 to lay out what my general sort of goal is. 03:28.560 --> 03:31.319 I just realized... Let me kill my stream there. 03:31.320 --> 03:39.079 There we go. All right. There's another question. NOTE Q: The product of a Tapa like squint.org would be pure GOLD for an agent like Claude Code - have you experimented with providing an agent with the final output and letting it chew through todos? 03:39.080 --> 03:41.439 The product of a tapa like squint.org 03:41.440 --> 03:44.359 would be pure gold for an agent like Claude Code. 03:44.360 --> 03:47.519 Have you experimented with providing an agent with a final output 03:47.520 --> 03:50.919 and letting it chew through to-dos? 03:50.920 --> 03:53.319 That would be a really excellent question. 03:53.320 --> 03:54.919 I actually just kind of recently 03:54.920 --> 03:58.159 got into Claude in particular. 03:58.160 --> 04:01.679 I played quite a bit with GPT and 04:01.680 --> 04:07.239 and a lot of 8 billion parameter local models. 04:07.240 --> 04:09.879 And I was never super impressed. 04:09.880 --> 04:12.999 It always felt like I was just sort of wrangling 04:13.000 --> 04:14.639 to get it on the same page, 04:14.640 --> 04:16.799 whether as a result of sycophantism 04:16.800 --> 04:19.399 or really just not having enough parameters 04:19.400 --> 04:21.919 in order to understand the context of what's going on. 04:21.920 --> 04:25.759 Claude has completely changed my perception 04:25.760 --> 04:27.359 of what an LLM can do or not. 04:27.360 --> 04:31.119 It makes autonomy not seem like a total fever train. 04:31.120 --> 04:36.439 I have definitely been curious about 04:36.440 --> 04:39.639 how an LLM would react to book club files. 04:39.640 --> 04:41.719 I think that, yeah, especially like, 04:41.720 --> 04:43.799 I've been daydreaming a little bit about, 04:43.800 --> 04:49.919 you know, having it generate scratch artifacts 04:49.920 --> 04:54.799 or suggesting, you know, changes to the format. 04:54.800 --> 04:58.959 It's like, yeah, the fact that 04:58.960 --> 05:01.959 this is all like, you know, like super, 05:01.960 --> 05:05.239 The goal and the hope for all of this 05:05.240 --> 05:08.359 is that we're being verbose about our thinking anyway. 05:08.360 --> 05:12.199 This is sort of how, by default, 05:12.200 --> 05:14.159 deep reasoning kind of works. 05:14.160 --> 05:15.799 I actually think that I totally agree. 05:15.800 --> 05:17.559 It would be a great fit. 05:17.560 --> 05:19.599 I have yet to personally do it, 05:19.600 --> 05:21.279 because I've always been just 05:21.280 --> 05:23.319 a little bit wary about, like, you know... 05:23.320 --> 05:24.999 Well, if I'm writing a program, 05:25.000 --> 05:26.879 I want to write it, you know? 05:26.880 --> 05:29.239 People often talk about, like, you know, 05:29.240 --> 05:31.919 oh, I just want to hand off 05:31.920 --> 05:34.159 the boring parts to Claude. 05:34.160 --> 05:36.519 But the thing is, if I'm writing in Elisp, 05:36.520 --> 05:39.479 I find the whole thing to be kind of fun. 05:39.480 --> 05:46.079 I'd be super interested in, you know, 05:46.080 --> 05:48.159 just sort of as a point of exercise, 05:48.160 --> 05:49.479 seeing what it's capable of. 05:49.480 --> 05:51.479 Because I think, I really do think 05:51.480 --> 05:54.119 that this would be kind of an ideal environment. 05:54.120 --> 05:55.879 It is kind of close to, you know, 05:55.880 --> 05:59.039 native-ish, how LLMs think. 05:59.040 --> 06:01.399 There's also, like, you know, of course, 06:01.400 --> 06:03.479 the, um, the privacy angle. 06:03.480 --> 06:05.119 I don't necessarily want to provide 06:05.120 --> 06:09.319 a whole bunch of code verbatim that I intend to GPL3. 06:09.320 --> 06:15.719 But I believe that Claude kind of has a better policy 06:15.720 --> 06:20.639 in terms of what does and does not become training data. 06:20.640 --> 06:22.439 I'll have to look into Claude in particular 06:22.440 --> 06:24.599 because I feel like that would be my target for it. 06:24.600 --> 06:29.679 But yeah, I think that's definitely onto something. 06:29.680 --> 06:31.439 I've definitely thought about this. 06:31.440 --> 00:06:37.919 I've definitely been really curious about this. NOTE Q: Do you think every Tapa should have it's own Bookclub file as well? Or would you rather keep just one bookclub file in the top of the project? 00:06:37.920 --> 06:40.279 Next question, do you think every Tapa 06:40.280 --> 06:42.479 should have its own book club file as well? 06:42.480 --> 06:45.559 Or would you rather keep just one book club file 06:45.560 --> 06:46.559 in the top of the project? 06:46.560 --> 06:51.559 So I think that I definitely would advise 06:51.560 --> 06:54.879 that each Tapa have its own book club file. 06:54.880 --> 06:59.479 The reason being is because I find that for me personally, 06:59.480 --> 07:00.799 the way that my brain kind of works 07:00.800 --> 07:06.239 is that out of sight, out of mind is very literal for me. 07:06.240 --> 00:07:16.207 I find that... I find that... What am I thinking of? 00:07:16.208 --> 00:07:18.750 Sorry, I just saw that I got an email 00:07:18.751 --> 00:07:22.839 and I'm like, yeah, okay, cool. 00:07:22.840 --> 07:27.319 Case in point, right? We are at case in point, you know, 07:27.320 --> 07:30.519 out of sight, out of mind. Yes, no, absolutely. 07:30.520 --> 07:35.799 Yeah, no, exactly. I, um, I'm definitely quite ADHD 07:35.800 --> 07:36.879 and it works for my advantage 07:36.880 --> 07:38.959 because it provides all sorts of versatility. 07:38.960 --> 07:42.439 This is another great advantage of book club. 07:42.440 --> 07:46.399 If you have an ADHD mind like I do where, you know, 07:46.400 --> 07:48.319 You love jumping around and working on 07:48.320 --> 07:51.519 all sorts of different pieces simultaneously. 07:51.520 --> 07:52.999 You don't like sitting down 07:53.000 --> 07:54.519 and doing the same thing all day 07:54.520 --> 07:57.239 unless it really latches onto you. 07:57.240 --> 07:59.759 You know, you can pivot and you don't do anything. 07:59.760 --> 08:02.559 It really rewards the fact that you can pivot. 08:02.560 --> 08:06.039 So I find that to be really excellent. 08:06.040 --> 08:08.359 But to go back to the original question, 08:08.360 --> 08:11.519 I would definitely recommend, 08:11.520 --> 08:13.759 at least in my circumstance, 08:13.760 --> 08:15.679 I find it to be incredibly useful 08:15.680 --> 00:08:18.699 to have each tapa be its own book club file 00:08:18.700 --> 08:21.839 rather than to have a unified file 08:21.840 --> 08:26.599 that holds all of your tapas. You can definitely do this, 08:26.600 --> 08:28.959 especially if you're using org 08:28.960 --> 08:31.279 to organize it hierarchically. 08:31.280 --> 08:33.759 It's just sort of a matter of preference 08:33.760 --> 08:34.719 and style at that point. 08:34.720 --> 08:39.319 So long as you're making a clear distinction between your tapas, 08:39.320 --> 08:40.359 that's the main thing 08:40.360 --> 08:42.399 that I would recommend no matter what, 08:42.400 --> 08:44.919 because the whole hope that I have is that 08:44.920 --> 08:47.879 you have a sort of separation of focus 08:47.880 --> 08:49.599 between the different you know, 08:49.600 --> 08:54.719 the different focuses of your different tapas, 08:54.720 --> 08:57.959 they really should ideally feel like different programs 08:57.960 --> 09:00.119 so that you're not, you know, 09:00.120 --> 09:02.079 getting over yourself, getting ahead of yourself. 09:02.080 --> 09:05.079 I think that, you know, on that basis, 09:05.080 --> 09:07.479 I would probably default to recommending 09:07.480 --> 09:12.919 that tapas have their own separate book club files, 09:12.920 --> 09:15.679 because ideally they should kind of be different 09:15.680 --> 09:19.239 sort of independent but related thoughts. 09:19.240 --> 09:21.719 But at the same time, I mean, like, you know, 09:21.720 --> 09:23.559 this is coming from someone 09:23.560 --> 09:26.679 who like has a billion small, like, you know, 09:26.680 --> 09:28.679 I had one giant org file for a long time 09:28.680 --> 09:31.759 and then realized that really didn't work for me. 09:31.760 --> 09:34.239 So now I have a billion tiny ones. 09:34.240 --> 09:38.439 So depending upon how you feel about, you know, 09:38.440 --> 09:40.759 should I have one really big org file 09:40.760 --> 09:42.479 or a bunch of really little org files? 09:42.480 --> 09:44.639 I feel like that more or less gives your answer. 09:44.640 --> 09:48.359 I think it's whatever works best for you. 09:48.360 --> 09:51.439 I know that far and away what works best for me 09:51.440 --> 09:55.239 is having separate files. No matter what, you should have 09:55.240 --> 09:57.999 separation of concept though. 09:58.000 --> 10:00.639 But however you do that is, you know, 10:00.640 --> 00:10:08.039 is best your judgment call. NOTE Q: How do you build habits when it comes to documentation? 00:10:08.040 --> 10:11.399 Next question, how do you build habits 10:11.400 --> 10:13.119 when it comes to documentation? 10:13.120 --> 10:16.039 I tend to produce lots of documentation in one go, 10:16.040 --> 10:19.319 then effectively forget to do it for long periods of time 10:19.320 --> 10:20.599 and end up playing catch up, 10:20.600 --> 10:22.479 which results in a loss of precision, 10:22.480 --> 10:24.319 as you alluded to in your talk. 10:24.320 --> 10:26.519 In a work setting, when something goes on fire 10:26.520 --> 10:28.919 or priorities change, it can be hard to keep discipline. 10:28.920 --> 10:32.559 Would love your thoughts. Thanks. Yes, absolutely. 10:32.560 --> 10:35.719 So what I tend to do is I don't... 10:35.720 --> 10:39.239 So really, so far, what I've been doing 10:39.240 --> 10:42.159 is that I haven't been making a conscious priority 10:42.160 --> 10:45.359 of writing documentation at all. 10:45.360 --> 10:48.039 And if that sounds contradictory 10:48.040 --> 00:10:50.259 to the talk, that is correct. 00:10:50.260 --> 10:54.999 What I mean by this is that I go about 10:55.000 --> 11:00.039 is that when I'm writing code, 11:00.040 --> 11:03.959 when I'm writing, you know, drafts of my functions, 11:03.960 --> 11:05.439 the way that I tend to approach this, 11:05.440 --> 11:07.279 the way that I really emphasize the approach for it, 11:07.280 --> 11:12.999 is that I want to focus first and foremost 11:13.000 --> 11:15.559 on sort of like just writing down 11:15.560 --> 11:17.519 what my internal monologue is 11:17.520 --> 11:23.519 for what I'm doing for that pass working on the file. 11:23.520 --> 11:25.919 So my document takes ultimate... 11:25.920 --> 11:29.519 Distance of doc is ultimately a property 11:29.520 --> 11:32.359 from the fact that I am writing 11:32.360 --> 11:35.119 what I'm doing as I'm doing it. 11:35.120 --> 11:37.759 And it's more or less just I'm just 11:37.760 --> 11:39.759 mashing out the stream of consciousness 11:39.760 --> 11:43.359 of what's going on inside my head as it's happening. 11:43.360 --> 11:47.679 So if we go down and we take a look at, 11:47.680 --> 11:53.319 yeah, so let's go ahead and take a look back at the macro. 11:53.320 --> 11:56.359 Yeah, really, this is kind of cheating, 11:56.360 --> 00:12:07.541 because mostly I would consider this to be self-documenting, 00:12:07.542 --> 00:12:09.500 but we all kind of know that 00:12:09.501 --> 12:11.759 that in and of itself is a slippery slope. 12:11.760 --> 00:12:16.167 That's not great. Because it's like, I could believe 00:12:16.168 --> 12:17.719 that this would be self-documenting 12:17.720 --> 12:19.959 if this was a three-liner. 12:19.960 --> 12:24.719 It is not. which, you know, also goes to show me 12:24.720 --> 12:27.759 that this needs to be splitting into its own Tapas 12:27.760 --> 12:32.239 I intend to, you know, write a Tapa 12:32.240 --> 12:37.079 that's a sort of macro builder 12:37.080 --> 12:40.559 that automatically, you know, does the gensyms for you. 12:40.560 --> 12:41.959 Something along the lines of 12:41.960 --> 12:46.679 what's the Common Lisp macro for that called? 12:46.680 --> 12:51.879 It's like, there's some Common Lisp faculty 12:51.880 --> 12:53.919 that does automatic gensym binding. 12:53.920 --> 00:12:57.099 I can't quite remember what it's called. 00:12:57.100 --> 13:01.559 A prior version of this talk had my live coding that, 13:01.560 --> 13:04.319 but that ended up sort of distracting 13:04.320 --> 13:07.399 from what I kind of wanted to nail out and focus on. 13:07.400 --> 13:12.279 But really kind of what I do is that, 13:12.280 --> 13:19.159 let me see here if I can find some sort of, 13:19.160 --> 13:26.159 Yeah, so I have in my research section 13:26.160 --> 13:36.039 sort of layout like what the quirks of all this sort of are. 13:36.040 --> 13:39.839 I think my development focuses contain 13:39.840 --> 13:41.479 a little bit of what could be ultimately 13:41.480 --> 13:42.959 considered to be documentation. 13:42.960 --> 13:46.999 Yeah, as I'm looking through all of this, 13:47.000 --> 13:48.279 I'm kind of realizing that like, 13:48.280 --> 13:49.319 you know, yeah, there's stuff 13:49.320 --> 13:51.319 that I'm into documentation here, 13:51.320 --> 13:53.119 but it's all a little ad hoc. 13:53.120 --> 13:55.719 You know, I would, in part, 13:55.720 --> 13:57.319 the design of this particular tapa 13:57.320 --> 13:59.639 is arguably not currently, 13:59.640 --> 14:02.319 but is going to be simple enough such that 14:02.320 --> 14:04.679 a doc string is sufficient for documentation. 14:04.680 --> 00:14:10.599 That is not the case currently. NOTE Q: How do you write examples and tests? I think that you mentioned that during the talk, but I couldn't find them on a very quick look at your org file in the squint repo... 00:14:10.600 --> 14:12.279 All right, next question is, 14:12.280 --> 14:18.559 how do you write examples and tests? 14:18.560 --> 00:14:22.750 I think that you mentioned that during the talk, 00:14:22.751 --> 00:14:25.083 but I couldn't find them on a very quick look 00:14:25.084 --> 00:14:27.833 at your org file in the Squint repo. 00:14:27.834 --> 00:14:35.208 My use of the word test was a little bit creative. 00:14:35.209 --> 14:42.759 It's my validation of the code that I've written. 14:42.760 --> 14:45.479 I more or less tend to do a, 14:45.480 --> 14:50.079 I tend to try and write really small functions 14:50.080 --> 14:52.039 and have really aggressive validation 14:52.040 --> 14:55.799 by just making sure that, like, you know, 14:55.800 --> 14:59.919 when I chain functions in the REPL, 14:59.920 --> 15:03.199 each step of them produces results 15:03.200 --> 15:07.799 that are really quite immediately and self-verifiably seen. 15:07.800 --> 15:11.719 Now, this isn't a great excuse to not use a test suite, 15:11.720 --> 15:12.879 but it's gotten me pretty far. 15:12.880 --> 15:19.199 What I mean by tests is that in the research sections, 15:19.200 --> 15:26.279 what I've done is, so I've created a sort of tested 15:26.280 --> 15:29.399 in the sense that I have created 15:29.400 --> 15:33.759 a really highly representative case 15:33.760 --> 15:38.279 of the way that the program ultimately ought to behave. 15:38.280 --> 15:43.399 In doing so, I created a sort of embedded domain language 15:43.400 --> 15:46.359 that I have termed Animal Houses. 15:46.360 --> 15:50.999 And Animal Houses is a sort of markup language 15:51.000 --> 15:54.879 that has rather simple rules. 15:54.880 --> 16:00.879 This here is the entirety of the spec for Animal Houses. 16:00.880 --> 16:06.559 Grammar or anything, but like, it is more or less. 16:06.560 --> 16:08.839 Breadth of everything that needs to be known 16:08.840 --> 16:10.519 about how Animal Houses works. 16:10.520 --> 16:14.279 And I've created Animal Houses because it is an ideal 16:14.280 --> 00:16:16.875 and incredibly simple circumstance 00:16:20.040 --> 16:22.679 for how to go about as-needed tests 16:22.680 --> 16:28.119 for how Squint ultimately ought to work in practice. 16:28.120 --> 16:30.239 So when I'm doing research, 16:30.240 --> 16:34.759 what I do is I take the text of animal houses, 16:34.760 --> 16:39.879 and I will go ahead and insert it into a buffer. 16:39.880 --> 16:46.599 And I'll just create an analog buffer. 16:46.600 --> 16:48.639 I just called it awoo. 16:48.640 --> 16:55.959 And then what I'll do is in my research sections, I will write... 16:55.960 --> 00:17:02.919 Like I'll write like step-by-step 00:17:02.920 --> 17:07.919 instructions on how to go about with a REPL-driven detection 17:07.920 --> 00:17:13.843 using Animal Houses. So it does 00:17:13.844 --> 00:17:16.799 squint pass label to :with-restriction: correctly. 17:16.800 --> 17:20.479 The tests conducted here indicate that it does not. 17:20.480 --> 17:25.839 And then I link to a development focus 17:25.840 --> 17:29.959 that effectively acts as my bug report, 17:29.960 --> 00:17:37.599 or, sorry, my bug listing for this particular problem 17:37.600 --> 17:38.479 that I've identified. 17:38.480 --> 17:41.439 I lay out some criteria of how to 17:41.440 --> 17:44.959 go about using the REPL to... 17:44.960 --> 17:47.079 you know I identify what I believe 17:47.080 --> 17:49.479 is sort of like the quarantined area 17:49.480 --> 17:50.639 that I found for the bug, 17:50.640 --> 17:56.799 and then test is that I will go about 17:56.800 --> 17:59.279 engaging with narration 17:59.280 --> 18:03.479 the step-by-step of how I produce 18:03.480 --> 18:07.039 the circumstances around the bug 18:07.040 --> 18:10.559 until I ultimately narrow all the way in 18:10.560 --> 18:14.199 and arrive at a conclusion. 18:14.200 --> 18:16.879 Something's going on with the screen share. 18:16.880 --> 18:18.799 I can see your screen but 18:18.800 --> 00:18:25.119 the server cannot see your screen updating. 00:18:25.120 --> 00:18:30.749 Sorry. Oh, no. Maybe you stop sharing... 00:18:30.750 --> 18:33.399 Yeah, and then we just redo it again. Thank you. 18:33.400 --> 18:36.039 Yes, absolutely. 18:36.040 --> 18:39.039 Thanks to someone who noticed the buffer time, 18:39.040 --> 18:42.919 the time in the mode line was not updating. 18:42.920 --> 18:50.079 Okay, let's try that again. Now it's updating. Gotcha. 18:50.080 --> 18:54.999 I hope that wasn't going on for too, too long. 18:55.000 --> 18:57.279 Hopefully what I was saying 18:57.280 --> 19:02.559 wasn't completely indecipherable. Let me see here. 19:02.560 --> 19:06.959 Yeah, this is the sample text for animal houses. 19:06.960 --> 19:10.839 This is the spec, not a formal grammar, 19:10.840 --> 19:12.719 but it is more or less the whole of the spec 19:12.720 --> 19:16.399 that you need to write a parser for animal houses. 19:16.400 --> 19:19.359 Most of the tests around Squint involve 19:19.360 --> 19:23.999 writing ad-hoc parsers for animal houses. 19:24.000 --> 19:27.199 Just when I have it in its own buffer, you know, 19:27.200 --> 19:29.719 I find, more or less, it's an excellent way 19:29.720 --> 19:31.199 of going about testing 19:31.200 --> 00:19:35.479 in an ad-hoc sort of REPL-driven manner 00:19:35.480 --> 19:39.879 that I just sort of write regular... 19:39.880 --> 19:43.799 that pull out the pieces of the sections of buffer 19:43.800 --> 19:49.439 that represent the different fields and data types 19:49.440 --> 19:51.599 in association with the animals 19:51.600 --> 19:54.879 and the houses to which they belong. 19:54.880 --> 20:00.319 And then when I am engaging in research, 20:00.320 --> 20:03.559 what my research section is, 20:03.560 --> 20:05.079 is I'm ultimately just 20:05.080 --> 20:06.399 laying out, like, you know, 20:06.400 --> 20:10.239 I'm thinking to myself, is this working right? 20:10.240 --> 20:11.319 I feel like 20:11.320 --> 20:14.639 there's something here, something in this area. 20:14.640 --> 20:16.919 And I'll ask myself, well, 20:16.920 --> 20:20.199 what is it, what am I looking for? 20:20.200 --> 20:22.519 And then nail down, how am I going 20:22.520 --> 20:24.439 to go about looking for it? 20:24.440 --> 20:30.559 The process of working with the REPL 20:30.560 --> 20:34.319 to pin down what exactly is going on 20:34.320 --> 00:20:42.867 and come to a conclusion on... 00:20:42.868 --> 00:20:44.519 Completely jumping out of order. NOTE Q: Have you experimented with something like whisper.el for doing speech-to-text as you think out loud into your Bookclub? 20:44.520 --> 20:47.799 Have you experimented with whisper.el 20:47.800 --> 20:49.759 for doing speech to text 20:49.760 --> 20:51.999 as you think out loud into your book club? 20:52.000 --> 20:56.799 Now I am. I love that idea. That is awesome. 20:56.800 --> 21:00.039 Yeah, no, I love that. 21:00.040 --> 21:04.839 [Sacha]: Even with... I only have a CPU, no GPU on mine, 21:04.840 --> 21:08.039 it does capture things a lot faster. 21:08.040 --> 21:12.199 And because it actually saves the recording to a WAV, 21:12.200 --> 21:14.239 or I guess you can configure it, 21:14.240 --> 21:16.959 in case it doesn't recognize something well, 21:16.960 --> 21:20.799 you can go back and check it. That's nice. 21:20.800 --> 21:24.319 I like that more than a straight speech-text thing. 21:24.320 --> 21:27.439 I've been mulling over the idea 21:27.440 --> 21:30.959 of having a keystroke save into a background buffer 21:30.960 --> 21:33.399 so that even when I'm looking at something else, 21:33.400 --> 21:37.919 I can dictate into my equivalent of the book club file. 21:37.920 --> 21:41.759 [Maddie]: Yes, yes, yes, absolutely. 21:41.760 --> 21:44.719 So you can be scrolling through documentation on, like, 21:44.720 --> 21:48.079 you can be scrolling through documentation on one screen 21:48.080 --> 21:49.799 and you can be musing to yourself about, 21:49.800 --> 21:52.479 like, you know, is this supposed to work this way? 21:52.480 --> 21:57.319 Like, you know, like, what in terms of, like, 21:57.320 --> 21:59.799 you know, like, I see this function. 21:59.800 --> 22:01.279 It sounds like it's what I'm looking for. 22:01.280 --> 22:03.399 I don't know if the types are quite right. 22:03.400 --> 22:05.679 I don't understand. It's named what I'm looking for, 22:05.680 --> 22:07.319 but I don't know what it's taking in. 22:07.320 --> 22:09.439 You can reason through all of this. 22:09.440 --> 22:10.599 You're not even writing into the buffer 22:10.600 --> 22:14.119 that you're working with. That's actually so cool. 22:14.120 --> 22:17.279 [Sacha]: Or you can tie it into the org capture process 22:17.280 --> 22:21.039 so that it can pick up an annotation automatically. 22:21.040 --> 22:24.719 Sorry, annotation is the link to the thing, 22:24.720 --> 22:26.159 whatever you're looking at. 22:26.160 --> 22:32.999 [Maddie]: Oh, that's super cool. Yes. No, I actually really love it. 22:33.000 --> 22:36.119 I haven't, you know, hooking this all up to Org Capture at all. 22:36.120 --> 00:22:58.199 I actually really love that idea in and of itself. Yeah. 00:22:58.200 --> 23:01.119 [Sacha]: Org capture will give you a lot of capture options. 23:01.120 --> 23:03.159 You can capture to your currently 23:03.160 --> 23:11.039 clocked in heading. So then it just files your note 23:11.040 --> 00:23:15.059 in the right place automatically. 00:23:15.060 --> 23:19.199 [Maddie]: Absolutely. I love that. Let me see. 23:19.200 --> 00:23:21.099 I'm actually like writing a note to try that out. 00:23:21.100 --> 00:23:23.125 I'm definitely going to have to do that. 00:23:23.126 --> 23:36.039 Like the flexibility of that in particular sounds just perfect. 23:36.040 --> 23:38.239 [Sacha]: I'll let you finish typing noises 23:38.240 --> 23:39.679 and then we can ask the next question 23:39.680 --> 00:23:42.291 for which there is one. NOTE Q: What is the largest project in terms of team size you had the chance to consult and introduce the Bookclub Tapas concept and what have been your experiences with these setups (implying larger applications / solutions a company is working on)? 00:23:42.292 --> 23:45.839 The question is, what is the largest project 23:45.840 --> 23:48.479 in terms of team size you had the chance to consult 23:48.480 --> 23:51.079 and introduce the book club tapas concept? 23:51.080 --> 23:53.199 And what has been your experiences with these setups, 23:53.200 --> 23:56.279 implying larger applications or solutions 23:56.280 --> 23:57.319 that company is working on? 23:57.320 --> 24:01.959 So yeah, probably the largest application. 24:01.960 --> 24:05.879 So I have, It's been interesting. 24:05.880 --> 24:08.879 So in regards to this, the largest, 24:08.880 --> 24:10.119 I would say two people 24:10.120 --> 24:12.719 in a couple of different circumstance. 24:12.720 --> 24:20.079 So it's the pair of us working in a startup context. 24:20.080 --> 24:24.439 And then, you know, we both have 24:24.440 --> 24:25.799 like rather technical backgrounds. 24:25.800 --> 24:27.479 We can both more or less, you know, 24:27.480 --> 24:33.639 You know, sort of reason about particularly excite, 24:33.640 --> 24:37.199 especially as we've been building up top us is that, 24:37.200 --> 24:39.559 you know, well, we're both rather technical. 24:39.560 --> 24:42.679 You know, I'm definitely software engineering sort of end. 24:42.680 --> 24:47.359 And, you know, this partner is more. 24:47.360 --> 24:50.999 I mean, he's done all sorts of different engineering, 24:51.000 --> 24:54.039 but none of it in a, like, especially software context. 24:54.040 --> 24:56.559 So like, you know, but what's been 24:56.560 --> 24:58.119 really cool about that is that 24:58.120 --> 24:59.599 especially as we've built up top us 24:59.600 --> 25:00.799 and made clear distinctions 25:00.800 --> 25:02.879 about what they ought to do, you know, 25:02.880 --> 25:04.599 he doesn't have a ton of like really, 25:04.600 --> 25:10.839 he doesn't like experience like 25:10.840 --> 25:12.479 specifically in software engineering, 25:12.480 --> 25:15.559 but because we have it all laid out 25:15.560 --> 25:17.399 in this really flexible way, 25:17.400 --> 25:20.199 he's able to pick up the ball and like, 25:20.200 --> 25:21.879 you know, like he's able to 25:21.880 --> 25:23.119 take the ball and run with it. 25:23.120 --> 25:25.279 because it's all laid out 25:25.280 --> 25:26.559 in a way that's so intuitive. 25:26.560 --> 25:28.719 Like, you know, he's able to like 25:28.720 --> 25:31.199 collaborate with me and like, 25:31.200 --> 25:33.279 you know, like, you know, run off these ideas 25:33.280 --> 25:34.919 and like really go for it. 25:34.920 --> 25:37.399 Like, you know, almost as quickly as I can, 25:37.400 --> 25:39.319 just because we've set up a structure 25:39.320 --> 25:42.159 where like all of the different pieces 25:42.160 --> 25:43.719 have these really intuitive 25:43.720 --> 25:46.399 and intrinsic and straightforward roles. 25:46.400 --> 25:47.839 And that's, that's something 25:47.840 --> 25:49.044 that's really exciting in of itself 25:49.045 --> 25:50.669 that I didn't really go over in the talk. 25:50.670 --> 25:54.359 Like a managerial perspective, 25:54.360 --> 25:56.919 this is actually a really excellent way 25:56.920 --> 26:01.199 of understanding the whole context 26:01.200 --> 26:04.799 of like what the software stack looks like. 26:04.800 --> 26:06.439 Because it's like, you know, 26:06.440 --> 26:09.119 it makes it more intuitive for developers for sure, 26:09.120 --> 26:10.719 but it makes it more intuitive for everyone. 26:10.720 --> 26:12.759 You know, it's on that basis 26:12.760 --> 26:14.839 that I can't imagine clients 26:14.840 --> 26:18.239 like just a better way at this point. 26:18.240 --> 26:22.239 Um, that was that was the other circumstance 26:22.240 --> 26:25.239 where I have been working with a partner. 26:25.240 --> 26:29.399 This has been with, um, you know, I would be, uh. 26:29.400 --> 26:31.919 You know, sort of going back and forth 26:31.920 --> 26:34.199 with someone who had hired me. 26:34.200 --> 26:40.159 Um, to, uh, like, you know, to work on contract. 26:40.160 --> 26:42.839 And I would use this to sort of go 26:42.840 --> 26:45.199 over with them about, um. 26:45.200 --> 26:51.239 Sort of get a solid idea of scope and function, 26:51.240 --> 26:57.199 do pre-planning as we're going into more specifics 26:57.200 --> 00:27:03.375 on what the overall look for the project 00:27:03.376 --> 00:27:04.250 and how it ought to look 00:27:04.251 --> 27:05.679 and how it all ought to be laid out. 27:05.680 --> 27:11.519 So there's a lot of really exciting flexibility there 27:11.520 --> 00:27:21.999 that I think is really cool. NOTE Q: People will also be curious about the mechanics of collaboration: other person uses Emacs and Org? Shipping things back and forth via git / version control? CRDT? 00:27:22.000 --> 27:23.679 People will, of course, be curious 27:23.680 --> 27:25.919 about the mechanics of that collaboration. 27:25.920 --> 27:28.719 Did you get other people using Emacs in org? 27:28.720 --> 27:32.359 Were you using version control? Did you try out CRDT? 27:32.360 --> 27:33.239 How did it work? 27:33.240 --> 27:39.639 So all of this so far has been over screen share, 27:39.640 --> 27:43.679 where I would be stepping through the buffer by hand. 27:43.680 --> 27:47.839 I would love to set up some sort of an environment 27:47.840 --> 27:52.359 where I could get you know, clients and partners, 27:52.360 --> 27:53.359 like, you know, really excited 27:53.360 --> 27:54.799 about using Emacs and Org. 27:54.800 --> 27:58.559 But, you know, it's, it can be a little bit to ask, 27:58.560 --> 28:00.119 I would love to see if I can, like, 28:00.120 --> 28:01.879 put together some sort of a config that, 28:01.880 --> 28:04.519 like, sands off all of this and 28:04.520 --> 28:08.079 makes this this really 28:08.080 --> 28:13.759 safety-proof sort of intuitive environment 28:13.760 --> 28:16.599 just for CRDT in particular. 28:16.600 --> 28:18.879 I love the idea of 28:18.880 --> 28:21.479 spawning CRDT 28:21.480 --> 28:24.159 so that the two of us can 28:24.160 --> 28:27.559 type-spec an ideas 28:27.560 --> 28:31.239 and draft together on, you know, 28:31.240 --> 28:33.559 especially like the glue code Tapa 28:33.560 --> 28:35.639 for a larger software stack. 28:35.640 --> 28:38.399 Like, collaborating on that over CRDT, 28:38.400 --> 28:43.399 or having folks step through Tapas and 28:43.400 --> 00:28:46.719 unfold them and point to a particular thing... 28:46.720 --> 28:49.159 And it's like, you know, what's this? 28:49.160 --> 28:50.119 What's the clock here? 28:50.120 --> 28:52.239 It looks like we're spending a lot of time, 28:52.240 --> 28:54.519 and I would like to get a little bit clearer 28:54.520 --> 28:56.319 of an idea of what exactly we're doing here. 28:56.320 --> 29:01.319 Back up a little bit because the stream just disconnected 29:01.320 --> 29:02.759 and reconnected from the audio. 29:02.760 --> 29:06.599 So, please repeat just the last sentence. 29:06.600 --> 29:11.959 Yeah, yeah, for sure. Yeah, so I would like... 29:11.960 --> 29:18.239 I love the idea of collaborating on, 29:18.240 --> 29:20.519 especially on the glue code. 29:20.520 --> 29:23.839 Tapa for a particular software stack, you know, 29:23.840 --> 29:26.159 having the both of us use CRDT 29:26.160 --> 29:27.719 to type into it simultaneously, 29:27.720 --> 29:30.159 I think that would be super cool. 29:30.160 --> 29:33.679 I also really love the idea of 29:33.680 --> 00:29:37.139 having a client or partner 00:29:37.140 --> 29:41.479 thumb through individual tapas in the stack 29:41.480 --> 29:45.639 and then look at and be like, 29:45.640 --> 29:47.879 well, we seem to have time on this recently, 29:47.880 --> 29:51.759 can you give me some clarification on 29:51.760 --> 29:55.519 what this part is and 29:55.520 --> 29:57.559 what it means for the whole 29:57.560 --> 30:00.799 and what it represents 30:00.800 --> 30:02.599 in terms of how all of this is going to come together. 30:02.600 --> 30:06.439 I think that would be super cool. I love the idea of that. 30:06.440 --> 30:11.679 I would even consider, if not Emacs proper, 30:11.680 --> 30:17.119 I would love maybe a web-based Org parser 30:17.120 --> 30:21.399 or even just a read-only version 30:21.400 --> 30:25.399 of the document where clients and partners 30:25.400 --> 30:26.879 just sort of thumb through with it 30:26.880 --> 30:28.199 and then chat with questions. 30:28.200 --> 30:34.159 Make the screen sharing for 30:34.160 --> 30:36.519 peer programming process 30:36.520 --> 30:41.599 just a little bit cleaner, more intuitive on their end. 30:41.600 --> 30:50.399 I think that'd be super cool. I love these ideas. 30:50.400 --> 30:55.002 [Sacha]: All right, theoretically, the Big Blue Button is open. 30:55.003 --> 30:57.002 I think we've gotten to the end 30:57.003 --> 31:00.294 of the questions on the etherpad. 31:00.295 --> 31:03.085 If anyone else would like to join or ask, 31:03.086 --> 31:04.840 I'm going to need a couple of minutes 31:04.841 --> 31:06.359 and then I can do closing remarks 31:06.360 --> 31:07.999 whenever people are ready. 31:08.000 --> 00:31:19.559 So I will meet now when people figure things out. 00:31:19.560 --> 31:22.039 [Maddie]: I would also be super down if, you know, 31:22.040 --> 31:25.319 anyone was curious about hearing more 31:25.320 --> 31:28.999 about some of the projects 31:29.000 --> 31:30.799 that I was kind of rambling 31:30.800 --> 31:34.679 at the close of the talk, 31:34.680 --> 31:36.479 if people wanted to 31:36.480 --> 31:39.359 hear more about some of my ideas 31:39.360 --> 31:42.799 in regards to 31:42.800 --> 31:45.719 what am I thinking at home with the... 31:45.720 --> 31:49.759 What's it called? 31:49.760 --> 00:31:55.439 Just some of the funding for passion projects, 31:55.440 --> 31:58.319 I would be interested in laying out some of the ideas 31:58.320 --> 31:59.959 about how that could work mechanically. 31:59.960 --> 32:02.559 And I think that that would be, you know, 32:02.560 --> 32:04.719 really cool for the whole ecosystem, 32:04.720 --> 32:06.719 because I think that there are definitely 32:06.720 --> 32:09.639 things that we could bang out, you know, 32:09.640 --> 32:12.919 for getting kind of all sorts of people on that model. 32:12.920 --> 32:14.519 I think that it would be really cool 32:14.520 --> 32:18.399 to to having a funding model 32:18.400 --> 32:20.239 for things that are really worth using. 32:20.240 --> 00:32:29.259 And developing the other thing is 00:32:29.260 --> 00:32:31.199 just rattling off specifics on things 00:32:31.200 --> 32:34.960 that people could potentially vote for on that, 32:34.961 --> 32:53.759 and in terms of specific "might want to work on"... 32:53.760 --> 32:56.877 All right, there's a question from IRC. 32:56.878 --> 33:01.880 Sorry, I just got that. Did you address that one already? 33:01.881 --> 33:07.127 Let's see. Where is it? 33:07.128 --> 33:12.359 I will copy it from IRC. Thank you. 33:12.360 --> 33:14.319 Gotcha. Into the pad. 33:14.320 --> 33:27.759 Perfect, perfect, perfect. 33:27.760 --> 33:30.679 Let me read the question out loud so it's in the recording. NOTE Q: I guess a major pro is it has less friction as people can do (a lot, maybe not everything) in BookClub Tapas file vs. having to log into gazillions of different systems, each one of them keeping a portion of the information. Did I get that viewing point right from your elaboration of the collaboration between you and your team mate(s)? 33:30.680 --> 33:33.719 I guess a major pro is it has less friction 33:33.720 --> 33:35.759 as people can do a lot, 33:35.760 --> 33:39.039 maybe not everything in Bookclub Tapas files 33:39.040 --> 33:42.639 versus having to log into gazillions of different systems, 33:42.640 --> 33:45.199 each one of them keeping a portion of the information. 33:45.200 --> 33:47.359 Did I get that viewing point right 33:47.360 --> 33:49.479 from your elaboration of the collaboration 33:49.480 --> 33:52.159 between you and your teammates? 33:52.160 --> 33:55.439 Yes. No, that's absolutely right. 33:55.440 --> 00:34:00.519 Because my hope is that we can you know 34:00.520 --> 34:03.239 there's a lot of conflict into that... 34:03.240 --> 34:13.359 We assume that a lot of um pieces of tooling 34:13.360 --> 34:14.559 and the separation between them 34:14.560 --> 34:16.439 is really sort of a necessary evil 34:16.440 --> 34:19.239 i think that you know having a system 34:19.240 --> 34:21.519 where really the complexity 34:21.520 --> 34:25.719 of engaging in all of the information 34:25.720 --> 34:29.119 relevant to the program. 34:29.120 --> 34:30.319 If it's in a format 34:30.320 --> 34:31.799 where you can just email it back and forth, 34:31.800 --> 34:33.199 break off pieces of it, 34:33.200 --> 34:35.119 work with those individually, 34:35.120 --> 34:38.759 I think that that's something 34:38.760 --> 34:40.279 that's incredibly rewarding. 34:40.280 --> 34:42.639 Something that just dawned on me 34:42.640 --> 34:44.439 that I wanted to mention 34:44.440 --> 34:46.959 that I've been daydreaming about 34:46.960 --> 34:49.399 is that in a circumstance 34:49.400 --> 34:52.079 where you have multiple developers, 34:52.080 --> 34:53.879 like, you know, across a larger team, 34:53.880 --> 34:57.359 working on a book club tapas driven project, 34:57.360 --> 35:02.559 what you can do is have, you know, 35:02.560 --> 35:04.559 a clear, you can lay out your goal, 35:04.560 --> 35:08.439 and then start splitting it to tapas from that point, 35:08.440 --> 35:11.839 and then assign each teammate their own tapa, 35:11.840 --> 35:13.279 which becomes their baby. 35:13.280 --> 35:15.639 And I really love the idea 35:15.640 --> 35:17.479 of people being able to, you know, 35:17.480 --> 35:20.319 have an idea of an interface 35:20.320 --> 35:21.599 about how all of these are 35:21.600 --> 35:22.719 ultimately come back together, 35:22.720 --> 35:26.639 but people have their own like agency 35:26.640 --> 35:27.919 over their own code base, 35:27.920 --> 35:29.119 despite the fact that they're 35:29.120 --> 35:30.479 working in collaboration. 35:30.480 --> 35:32.719 I think that it can be incredibly motivating 35:32.720 --> 35:36.079 for a team to, you know, have each person 35:36.080 --> 35:38.039 in charge of their own project, 35:38.040 --> 35:39.839 but of course it's all ultimately 35:39.840 --> 35:41.319 going to the same code base. 35:41.320 --> 35:43.199 So, you know, I think that, 35:43.200 --> 35:45.479 that a pursuit of beauty 35:45.480 --> 35:48.519 is this really solid motivator 35:48.520 --> 35:50.839 in terms of how people perceive 35:50.840 --> 35:53.959 the merits of their efforts 35:53.960 --> 35:56.479 and how that lights a fire under them 35:56.480 --> 35:58.999 to continue and keep going and dig deep 35:59.000 --> 36:00.559 when things get frustrating. 36:00.560 --> 36:02.799 When you have a personal stake 36:02.800 --> 36:03.399 in your project, 36:03.400 --> 36:06.479 I think that that's a really excellent time 36:06.480 --> 36:08.599 to really push and move forward on it. 36:08.600 --> 36:10.559 And people having ownership 36:10.560 --> 36:12.719 over this idea of their specific tapa 36:12.720 --> 36:14.999 could be a really cool way to do that 36:15.000 --> 36:15.759 in a team setting. 36:15.760 --> 36:19.999 But I pivoted off a little bit. 36:20.000 --> 36:24.559 So yes, but I absolutely did that. 36:24.560 --> 36:28.599 You know, that having a simplistic format 36:28.600 --> 36:29.999 for your information 36:30.000 --> 36:33.319 is a really solid way to have 36:33.320 --> 36:36.319 collaboration be frictionless. 36:36.320 --> 36:38.719 You have one source of information 36:38.720 --> 36:40.799 and you don't have to drown in your tooling. 36:40.800 --> 36:51.839 All right, I think you've addressed 36:51.840 --> 36:54.919 all the questions on the etherpad. 36:54.920 --> 36:56.799 And as you said, people can email you, 36:56.800 --> 36:58.439 even though the website looks like 36:58.440 --> 37:00.479 it's still not quite there yet, 37:00.480 --> 37:03.719 people can email you or ask questions 37:03.720 --> 37:05.039 to the etherpad afterwards. 37:05.040 --> 37:07.439 Is there anything else that 37:07.440 --> 37:11.039 you'd like to share or shall I wrap up, 37:11.040 --> 37:13.279 introduce myself doing the closing remarks 37:13.280 --> 37:16.959 and then try to do the closing remarks? 37:16.960 --> 37:18.839 Yes, so I have two last thoughts. 37:18.840 --> 37:21.439 Yes, no, I did just want to confirm 37:21.440 --> 37:24.319 that my email is completely working. 37:24.320 --> 37:27.199 If you want to keep up to date 37:27.200 --> 37:29.399 with the stuff that I'm working on, 37:29.400 --> 37:35.239 please shoot and I will, you know, at your request, 37:35.240 --> 37:38.119 I will add you to a mailing list. 37:38.120 --> 37:40.479 which will have intermittent updates. 37:40.480 --> 37:42.919 I'm not going to send you spam, 37:42.920 --> 37:47.279 but it will have updates for what I'm working on, 37:47.280 --> 37:48.599 what this all looks like, 37:48.600 --> 37:52.359 and just context for the different things 37:52.360 --> 37:53.119 that I'm working on. 37:53.120 --> 37:56.999 My website will be going up soon enough. 37:57.000 --> 38:01.119 I just got a little distracted because I'm like, 38:01.120 --> 38:05.239 oh, I'm just gonna spin up a Gux server 38:05.240 --> 38:06.999 and I'm gonna make it super cool 38:07.000 --> 38:09.119 when really I just need just 38:09.120 --> 38:12.439 Debian and Apache real quick, just something. 38:12.440 --> 38:16.679 So the website will be going up. It's just not up yet. 38:16.680 --> 38:19.959 And the very last thing is that 38:19.960 --> 38:22.959 I would really like to thank everyone 38:22.960 --> 38:27.199 that helped me to get here. I would like to thank you know, 38:27.200 --> 38:32.319 all of my, you know, I would like to thank my fiance. 38:32.320 --> 38:34.519 I would like to thank all of my friends. 38:34.520 --> 38:39.359 I would like to thank my, you know, 38:39.360 --> 38:42.119 my mentor and business partner, Sharon. 38:42.120 --> 38:45.119 I would like to thank Tracy, my therapist. 38:45.120 --> 38:48.279 I would like to thank my parents. 38:48.280 --> 38:53.279 I invited people to come watch this thing, 38:53.280 --> 38:55.279 and I would like to thank all of them. 38:55.280 --> 38:57.919 I would like to thank everyone 38:57.920 --> 39:02.439 who was planning on coming to this event anyway. 39:02.440 --> 39:06.359 The Emacs community is incredible, incredibly encouraging, 39:06.360 --> 39:09.399 incredibly kind, incredibly smart and talented. 39:09.400 --> 39:13.719 Y'all make Emacs what it is, and it is so cool. 39:13.720 --> 39:15.919 I would like to thank you, Satya. 39:15.920 --> 39:19.559 I would like to thank all of the organizers 39:19.560 --> 39:20.879 that made this possible. 39:20.880 --> 39:25.719 This thing is the coolest and it was, this was so cool.