summaryrefslogblamecommitdiffstats
path: root/2020/info/16.md
blob: dfb3ddda7240364bf4ecadb921455f5b34154869 (plain) (tree)
1
2
3
4
5
6
7


                                                                  
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                       
                              
 



















                                                                        
                                                                                                             

                                                                                                 
 

                      

                                                                    
 
           
 
                                                               

                                                                    
 
                                                                                             
 


                                                                      
 
                                                                                                                                                       
                                              



                                                                    
 
                                                                
                                                          
 
                                                                 
 
                                                                                     
 
                                                                                                                                                                                                                                                      
 
                                                                                     
 
                                                        
                                
 
                                                   
 

                                                                               
 



                                                                                            
 
                                          
 
                                                                                                                                                                        
                                                             
 
       













                                                                                                                                                                                                  












































































































































































































































































































                                                                                                                                   
# Org-roam: Presentation, Demonstration, and What's on the Horizon
Leo Vivier

[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier.webm" subtitles="/2020/subtitles/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier.vtt"]]  
[Download .webm video, 720p, 263MB](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier.webm)
[View transcript](#transcript)

Org-roam is a Roam replica built on top of the all-powerful Org-mode.

Org-roam is a solution for effortless non-hierarchical note-taking with
Org-mode.  With Org-roam, notes flow naturally, making note-taking fun
and easy.  Org-roam should also work as a plug-and-play solution for
anyone already using Org-mode for their personal wiki.

Org-roam aims to implement the core features of Roam, leveraging the
mature ecosystem around Org-mode where possible.  Eventually, we hope to
further introduce features enabled by the Emacs ecosystem.

The purpose of the talk is to introduce people to Org-roam, whether
they be Org-mode connoisseurs or newcomers.  A lot of people have
found value in adopting Org-roam and the Zettelkasten method in their
workflows, and the goal is to demonstrate how they achieved it.  The
last part will present the future milestones that are in store for
Org-roam.

Examples of short-presentations I've recorded in the past:

-   [Org-Roam v1.2.0: Headlines & Unlinked References - YouTube](https://www.youtube.com/watch?v=oyEMlIxIHXs)
-   [Org-roam-bibtex - Quick Presentation - YouTube](https://www.youtube.com/watch?v=Wy9WvF5gWYg)
-   [Org-roam-dailies: Demonstration - YouTube](https://www.youtube.com/watch?v=1q9x2aZCJJ4)

<!-- from the pad --->

-  Actual start and end time (EST): Start: 2020-11-28T14.54.36; Q&A:
   2020-11-28T15.12.44; End: 2020-11-28T15.15.51

# Questions

## What is the functionality of `org-roam-unlinked-references`?
Let's say we have Emacs in another note&#x2026; for every mention of
Emacs that is not linked, it prints all the results in the buffer.

## How would org-roam files which would be very numerous integrate with todo's and org-agenda

## Is it possible to use the backlinks feature in regular Org buffers?
We have a very controlled environment and this is where we keep all
the notes.

## Do you make your org-roam database accessible accross computers? Via putting the SQLite file in Dropbox or serving the DB in the cloud or something.
- Answer: no. Only on one computer personally.
- But plenty of people have done so. Section in the manual dedicated
  to this.
- Pretty sure best results occur when the DB is generated seperately
  for each machine.

## How do you discover tags/links to add to a new org-roam note?
&#x2026; go to org-roam.com, on GitHub we show everything.

## Do you share your org-roam knowledgebase in a public location?

## Is it possible/easy to have a knowledgebase which is a mix of public/private data?

## Is it possible to seamlessly link to other notes with syntax instead of a keybinding? How do you avoid ending up with duplicate links like `tag1`, `tag_1` and `tag-1`? Since notes are created at different times it's difficult to be consistent.

## What is the best way to keep a separate org-roam (dir) for work and home/personal?

## Are the timestamp prefixes in the filenames optional?
Yes, you can modify the prefixe.

## Just want to say good on you Leo! Perserverence!

## Is there an easy way to export several selected notes, to say, a LaTeX file?
At the very core it is Org Mode.

<https://org-roam.discourse.group/t/interoperability-between-org-roam-and-regular-org/715/8>
has some notes about exporting from Org Roam to regular Org
- Yes, sorry, I meant to put together several "atoms"  for export.
- Try org-transclusion to make new notes and export to LaTeX file.

## How do tags fit into org-roam workflow?

## You mentioned you have a YouTube channel. Could you give us the link to it. I would definitely be interested in watching your videos. Yeah, I didnt see it. Thanks :D
<https://www.youtube.com/user/Zaeph> (Check the notes below).

# Notes
- Maintainer of <https://www.orgroam.com/>
- "Org Roam is a way for you to manage backlinks inside of Emacs"
  links - backlinks
- I see logseq ( <https://logseq.com> ) as a bridge to link non Emacs
  users to Emacs world.
- Org-roam is awesome. As a friendly challenge, Karl wrote
  <https://karl-voit.at/2020/06/14/Zettelkasten-concerns/>.
  - You should check out the cool discussions on <https://www.reddit.com/r/emacs/comments/hg2m5s/zettelkastenorgroamorgbrain_is_crap/> which mentiones tons of advantages of org-roam/Zettelkasten
  - If you checked out Zettelkasten and you're looking for a simpler
    alternative for just bi-directional linking headings (but none of
    the other great features of Zettelkasten):
    <https://karl-voit.at/2020/07/22/org-super-links/>.
- "The point is to make consistency of your notes."
- YouTube channel: <https://www.youtube.com/user/Zaeph>.


<!-- transcript: 2020/subtitles/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier.vtt -->

<a name="transcript"></a>
# Transcript

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. 

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." 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.

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. 

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.

<!-- /transcript -->