WEBVTT 00:00:01.680 --> 00:00:03.439 Hello, and welcome 00:00:03.439 --> 00:00:07.200 to my Org GTD talk. 00:00:07.200 --> 00:00:10.400 I wrote this package because I was 00:00:10.400 --> 00:00:12.719 overwhelmed with all the stuff I had to 00:00:12.719 --> 00:00:14.320 manage working at home. 00:00:14.320 --> 00:00:17.359 I'd heard about GTD. I saw someone 00:00:17.359 --> 00:00:18.720 using it with 00:00:18.720 --> 00:00:22.320 just a small notebook. 00:00:22.320 --> 00:00:24.720 I wanted to do it in Emacs because, 00:00:24.720 --> 00:00:29.199 well, Emacs can do everything, right? 00:00:29.199 --> 00:00:31.359 I'm going to jump in quickly. Just so 00:00:31.359 --> 00:00:34.559 you know, here's kind of a list of the 00:00:34.559 --> 00:00:36.960 resources. Obviously, org-gtd, which you 00:00:36.960 --> 00:00:38.719 can find there. You can open an issue, ask 00:00:38.719 --> 00:00:41.120 me questions there about it. 00:00:41.120 --> 00:00:43.280 I use org-edna, a package for state 00:00:43.280 --> 00:00:45.360 triggers. I'm going to show this briefly 00:00:45.360 --> 00:00:49.840 when I finish item in a project. 00:00:49.840 --> 00:00:52.000 org-agenda-property, you will see in the 00:00:52.000 --> 00:00:53.440 agenda. It's going to show 00:00:53.440 --> 00:00:57.360 to whom an action has been delegated to. 00:00:57.360 --> 00:01:00.960 You will see org-roam briefly as a 00:01:00.960 --> 00:01:02.559 reference because that is what I have 00:01:02.559 --> 00:01:06.960 chosen for my knowledge archival tool. 00:01:06.960 --> 00:01:07.360 You can choose 00:01:07.360 --> 00:01:12.640 whatever you prefer. 00:01:12.640 --> 00:01:15.520 This is a quick, quick reminder on 00:01:15.520 --> 00:01:18.479 what GTD is and how it works. This is not a 00:01:18.479 --> 00:01:22.640 lesson on--a presentation on gtd because that would 00:01:22.640 --> 00:01:27.920 be... Well, other people have done it better than me. 00:01:27.920 --> 00:01:31.280 In short, everything goes into the inbox. 00:01:31.280 --> 00:01:34.320 Then you process the inbox, and you 00:01:34.320 --> 00:01:35.600 decide what to do, if 00:01:35.600 --> 00:01:37.200 it could be actionable or not. If it's 00:01:37.200 --> 00:01:39.119 actionable, it could be a project 00:01:39.119 --> 00:01:40.799 or it could be a single action, which you 00:01:40.799 --> 00:01:42.159 could delegate 00:01:42.159 --> 00:01:45.759 or schedule or just 00:01:45.759 --> 00:01:48.079 do it. If it's not actionable, you could 00:01:48.079 --> 00:01:49.680 just throw it away, 00:01:49.680 --> 00:01:51.759 incubate it for later, or move it into 00:01:51.759 --> 00:01:57.520 your files, reference. 00:01:57.520 --> 00:02:05.119 Over here, you can see the global bindings 00:02:05.119 --> 00:02:08.959 for org-gtd. Those are the actions, 00:02:08.959 --> 00:02:11.599 the functions I have made available. 00:02:11.599 --> 00:02:14.000 This is in progress. There's more to come. 00:02:14.000 --> 00:02:15.760 Some stuff is probably missing. 00:02:15.760 --> 00:02:17.360 It's grown mostly from my own personal 00:02:17.360 --> 00:02:22.400 use so far, so it doesn't have things. 00:02:22.400 --> 00:02:27.200 In the bottom right, you can see the agenda. 00:02:27.200 --> 00:02:28.560 One thing I wanted to do with this package 00:02:28.560 --> 00:02:32.959 was leverage Org Mode as much as possible. 00:02:32.959 --> 00:02:36.319 So I tried to not reinvent 00:02:36.319 --> 00:02:40.160 the wheel as much as I could. That meant 00:02:40.160 --> 00:02:43.599 reusing the agenda. You can see here 00:02:43.599 --> 00:02:45.599 a couple of the things that are made 00:02:45.599 --> 00:02:47.920 available or kind of 00:02:47.920 --> 00:02:49.760 customized or configured for you, 00:02:49.760 --> 00:02:54.319 some of the opinions that org-gtd has. 00:02:54.319 --> 00:02:56.400 Up here, for instance, you can see a 00:02:56.400 --> 00:02:57.840 delegated action. 00:02:57.840 --> 00:03:01.040 So a delegated action 00:03:01.040 --> 00:03:03.200 has someone to whom it's delegated. It's 00:03:03.200 --> 00:03:04.720 my parents in this case. 00:03:04.720 --> 00:03:06.080 It has the name of the action: ask 00:03:06.080 --> 00:03:08.239 parents what gift they want. 00:03:08.239 --> 00:03:11.599 It's marked as the state 00:03:11.599 --> 00:03:14.800 of WAIT because I'm waiting. 00:03:14.800 --> 00:03:17.280 It is scheduled because you should 00:03:17.280 --> 00:03:20.239 ping people or check on the status status of a task 00:03:20.239 --> 00:03:21.840 when you're waiting for it, so you don't 00:03:21.840 --> 00:03:25.680 forget about it or it gets lost forever. 00:03:25.680 --> 00:03:27.599 I have a scheduled action to give a talk. 00:03:27.599 --> 00:03:30.560 That's what I'm doing right now. 00:03:30.560 --> 00:03:33.440 I have an incubated action which is 00:03:33.440 --> 00:03:36.640 also scheduled: to make money through the lottery. 00:03:36.640 --> 00:03:38.640 This is a thing to take a look at 00:03:38.640 --> 00:03:41.120 for later, decide later what I want to do. 00:03:41.120 --> 00:03:42.560 It might be actionable, it might not be. 00:03:42.560 --> 00:03:44.560 I don't know right now, or I didn't 00:03:44.560 --> 00:03:49.280 know when I processed it, so I incubated it. 00:03:49.280 --> 00:03:52.319 Underneath, we have all the things that 00:03:52.319 --> 00:03:59.360 are direct actions for me to take. 00:03:59.360 --> 00:04:01.439 All right. You see a little bit of the 00:04:01.439 --> 00:04:04.080 preparation seeps through the actual talk. 00:04:04.080 --> 00:04:05.519 I have here two... I have a single 00:04:05.519 --> 00:04:07.920 action of "Steal Andrea's 00:04:07.920 --> 00:04:09.840 GTD configuration" 00:04:09.840 --> 00:04:12.879 and an action to read the GTD book. 00:04:12.879 --> 00:04:16.320 It's part of a project. 00:04:16.320 --> 00:04:21.680 So most of the day-to-day operation with 00:04:21.680 --> 00:04:23.840 with this package should come through 00:04:23.840 --> 00:04:26.000 just having the agenda open 00:04:26.000 --> 00:04:29.600 and having it be your source 00:04:29.600 --> 00:04:31.199 for the information you need to know, so 00:04:31.199 --> 00:04:34.960 that you can do the right thing. So let's take a look 00:04:34.960 --> 00:04:37.440 at what's underneath all of this 00:04:37.440 --> 00:04:39.600 really quickly. 00:04:39.600 --> 00:04:42.320 We have--There's three primary files. 00:04:42.320 --> 00:04:43.360 We have the inbox. 00:04:43.360 --> 00:04:45.759 I'm gonna process it in a second 00:04:45.759 --> 00:04:48.880 because there's two things here. One thing to cancel, like 00:04:48.880 --> 00:04:51.919 an action to not take. It's nothing. And then something 00:04:51.919 --> 00:04:53.919 I will just put into org-roam, just so 00:04:53.919 --> 00:04:58.960 you can see that there is the incubate file. 00:04:58.960 --> 00:05:02.000 You can see here: make money through the lottery, 00:05:02.000 --> 00:05:04.800 captured, refiled here, and scheduled 00:05:04.800 --> 00:05:06.560 so it would show up in the agenda 00:05:06.560 --> 00:05:10.000 right at a given time. On the right, 00:05:10.000 --> 00:05:13.039 you have the actionable file. This is 00:05:13.039 --> 00:05:14.560 the one that has the most information, 00:05:14.560 --> 00:05:18.960 where most things should go. 00:05:18.960 --> 00:05:20.560 So I have the single actions. They all go 00:05:20.560 --> 00:05:22.720 underneath here. 00:05:22.720 --> 00:05:24.479 This is marked as next because it's an 00:05:24.479 --> 00:05:26.240 action for me to take. 00:05:26.240 --> 00:05:28.240 Delegated is marked as WAIT. It is 00:05:28.240 --> 00:05:29.600 not an action for me to take. It's an 00:05:29.600 --> 00:05:31.199 action for somebody else to take, but it 00:05:31.199 --> 00:05:32.400 is scheduled because 00:05:32.400 --> 00:05:37.919 I may wanna... I can check in at some point. 00:05:38.400 --> 00:05:39.759 Things that are scheduled, like "give a 00:05:39.759 --> 00:05:43.120 talk," do not have a TODO or NEXT or WAIT 00:05:43.120 --> 00:05:44.960 state because they are not bound that 00:05:44.960 --> 00:05:46.400 way. They are time-bound, 00:05:46.400 --> 00:05:48.080 so they will show up in the agenda when 00:05:48.080 --> 00:05:50.320 the time comes. I shouldn't act on them 00:05:50.320 --> 00:05:53.840 or I can't act on them beforehand. 00:05:53.840 --> 00:05:55.280 You can see here, I have two projects: a 00:05:55.280 --> 00:05:56.880 test project (and I will 00:05:56.880 --> 00:05:58.880 do something with this in a second) 00:05:58.880 --> 00:06:00.080 and then there's this 00:06:00.080 --> 00:06:01.919 package "Make a GTD package." There's a 00:06:01.919 --> 00:06:04.000 project here for me to create this. 00:06:04.000 --> 00:06:07.520 It's made of a bunch of actions. 00:06:07.520 --> 00:06:09.759 I'm going to show you two things here. 00:06:09.759 --> 00:06:14.639 One is: since I was trying to leverage 00:06:14.639 --> 00:06:16.400 Org Mode as much as possible, 00:06:16.400 --> 00:06:20.479 I didn't try to create very clever 00:06:20.479 --> 00:06:24.080 operations, because Org Mode has a lot of 00:06:24.080 --> 00:06:27.199 very powerful tools already. 00:06:27.199 --> 00:06:29.600 There's automations I can add, 00:06:29.600 --> 00:06:31.039 but I thought it might be 00:06:31.039 --> 00:06:34.240 better to leave more things in the 00:06:34.240 --> 00:06:35.680 hands of the user. 00:06:35.680 --> 00:06:38.000 So here, in this case, this test project 00:06:38.000 --> 00:06:39.199 we can just archive. 00:06:39.199 --> 00:06:42.479 Right. That's just 00:06:42.479 --> 00:06:45.680 C-c C-x C-a is the 00:06:45.680 --> 00:06:52.000 org-archive action. Save this. 00:06:52.000 --> 00:06:54.479 So now if we go to... 00:06:54.479 --> 00:06:56.160 This will create an archive file 00:06:56.160 --> 00:06:59.440 which will have this information 00:06:59.440 --> 00:07:00.560 for later perusal 00:07:00.560 --> 00:07:03.840 if you're interested. 00:07:03.840 --> 00:07:05.360 That's one thing. If we go back to the 00:07:05.360 --> 00:07:07.199 agenda for a second, 00:07:07.199 --> 00:07:10.479 you can see 00:07:10.479 --> 00:07:14.080 these things here. Org. So by the way, 00:07:14.080 --> 00:07:16.479 this "parents" here was the org 00:07:16.479 --> 00:07:19.120 agenda property. This is what shows here, 00:07:19.120 --> 00:07:23.680 right? And here, if I finish "Read the GTD book," 00:07:23.680 --> 00:07:27.680 I mark it as done. Now refresh. 00:07:27.680 --> 00:07:31.919 You'll see that another item shows up, 00:07:31.919 --> 00:07:34.720 and that is where org-edna comes in. 00:07:34.720 --> 00:07:37.280 When an action is marked as done in a project, 00:07:37.280 --> 00:07:39.759 the next to do action is 00:07:39.759 --> 00:07:41.360 automatically marked as next, so your 00:07:41.360 --> 00:07:43.759 agenda is automatically updated. 00:07:43.759 --> 00:07:46.400 This was one of the nice things for me 00:07:46.400 --> 00:07:48.400 because I didn't want to have to 00:07:48.400 --> 00:07:50.400 open my file, go find the action, mark it 00:07:50.400 --> 00:07:51.919 as done, find the next one, mark it as 00:07:51.919 --> 00:07:53.440 next, and so forth. 00:07:53.440 --> 00:07:57.280 I didn't want to bother with it. 00:07:57.280 --> 00:07:58.960 Oh, actually, you know what, let me show 00:07:58.960 --> 00:08:00.960 you something else. 00:08:00.960 --> 00:08:07.120 This simple project... I don't need this timestamp to 00:08:07.120 --> 00:08:09.680 be here but I like having a capture timestamp here, 00:08:09.680 --> 00:08:13.039 so I'm gonna make one up. 00:08:13.039 --> 00:08:15.919 So this is the most convenient thing 00:08:15.919 --> 00:08:16.879 that I think... 00:08:16.879 --> 00:08:17.919 This is one of the most convenient 00:08:17.919 --> 00:08:20.720 things that I get out of this binding. 00:08:20.720 --> 00:08:22.960 The next really convenient thing is the 00:08:22.960 --> 00:08:24.400 way this gets processed. 00:08:24.400 --> 00:08:27.440 Let me show you this. 00:08:27.440 --> 00:08:30.080 When you process the entire inbox, 00:08:30.080 --> 00:08:31.440 what you see is 00:08:31.440 --> 00:08:33.440 the items one at a time, so you can work 00:08:33.440 --> 00:08:34.560 with them. 00:08:34.560 --> 00:08:36.320 You can see at the bottom... You can 00:08:36.320 --> 00:08:38.320 work with them without being distracted. 00:08:38.320 --> 00:08:40.320 You can see at the bottom the list 00:08:40.320 --> 00:08:42.399 of things you can do, which are all the 00:08:42.399 --> 00:08:45.120 decisions you can take from GTD, right? 00:08:45.120 --> 00:08:45.760 In this case, 00:08:45.760 --> 00:08:48.959 this is one to throw out, so press t. 00:08:48.959 --> 00:08:50.959 You have the option to make modifications to 00:08:50.959 --> 00:08:52.320 this if you want to. 00:08:52.320 --> 00:08:55.200 If you have any reason to store it, then 00:08:55.200 --> 00:08:56.240 you finish editing. 00:08:56.240 --> 00:08:58.160 You can add a tag if you want to, because 00:08:58.160 --> 00:09:00.080 this might still be interesting, 00:09:00.080 --> 00:09:02.720 and then enter and it's done. 00:09:02.720 --> 00:09:03.920 Important knowledge, 00:09:03.920 --> 00:09:06.959 I'm going to hit a for archive it. 00:09:06.959 --> 00:09:12.160 I'm gonna start looking at org-roam. 00:09:12.160 --> 00:09:20.800 So this is important knowledge. 00:09:20.800 --> 00:09:23.519 I have to capture this. That's it. 00:09:23.519 --> 00:09:24.640 I've captured it. 00:09:24.640 --> 00:09:27.920 It is done. 00:09:27.920 --> 00:09:30.959 I go back to buffer, 00:09:30.959 --> 00:09:34.080 and I can mark it with C-c. 00:09:34.080 --> 00:09:35.360 There's no archiving because this is 00:09:35.360 --> 00:09:37.279 just knowledge. There's no 00:09:37.279 --> 00:09:38.800 tagging. It's just knowledge. But then the 00:09:38.800 --> 00:09:40.320 simple project... I want to show you this 00:09:40.320 --> 00:09:42.800 because there's some automation that's pretty helpful. 00:09:42.800 --> 00:09:50.000 In the simple project, I have my first action, 00:09:50.000 --> 00:09:53.920 second action, third action. 00:09:53.920 --> 00:09:55.360 and you see, this is all I'm writing. 00:09:55.360 --> 00:09:56.720 I'm not adding any of the states, any of the 00:09:56.720 --> 00:10:00.399 tags. They're going to be added by... 00:10:00.399 --> 00:10:04.320 Here, I can add a tag 00:10:04.320 --> 00:10:05.839 if I want to this project. 00:10:05.839 --> 00:10:07.360 I don't care 00:10:07.360 --> 00:10:09.920 right now, but you know... I leave the tags 00:10:09.920 --> 00:10:11.279 to the user, so they're not super 00:10:11.279 --> 00:10:15.440 relevant to me as a package provider. 00:10:15.440 --> 00:10:19.600 This is where we are. This is 00:10:19.600 --> 00:10:21.200 the whole thing. So now if we go back to 00:10:21.200 --> 00:10:23.519 the agenda, 00:10:23.519 --> 00:10:27.600 I have a first action, right. 00:10:27.600 --> 00:10:30.720 And if I go to the actionable file, and now 00:10:30.720 --> 00:10:32.959 see, I have a simple project that has my 00:10:32.959 --> 00:10:34.079 first action as NEXT, 00:10:34.079 --> 00:10:38.079 second option TODO, third action as TODO. 00:10:38.079 --> 00:10:41.360 So what I've... You know, 00:10:41.360 --> 00:10:42.880 as you can see... I hope what I've tried to 00:10:42.880 --> 00:10:47.200 do is take all of the 00:10:47.200 --> 00:10:50.880 tedium out of working with 00:10:50.880 --> 00:10:52.560 with Emacs and Org Mode when working 00:10:52.560 --> 00:10:54.880 with your actions so you could focus on 00:10:54.880 --> 00:10:57.200 what you want to do, what you need to do, 00:10:57.200 --> 00:10:58.640 what you care about, and the package 00:10:58.640 --> 00:11:04.880 would take care of the rest. 00:11:04.880 --> 00:11:06.240 So the last thing I wanted to take a quick 00:11:06.240 --> 00:11:08.000 look at was some of the the tests. 00:11:08.640 --> 00:11:11.120 The code is available here. You can 00:11:11.120 --> 00:11:13.440 see the code on... 00:11:13.440 --> 00:11:16.880 the code on Github if you want. 00:11:16.880 --> 00:11:18.720 I've had some trouble writing good tests 00:11:18.720 --> 00:11:20.320 for this because Org Mode was written at 00:11:20.320 --> 00:11:26.000 a time before testing was quite as important, I think, 00:11:26.000 --> 00:11:29.200 or valued quite the same way, 00:11:29.200 --> 00:11:31.440 let's put it this way. 00:11:31.440 --> 00:11:34.959 And as a result, a number of things actually... 00:11:34.959 --> 00:11:37.200 It might also be a feature of Emacs at 00:11:37.200 --> 00:11:38.240 the time, I don't know. 00:11:38.240 --> 00:11:40.560 But a lot of things in Org Mode aren't 00:11:40.560 --> 00:11:42.480 very testable, and so 00:11:42.480 --> 00:11:45.519 what I ended up doing was just having an 00:11:45.519 --> 00:11:49.440 actual directory in which I 00:11:49.440 --> 00:11:53.360 actually... with files, 00:11:53.360 --> 00:11:55.279 right? So I don't have much mocking 00:11:55.279 --> 00:11:57.120 I can do. I can't just do a bunch of fake 00:11:57.120 --> 00:11:58.639 files, fake directories. 00:11:58.639 --> 00:12:01.200 So I actually go through the process, 00:12:01.200 --> 00:12:03.360 actually create files, and then actually 00:12:03.360 --> 00:12:05.040 have Emacs pointing at this 00:12:05.040 --> 00:12:10.240 directory to process and get the information. 00:12:10.240 --> 00:12:12.240 So I have to define the key to test that 00:12:12.240 --> 00:12:13.920 it gets bound properly. 00:12:13.920 --> 00:12:18.160 I have to set the capture templates. 00:12:18.160 --> 00:12:19.839 The capture templates are how 00:12:19.839 --> 00:12:21.839 things get added. I have a wrapper 00:12:21.839 --> 00:12:25.600 control... org-gtd-capture essentially is 00:12:25.600 --> 00:12:27.279 a wrapper around the capture that 00:12:27.279 --> 00:12:29.920 makes sure the inbox is there and then 00:12:29.920 --> 00:12:32.000 captures to the inbox. 00:12:36.240 --> 00:12:39.360 Making sure the items show in the agenda 00:12:39.360 --> 00:12:41.519 when I'm done with the processing 00:12:41.519 --> 00:12:45.519 was a little bit tricky. I had a bug and I had to to fix it, 00:12:45.519 --> 00:12:50.480 so I just wrote this test, but it's it's pretty convenient now 00:12:50.480 --> 00:12:51.839 to have that, because it gives me a 00:12:51.839 --> 00:12:54.000 bunch of sanity. So again, I have a 00:12:54.000 --> 00:12:55.040 capture, and this is... 00:12:55.040 --> 00:12:56.000 I wanted to be able to do this 00:12:56.000 --> 00:12:59.680 automatically but org-capture itself 00:12:59.680 --> 00:13:02.079 is not super testable right now, 00:13:02.079 --> 00:13:03.200 so the way it's... 00:13:03.200 --> 00:13:04.480 the way you test it is just by 00:13:04.480 --> 00:13:07.519 programmatically calling it, which 00:13:07.519 --> 00:13:09.279 is not exactly what I wanted, because I 00:13:09.279 --> 00:13:10.639 wanted something more like 00:13:10.639 --> 00:13:13.200 the user action, but I'll... You know, what I 00:13:13.200 --> 00:13:15.519 can get. 00:13:15.519 --> 00:13:17.040 And then I can... I'll just insert these 00:13:17.040 --> 00:13:19.360 words into the buffer and then 00:13:19.360 --> 00:13:21.760 I'll finalize the capture. Then I have 00:13:21.760 --> 00:13:23.519 another... I have a test package here 00:13:23.519 --> 00:13:26.160 called with simulated input which 00:13:26.160 --> 00:13:29.920 basically calls this and then enters 00:13:29.920 --> 00:13:33.040 these user actions. Right, so 00:13:33.040 --> 00:13:34.800 like the letter s, 00:13:34.800 --> 00:13:39.040 C-c c and then RET. And that is, 00:13:39.040 --> 00:13:41.360 you know, choosing a single action, 00:13:41.360 --> 00:13:42.480 then finishing the edit, 00:13:42.480 --> 00:13:45.360 and then adding zero and not adding tags. 00:13:46.480 --> 00:13:48.639 As you can tell, there's a strong layer 00:13:48.639 --> 00:13:50.320 of disconnect between the tests 00:13:50.320 --> 00:13:56.560 and what they represent. That's a work in progress. 00:13:56.560 --> 00:13:59.680 I have four tests. 00:13:59.680 --> 00:14:02.320 It's not a lot, but I want to... I intend to 00:14:02.320 --> 00:14:05.040 add more as I keep on adding more behavior. 00:14:05.040 --> 00:14:09.519 I would like this to be eventually 00:14:09.519 --> 00:14:14.320 a sane starting point for GTD. 00:14:14.320 --> 00:14:16.079 There's a lot of people like 00:14:16.079 --> 00:14:18.720 like Andrea, like Rainer, like... 00:14:18.720 --> 00:14:20.959 I mean, if you search for Org Mode and 00:14:20.959 --> 00:14:22.160 GTD, you'll find 00:14:22.160 --> 00:14:25.279 a lot of blog entries, a lot of 00:14:25.279 --> 00:14:27.600 entries, a lot of articles that explain 00:14:27.600 --> 00:14:29.360 how to connect it together, how to think 00:14:29.360 --> 00:14:31.199 that way, how to use all the tools that 00:14:31.199 --> 00:14:34.880 Org Mode makes available. 00:14:34.880 --> 00:14:38.399 Hopefully, this package is a way to 00:14:38.399 --> 00:14:40.320 get started without having to write 00:14:40.320 --> 00:14:45.920 too much of your own code. 00:14:45.920 --> 00:14:47.279 Then eventually, you can move away from 00:14:47.279 --> 00:14:48.720 the package if you want, if you realize 00:14:48.720 --> 00:14:50.000 that you are developing different opinions 00:14:50.000 --> 00:14:52.000 and you don't want to... 00:14:52.000 --> 00:14:54.160 If GTD doesn't work this way for you, if 00:14:54.160 --> 00:14:55.519 you have a different way, 00:14:55.519 --> 00:14:57.839 it is a better fit for the way you want 00:14:57.839 --> 00:14:59.279 to organize your life, 00:14:59.279 --> 00:15:02.720 then move away from the package. 00:15:02.720 --> 00:15:05.920 In the meanwhile, I welcome all thoughts. 00:15:05.920 --> 00:15:07.839 I welcome contributions. I welcome 00:15:07.839 --> 00:15:10.079 questions, bug reports, everything 00:15:10.079 --> 00:15:13.920 So, you know, come say hi. Try the package. 00:15:13.920 --> 00:15:17.040 And yeah, see you. 00:15:17.040 --> 00:15:20.560 I'll see you online!