summaryrefslogtreecommitdiffstats
path: root/2021/captions/emacsconf-2021-research--managing-a-research-workflow-bibliographies-note-taking-and-arxiv--ahmed-khaled--main.vtt
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2021/captions/emacsconf-2021-research--managing-a-research-workflow-bibliographies-note-taking-and-arxiv--ahmed-khaled--main.vtt520
1 files changed, 520 insertions, 0 deletions
diff --git a/2021/captions/emacsconf-2021-research--managing-a-research-workflow-bibliographies-note-taking-and-arxiv--ahmed-khaled--main.vtt b/2021/captions/emacsconf-2021-research--managing-a-research-workflow-bibliographies-note-taking-and-arxiv--ahmed-khaled--main.vtt
new file mode 100644
index 00000000..8686153d
--- /dev/null
+++ b/2021/captions/emacsconf-2021-research--managing-a-research-workflow-bibliographies-note-taking-and-arxiv--ahmed-khaled--main.vtt
@@ -0,0 +1,520 @@
+WEBVTT
+
+00:00.480 --> 00:00:02.639
+Hello, everyone. My name is Ahmed
+
+00:00:02.639 --> 00:00:05.279
+and I am very happy to be here.
+
+00:05.279 --> 00:00:07.359
+Today I'll talk about
+
+00:00:07.359 --> 00:00:12.160
+my academic workflow inside Emacs.
+
+00:12.160 --> 00:00:14.880
+So the main needs that I have
+
+00:00:14.880 --> 00:00:16.880
+is to keep up with the current research
+
+00:00:16.880 --> 00:00:19.760
+in my field, and to be able
+
+00:00:19.760 --> 00:00:23.920
+to take notes, and write,
+
+00:00:23.920 --> 00:00:25.359
+and use these notes later
+
+00:00:25.359 --> 00:00:29.439
+in writing my papers inside Emacs.
+
+00:00:29.439 --> 00:00:31.119
+Emacs is a great program for this
+
+00:00:31.119 --> 00:00:32.880
+because it is very extendable
+
+00:00:32.880 --> 00:00:36.960
+and we can basically write
+
+00:00:36.960 --> 00:00:39.440
+whatever we are missing.
+
+00:39.440 --> 00:00:41.360
+It replaced my earlier
+
+00:00:41.360 --> 00:00:42.559
+proprietary workflow
+
+00:00:42.559 --> 00:00:44.320
+that involved using Mendeley
+
+00:44.320 --> 00:00:46.320
+and Visual Studio Code
+
+00:00:46.320 --> 00:00:47.760
+and many other tools
+
+00:00:47.760 --> 00:00:49.760
+in order to do the things
+
+00:00:49.760 --> 00:00:51.759
+that I'll show today.
+
+00:51.760 --> 00:00:54.480
+So the first concern that I have
+
+00:00:54.480 --> 00:00:57.280
+is to keep up with new papers.
+
+00:00:57.280 --> 00:01:02.399
+To do that, I use this package called elfeed.
+
+01:02.399 --> 00:01:05.760
+Elfeed is basically just an RSS reader,
+
+01:05.760 --> 00:01:09.600
+and here I fetch all the papers that I need
+
+00:01:09.600 --> 00:01:12.159
+from arXiv, which is the main source
+
+00:01:12.159 --> 00:01:14.080
+of papers in my field
+
+00:01:14.080 --> 00:01:16.720
+and many other scientific fields.
+
+01:16.720 --> 00:01:22.640
+It allows me to view these papers
+
+00:01:22.640 --> 00:01:27.680
+with the abstracts and so on.
+
+01:27.680 --> 00:01:32.159
+In order to simplify viewing
+
+00:01:32.159 --> 00:01:34.799
+and searching for relevant papers,
+
+00:01:34.799 --> 00:01:36.400
+I used this other package called
+
+00:01:36.400 --> 00:01:41.600
+elfeed-score, and elfeed-score enables me
+
+00:01:41.600 --> 00:01:44.560
+to assign a numerical score like this
+
+00:01:44.560 --> 00:01:47.600
+to each of the arXiv entries.
+
+00:01:47.600 --> 00:01:49.200
+This numerical score is very simple.
+
+00:01:49.200 --> 00:01:52.560
+It's just based on matching things.
+
+00:01:52.560 --> 00:01:59.200
+So, for example, we can ask elfeed
+
+01:59.200 --> 00:02:05.040
+to explain this. So if we say = x,
+
+02:05.040 --> 00:02:08.720
+then this just says that
+
+00:02:08.720 --> 00:02:10.000
+this matches three rules
+
+00:02:10.000 --> 00:02:12.720
+for a score of 76. This paper.
+
+00:02:12.720 --> 00:02:14.959
+This is simply because I am searching
+
+00:02:14.959 --> 00:02:16.800
+for these keywords
+
+00:02:16.800 --> 00:02:19.040
+that are very interesting to me,
+
+00:02:19.040 --> 00:02:20.879
+such as neural networks
+
+00:02:20.879 --> 00:02:22.879
+or federated learning.
+
+00:02:22.879 --> 00:02:28.959
+And now, if I see a paper here
+
+00:02:28.959 --> 00:02:30.238
+that I am interested in...
+
+00:02:30.239 --> 00:02:32.720
+Let's say I'm interested in this paper
+
+00:02:32.720 --> 00:02:35.040
+about Gaussian Process Inference,
+
+02:35.040 --> 00:02:36.640
+then I want to store it
+
+00:02:36.640 --> 00:02:40.160
+in my local library. So I want the PDF
+
+00:02:40.160 --> 00:02:41.920
+and I want to be able to cite it
+
+00:02:41.920 --> 00:02:44.000
+in the future. To do that,
+
+00:02:44.000 --> 00:02:46.080
+I use a package called org-ref
+
+00:02:46.080 --> 00:02:54.640
+that allows me to fetch papers from arXiv.
+
+00:02:54.640 --> 00:02:56.720
+So here I wrote a helper function,
+
+00:02:56.720 --> 00:02:59.200
+this elfeed-entry-to-arxiv
+
+02:59.200 --> 00:03:02.480
+that automatically gets this paper.
+
+00:03:02.480 --> 00:03:03.840
+It asks me where to put it,
+
+00:03:03.840 --> 00:03:07.840
+it completes with my default libraries,
+
+03:07.840 --> 00:03:13.360
+and then it fetches the paper from arXiv
+
+03:13.360 --> 00:03:16.159
+and places it in this folder,
+
+00:03:16.159 --> 00:03:20.000
+and also places it in my bibliography file
+
+00:03:20.000 --> 00:03:23.280
+which is written in BibLaTex.
+
+03:23.280 --> 00:03:30.239
+So here, if we search for this paper now,
+
+03:30.239 --> 00:03:35.200
+we find that it is in our library.
+
+03:35.200 --> 00:03:38.000
+This library interface
+
+00:03:38.000 --> 00:03:41.280
+is from a package called citar,
+
+00:03:41.280 --> 00:03:44.000
+and I have customized it quite a bit
+
+00:03:44.000 --> 00:03:48.879
+to display all of the papers in my library
+
+03:48.879 --> 00:03:50.559
+in this format.
+
+03:50.560 --> 00:03:55.439
+This just reads from a BibLaTeX file.
+
+00:03:55.439 --> 00:03:59.519
+So if we open it like this,
+
+03:59.519 --> 00:04:02.879
+you'll see that this is the
+
+04:02.879 --> 00:04:06.640
+the entry that it placed.
+
+04:06.640 --> 00:04:10.959
+One of the interesting things here is that
+
+04:10.959 --> 00:04:13.519
+org-ref actually doesn't really fetch
+
+00:04:13.519 --> 00:04:16.079
+all of the entries in this format.
+
+00:04:16.079 --> 00:04:18.639
+Moreover, I want all the entries in my file
+
+00:04:18.639 --> 00:04:20.160
+to look quite similar,
+
+04:20.160 --> 00:04:23.520
+and to have this very similar look,
+
+04:23.520 --> 00:04:25.440
+and the way I accomplish that is by
+
+00:04:25.440 --> 00:04:28.960
+using several tools and chaining them.
+
+04:28.960 --> 00:04:37.280
+So in order to see this...
+
+04:37.280 --> 00:04:39.600
+So here, this is the function
+
+04:39.600 --> 00:04:41.680
+that I used to...
+
+04:41.680 --> 00:04:46.720
+This is basically run as a hook after each time
+
+04:46.720 --> 00:04:49.680
+Emacs modifies the bibliography file,
+
+04:49.680 --> 00:04:52.320
+and it runs rebiber
+
+00:04:52.320 --> 00:04:56.479
+which gets the conference versions
+
+00:04:56.479 --> 00:04:58.320
+of papers that I fetch from arXiv,
+
+00:04:58.320 --> 00:05:00.800
+because arXiv is a preprint directory,
+
+05:00.800 --> 00:05:05.360
+and then biber normalizes the arXiv file
+
+05:05.360 --> 00:05:07.919
+to have a consistent look,
+
+00:05:07.919 --> 00:05:10.320
+and then I apply just some substitutions
+
+00:05:10.320 --> 00:05:12.960
+which I like more.
+
+05:12.960 --> 00:05:14.560
+Finally, I have the whole thing
+
+00:05:14.560 --> 00:05:16.639
+under version control.
+
+05:16.639 --> 00:05:20.000
+This function, reformat-bib-library,
+
+00:05:20.000 --> 00:05:21.840
+I make it into a hook
+
+00:05:21.840 --> 00:05:24.720
+and I run it every time after I save.
+
+05:24.720 --> 00:05:27.039
+It just checks if the current buffer
+
+05:27.039 --> 00:05:29.039
+is the main bib library.
+
+00:05:29.039 --> 00:05:31.840
+We will just reformat the library.
+
+00:05:31.840 --> 00:05:33.680
+This allows me to keep the library
+
+00:05:33.680 --> 00:05:37.199
+looking all consistent like this.
+
+05:37.199 --> 00:05:39.120
+By the way, all of the code is available.
+
+05:39.120 --> 00:05:40.880
+You don't have to get it from the video.
+
+05:40.880 --> 00:05:44.479
+I will attach it as a GitHub gist.
+
+05:48.720 --> 00:05:49.919
+One of the things
+
+00:05:49.919 --> 00:05:51.520
+that are really important
+
+00:05:51.520 --> 00:05:54.080
+is that I want to be able to keep notes
+
+00:05:54.080 --> 00:05:56.160
+on papers that I read.
+
+05:56.160 --> 00:05:58.479
+For example, here are some of
+
+00:05:58.479 --> 00:06:00.319
+my existing notes.
+
+06:00.319 --> 00:06:04.720
+Now, let's add a note to the paper
+
+00:06:04.720 --> 00:06:06.080
+that we just got.
+
+00:06:06.080 --> 00:06:08.800
+So the the pipeline here is that
+
+00:06:08.800 --> 00:06:12.080
+I use citar with embark,
+
+06:12.080 --> 00:06:13.199
+which is another library,
+
+00:06:13.199 --> 00:06:15.600
+but you can use any other library
+
+00:06:15.600 --> 00:06:17.039
+just for completion
+
+00:06:17.039 --> 00:06:19.600
+and acting upon completion, like ivy,
+
+06:19.600 --> 00:06:21.360
+and I ask it to open notes
+
+00:06:21.360 --> 00:06:23.680
+and then it asks me how to capture it.
+
+00:06:23.680 --> 00:06:25.120
+So these capture templates
+
+00:06:25.120 --> 00:06:27.440
+are handled by the org-roam package,
+
+00:06:27.440 --> 00:06:30.400
+which is a very, very interesting package
+
+00:06:30.400 --> 00:06:32.560
+for note-taking.
+
+06:32.560 --> 00:06:36.160
+org-roam, among other things, allows us
+
+00:06:36.160 --> 00:06:38.800
+to write linkable notes in Org mode,
+
+06:38.800 --> 00:06:42.400
+and moreover, it is very extensible.
+
+06:42.400 --> 00:06:45.600
+There is another package called org-roam-bibtex
+
+00:06:45.600 --> 00:06:47.840
+that allows us to attach these nodes
+
+00:06:47.840 --> 00:06:50.000
+to bibliography files,
+
+00:06:50.000 --> 00:06:51.919
+which is what I'm doing right now.
+
+06:51.919 --> 00:06:54.800
+For example, I set up the capture template
+
+00:06:54.800 --> 00:06:57.680
+such that when I press s
+
+00:06:57.680 --> 00:07:01.440
+for short bibliography reference,
+
+07:01.440 --> 00:07:04.800
+it will make a new headline
+
+07:04.800 --> 00:07:08.479
+in my "Reference Notes" note,
+
+07:08.479 --> 00:07:10.479
+and I can write things here
+
+00:07:10.479 --> 00:07:14.960
+(so, for example, "seems interesting")
+
+07:14.960 --> 00:07:18.000
+and then note here that it added this paper
+
+00:07:18.000 --> 00:07:24.319
+to ROAM_REFS, so this means that
+
+07:24.319 --> 00:07:26.720
+when I look at these papers using citar,
+
+07:26.720 --> 00:07:30.319
+it will be able to find this note.
+
+07:30.319 --> 00:07:34.000
+Similarly, we can also add long-form notes.
+
+00:07:34.000 --> 00:07:37.199
+For example, if I do this and I add r,
+
+07:37.199 --> 00:07:39.840
+it will create an entirely new file
+
+00:07:39.840 --> 00:07:48.000
+that I can take detailed notes in.
+
+07:48.000 --> 00:07:50.639
+The strengths of org-roam is that
+
+00:07:50.639 --> 00:07:53.520
+I can do things like linking papers.
+
+07:53.520 --> 00:07:55.360
+For example, here are several books
+
+07:55.360 --> 00:08:00.000
+that I am reading. This file just collects
+
+00:08:00.000 --> 00:08:02.319
+these books so that I can find them
+
+00:08:02.319 --> 00:08:03.919
+for easy reference.
+
+08:03.919 --> 00:08:07.599
+Of course, I can link these files from inside.
+
+08:07.599 --> 00:08:13.759
+You can see here that I also use org-cite
+
+08:13.759 --> 00:08:18.720
+to cite other files, and I can act upon this
+
+08:18.720 --> 00:08:21.199
+and open the notes corresponding to
+
+00:08:21.199 --> 00:08:28.240
+this other book.
+
+08:28.240 --> 00:08:30.319
+So I'm a little short on time.
+
+00:08:30.319 --> 00:08:32.719
+I cannot go into detail on everything,
+
+00:08:32.719 --> 00:08:34.560
+but I will share my configuration,
+
+00:08:34.560 --> 00:08:37.919
+and I hope that this will inspire other people
+
+00:08:37.919 --> 00:08:43.919
+to also use Emacs for their academic workflows.
+
+08:43.919 --> 00:08:44.919
+Thank you so much.
+
+00:08:44.919 --> 00:08:47.279
+[captions by sachac]