Leo Vivier: I'm hoping to keep this talk in
15 minutes. I'll take five minutes of
questions at the end.
So, hello again! I suppose you're starting
to get pretty familiar with me and my
start(?) right now.
We're getting into the nitty
gritty. We started today,
I told you about how I'd ventured from
being a user
to being a maintainer, and right now I'm
going to get the chance to
actually tell you more about the project
that I'm maintaining,
which is called org-roam.
So even if I... It would have had a better
impact if I
didn't scroll the page, but you know,
sadly, I'm out of tea,
it's getting late in Europe and I'm
starting to get tired.
So what I'm gonna do during this talk
is just to do, really, a survey for people who
do not know what org-roam is about.
Some of you might have,
whilst browsing Reddit,
found a topic about org-roam and thought
to yourself, "Oh, that looks interesting,
but you know, I have my own workflow
and I kinda don't need to change anything
about it. I'm completely fine
using my very very large file. Or I'm
completely fine having my
database of notes which I've been
accruing for 10, 20, 30 years or so."
So what I want to do during this talk
is both to present to you what org-roam is about,
if you are in this group of people who
do not know what org-roam is about but would
like to know more, but
also for people who have close to no
experience with Emacs and Org Mode and
who have just found their way. They
wanted to find the system to
write their notes, basically, and
they discovered this little tool which
is called org-roam,
and they'd like to know more about this.
So I've got 13 minutes to convince you to use org-roam.
If we go in a very broad strokes,
what is org-roam? org-roam
is a way for you to manage backlinks
inside Org Mode. The keyword
in what I've just said is links.
Now there is a principle behind org-roam
which is called the Zettelkasten method,
which you can see written right there.
It's a German word
which means a slip box. If you remember
in old libraries,
you had--actually, I believe if I scroll, I
should have an example of this.
Yes. So this is a slip box. Basically, in
all libraries, you used to have all the
references to the books that the library
used to have
inside those boxes. They're called
slip boxes because you can
insert stuff into the boxes and you can
remove stuff out of the boxes.
Now if I try
to summarize as simply as I may what the
Zettelkasten method
is about, it's about having a way
to work with your notes which considers
elements of knowledge as atoms,
as something that is individual, like
a single file.
You consider that in order to build knowledge,
you have to combine atoms together, so that
when you have one atom, another atom,
if you link them together, you have a
complex thought or a complex molecule.
Don't quote me on the chemistry, by
the way. I shall remind you I'm an
English major I have no idea what I'm
talking about.
So, how does it work as far as a
note-taking system is concerned? To do so,
I'm just going to switch really quickly
to my Emacs, if I may. So I'm just going to screenshare
onto my Emacs. Just give me a second to get
the windows all right.
Okay, it's loading up. Oh no,
I think Firefox has crashed again. Okay,
so you're gonna have to give me a second.
I need to figure this out.
Okay. So everything is frozen right now.
Just to tell you, so you're gonna have to
deal with my lovely voice.
Amin, can you confirm that if I
switch to a new (tty?), you can still hear me?
So can you still hear me now?
Okay. So I'm gonna have probably to kill
firefox and log in again.
I'm sorry. It's gonna cost us two
minutes, but I'm gonna try to be as fast
as I can. Okay
(Amin: Okay. No problem, thanks.
All right.
I guess no event is a good one without
one or two technical difficulties.
I guess this is our share of
technical difficulties this year.
No problem.)
Leo: All right. Guess who's back? It's not
Britney. It's just me, sadly, so you're
gonna have to make do with me.
(Amin: Welcome back.)
Leo: Well, thank you. I'm just
gonna turn back on the camera, if I may.
All righty.
I'm going to make myself a presenter.
I'm going to
share my screen with you.
So, if my calculations are correct,
you should be able to see my monitor right now.
(Amin: Yep, but not your webcam feed.)
Not my webcam feed. Okay. So I'm going to
stop it.
Sorry for the little delay, folks. You know, it's...
The show must go on. Can you see it now?
(Amin: Not yet.) Leo: Still not?
Damn it. Can I stop it? Okay, so I'm gonna...
(Amin: yeah, maybe try like sharing a webcam first.)
Leo: All right, I'm back now. So I'm going to
share my webcam first.
(Amin: Okay.)
Leo: All righty. So can you confirm whenever
you've got my webcam working?
(Amin: Let's see. I don't see it yet,
unfortunately.) Leo: Is it loading up? (Amin: yeah,
it's coming up.
Yep, I can see it.) Leo: Awesome. All right. Okay,
we're back on track. I've got still eight
minutes left to do, so I might have to
have a couple of minutes to my talk, if
you don't mind and shave off some
questions.
(Amin: Okay, do you want to share your screen?) Leo: Okay, yeah,
I'm on my way to. All right. So
please forget
whatever, whichever technical
difficulties we might have had for
the last
three, four minutes, but we're back on
track now.
So org-roam: what is it and how does it
work? I was telling you all about
atoms and I was telling you about links,
but how does it work concretely?
Right now what you're seeing on your screens
is a slip box, which is what we... the fancy
word that we use to designate your folder
where all your notes are going to be
living. So you have here (and I hope you
can see my
cursor; yes you can)... So we have a file
which is called
index.org and the good thing is,
as you might have garnered by the fact
that it finishes by
.org is that it is just an Org Mode file.
I can create a heading.
I can create another heading.
everything works as you would expect it to.
It is completely... It's just an Org Mode
file at the end of the day.
Now, what can we do with this?
I've told you about links. You do know that
Org Mode has links. What we're going
to do
is that we're going to create a new file.
We're going to go back
to our directory. What I'm going to
do is that we have a special command...
Actually, let me just
show you my command. It might help you a
little bit
see what I'm doing. Wait, which is the
buffer...
Uh... log mode? Yes. exlog. So now on the
right side of the monitor, you'll be able
to see the command that I'm using.
If you don't mind, in order to have as
much realistic as possible, I'm going to
make it a little bit shorter.
Smaller, I should say. Is it not too small?
Yeah, I believe it's good.
So what I'm going to do is I'm going to
run a command in org-roam which allows me
to create a new note.
I'm going to use my keybinding, which
is not this one, definitely,
and I'm going to create a new file which
is, in a great tradition of examples in
programming, I'm going to call "foo."
Right. So at the bottom--
in the bottom buffer, I should say, you
are seeing the file "foo," which is, as you can see here,
a capture buffer
just like you would have in Org Mode.
Now what I'm going to do
is that I'm going to validate this file
and now you see that we are in the file "foo."
The good thing is that I can start
writing without having to worry
about anything else.
I was going to say that I'm
showing off about my typing skills, but I
did make mistakes, so
well, nobody's perfect, right? So now we do
have this "foo" file. We're going to
go back to the index. Let's go back to
the directory.
We're going to refresh the file. As you
can see, we have a file which is called "foo,"
and we have the index. So now what I'm
going to do
is that I'm going to insert a link to
this file.
So we're going to run another org-roam
command which you can see here,
org-roam-insert, and I'm going to insert a
link to the file
"foo." As you can see, it has now
appeared. Now what I'm going to do,
I'm going to save the file, and now I'm
going to show you
the little thing I told you about--
backlinks--before. I'm afraid I'm going
to have to hide
the commands for now, but don't worry
they'll be back.
I'm going to show you the side buffer.
It is the buffer that you see on the
right side of your screen.
Right now, it's telling you that
index does not have any backlinks,
which is normal. But if we follow the link
"foo," now you see something different on
the right side. As you can see on the
left side, we're back inside the
file "foo,"
but on the right side, we have something
showing up:
one backlink in the file "index."
And under the heading, you have
the file--
sorry, the link "foo." You can just open the link,
and you will be brought exactly where it is.
So that was one thing. Now just
to make sure that you've understood
properly, I'm going to go back to the index.
I'm going to create a second file.
Now I'm going to use a command that
is slightly different. Let me just
show you the commands on the right.
I'm going to run the command org-roam-insert
and I'm going to
enter a file which is called "bar."
Again, at the bottom, you can see that
I have a new file "bar."
I'm going to validate this file.
I'm going to save index.org.
Now, if we go in bar, and if I show
you the links on the side, you can see that
exactly the same, we have a link.
Now just to make the pictures complete,
inside the file "bar," I'm going to insert
a link to "foo." I'm going to save. I'm
going to go to the file "foo." Now on
the right side,
you can see that we have two backlinks.
Now you're gonna tell me, yeah, thank you, Leo, but
what's the point? Well the thing is
it might sound... it might seem very simple,
what I've just shown you,
but programmatically, it's a little hard
to do. We have to
look into your files to make sure that
every time you link your file
somewhere else, we need to track
everything down.
Now as simple as org-roam might be
looking to you,
thee thing is what we try to do with org-roam
is to make sure that your collection of notes
remains consistent whatever we do.
An example, for instance, right now
I've told you about a file named "foo" and
the file named "bar." Let's say that for whatever reason,
you decide to rename your file "foo" to
something very original. Let's just say "bar."
So we actually have a way in Emacs--in
org-roam, I should say--
when you modify the title at the top of
the file...
So we get "foo..." I've modified it with "baz."
You can see at the bottom that right now
we haven't saved and we are still in the
file "foo.org." I'm going to save.
Now what you see is
a new name for the file. But you may ask,
"Wait a second, in the other file, we had a
link to this file.
Does it mean that it's broken? Does it mean
that we cannot access the file anymore?"
But when we go there, beginning to go in the index,
so obviously the actual description of
the link hasn't been updated,
but if I show you what goes on under the
hood by showing you
what is fontified, what is behind the
content of the link...
Actually, it didn't work! that's why
you never present live, folks, because
otherwise you're
just going to show problems with the
software and that's not good.
Something must have gone on, obviously.
But generally speaking, the file should
have been updated.
Damn. I'm showing you bugging my software.
That's not very professional, now is it?
Basically, to come back to the main idea,
what we try to do with org-roam is to make
sure that
everything remains consistent.
We really much love the system of
organization that is behind the Zettelkasten method.
Now I was going, at this point of the
presentation, basically, I wanted to go
back to Firefox
and show you more stuff, but it's likely
that it's going to crash again.
I'm not going to tempt the devil.
I'm just going to continue talking to
you like that.
So the Zettelkasten method
is a very organic way
to write notes. If you think...
I believe as Org Mode users,
we share quite a lot of features. I'm
out of time. I'm just going to take one
more minute to answer this question
that I'm asking myself anyway. But if
you're anything like me,
you've been through many
iterations of your workflow inside
Org Mode.
Do I keep all my professional stuff
under one heading, or do I create a
separate file for this?
You know, those types of questions on
which you could ponder for
many, many hours at night, generally when
you have a
tight deadline to be following. But
what I've discovered by using org-roam for
taking notes about
my academic projects or by taking notes on
anything worth writing about
is that not having to worry about the
structure of you files,
just having to worry about atoms
and links, it does wonders
for the way you think about problems. It
does wonders about your creativity.
And it does wonders about your ability to
take your thoughts, put them on a paper,
and generally, during this
process you realize, "Oh, maybe I do not
know this concept as well as I should."
But I've never had a system which
brought me
as much serendipity as this system.
And for those who don't know, serendipity
the ability to come up with novel ideas
on the spot, contextually.
So this was just a little primer on what
org-roam and the Zettelkasten is about.
In about 20 minutes, I'll be giving you a talk
about the technical aspects of org-roam,
which I'm certain
some of you will be very interested in.
Otherwise, I do have a YouTube channel
where I try to record videos where I explain to you
what org-roam is about, what the method is about.
I'll just finish on this. I'm two
minutes extra time, sorry.
We do know that a lot of people
are interested into org-roam. I mentioned
at the very beginning of the presentation
that a lot of people discovered Emacs
and org-roam
and Org Mode even through org-roam.
We feel that we have a duty to
introduce those people, this new pool of
people, most of whom are
academic,s into the world of Emacs and
into the world of free software.
Right now the thing is we're not
doing a particularly good job at writing
manuals. I'm just going to try
to stop sharing my screen, because I'm
nearly to the end,
and just try sharing my Firefox windows
if it allows me. No, it doesn't allow me,
which is very good. That's why I won't have to
to screw things up.
We know that our manual is not fully
up to date,
but believe me, one of the key focus
right now
is making sure that within two to three months,
we have a good tutorial for people to
join, and we have good videos for people
to get introduced to the topics we're covering.
And that's me done. So, thank you so much
for listening and now I'll be taking
some questions.
(Amin: Thank you very much, Leo.
Cheers! We have, I think, about two minutes
four questions, I see a lot of them
on the pad.
Would you take them?) Leo: Sure. So... Yep I'm
scrolling, I'm scrolling...
Getting Things Done, that's Aldric.
Still scrolling. Okay. org-roam. Oh, wow. Okay.
So we do have quite a lot of questions.
Please excuse me if I'm answering
your questions really fast, but I just
want to make sure that I cover
as much ground as possible. "What is
the functionality of org-roam-unlinked-references?"
So basically when you have a file that
is not linked anywhere,
this function allows you to see...
Let's say we have a file "Emacs"
and we've talked about "Emacs" in another
note, but we haven't created a link.
What this command do is that it
looks into your folder for every mention
of "Emacs" that is not
linked to the note "Emacs," and it prints
all the results in the buffer so that
you know, "okay, I've talked about Emacs
here, but I didn't create a link.
Do I want to create a link?" That's it.
"Is it possible to use the backlinks
features in regular Org buffers?" Right now, no. It is not possible. We are
having a very controlled environment
which is... I told you about this slip box
folder before.
This is where we keep all the notes.
The reason why we do this will be more
evident when I go through the technical presentation,
but it's because of optimization.
I'll get back to you on that
afterwards.
"Do you make org-roam database
accessible across computers?"
No, I do not, because I'm only using my
laptop, but plenty of people have had
a lot of success doing so either by
sharing the files via syncthing or by
any other method. We have a section in a manual
specifying how to do this.
"How do you discover tags' links to add to your new org-roam note?"
There is something that I didn't tell
you about which is called org-roam server,
which is a magnificent way to access
visually the notes that you have in your
in your system.
You'll have to go to the orgroam.com website.
Please go on our Github page. We
show everything.
I hope what I've told you has excited
you, so please go.
Maybe one more question, two more
questions, just to make sure?
"Is it possible to seamlessly link to other
notes with syntax instead of a
keybinding?"
Yes, we are working on this. This is a
huge project that we're doing with
org-roam which is called
link-ux. We're trying to do something
which is very close to Roam Research,
which is the software we're using for
inspiration for org-roam.
Yes, there are going to be
ways to do this in the future. I'm going
to give you a window of
maybe three to four months. One last question.
Uh, good on you, thank you, well, thank you
for this.
"Is there an easy way to export several
selected nodes to, say, a LaTeX file?"
LaTeX. Yes. I mean, it's Org Mode.
At the very core, it is Org Mode, so you
know you don't...
If you want to export to a LaTeX file, you
can... you just use the
ox-latex library, which you can access
by pressing C-c C-e
for export. All right. Is it...
I believe I'm...
It's all the time I had. Amin, can you
confirm this?
Okay. So if you have more questions,
don't worry, I'll be in chat.
I'll be answering them. I'm also on on
all the platforms we advertise on
org-roam. If you want to reach me, I'm
really easy to reach.
Our Github page is always open. So thank
you all for
all your questions and all your energy
about org-roam. It is very exciting for me
to see all this.
but right now, I'll be handing off the
microphone, I should say, to Noorah, who is
going to talk to you about the
academic way to use org-roam. I'll be
back afterwards with the technical talk.
Thank you. (Amin: Thank you very much, Leo)
Leo: See you later, guys.