I mean we are ahead of the schedule a
little bit but I mean we also was a
little bit earlier in the day
so yeah yeah I'd say that's fine go for
it take it away
sure thank you so am I live already
you are now unmuted um yep your life
hello
spell it so I'll just start the timer to
make sure that I don't go overboard
all right so you are now muted okay good
to go now so
hello again everyone so I hope you had
well quite a lot of talks
ever since the last one I did and all
more interesting
uh one after the other so um
you know I'm a bit in a bit of a weird
spot right now because I'm supposed to
be presenting to you as you can see on
my screen
one big-ass awk file multiple tiny ones
finally the end of the debate
and it sounds about as clickbaity
as you can possibly get with those
topics and by the way
uh credit where credit is due the title
is not mine it's actually from bastian
gary the current old
maintainer and yeah I wanted to
talk to you a little bit today about
this question because
if you are used to going on our slash
emacs you know the subreddit that we
have
if you go on I can use often you know
it's a question that
you see pop-up every once in a while
should I be using
one big file or should I be using
a lot of tiny files and I believe you
know
we've got defenders on both sides if I
just show you one examples
so we have carl voigt okay so he's one
of the organizers for the conference
he hears the guy who probably has the
biggest augment files
right now in all the people I know and
god knows I know plenty of people use
old mode
but if you just look at this line I hope
it's not too small you just
make it a little larger but
carl basically has a file with 126
000 lines and I'm just going to pause
and try to have you imagine how large a
file it actually is
just think about all of these lines
being tasked in your days
think about all those lines being about
little thoughts
you know that you've had throughout the
day or project that you were working on
and it's massive and you know one of the
problem that
uh calvoit actually approaches on
this topic is that it takes him roughly
20 seconds to get his old agenda going
which is a massive amount of time
I mean we have very fast computers now
you know ever since e-max was created in
1976
computers I have no idea how much faster
they've gotten
and yet you know for earth 1000 lines
emac seems to be choking and it's
certainly not reasonable in a way to
have to wait 20 seconds
just for your entire file to be passed
so basically what I want to do
and by the way I forgot to do the
presentation but I'm leova I did this
before for those who were around
and I um help maintain a software which
is called orgrom
and that's the expertise that I have on
the topic
actually if you go online I do have a
github page I will make sure that you
have all the links available afterwards
but I do publish my init files
and you can see if you scroll at the
bottom I have a little demonstration
which shows you
the fancy things that I can do with my
old mood setup and that might be even
interesting
in lights of the talk you've just had
about gtd stuff because
the first one is about how I end all my
projects the second one is about
the flow from a task uh as I work on it
so
I won't spend too much time on this but
basically that's my expertise
I have spent eight years working with
working with org mode
three of them actually thinking about
writing packages
and the thing is if I go into a little
bit of details and obviously it's only a
lighting talk so I won't have time to
actually go really in depth about it but
there is something
in the ultimate libraries which is
called org elements
and you have the name right there org
element.el
dot el being for e-lisp file and as you
can see
the page it's on the work wiki so it's
accessible by everyone
but it's basically the api that
org mode uses to pass all mode files
so for those who don't know passing
means basically
checking a file checking all the content
of the file and extracting all the
information that we need from that file
and as you can imagine you all have
augmented files in your mind
well you know they can be fairly complex
you know you can have properties
you can have contextual information like
if you write a line
which starts at column zero which means
at the left
you know it doesn't have the same
meaning whether or not it is
before the beginning of a headline or if
it is after the beginning of a red line
you know it's going to be
relatively different hierarchically
speaking
and so the problem when it comes to the
question of
many files versus one big file or
few big files is that we always have to
keep in mind
what org elements want you to do
and the thing is there are plenty of
problems when it comes to passing file
the first one
being obviously that emacs is a single
thread
process or has some threading
capabilities we're not going to go into
the details right now that's not my goal
but it makes it incredibly hard to
parallelize uh passing processes as
we currently with the current technology
and so you'd have to imagine that if you
have a very large files if you go back
to the example of carl voice from before
100 000 lines that means that you have
to scan
through every single line basically
because sometimes let's just say that
you have a property drawer for instance
which tells you oh okay uh this tree
has the tag foo so the problem is there
are multiple ways for you
to define a tag okay so you can use the
usual way which is about wrapping in
columns the tag at the end of a heading
so for instance if I I'm not going to
switch to emac that's going to waste too
much time
but that's one way to say your time but
say
you have tag inheritance which means
that when you have a parent with a tag
you also want the child to inherit the
tag so if you have
first heading with the typhoo you have
the first subheading
and the tag foo is implied now imagine
having to do that with a file that is
completely nested
a file that has maybe 9 10
11 levels of depth to it
it's mind-bogglingly complicated for the
software to do that knowing that I've
told you about tags
but any property can be inheritable
anything like priorities even though why
would you do this
you can have groups you can all this and
as someone who went through the trouble
of optimizing his old agenda so
basically if we go back to the
gifts gifs oh god we've already had this
discussion
between the git and magit and now I've
started jeff and gif and I only have one
more minute left to do so so let's just
say I'm going to say gif
just to spice people so if you go on
the way I organize my agenda what I did
in order to keep my agenda build time
under two seconds
is that I've rewritten a whole lot of
codes to be able to pass my organ gender
files
so the thing is I'm going to be talking
more about this later
I only have let's say one minutes to
conclude
so as you've gathered I'm not going to
be giving you the answer
right now I'm going to be talking about
orgrum a little later which is about
following the principle of having many
small files
but as someone who has been using
one large file to manage my life you
know I'm sitting on the fence
I do not know which one is the best
but I hope that my presentation has
given you a little id
of what goes on behind the principles
and
you also need to think about the
philosophy behind the organization of
your notes
but I hope to be approaching this topic
with you in about
two hours or so maybe one hour actually
so I'm actually finished I've decided to
leave you two minutes of questions
so uh if someone could feed me the
question that might be best
because I don't want oh actually I can
just open the year
I can just open it give me a second okay
ah
just loading up huh I might stop showing
my screen
that might make it easier so I mean if
you can make
myself big now on the screen that would
be splendid yeah sure
thank you so uh where are we
question 12. okay so what's better one
big file
I did is it did a job to tell me that I
haven't answered the question because
someone just
asked me the question well personally if
I were to give you a quick answer in
like
20 seconds personally I think it's a
question that is contextually based
do you want something that is efficient
as far as optimization is concerned
then you need to think about
this and personally for all the
organization that I do
all this stuff all the to-do's that I
handle
I like to do this in one simple big file
because you benefit from all the
refiling capabilities of log mode
so I would do that but for knowledge
management
for note-taking and all this well I'd
much rather follow the
orgrom way of doing things which is
about having many
small files okay I'm not getting any
more questions I'm not sure if there is
one on ise that could be fed to me
otherwise I'm
happy to to uh pass over to the next uh
speaker
and by the way just before I finish your
world is a lie it's not a three-piece
suit I'm wearing jeans below so I hope
that satisfies your curiosity
[Music]
okay there's one more question appearing
but otherwise one big file to have
everything so I'm putting you on the
spot I believe it was such a short talk
you know the problem is
I just wanted to give you a little
answer
a little you know path of thinking on
this topic
but obviously it's a topic I could be
spending 40 minutes on but
I'm going to be drained you're going to
be drained nobody's going to be happy if
I do this
so
and someone asked me if I switch between
british and french accents
so a little a little secret for you um
when I'm stressed I tend to relate to a
french accent
so you can measure the amount of stress
that I'm feeling during this talk
with the amount of h's that I drop and
the amount of uh
sheer fright that you can see sometimes
in my eyes when I'm thinking about what
to say next
all right sir so I mean do you believe
we can
leave it at that and uh I'll be you
people will see plenty more with me
later on anyway
right um so looking at the schedule I
think
your talk has until like 202 meaning
like five or six minutes from now oh
right
yeah so if you do like to take like one
or two questions to add two more
questions by all means
okay so uh someone has asked me what is
the emacs icon
icon sorry see another french accent
here uh in my status bar
uh oh sorry I'm not sharing anymore uh I
might just share again just so that
everyone can catch a glimpse of that
uh there we go allow
so it should be so if you could make me
small again I'm in I'm not sure if it's
going to do it
by itself but I do have a little icon
here in my status bar
which is basically a way to interact
with all protocol
uh I'm not going to look for it right
now but it's uh
it's a browser extension that is
developed by one of my friends
over at ranger whose name is v phone and
uh
it's very useful I'm someone who uses a
lot of uh
of uh all protocols and by the way I
used to teach
english okay to high schoolers and they
were supremely worried
when I show them my status line and they
so kill
and explore in my status line so as
fellow emacs users you know that
obviously kill
means to kill a selection of text and
keep it inside your clipboard
but for my students who you know they
were very worried
about what their professor was up to
doing his nights
so let's see if we've got more questions
so I'm showing you the questions on the
rainbow so let's see if
we've got more so people are posting a
lot of questions now
so how do you feel about archiving files
in old mode and how can that work in
so one of the thing when we think about
optimization
is yes archiving done trees
is a good idea because it means that if
we go back to the org element the way it
works
and we'll get into technical details
afterwards I'm giving a presentation
about all grown technical suspect
aspects sorry so I'll have a chance to
expand a little more on this
but basically all elements need to uh
every time
it sees a to do it has to consider it
even though it is a done to do why
because let's say for instance that in
your agenda you want to activate
log mode which is going to show the
tasks which are done now you could be
clever
and say oh okay the old agenda does not
need to show don items so it's not going
to look for them
but the problem is that all elements is
always called it always needs to pass
the buffer
you know uh nicodego as you who is the
french developer who's worked a whole
lot on all elements
has gone through a lot of trouble to
optimize all
elements but the problem is
there's just so much that we can do with
a concurrent process
and right now it leaves somewhat
uh you know things to be desired but
we're working on it
and one more time I feel like I spent
half of this talk
teasing my next talks but I'll be
talking more about this
in my future talks in about one to two
hours
so continuing with questions how big are
my org files
so in the background I'm just going to
check how many lines I have in my main
file
so in my own file so the one I told you
about where I keep all
my to do gtd stuff I have
38 000 lines which is
you know it's sizable definitely
but I do archive a lot of stuff
so that might be a slight difference
between uh my myself and carl voight
even though I don't remember if they
actually archive stuff
so does it not consume more resources
and time to load multiple files
files than a large file or the same
content now
theoretically yes having many files
open concurrently is slightly slower
than having one main file opened
now the problem is for those of you who
have large files
you may have noticed that when you are
scrolling in a very large file
it starts taking quite a bit of time why
it's because you know in old mode you
have a lot of content
that is hidden so when you have
the view mode which hides as much stuff
as possible means meaning that you only
see
the top heading and I'm checking the
time I mean don't worry I'm I'm finished
on this one
when you're hiding a whole lot of stuff
you know orgmo
needs to keep track or I should say
emacs needs to keep track of which areas
of text to show
and which areas of text to hide and the
problem is that when you're hiding stuff
let's say you're moving from line the
first heading to the second heading
but you've got like 10 000 lines between
those two headings
well he max needs to compute the
difference between the two passages
and that takes quite a lot of time and
in that that's my
why you might realize that it's a little
choppy when you start scrolling in large
files
anyway I could be answering questions
about org mode for literally two hours
straight
so I'm gonna end it over to the next
speakers and I'll be seeing
seeing you guys a little later thank you
very much leo
oh thank you yes bye
bye