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