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