From 1382f294f31db304bb8c72857ecd258b346288bf Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Wed, 24 Jan 2024 13:30:50 -0500 Subject: update captions --- ...-projects-and-repos--alexey-bochkarev--main.vtt | 975 +++++++++++++-------- 1 file changed, 596 insertions(+), 379 deletions(-) (limited to '2023/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt') diff --git a/2023/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt b/2023/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt index 272d8d41..a10fafef 100644 --- a/2023/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt +++ b/2023/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt @@ -1,571 +1,788 @@ WEBVTT -00:00.000 --> 00:04.000 -Hello, I'm Alexey Bochkarev, and I'm talking about -00:04.000 --> 00:07.000 -unentangling projects and repositories, +00:00:01.220 --> 00:00:03.580 +Hello, I'm Alexey Bychkadov, -00:07.000 --> 00:10.000 -or maybe entangling them, depending on how you look at that. +00:00:03.740 --> 00:00:06.899 +and I'm talking about unentangling projects -00:12.000 --> 00:15.000 -So that's going to be a short workflow note. +00:00:06.899 --> 00:00:09.679 +and repositories, or maybe entangling them, -00:15.000 --> 00:19.000 +00:00:09.679 --> 00:00:11.340 +depending on how you look at that. + +00:00:12.980 --> 00:00:15.740 +So there's going to be a short workflow note. + +00:00:16.619 --> 00:00:19.460 I work as a researcher, -00:19.000 --> 00:23.000 -so there are three main components to my work, I guess. +00:00:19.940 --> 00:00:23.380 +So there are 3 main components to my work, + +00:00:23.680 --> 00:00:26.000 +I guess. First, I think, + +00:00:26.000 --> 00:00:28.140 +so I try to come up with a new ideas that + +00:00:28.140 --> 00:00:31.580 +usually results in some collection of notes I + +00:00:31.580 --> 00:00:33.760 +have. Second, I try things out. + +00:00:33.760 --> 00:00:36.180 +So it usually means that I write code. + +00:00:36.820 --> 00:00:38.540 +And third, I communicate. + +00:00:38.739 --> 00:00:40.739 +So I prepare papers, presentations, + +00:00:41.260 --> 00:00:43.160 +memos, and so on and so forth. + +00:00:44.120 --> 00:00:47.940 +And so The workflow problem I had is + +00:00:49.160 --> 00:00:53.000 +sometimes all this does not really fit into a + +00:00:53.000 --> 00:00:56.180 +concept of a single repository per project. + +00:00:56.200 --> 00:00:57.540 +So I might want to have, + +00:00:58.180 --> 00:01:01.160 +for example, a source code in 1 repository + +00:01:01.320 --> 00:01:03.480 +and then I would like to have a paper in + +00:01:03.480 --> 00:01:05.200 +another 1 and then I want to have a + +00:01:05.200 --> 00:01:08.620 +collection of notes somewhere unrelated to + +00:01:08.620 --> 00:01:12.500 +those 2. Emacs is pretty good at supporting + +00:01:12.500 --> 00:01:15.840 +your workflows and I figured I should share + +00:01:16.240 --> 00:01:18.100 +what I used and what works for me. + +00:01:20.560 --> 00:01:24.900 +So, from the technical perspective, + +00:01:26.479 --> 00:01:27.940 +things are pretty easy. + +00:01:27.940 --> 00:01:30.720 +So I use a collection of pretty standard + +00:01:30.720 --> 00:01:33.240 +components of Emacs. So it's a projectile org + +00:01:33.240 --> 00:01:35.360 +mode with this capture templates and other + +00:01:35.360 --> 00:01:38.100 +things. Then I sustained a collection of + +00:01:38.100 --> 00:01:40.360 +nodes in something that is called org-roam, + +00:01:40.680 --> 00:01:43.520 +which is essentially it's a glorified + +00:01:43.580 --> 00:01:45.580 +collection of org mode files. + +00:01:46.100 --> 00:01:48.160 +Then I used directory local variables, + +00:01:48.260 --> 00:01:51.140 +maybe a C text to jump through the source + +00:01:51.140 --> 00:01:54.920 +code and very, very little LELisp glue to + +00:01:54.920 --> 00:01:57.620 +make this all work, but that's not really + +00:01:58.620 --> 00:02:00.400 +rocket science. So that's the workflow I + +00:02:00.400 --> 00:02:02.180 +would like to talk about today. + +00:02:04.860 --> 00:02:07.120 +So what I mean by all that, + +00:02:07.960 --> 00:02:10.280 +it's pretty straightforward to make Emacs, + +00:02:10.680 --> 00:02:12.720 +to make it easy to jump around a single + +00:02:12.720 --> 00:02:14.980 +repository in Emacs. So if I, + +00:02:15.060 --> 00:02:16.640 +Now I have Doom Emacs, + +00:02:16.640 --> 00:02:18.740 +but that's not really specific to a Doom + +00:02:19.120 --> 00:02:23.160 +that'll work in any Emacs configuration. + +00:02:23.400 --> 00:02:27.720 +Well, key bindings might be different, + +00:02:27.720 --> 00:02:28.820 +but that's not the point, + +00:02:28.820 --> 00:02:29.940 +I guess, for the workflow. + +00:02:30.060 --> 00:02:31.960 +So if I hit space 2 times, + +00:02:31.960 --> 00:02:34.640 +I have all the list of files within my + +00:02:34.640 --> 00:02:38.200 +project, right? So if I create a couple of + +00:02:38.200 --> 00:02:42.780 +custom shortcuts, so if I press a magic + +00:02:42.780 --> 00:02:45.280 +button, hyper-OP, don't worry about + +00:02:45.280 --> 00:02:47.460 +hyper-key. So I want it to have a modifier + +00:02:47.560 --> 00:02:50.140 +key all to myself, so that would, + +00:02:50.320 --> 00:02:53.200 +no program on my computer would use that + +00:02:53.200 --> 00:02:55.680 +except Emacs. Emacs would use that only when + +00:02:55.680 --> 00:02:57.540 +I tell it to, so I have a hyper key instead + +00:02:57.540 --> 00:03:00.720 +of caps lock. That's pretty easy to do in GNU + +00:03:00.720 --> 00:03:04.940 +Linux system. So when I press this magic + +00:03:04.940 --> 00:03:07.400 +keys, I have a menu that's a normal key + +00:03:07.400 --> 00:03:09.940 +binding. Yeah, essentially an Emacs. + +00:03:10.240 --> 00:03:12.260 +And if I hit, for example, + +00:03:12.540 --> 00:03:15.200 +R, I end up in a readme file within this + +00:03:15.200 --> 00:03:17.320 +specific repository I was sitting in, + +00:03:17.320 --> 00:03:19.000 +right? So if I want to document something + +00:03:19.000 --> 00:03:21.420 +real quick, I go to the readme file. + +00:03:21.680 --> 00:03:25.280 +Then I could go to a change log file, + +00:03:25.280 --> 00:03:27.440 +right? So I have a list of changes and the + +00:03:27.440 --> 00:03:29.480 +way it works usually, for example, + +00:03:29.480 --> 00:03:31.140 +if I'm working in some code, + +00:03:32.220 --> 00:03:34.280 +I created a couple of dummy files in there, + +00:03:34.280 --> 00:03:36.560 +so I'm working in some code and then I + +00:03:36.560 --> 00:03:41.780 +implemented something and I can just use the + +00:03:42.020 --> 00:03:46.860 +org mode capture mechanisms to keep track of -00:23.000 --> 00:27.000 -First, I think, so I try to come up with new ideas, +00:03:46.860 --> 00:03:48.880 +what I want to discuss with colleagues next -00:27.000 --> 00:31.000 -and that usually results in some collection of notes I have. +00:03:48.880 --> 00:03:52.160 +time. For example, I could just hit capture -00:31.000 --> 00:35.000 -Second, I try things out, so it usually means that I write code. +00:03:52.440 --> 00:03:56.200 +repo specific changelog entry and I -00:35.000 --> 00:39.000 -And third, I communicate, so I prepare papers, +00:03:56.200 --> 00:04:02.620 +implemented a feature and I can continue -00:39.000 --> 00:43.000 -presentations, memos, and so on and so forth. +00:04:02.620 --> 00:04:04.340 +working without this context switching. -00:43.000 --> 00:47.000 -And so the workflow problem I had is +00:04:04.340 --> 00:04:06.500 +And then if I want to go to the change log, -00:47.000 --> 00:51.000 -sometimes all this does not really fit +00:04:06.880 --> 00:04:11.320 +well, it is there. And next time I talk to -00:51.000 --> 00:55.000 -into a concept of a single repository per project, +00:04:11.320 --> 00:04:12.720 +the colleagues about the source code, -00:55.000 --> 00:59.000 -so I might want to have, for example, +00:04:12.720 --> 00:04:14.340 +I can open the change log and go through -00:59.000 --> 01:03.000 -a source code in one repository, and then I would like to have a paper +00:04:14.340 --> 00:04:16.800 +entries 1 by 1 and discuss what I haven't -01:03.000 --> 01:07.000 -in another one, and then I want to have a collection of notes somewhere +00:04:16.800 --> 00:04:18.980 +implemented last time. -01:07.000 --> 01:11.000 -unrelated to those two. And yeah, +00:04:19.540 --> 00:04:22.580 +I could go to project specific, -01:11.000 --> 01:15.000 -Emacs is pretty good at supporting your workflows, and I figured I should +00:04:24.100 --> 00:04:26.320 +sorry, to repo specific to-do list. -01:15.000 --> 01:19.000 -share what I use and what works for me. +00:04:26.320 --> 00:04:29.020 +And I have list of to-dos that would leave -01:19.000 --> 01:23.000 -So, +00:04:29.020 --> 00:04:31.320 +within a repository. And for example, -01:23.000 --> 01:27.000 -from the technical perspective, things are +00:04:31.320 --> 00:04:34.020 +I could have a high level structure here, -01:27.000 --> 01:31.000 -pretty easy, so I use a collection of pretty standard components +00:04:34.640 --> 00:04:36.460 +work distribution between team members and -01:31.000 --> 01:35.000 -of Emacs, so it's a projectile org-mode with its capture templates and other +00:04:36.460 --> 00:04:39.380 +other things that sort of face outer world, -01:35.000 --> 01:39.000 -things. Then I sustain a collection of notes in something +00:04:39.380 --> 00:04:41.260 +so to speak. And of course, -01:39.000 --> 01:43.000 -that is called org-roam, which is, well, essentially, it's a glorified +00:04:42.840 --> 00:04:45.400 +there are very many ways to jump through the -01:43.000 --> 01:47.000 -collection of org-mode files. Then I use directory +00:04:45.400 --> 00:04:46.420 +source code conveniently. -01:47.000 --> 01:51.000 -local variables, maybe a ctext to jump through the source code, +00:04:46.560 --> 00:04:49.960 +I ended up not using language servers I use a -01:51.000 --> 01:55.000 -and very, very little Elisp glue to make this +00:04:49.960 --> 00:04:53.320 +special program called ctags and so the way -01:55.000 --> 01:59.000 -all work, but that's not really rocket science. +00:04:53.320 --> 00:04:56.420 +it works is just I call projectile regenerate -01:59.000 --> 02:03.000 -So that's the workflow I would like to talk about today. +00:04:56.680 --> 00:05:00.460 +tags and it creates the special tags file -02:03.000 --> 02:07.000 -So, what I mean by all that, +00:05:00.460 --> 00:05:05.260 +within the repository and then I can again -02:07.000 --> 02:11.000 -it's pretty straightforward to make +00:05:06.240 --> 00:05:11.260 +run it I usually just hit a single keystroke -02:11.000 --> 02:15.000 -it easy to jump around a single repository in Emacs. +00:05:11.520 --> 00:05:14.060 +and here is all the symbols that are there in -02:15.000 --> 02:19.000 -Now, I have Doom Emacs, but that's not really specific to Doom. +00:05:14.060 --> 00:05:17.160 +my source code, regardless of the language, -02:19.000 --> 02:23.000 -That'll work in any Emacs configuration. +00:05:17.160 --> 00:05:19.540 +right? So I can jump to the main function and -02:23.000 --> 02:27.000 -Well, kbindings might be +00:05:19.540 --> 00:05:21.020 +that'll be a C++ file. -02:27.000 --> 02:31.000 -different, but that's not the point, I guess, for the workflow. So, if I hit space +00:05:21.020 --> 00:05:22.740 +Or I could go to the super function, -02:31.000 --> 02:35.000 -two times, I have all the list of files within my project. +00:05:22.740 --> 00:05:25.340 +which I had in my Python file. -02:35.000 --> 02:39.000 -So, if I create a couple of custom shortcuts, +00:05:25.380 --> 00:05:27.120 +And this comes in pretty convenient if I have -02:39.000 --> 02:43.000 -so if I press a magic button, +00:05:27.120 --> 00:05:28.220 +a mixture of languages. -02:43.000 --> 02:47.000 -hyperlp, don't worry about hyperkey, so I want it to have a +00:05:28.360 --> 00:05:30.800 +Sometimes I can have some algorithm specific -02:47.000 --> 02:51.000 -modifier key all to myself, so that would, no program +00:05:30.800 --> 00:05:33.000 +code in Julia, and then I can have some -02:51.000 --> 02:55.000 -on my computer would use that except Emacs, and Emacs would +00:05:33.280 --> 00:05:35.380 +Python glue within the same source code -02:55.000 --> 02:59.000 -use that only when I tell it to, so I have a hyperkey instead of caps lock, that's pretty easy +00:05:35.380 --> 00:05:37.940 +repository, it makes it really convenient to -02:59.000 --> 03:03.000 -to do in GNU Linux system. So, +00:05:39.720 --> 00:05:41.780 +jump between all of those. -03:03.000 --> 03:07.000 -when I press this magic keys, I have a menu that's a normal +00:05:43.080 --> 00:05:46.980 +But I have a few problems here. -03:07.000 --> 03:11.000 -kbinding, yeah, essentially in Emacs, and +00:05:47.360 --> 00:05:49.800 +So just to give you a little bit of context, -03:11.000 --> 03:15.000 -if I hit, for example, R, I end up in a readme file within +00:05:49.860 --> 00:05:53.100 +for example, here is a real project that -03:15.000 --> 03:19.000 -this specific repository I was sitting in, right, so if I want to document something +00:05:53.100 --> 00:05:54.440 +corresponds to real paper. -03:19.000 --> 03:23.000 -real quick, I go to the readme file. Then I could have, I could +00:05:55.840 --> 00:05:59.060 +I have a single note about that project where -03:23.000 --> 03:27.000 -go to a changelog file, right, so I have a list of changes +00:05:59.060 --> 00:06:01.780 +I keep all the things related to that project -03:27.000 --> 03:31.000 -and the way it works, usually, for example, if I'm working on some code, +00:06:01.780 --> 00:06:03.260 +here, but that's a private note. -03:31.000 --> 03:35.000 -I created a couple of dummy files in there, so +00:06:03.260 --> 00:06:04.860 +So for example, again, -03:35.000 --> 03:39.000 -I'm working on some code, and then I implemented something, and I can +00:06:04.860 --> 00:06:08.040 +I hit a special key that invokes my org-roam -03:39.000 --> 03:43.000 -just use the org mode capture +00:06:08.640 --> 00:06:12.680 +function that gives me a menu of my notes. -03:43.000 --> 03:47.000 -mechanisms to keep track of what +00:06:13.080 --> 00:06:15.200 +And so here is the paper, -03:47.000 --> 03:51.000 -I want to discuss with colleagues next time, for example, I could just hit +00:06:15.200 --> 00:06:17.500 +essentially. And I can have a paper timeline, -03:51.000 --> 03:55.000 -capture repo specific changelog entry +00:06:17.900 --> 00:06:21.180 +and I can have a list of all the dates what -03:55.000 --> 03:59.000 -and I implemented a feature +00:06:21.180 --> 00:06:23.940 +happened to the paper with links to my email, -03:59.000 --> 04:03.000 -and I can continue working +00:06:24.060 --> 00:06:27.700 +right? So for example if I hit this link that -04:03.000 --> 04:07.000 -without this context switching, and then if I want to go to the changelog, +00:06:27.700 --> 00:06:30.160 +will open a specific email and that doesn't -04:07.000 --> 04:11.000 -well, it is there, and next time I talk +00:06:30.160 --> 00:06:31.280 +work outside of my computer, -04:11.000 --> 04:15.000 -to the colleagues about the source code, I can open the changelog and go through entries one by one +00:06:31.280 --> 00:06:33.140 +doesn't make any sense to keep it in the -04:15.000 --> 04:19.000 -and discuss what I have implemented last time. +00:06:33.340 --> 00:06:35.500 +outer world facing repository, -04:19.000 --> 04:23.000 -I could go to project specific +00:06:35.500 --> 00:06:37.360 +for example. So that's something to myself, -04:23.000 --> 04:27.000 -to, sorry, to repo specific to-do list, and I have +00:06:37.360 --> 00:06:41.420 +right? Sometimes I want to have like this -04:27.000 --> 04:31.000 -a list of to-dos that would live within a repository, and +00:06:41.480 --> 00:06:43.940 +list of working notes, -04:31.000 --> 04:35.000 -for example, I could have a high-level structure here, +00:06:43.940 --> 00:06:45.780 +right, that contain like, -04:35.000 --> 04:39.000 -work distribution between team members and other things that sort of face +00:06:45.780 --> 00:06:49.200 +for example, yeah, I might produce this kind -04:39.000 --> 04:43.000 -the world, so to speak, and of course, +00:06:49.200 --> 00:06:50.620 +of things for internal discussion, -04:43.000 --> 04:47.000 -there are very many ways to jump through the source code conveniently, +00:06:50.640 --> 00:06:52.500 +right? It has some marks, -04:47.000 --> 04:51.000 -I ended up not using language servers, I used a special program called +00:06:52.500 --> 00:06:54.620 +it has some margin notes and things like -04:51.000 --> 04:55.000 -ctags, and so the way it works is just I call +00:06:54.620 --> 00:06:57.620 +that. Maybe again, health-based ideas that -04:55.000 --> 04:59.000 -projectile regenerate tags, and it creates the special +00:06:57.620 --> 00:07:00.300 +may or may not end up in a repository, -04:59.000 --> 05:03.000 -tags file within the repository, +00:07:01.020 --> 00:07:03.220 +in the final paper or in a source code, -05:03.000 --> 05:07.000 -and then I can, again, run +00:07:03.220 --> 00:07:05.880 +but still I want to have it somewhere. -05:07.000 --> 05:11.000 -I usually just hit a single keystroke, +00:07:07.120 --> 00:07:08.600 +And well, long story short, -05:11.000 --> 05:15.000 -and here is all the symbols that are there in my +00:07:08.800 --> 00:07:11.680 +I need a project folder that would be -05:15.000 --> 05:19.000 -source code, regardless of the language, right, so I can jump to the main function +00:07:11.680 --> 00:07:16.120 +unrelated to the source code or to the source -05:19.000 --> 05:23.000 -and that'll be a C++ file, or I could go to the super function, which I +00:07:16.120 --> 00:07:19.440 +code repository or to the paper itself or a -05:23.000 --> 05:27.000 -had in my Python file, and this comes in pretty convenient if I have +00:07:19.440 --> 00:07:22.780 +final report, right? And 1 way, -05:27.000 --> 05:31.000 -a mixture of languages, so sometimes I can have some algorithm-specific code +00:07:22.960 --> 00:07:24.720 +as usual, there are multiple ways to achieve -05:31.000 --> 05:35.000 -in Julia, and then I can have some Python glue within the same +00:07:24.720 --> 00:07:27.660 +that, I suppose. And 1 way to do that is, -05:35.000 --> 05:39.000 -source code repository, and it makes it really convenient to jump +00:07:29.040 --> 00:07:33.160 +so I create a special folder within my -05:39.000 --> 05:43.000 -between all of those, right, +00:07:33.160 --> 00:07:38.100 +org-roam storage. So it's a special folder -05:43.000 --> 05:47.000 -but I have a few problems here, +00:07:38.240 --> 00:07:40.940 +outside of Henry Postories that got backed up -05:47.000 --> 05:51.000 -just to give you a little bit of context, for example, here is the +00:07:40.940 --> 00:07:43.940 +to my hard drive with certain redundancy, -05:51.000 --> 05:55.000 -a real project that corresponds to a real paper, +00:07:44.080 --> 00:07:46.720 +but I don't really need like version control, -05:55.000 --> 05:59.000 -I have a single note about that project, +00:07:46.720 --> 00:07:48.280 +full blown version control for that. -05:59.000 --> 06:03.000 -where I keep all the things related to that project here, but that's a private +00:07:48.280 --> 00:07:49.760 +I'm okay with just having a couple of -06:03.000 --> 06:07.000 -note, so for example, again, I hit a special key that +00:07:49.760 --> 00:07:52.900 +backups, right? So this is the folder you see -06:07.000 --> 06:11.000 -invokes my org-roam function that gives me a menu of my +00:07:52.900 --> 00:07:55.320 +here. So PKB stands for personal knowledge -06:11.000 --> 06:15.000 -notes, and so here is the paper, +00:07:55.320 --> 00:07:58.020 +base, and I have a folder project notes in -06:15.000 --> 06:19.000 -essentially, and I can have a paper timeline, and I can +00:07:58.020 --> 00:08:01.520 +there, right? So, and How does it work? -06:19.000 --> 06:23.000 -have a list of all the dates, what happened to the paper, with links +00:08:01.680 --> 00:08:04.940 +So I have a folder per project in there, -06:23.000 --> 06:27.000 -to my email, right, so for example, if I hit this link, +00:08:05.020 --> 00:08:07.900 +essentially. And here I can have all the -06:27.000 --> 06:31.000 -that'll open a specific email, and that doesn't work outside of my +00:08:07.900 --> 00:08:11.480 +stuff that kind of belongs to me and I do not -06:31.000 --> 06:35.000 -computer, it doesn't make any sense to keep it in the outer world-facing +00:08:11.480 --> 00:08:14.180 +publish it anywhere. And then, -06:35.000 --> 06:39.000 -repository, for example, so that's something to myself, right, sometimes I want +00:08:15.420 --> 00:08:20.280 +For example, a source code repository knows -06:39.000 --> 06:43.000 -to have, like, this list of +00:08:20.460 --> 00:08:23.240 +about that folder and a paper repository -06:43.000 --> 06:47.000 -working notes, right, that contain, like, for example, +00:08:23.460 --> 00:08:25.120 +knows about that folder. -06:47.000 --> 06:51.000 -I might produce this kind of things for internal discussion, right, +00:08:25.120 --> 00:08:26.820 +And anything else that might leave in -06:51.000 --> 06:55.000 -it has some marks, it has some margin notes, and things like that, +00:08:26.820 --> 00:08:28.820 +separate places all over my system can know -06:55.000 --> 06:59.000 -maybe, again, health-based ideas that may or may not end up +00:08:28.820 --> 00:08:30.800 +about that folder. How do I achieve that? -06:59.000 --> 07:03.000 -in a repository, in a final paper, or in a source code, +00:08:30.940 --> 00:08:33.539 +Well, essentially this is 1 of the use cases -07:03.000 --> 07:07.000 -but still I want to have it somewhere, and +00:08:34.400 --> 00:08:35.940 +for the directory local variables, -07:07.000 --> 07:11.000 -well, long story short, I need a project folder +00:08:36.360 --> 00:08:39.100 +right? So for example, -07:11.000 --> 07:15.000 -that would be unrelated to the source code, or +00:08:39.520 --> 00:08:41.539 +how does it work from the user perspective? -07:15.000 --> 07:19.000 -to the source code repository, or to the paper itself, +00:08:41.580 --> 00:08:43.760 +So if I hit a special key, -07:19.000 --> 07:23.000 -or a final report, right, and one way, +00:08:44.380 --> 00:08:46.900 +oh, sorry, if I hit a special key, -07:23.000 --> 07:27.000 -as usual, there are multiple ways to achieve that, I suppose, and one way to do that +00:08:48.280 --> 00:08:51.060 +that would be open project. -07:27.000 --> 07:31.000 -is, so, I create +00:08:51.680 --> 00:08:55.920 +And then for example, org mode file, -07:31.000 --> 07:35.000 -a special folder within my org-roam +00:08:55.920 --> 00:08:58.260 +right? So this is my personal notes about the -07:35.000 --> 07:39.000 -storage, so it's a special folder outside of any +00:08:58.260 --> 00:09:01.260 +maxconf, not specifically about this very -07:39.000 --> 07:43.000 -repositories that got backed up to my hard drive, with +00:09:01.260 --> 00:09:02.580 +talk, but I can have, you know, -07:43.000 --> 07:47.000 -certain redundancy, but I don't really need, like, version control, full-blown +00:09:02.580 --> 00:09:04.580 +the house baked ideas here again, -07:47.000 --> 07:51.000 -version control for that, I'm okay with just having a couple of backups, right, so +00:09:04.760 --> 00:09:06.680 +presentation tools and things like that. -07:51.000 --> 07:55.000 -this is the folder you see here, so pkb stands for personal knowledge +00:09:07.440 --> 00:09:09.860 +And how does that happen? -07:55.000 --> 07:59.000 -base, and I have a folder, project notes in there, right, so +00:09:09.940 --> 00:09:13.080 +If we try to like look at the code, -07:59.000 --> 08:03.000 -and, how does it work, so I have a +00:09:13.080 --> 00:09:14.660 +the e-list magic here, -08:03.000 --> 08:07.000 -folder per project in there, essentially, and here I can +00:09:15.040 --> 00:09:17.560 +what is happening is it's just a couple of -08:07.000 --> 08:11.000 -have all the stuff that is, that kind of belongs to me, and I +00:09:17.560 --> 00:09:18.720 +lines of code, in fact, -08:11.000 --> 08:15.000 -do not publish it anywhere, and then +00:09:18.720 --> 00:09:21.100 +so let me just press Control, -08:15.000 --> 08:19.000 -for example, a source code +00:09:22.540 --> 00:09:28.140 +help key. And so the key I was pressing is -08:19.000 --> 08:23.000 -repository knows about that folder, and a paper repository +00:09:28.140 --> 00:09:30.220 +open project or my file. -08:23.000 --> 08:27.000 -knows about that folder, and anything else that might live in separate +00:09:30.480 --> 00:09:32.220 +And so what we see here, -08:27.000 --> 08:31.000 -places all over my system can know about that folder, and how do I achieve that, +00:09:32.220 --> 00:09:34.760 +there is a single, so it's just a call to a -08:31.000 --> 08:35.000 -well, essentially, this is one of the use cases for the directory +00:09:34.760 --> 00:09:37.200 +find file function. So I opened that file and -08:35.000 --> 08:39.000 -local variables, right, so, for example, +00:09:37.200 --> 00:09:40.580 +there is a special function that figures out -08:39.000 --> 08:43.000 -how does it work from the user perspective, so if I hit a special +00:09:40.580 --> 00:09:44.620 +what is the like umbrella project nose file -08:43.000 --> 08:47.000 -key, oh, sorry, if I hit a special key +00:09:44.620 --> 00:09:46.600 +and that's, again, that's very easy. -08:47.000 --> 08:51.000 -that would be open project +00:09:47.380 --> 00:09:51.420 +So essentially if a variable describing this, -08:51.000 --> 08:55.000 -and then, for example, +00:09:51.820 --> 00:09:54.860 +the name for that project is defined, -08:55.000 --> 08:59.000 -org mode file, right, so this is my personal notes about the emacs conf, not +00:09:54.860 --> 00:09:57.440 +then I use that as my project folder name. -08:59.000 --> 09:03.000 -specifically about this very talk, but I can have, you know, +00:09:57.440 --> 00:09:59.700 +If not, I take the project name from the -09:03.000 --> 09:07.000 -half-baked ideas here, again, presentation tools, and things like that, +00:10:00.480 --> 00:10:03.340 +project tile. Well, that's pretty much it. -09:07.000 --> 09:11.000 -and how does that happen if we try to +00:10:03.340 --> 00:10:08.800 +And how do I define this variable? -09:11.000 --> 09:15.000 -look at the code, the elisp magic here, what +00:10:09.280 --> 00:10:12.500 +Is essentially there is this magical file in -09:15.000 --> 09:19.000 -is happening is, it's just a couple lines of code, in fact, so +00:10:12.500 --> 00:10:14.160 +a folder called dear locals, -09:19.000 --> 09:23.000 -let me just press control, help +00:10:14.440 --> 00:10:17.380 +elist. And I just put it there. -09:23.000 --> 09:27.000 -key, and so the key I was +00:10:17.440 --> 00:10:20.380 +And then whenever I go into that folder or -09:27.000 --> 09:31.000 -pressing is open project org mode file, and so +00:10:20.380 --> 00:10:22.300 +any of its children folders, -09:31.000 --> 09:35.000 -what we see here, there is a single, so it's just a call to a find +00:10:22.300 --> 00:10:23.860 +I get this variable defined. -09:35.000 --> 09:39.000 -file function, so I open that file, and there is a special function that +00:10:24.840 --> 00:10:26.260 +And that's pretty much it. -09:39.000 --> 09:43.000 -figures out what is the, like, umbrella +00:10:26.280 --> 00:10:28.880 +That's how it works for me. -09:43.000 --> 09:47.000 -project notes file, and that's, again, that's very easy, so +00:10:31.860 --> 00:10:34.620 +I guess 1 thing that I wanted to emphasize -09:47.000 --> 09:51.000 -essentially, if a variable describing this +00:10:35.380 --> 00:10:37.360 +specifically about that is of course, -09:51.000 --> 09:55.000 -the name for that project is defined, then +00:10:37.940 --> 00:10:39.720 +it is a time tracking, -09:55.000 --> 09:59.000 -I use that as my project folder name, if not, I take the project name from the +00:10:39.720 --> 00:10:42.260 +right? So what is I find especially important -09:59.000 --> 10:03.000 -project towel, and well, that's pretty much it, +00:10:42.260 --> 00:10:44.280 +when I work in something and I want to clock -10:03.000 --> 10:07.000 -and how do I define this +00:10:44.340 --> 00:10:47.620 +time, I usually do not want this information -10:07.000 --> 10:11.000 -variable is, essentially, there is this +00:10:47.800 --> 00:10:50.340 +to be in a source code repository or in a -10:11.000 --> 10:15.000 -magical file in a folder called dear locals elisp, +00:10:50.340 --> 00:10:52.600 +paper repository because other people I work -10:15.000 --> 10:19.000 -and I just put it there, and then, whenever I +00:10:52.600 --> 00:10:54.840 +with will not be particularly happy about -10:19.000 --> 10:23.000 -go into that folder, or any of its children folders, I get this +00:10:54.840 --> 00:10:57.540 +that, especially if most of them do not use -10:23.000 --> 10:27.000 -variable defined, and that's pretty much it, that's how +00:10:57.540 --> 00:11:00.720 +Emacs and they'll see this long list of org -10:27.000 --> 10:31.000 -it works for me. +00:11:00.720 --> 00:11:03.820 +clocked data and that doesn't look nice in a -10:31.000 --> 10:35.000 -I guess one thing that I wanted to emphasize +00:11:03.820 --> 00:11:07.540 +plain text format. So what I usually do if I -10:35.000 --> 10:39.000 -specifically about that is, of course, it's +00:11:07.540 --> 00:11:10.240 +want to clock in some time and then later -10:39.000 --> 10:43.000 -time tracking, right, so what I find especially important when I work in +00:11:10.240 --> 00:11:12.560 +analyze what I've been spending time on, -10:43.000 --> 10:47.000 -something, and I want to clock time, I usually do not want +00:11:12.560 --> 00:11:16.880 +so I go to my org mode file and I go to the, -10:47.000 --> 10:51.000 -this information to be in a source code repository or in a paper repository +00:11:16.880 --> 00:11:21.820 +my current project to-dos and I clock in -10:51.000 --> 10:55.000 -because other people I work with will not be particularly happy about that +00:11:21.820 --> 00:11:23.940 +there. And that's how it works. -10:55.000 --> 10:59.000 -especially if most of them do not use Emacs, and they will see +00:11:23.940 --> 00:11:28.860 +So again, what comes in handy, -10:59.000 --> 11:03.000 -this long list of org clocked data, and that doesn't look +00:11:28.860 --> 00:11:31.500 +if I hit Control O, I just go back to the -11:03.000 --> 11:07.000 -nice in a plain text format, so what I usually +00:11:31.500 --> 00:11:34.240 +file I jumped in into and that's I jumped -11:07.000 --> 11:11.000 -do if I want to clock in some time, and then later analyze what I've +00:11:34.240 --> 00:11:35.900 +from so that's also pretty handy. -11:11.000 --> 11:15.000 -been spending time on, so I go to my org mode file +00:11:36.220 --> 00:11:38.800 +So again no no rocket science in there. -11:15.000 --> 11:19.000 -and I go to my current project +00:11:40.380 --> 00:11:42.660 +So I create a directory local variable that -11:19.000 --> 11:23.000 -to-dos, and I clock in there, and that's +00:11:42.660 --> 00:11:46.100 +helps me to figure out what umbrella project -11:23.000 --> 11:27.000 -how it works, so again +00:11:46.620 --> 00:11:49.720 +does this particular folder belongs to. -11:27.000 --> 11:31.000 -what comes in handy if I hit ctrl-o, I just go +00:11:49.940 --> 00:11:53.260 +And this way I make Emacs aware of, -11:31.000 --> 11:35.000 -back to the file I jumped from, so that's also +00:11:53.260 --> 00:11:54.480 +for example, facts like, -11:35.000 --> 11:39.000 -pretty handy, so again, no rocket science in there +00:11:54.480 --> 00:11:56.740 +so this source code belongs to that project. -11:39.000 --> 11:43.000 -so I create a directory local variable that helps me +00:11:56.740 --> 00:11:59.080 +And this paper, this repository with a paper -11:43.000 --> 11:47.000 -to figure out what umbrella project does +00:11:59.180 --> 00:12:00.640 +also belongs to that project. -11:47.000 --> 11:51.000 -this particular folder belongs to, and this way +00:12:01.060 --> 00:12:04.040 +And I can have capture templates that would -11:51.000 --> 11:55.000 -I make Emacs aware of, for example, facts like so this +00:12:04.060 --> 00:12:07.580 +save my notes into the my private notes file -11:55.000 --> 11:59.000 -source code belongs to that project, and this repository with the paper +00:12:07.800 --> 00:12:10.460 +and my to-dos and go to my private note files -11:59.000 --> 12:03.000 -also belongs to that project, and I can have capture templates +00:12:10.920 --> 00:12:12.260 +and so on and so forth. -12:03.000 --> 12:07.000 -that would save my notes into my private notes +00:12:12.260 --> 00:12:15.520 +So I find it pretty simple but that really -12:07.000 --> 12:11.000 -file, and my to-dos go to my private note files +00:12:15.520 --> 00:12:19.540 +helps to reduce this context switching. -12:11.000 --> 12:15.000 -and so on and so forth, so I find it pretty simple, but +00:12:19.600 --> 00:12:22.040 +And I don't believe it allows me to save -12:15.000 --> 12:19.000 -that really helps to reduce this context +00:12:22.040 --> 00:12:26.260 +time, but that probably helps me to stay -12:19.000 --> 12:23.000 -switching, and I don't believe it allows me to save time +00:12:26.260 --> 00:12:28.420 +focused. And this is what is really -12:23.000 --> 12:27.000 -but that probably helps me to stay focused, and this +00:12:28.420 --> 00:12:31.400 +important, I believe. So thank you very much. -12:27.000 --> 12:31.000 -is what is really important, I believe, so thank you +00:12:31.400 --> 00:12:33.220 +And if you have any comments or suggestions -12:31.000 --> 12:35.000 -very much, and if you have any comments or suggestions to that, please do jump +00:12:33.320 --> 00:12:35.940 +to that, please do jump into the discussion. -12:35.000 --> 12:39.000 -into the discussion, yeah, after the talk, thank you. +00:12:37.120 --> 00:12:38.900 +Yeah, after the talk, thank you. -- cgit v1.2.3