WEBVTT
00:00:00.240 --> 00:00:01.520
([Amin Bandali]: I mean, we are ahead of
the schedule
00:00:01.520 --> 00:00:03.679
a little bit, but I mean we also were
00:00:03.679 --> 00:00:05.680
a little bit earlier in the day.
00:00:05.680 --> 00:00:09.040
Yeah, I'd say that's fine. Go for it.
00:00:09.040 --> 00:00:10.800
Take it away.)
00:00:10.800 --> 00:00:14.240
[Leo Vivier]: Sure. Thank you. So am I live already?
00:00:14.240 --> 00:00:16.640
[Amin]: Yep, you're live.
00:00:16.640 --> 00:00:17.359
[Leo]: Hello
00:00:17.359 --> 00:00:18.880
Splendid. So I'll just start the timer to
00:00:18.880 --> 00:00:20.720
make sure that I don't go overboard.
00:00:20.720 --> 00:00:22.720
All right. ([BBB:] you are now muted) Okay, good
00:00:22.720 --> 00:00:24.160
to go now.
00:00:24.160 --> 00:00:26.960
Hello again, everyone! I hope you had,
00:00:26.960 --> 00:00:28.240
well, quite a lot of talks
00:00:28.240 --> 00:00:30.880
ever since the last one I did, and all
00:00:30.880 --> 00:00:32.000
more interesting
00:00:32.000 --> 00:00:35.040
one after the other.
00:00:35.040 --> 00:00:36.559
You know, I'm a bit in a bit of a weird
00:00:36.559 --> 00:00:38.239
spot right now, because I'm supposed to
00:00:38.239 --> 00:00:40.239
be presenting to you (as you can see on
my screen)
00:00:40.239 --> 00:00:42.879
"One big-ass Org file or multiple tiny ones:
00:00:42.879 --> 00:00:44.960
finally, the end of the debate,"
00:00:44.960 --> 00:00:48.160
and it sounds about as clickbaity
00:00:48.160 --> 00:00:49.760
as you can possibly get with those
00:00:49.760 --> 00:00:51.280
topics. By the way,
00:00:51.280 --> 00:00:54.000
credit where credit is due, the title
00:00:54.000 --> 00:00:55.760
is not mine. It's actually from Bastien
00:00:55.760 --> 00:00:57.039
Guerry, the current Org
00:00:57.039 --> 00:01:00.719
maintainer. Yeah, I wanted to
00:01:00.719 --> 00:01:03.199
talk to you a little bit today about
00:01:03.199 --> 00:01:04.879
this question because
00:01:04.879 --> 00:01:07.600
if you are used to going on
reddit.com/r/emacs ,
00:01:07.600 --> 00:01:09.600
you know the subreddit that we
have,
00:01:09.600 --> 00:01:11.840
if you go on Hacker News often, you know
00:01:11.840 --> 00:01:13.200
it's a question that
00:01:13.200 --> 00:01:16.000
you see pop up every once in a while.
00:01:16.000 --> 00:01:17.520
"Should I be using
00:01:17.520 --> 00:01:20.640
one big file, or should I be using
00:01:20.640 --> 00:01:24.799
a lot of tiny files?" I believe you
know
00:01:24.799 --> 00:01:27.600
we've got defenders on both sides. If I
00:01:27.600 --> 00:01:29.520
just show you one example...
00:01:29.520 --> 00:01:32.479
We have Karl Voit. He's one
00:01:32.479 --> 00:01:35.280
of the organizers for the conference.
00:01:35.280 --> 00:01:37.920
He is the guy who probably has the
00:01:37.920 --> 00:01:40.000
biggest Org Mode files
00:01:40.000 --> 00:01:42.000
right now in all the people I know, and
00:01:42.000 --> 00:01:43.759
god knows I know plenty of people use
00:01:43.759 --> 00:01:44.479
Org Mode.
00:01:44.479 --> 00:01:46.880
But if you just look at this line--I hope
00:01:46.880 --> 00:01:48.320
it's not too small; you just
00:01:48.320 --> 00:01:51.360
make it a little larger--but
00:01:51.360 --> 00:01:56.719
Karl basically has a file with
00:01:56.719 --> 00:02:01.759
126,000 lines. I'm just going to pause
00:02:01.759 --> 00:02:04.560
and try to have you imagine how large a
00:02:04.560 --> 00:02:06.399
file it actually is.
00:02:06.399 --> 00:02:08.399
Just think about all of these lines
00:02:08.399 --> 00:02:10.000
being tasks in your days.
00:02:10.000 --> 00:02:13.200
Think about all those lines being about
little thoughts
00:02:13.200 --> 00:02:14.400
you know that you've had throughout the
00:02:14.400 --> 00:02:17.200
day or project that you were working on.
00:02:17.200 --> 00:02:19.680
It's massive. You know one of the
00:02:19.680 --> 00:02:23.920
problems that Karl Voit actually
approaches on
00:02:23.920 --> 00:02:27.680
this topic is that it takes him roughly
00:02:27.680 --> 00:02:30.160
20 seconds to get his Org agenda going,
00:02:30.160 --> 00:02:32.400
which is a massive amount of time.
00:02:32.400 --> 00:02:35.680
I mean, we have very fast computers now.
00:02:35.680 --> 00:02:37.720
You know, ever since Emacs was created in
00:02:37.720 --> 00:02:42.319
1976, computers... I have no idea how much faster
00:02:42.319 --> 00:02:43.440
they've gotten.
00:02:43.440 --> 00:02:47.760
And yet, you know, for 100,000 lines,
00:02:47.760 --> 00:02:49.599
Emacs seems to be choking. It's
00:02:49.599 --> 00:02:51.120
certainly not reasonable, in a way, to
00:02:51.120 --> 00:02:52.720
have to wait 20 seconds
00:02:52.720 --> 00:02:55.360
just for your entire file to be parsed.
00:02:55.360 --> 00:02:57.040
So basically what I want to do--
00:02:57.040 --> 00:02:58.480
By the way, I forgot to introduce the
00:02:58.480 --> 00:03:00.879
presentation, but I'm Leo Vivier. I did this
00:03:00.879 --> 00:03:02.879
before, for those who were around.
00:03:02.879 --> 00:03:05.519
I help maintain a software which
00:03:05.519 --> 00:03:06.640
is called org-roam,
00:03:06.640 --> 00:03:08.560
and that's the expertise that I have on
00:03:08.560 --> 00:03:09.840
the topic.
00:03:09.840 --> 00:03:11.760
Actually, if you go online, I do have a
00:03:11.760 --> 00:03:13.599
Github page. I will make sure that you
00:03:13.599 --> 00:03:15.440
have all the links available afterwards.
00:03:15.440 --> 00:03:18.640
But I do publish my init files,
00:03:18.640 --> 00:03:20.720
and you can see, if you scroll at the
00:03:20.720 --> 00:03:22.319
bottom, I have a little demonstration
00:03:22.319 --> 00:03:23.200
which shows you
00:03:23.200 --> 00:03:25.519
the fancy things that I can do with my
00:03:25.519 --> 00:03:28.159
Org Mode setup. That might be even
interesting
00:03:28.159 --> 00:03:30.720
in light of the talk you've just had
00:03:30.720 --> 00:03:32.319
about GTD stuff, because
00:03:32.319 --> 00:03:34.080
the first one is about how I handle my
00:03:34.080 --> 00:03:36.159
projects, the second one is about
00:03:36.159 --> 00:03:39.680
the flow from a task as I work on it...
00:03:39.680 --> 00:03:41.519
So I won't spend too much time on
this, but
00:03:41.519 --> 00:03:43.120
basically that's my expertise.
00:03:43.120 --> 00:03:45.440
I have spent eight years
00:03:45.440 --> 00:03:46.959
working with Org Mode,
00:03:46.959 --> 00:03:48.959
three of them actually thinking about
00:03:48.959 --> 00:03:50.720
writing packages.
00:03:50.720 --> 00:03:54.080
The thing is, if I go into a little
00:03:54.080 --> 00:03:55.680
bit of detail (and obviously it's only a
00:03:55.680 --> 00:03:57.760
lighting talk, so I won't have time to
00:03:57.760 --> 00:04:00.720
actually go really in depth about it), but
00:04:00.720 --> 00:04:01.840
there is something
00:04:01.840 --> 00:04:03.599
in the Org Mode library which is
00:04:03.599 --> 00:04:05.200
called org-element.
00:04:05.200 --> 00:04:07.000
You have the name right there,
00:04:07.000 --> 00:04:08.319
org-element.el,
00:04:08.319 --> 00:04:12.319
.el being for Elisp file. As you
can see,
00:04:12.319 --> 00:04:14.799
the page is on the Worg wiki, so it's
00:04:14.799 --> 00:04:16.239
accessible by everyone.
00:04:16.239 --> 00:04:19.280
It's basically the API that
00:04:19.280 --> 00:04:23.759
Org Mode uses to parse Org Mode files.
00:04:23.759 --> 00:04:26.400
For those who don't know, parsing
00:04:26.400 --> 00:04:27.199
means basically
00:04:27.199 --> 00:04:29.360
checking a file, checking all the contents
00:04:29.360 --> 00:04:30.880
of the file, and extracting all the
00:04:30.880 --> 00:04:32.880
information that we need from that file.
00:04:32.880 --> 00:04:34.960
As you can imagine, you all have
00:04:34.960 --> 00:04:36.560
Org Mode files in your mind,
00:04:36.560 --> 00:04:38.240
well you know they can be fairly complex.
00:04:38.240 --> 00:04:39.840
You can have properties,
00:04:39.840 --> 00:04:41.759
you can have contextual information, like
00:04:41.759 --> 00:04:43.040
if you write a line
00:04:43.040 --> 00:04:45.199
which starts at column zero (which means
00:04:45.199 --> 00:04:46.560
at the left),
00:04:46.560 --> 00:04:48.000
it doesn't have the same
00:04:48.000 --> 00:04:49.680
meaning, whether or not it is
00:04:49.680 --> 00:04:52.639
before the beginning of a headline or if
00:04:52.639 --> 00:04:54.160
it is after the beginning of a headline.
00:04:54.160 --> 00:04:55.199
It's going to be
00:04:55.199 --> 00:04:57.759
relatively different, hierarchically
00:04:57.759 --> 00:04:58.960
speaking.
00:04:58.960 --> 00:05:02.639
So the problem, when it comes to the
question of
00:05:02.639 --> 00:05:05.759
many files versus one big file or
00:05:05.759 --> 00:05:08.560
few big files, is that we always have to
00:05:08.560 --> 00:05:09.600
keep in mind
00:05:09.600 --> 00:05:12.880
what org-element wants you to do.
00:05:12.880 --> 00:05:15.680
The thing is, there are plenty of
00:05:15.680 --> 00:05:17.440
problems when it comes to parsing files,
00:05:17.440 --> 00:05:19.330
the first one being obviously
00:05:19.330 --> 00:05:22.160
that Emacs is a single-thread
00:05:22.160 --> 00:05:24.880
process (or has some threading
00:05:24.880 --> 00:05:26.400
capabilities; we're not going to go into
00:05:26.400 --> 00:05:28.639
the details right now, that's not my goal).
00:05:28.639 --> 00:05:32.400
It makes it incredibly hard to
00:05:32.400 --> 00:05:35.919
parallelize parsing processes
00:05:35.919 --> 00:05:39.280
with the current technology.
00:05:39.280 --> 00:05:42.320
So you'd have to imagine that if you
00:05:42.320 --> 00:05:44.080
have a very large file--if you go back
00:05:44.080 --> 00:05:46.479
to the example of Karl Voit from before:
00:05:46.479 --> 00:05:49.199
100,000 lines--that means that you have
00:05:49.199 --> 00:05:50.000
to scan
00:05:50.000 --> 00:05:52.320
through every single line, basically.
00:05:52.320 --> 00:05:53.759
Because sometimes... Let's just say that
00:05:53.759 --> 00:05:56.080
you have a property drawer, for instance,
00:05:56.080 --> 00:05:59.440
which tells you, oh okay, this tree
00:05:59.440 --> 00:06:03.520
has the tag :foo:. So the problem is, there
00:06:03.520 --> 00:06:05.120
are multiple ways for you
00:06:05.120 --> 00:06:08.720
to define a tag. You can use the
00:06:08.720 --> 00:06:11.840
usual way, which is about wrapping in
00:06:11.840 --> 00:06:14.000
columns the :tag: at the end of a heading.
00:06:14.000 --> 00:06:16.160
For instance, if I... (I'm not going to
00:06:16.160 --> 00:06:17.360
switch to Emacs, that's going to waste too
00:06:17.360 --> 00:06:18.240
much time)
00:06:18.240 --> 00:06:21.520
That's one way to say your tag.
But say,
00:06:21.520 --> 00:06:23.520
you have tag inheritance, which means
00:06:23.520 --> 00:06:25.360
that when you have a parent with a tag,
00:06:25.360 --> 00:06:28.160
you also want the child to inherit the
00:06:28.160 --> 00:06:29.520
tag. If you have
00:06:29.520 --> 00:06:32.400
first heading with the tag :foo:, you have
00:06:32.400 --> 00:06:33.680
the first subheading,
00:06:33.680 --> 00:06:37.520
and the tag :foo: is implied. Now imagine
00:06:37.520 --> 00:06:39.680
having to do that with a file that is
00:06:39.680 --> 00:06:41.039
completely nested,
00:06:41.039 --> 00:06:44.160
a file that has maybe 9, 10,
00:06:44.160 --> 00:06:47.280
11 levels of depth to it.
00:06:47.280 --> 00:06:49.039
It's mind-bogglingly complicated for the
00:06:49.039 --> 00:06:51.039
software to do that, knowing that... I've
00:06:51.039 --> 00:06:52.639
told you about tags,
00:06:52.639 --> 00:06:55.919
but any property can be inheritable.
00:06:55.919 --> 00:06:58.639
Anything like priorities, even. Though why
00:06:58.639 --> 00:07:00.240
would you do this?
00:07:00.240 --> 00:07:03.759
You can have groups. You can have all this.
00:07:03.759 --> 00:07:05.599
And as someone who went through the trouble
00:07:05.599 --> 00:07:07.199
of optimizing his Org agenda... So
00:07:07.199 --> 00:07:08.560
basically, if we go back to the
00:07:08.560 --> 00:07:12.160
GIFs--oh god we've already had this
discussion
00:07:12.160 --> 00:07:14.479
between the "git" and "magit" and now I've
00:07:14.479 --> 00:07:16.400
started "gif" and "gif" and I only have one
00:07:16.400 --> 00:07:18.080
more minute left to do so, so let's just
00:07:18.080 --> 00:07:19.599
say I'm going to say "gif"
00:07:19.599 --> 00:07:23.599
just to spite people... So if you go on
00:07:23.599 --> 00:07:26.880
the way I organize my agenda, what I did
00:07:26.880 --> 00:07:29.120
in order to keep my agenda build time
00:07:29.120 --> 00:07:30.960
under two seconds,
00:07:30.960 --> 00:07:33.440
is that I've rewritten a whole lot of
00:07:33.440 --> 00:07:36.560
codes to be able to parse my Org agenda
files.
00:07:36.560 --> 00:07:40.080
So the thing is, I'm going to be talking
00:07:40.080 --> 00:07:41.360
more about this later.
00:07:41.360 --> 00:07:43.440
I only have, let's say, one minute to
00:07:43.440 --> 00:07:44.479
conclude.
00:07:44.479 --> 00:07:47.440
So as you've gathered, I'm not going to
00:07:47.440 --> 00:07:48.479
be giving you the answer right now.
00:07:48.479 --> 00:07:51.039
I'm going to be talking about
00:07:51.039 --> 00:07:53.440
org-roam a little later, which is about
00:07:53.440 --> 00:07:55.680
following the principle of having many
00:07:55.680 --> 00:07:57.759
small files.
00:07:57.759 --> 00:08:01.120
But as someone who has been using
00:08:01.120 --> 00:08:02.960
one large file to manage my life,
00:08:02.960 --> 00:08:04.879
you know, I'm sitting on the fence.
00:08:04.879 --> 00:08:08.319
I do not know which one is the best,
00:08:08.319 --> 00:08:10.560
but I hope that my presentation has
00:08:10.560 --> 00:08:12.240
given you a little idea
00:08:12.240 --> 00:08:15.199
of what goes on behind the principles.
00:08:15.520 --> 00:08:16.560
You also need to think about the
00:08:16.560 --> 00:08:18.560
philosophy behind the organization of
00:08:18.560 --> 00:08:19.120
your notes.
00:08:19.120 --> 00:08:21.039
I hope to be approaching this topic
00:08:21.039 --> 00:08:23.280
with you in about
00:08:23.280 --> 00:08:25.360
two hours or so (maybe one hour actually).
00:08:25.360 --> 00:08:27.520
I'm actually finished. I've decided to
00:08:27.520 --> 00:08:28.960
leave you two minutes of questions.
00:08:28.960 --> 00:08:31.520
If someone could feed me the
00:08:31.520 --> 00:08:32.880
questions, that might be best,
00:08:32.880 --> 00:08:34.399
because I don't want... oh actually I can
00:08:34.399 --> 00:08:36.240
just open the pad.
00:08:36.240 --> 00:08:39.919
I can just open it. Give me a second, okay.
00:08:40.800 --> 00:08:43.039
Just loading up. I might stop showing
00:08:43.039 --> 00:08:43.839
my screen.
00:08:43.839 --> 00:08:46.959
That might make it easier. So I mean if
00:08:46.959 --> 00:08:47.519
you can make
00:08:47.519 --> 00:08:49.360
myself big now on the screen, that would
00:08:49.360 --> 00:08:52.000
be splendid. ([Amin]: yeah sure)
00:08:52.000 --> 00:08:55.839
Thank you. Where are we...
00:08:55.839 --> 00:08:58.720
Question 12. Okay, so what's better, one
00:08:58.720 --> 00:09:00.160
big file or...?
00:09:00.160 --> 00:09:02.160
Is it a jab to tell me that I
00:09:02.160 --> 00:09:03.120
haven't answered the question because
00:09:03.120 --> 00:09:04.240
someone just
00:09:04.240 --> 00:09:06.320
asked me the question? Well, personally, if
00:09:06.320 --> 00:09:08.080
I were to give you a quick answer in
00:09:08.560 --> 00:09:11.600
20 seconds, personally, I think it's a
00:09:11.600 --> 00:09:13.920
question that is contextually based.
00:09:13.920 --> 00:09:15.680
Do you want something that is efficient
00:09:15.680 --> 00:09:17.839
as far as optimization is concerned?
00:09:17.839 --> 00:09:21.200
Then you need to think about
00:09:21.200 --> 00:09:23.440
this. Personally, for all the
00:09:23.440 --> 00:09:24.640
organization that I do,
00:09:24.640 --> 00:09:27.760
all this stuff, all the TODOs that I
handle,
00:09:27.760 --> 00:09:30.080
I like to do this in one simple big file
00:09:30.080 --> 00:09:31.519
because you benefit from all the
00:09:31.519 --> 00:09:33.760
refiling capabilities of Org Mode,
00:09:33.760 --> 00:09:37.200
so I would do that. But for knowledge
management,
00:09:37.200 --> 00:09:40.080
for note-taking and all this, well I'd
00:09:40.080 --> 00:09:41.279
much rather follow the
00:09:41.279 --> 00:09:42.959
org-roam way of doing things, which is
00:09:42.959 --> 00:09:44.480
about having many
00:09:44.480 --> 00:09:48.240
small files. I'm not getting any
00:09:48.240 --> 00:09:50.000
more questions. I'm not sure if there is
00:09:50.000 --> 00:09:52.080
one on IRC that could be fed to me.
00:09:52.080 --> 00:09:57.040
Otherwise, I'm happy to pass over to
the next speaker.
00:09:57.040 --> 00:09:59.360
By the way, just before I finish, your
00:09:59.360 --> 00:10:01.360
world is a lie. It's not a three-piece
00:10:01.360 --> 00:10:04.399
suit. I'm wearing jeans below, so I hope
00:10:04.399 --> 00:10:06.520
that satisfies your curiosity.
00:10:10.640 --> 00:10:12.640
Okay, there's one more question appearing.
00:10:12.640 --> 00:10:15.040
"but otherwise one big file to have
00:10:15.040 --> 00:10:17.680
everything..." So I'm putting you on the
00:10:17.680 --> 00:10:19.760
spot, I believe. It was such a short talk.
00:10:19.760 --> 00:10:21.040
You know the problem is,
00:10:21.040 --> 00:10:24.720
I just wanted to give you a little
answer.
00:10:24.720 --> 00:10:26.959
A little, you know, path of thinking on
00:10:26.959 --> 00:10:27.920
this topic.
00:10:27.920 --> 00:10:29.839
Obviously it's a topic I could be
00:10:29.839 --> 00:10:31.600
spending 40 minutes on,
00:10:31.600 --> 00:10:33.200
but I'm going to be drained, you're going to
00:10:33.200 --> 00:10:35.120
be drained, nobody's going to be happy
00:10:35.120 --> 00:10:35.680
if I do this.
00:10:39.440 --> 00:10:41.200
Someone asked me if I switch between
00:10:41.200 --> 00:10:42.880
British and French accents.
00:10:42.880 --> 00:10:46.560
A little secret for you:
00:10:46.560 --> 00:10:48.480
when I'm stressed, I tend to revert to a
00:10:48.480 --> 00:10:49.760
French accent,
00:10:49.760 --> 00:10:53.760
so you can measure the amount of stress
00:10:53.760 --> 00:10:56.160
that I'm feeling during this talk
00:10:56.160 --> 00:10:58.880
with the amount of h's that I drop and
00:10:58.880 --> 00:11:02.720
the amount of sheer fright that you can
see sometimes
00:11:02.720 --> 00:11:04.399
in my eyes, when I'm thinking about what
00:11:04.399 --> 00:11:08.240
to say next.
00:11:08.240 --> 00:11:10.880
All right sir. So, Amin, do you believe
00:11:10.880 --> 00:11:14.240
we can leave it at that? I'll be...
00:11:14.240 --> 00:11:15.519
People will see plenty more of me
00:11:15.519 --> 00:11:17.040
later on, anyway.
00:11:17.040 --> 00:11:20.640
([Amin:] So, looking at the schedule,
I think
00:11:20.640 --> 00:11:23.920
your talk has until like 2:02, meaning
00:11:23.920 --> 00:11:27.120
like five or six minutes from now.)
00:11:27.120 --> 00:11:28.000
Oh, right.
00:11:28.000 --> 00:11:30.000
([Amin:] So if you do like to take one
00:11:30.000 --> 00:11:31.680
or two questions, to add two more
00:11:31.680 --> 00:11:33.920
questions, by all means.)
00:11:33.920 --> 00:11:37.040
So someone has asked me what is
00:11:37.040 --> 00:11:38.320
the Emacs
00:11:38.320 --> 00:11:40.640
icon (sorry, see, another French accent)
00:11:40.640 --> 00:11:42.880
here in my status bar...
00:11:42.880 --> 00:11:44.880
Oh sorry, I'm not sharing any more.
00:11:44.880 --> 00:11:46.640
I might just share again just so that
00:11:46.640 --> 00:11:49.200
everyone can catch a glimpse of that.
00:11:49.200 --> 00:11:53.120
There we go. Allow...
00:11:53.120 --> 00:11:54.880
So it should be... So if you could make me
00:11:54.880 --> 00:11:56.240
small again, Amin, I'm not sure if it's
00:11:56.240 --> 00:11:56.959
going to do it
00:11:56.959 --> 00:12:00.480
by itself, but I do have a little icon
00:12:00.480 --> 00:12:01.839
here in my status bar
00:12:01.839 --> 00:12:04.480
which is basically a way to interact
00:12:04.480 --> 00:12:05.760
with org-protocol.
00:12:05.760 --> 00:12:09.120
I'm not going to look for it right now,
00:12:09.120 --> 00:12:10.800
but it's a browser extension that is
00:12:10.800 --> 00:12:12.399
developed by one of my friends
00:12:12.399 --> 00:12:15.680
over at Ranger whose name is Li Fong (??) and
00:12:16.160 --> 00:12:18.240
it's very useful. I'm someone who uses a
00:12:18.240 --> 00:12:22.320
lot of Org protocols. And by the way,
00:12:22.320 --> 00:12:25.279
I used to teach English to high
schoolers, and they
00:12:25.279 --> 00:12:27.279
were supremely worried
00:12:27.279 --> 00:12:29.600
when I showed them my status line and they
00:12:29.600 --> 00:12:34.000
saw "kill" and "explore" in my status
line.
00:12:34.000 --> 00:12:36.560
As fellow Emacs users, you know that
00:12:36.560 --> 00:12:40.880
obviously kill means to kill a selection
of text and
00:12:40.880 --> 00:12:44.320
keep it inside your clipboard,
00:12:44.320 --> 00:12:47.279
but for my students, they
00:12:47.279 --> 00:12:48.320
were very worried
00:12:48.320 --> 00:12:51.600
about what their professor was up to
00:12:51.600 --> 00:12:53.600
during his nights.
00:12:53.600 --> 00:12:55.120
So let's see if we've got more questions.
00:12:55.120 --> 00:12:56.560
I'm showing you the questions on the
00:12:56.560 --> 00:12:57.920
rainbow. Let's see if
00:12:57.920 --> 00:13:00.560
we've got more. People are posting a
00:13:00.560 --> 00:13:01.920
lot of questions now.
00:13:01.920 --> 00:13:03.920
So how do you feel about archiving files
00:13:03.920 --> 00:13:06.399
in Org Mode and how can that work?
00:13:06.399 --> 00:13:09.360
So one of the things when we think about
00:13:09.360 --> 00:13:13.920
optimization is: yes, archiving done trees
00:13:13.920 --> 00:13:16.240
is a good idea because it means that if
00:13:16.240 --> 00:13:17.920
we go back to the org-element, the way it
00:13:17.920 --> 00:13:20.399
works (and we'll get into technical details
00:13:20.399 --> 00:13:22.079
afterwards; I'm giving a presentation
00:13:22.079 --> 00:13:24.079
about org-roam technical
00:13:24.079 --> 00:13:26.880
aspects, sorry, so I'll have a chance to
00:13:26.880 --> 00:13:28.399
expand a little more on this)
00:13:28.399 --> 00:13:31.360
but basically, org-element needs to...
00:13:31.360 --> 00:13:35.279
Every time it sees a TODO, it has to
consider it,
00:13:35.279 --> 00:13:38.320
even though it is a done TODO. Why?
00:13:38.320 --> 00:13:40.000
Because let's say, for instance, that in
00:13:40.000 --> 00:13:41.839
your agenda you want to activate
00:13:41.839 --> 00:13:45.519
log mode, which is going to show the
00:13:45.519 --> 00:13:48.959
tasks which are done... Now you could be
00:13:48.959 --> 00:13:51.440
clever and say, oh okay, the Org agenda does not
00:13:51.440 --> 00:13:53.360
need to show done items, so it's not going
00:13:53.360 --> 00:13:54.880
to look for them,
00:13:54.880 --> 00:13:56.959
but the problem is that org-element is
00:13:56.959 --> 00:13:59.519
always called. It always needs to parse
the buffer.
00:13:59.519 --> 00:14:01.839
You know, Nicolas Goaziou, who is the
00:14:01.839 --> 00:14:03.519
French developer who's worked a whole
00:14:03.519 --> 00:14:05.040
lot on org-element
00:14:05.040 --> 00:14:07.440
has gone through a lot of trouble to
00:14:07.440 --> 00:14:11.600
optimize org-element, but the problem is
00:14:11.600 --> 00:14:13.279
there's just so much that we can do with
00:14:13.279 --> 00:14:14.720
a concurrent process.
00:14:14.720 --> 00:14:18.560
Right now it leaves somewhat
00:14:18.560 --> 00:14:21.120
things to be desired, but
00:14:21.120 --> 00:14:22.079
we're working on it.
00:14:22.079 --> 00:14:24.800
One more time... I feel like I spent
00:14:24.800 --> 00:14:25.839
half of this talk
00:14:25.839 --> 00:14:28.000
teasing my next talks, but I'll be
00:14:28.000 --> 00:14:29.360
talking more about this
00:14:29.360 --> 00:14:31.279
in my future talks in about one to two
00:14:31.279 --> 00:14:32.639
hours.
00:14:32.639 --> 00:14:34.959
So, continuing with questions, how big are
00:14:34.959 --> 00:14:36.079
my Org files?
00:14:36.079 --> 00:14:37.760
So in the background, I'm just going to
00:14:37.760 --> 00:14:40.720
check how many lines I have in my main
file.
00:14:40.720 --> 00:14:42.959
In my own file, so the one I told you
00:14:42.959 --> 00:14:44.079
about where I keep all
00:14:44.079 --> 00:14:47.279
my TODO GTD stuff, I have
00:14:47.279 --> 00:14:50.720
38,000 lines, which is...
00:14:50.720 --> 00:14:54.000
It's sizable, definitely.
00:14:54.000 --> 00:14:57.040
But I do archive a lot of stuff,
00:14:57.040 --> 00:14:58.480
so that might be a slight difference
00:14:58.480 --> 00:15:00.880
between myself and Karl Voit,
00:15:00.880 --> 00:15:02.079
even though I don't remember if they
00:15:02.079 --> 00:15:04.880
actually archive stuff.
00:15:04.880 --> 00:15:06.639
So does it not consume more resources
00:15:06.639 --> 00:15:08.480
and time to load multiple files
00:15:08.480 --> 00:15:10.839
files than a large file or the same
00:15:10.839 --> 00:15:12.560
content now?
00:15:12.560 --> 00:15:15.839
Theoretically, yes, having many files
00:15:15.839 --> 00:15:19.279
open concurrently is slightly slower
00:15:19.279 --> 00:15:22.240
than having one main file opened.
00:15:22.240 --> 00:15:24.160
Now the problem is for those of you who
00:15:24.160 --> 00:15:25.279
have large files,
00:15:25.279 --> 00:15:27.199
you may have noticed that when you are
00:15:27.199 --> 00:15:29.360
scrolling in a very large file,
00:15:29.360 --> 00:15:32.560
it starts taking quite a bit of time. Why?
00:15:32.560 --> 00:15:34.480
It's because in Org Mode,
00:15:34.480 --> 00:15:35.920
you have a lot of content
00:15:35.920 --> 00:15:38.959
that is hidden, so when you have
00:15:38.959 --> 00:15:40.959
the view mode which hides as much stuff
00:15:40.959 --> 00:15:43.600
as possible, meaning that you only see
00:15:43.600 --> 00:15:45.360
the top heading--and I'm checking the
00:15:45.360 --> 00:15:46.880
time, Amin, don't worry, I'm finished
00:15:46.880 --> 00:15:50.240
on this one--
00:15:50.240 --> 00:15:52.160
when you're hiding a whole lot of stuff,
00:15:52.160 --> 00:15:54.720
Org Mode needs to keep track, or I
should say,
00:15:54.720 --> 00:15:56.959
Emacs needs to keep track of which areas
00:15:56.959 --> 00:15:58.160
of text to show
00:15:58.160 --> 00:16:00.560
and which areas of text to hide.
00:16:00.560 --> 00:16:02.320
The problem is that when you're hiding stuff--
00:16:02.320 --> 00:16:04.480
let's say you're moving from the
00:16:04.480 --> 00:16:06.320
first heading to the second heading,
00:16:06.320 --> 00:16:08.639
but you've got like 10,000 lines between
00:16:08.639 --> 00:16:09.839
those two headings--
00:16:09.839 --> 00:16:11.519
well, Emacs needs to compute the
00:16:11.519 --> 00:16:13.680
difference between the two passages,
00:16:13.680 --> 00:16:15.680
and that takes quite a lot of time.
00:16:15.680 --> 00:16:18.560
That's why you might realize that it's
a little
00:16:18.560 --> 00:16:21.199
choppy when you start scrolling in large
files.
00:16:21.199 --> 00:16:22.560
Anyway I could be answering questions
00:16:22.560 --> 00:16:25.120
about Org Mode for literally two hours
straight,
00:16:25.120 --> 00:16:26.720
so I'm gonna hand it over to the next
00:16:26.720 --> 00:16:28.639
speakers. I'll be seeing
00:16:28.639 --> 00:16:31.759
you guys a little later. ([Amin]: Thank you
00:16:31.759 --> 00:16:33.440
very much, Leo.)
00:16:33.440 --> 00:16:36.959
Oh, thank you. ([Amin:] Yes. Bye.)
00:16:36.959 --> 00:16:39.839
Bye.