summaryrefslogtreecommitdiffstats
path: root/2021/captions/emacsconf-2021-babel--babel-for-academics--asilata-bapat--main.vtt
diff options
context:
space:
mode:
Diffstat (limited to '2021/captions/emacsconf-2021-babel--babel-for-academics--asilata-bapat--main.vtt')
-rw-r--r--2021/captions/emacsconf-2021-babel--babel-for-academics--asilata-bapat--main.vtt802
1 files changed, 802 insertions, 0 deletions
diff --git a/2021/captions/emacsconf-2021-babel--babel-for-academics--asilata-bapat--main.vtt b/2021/captions/emacsconf-2021-babel--babel-for-academics--asilata-bapat--main.vtt
new file mode 100644
index 00000000..5b4a23c5
--- /dev/null
+++ b/2021/captions/emacsconf-2021-babel--babel-for-academics--asilata-bapat--main.vtt
@@ -0,0 +1,802 @@
+WEBVTT
+
+00:00.799 --> 00:02.560
+Hi! My name is Asilata Bapat,
+
+00:02.560 --> 00:04.960
+and I'm talking about Babel for academics.
+
+00:04.960 --> 00:06.879
+So, I'm an academic at a university,
+
+00:06.879 --> 00:09.040
+and I use Emacs, Org mode, and Babel
+
+00:09.040 --> 00:11.280
+for a whole bunch of work related tasks.
+
+00:11.280 --> 00:12.559
+And there are many other tools
+
+00:12.559 --> 00:14.240
+that one could use to help with
+
+00:14.240 --> 00:15.200
+this workflow.
+
+00:15.200 --> 00:16.597
+I won't be going through all of these,
+
+00:16.597 --> 00:18.160
+and the ones that I've listed are just
+
+00:18.160 --> 00:20.240
+a few of the many that are available.
+
+00:20.240 --> 00:22.000
+Today, I'll really be talking about
+
+00:22.000 --> 00:24.080
+my teaching workflow.
+
+00:24.080 --> 00:27.840
+Let's just dive right in to a demo.
+
+00:27.840 --> 00:29.243
+So, the first file that I want to
+
+00:29.243 --> 00:31.599
+show you is the notes and admin file.
+
+00:31.599 --> 00:33.040
+From this file, I'll generate
+
+00:33.040 --> 00:35.440
+a nice-looking PDF document of notes,
+
+00:35.440 --> 00:36.963
+and I'll also keep track of some
+
+00:36.963 --> 00:38.399
+course admin.
+
+00:38.399 --> 00:43.200
+So, the file that I have here is this one,
+
+00:43.200 --> 00:44.719
+and all of the files that I'm going to
+
+00:44.719 --> 00:46.320
+show you today are taken from a course
+
+00:46.320 --> 00:48.096
+that I'm teaching at the moment
+
+00:48.096 --> 00:49.680
+this semester.
+
+00:49.680 --> 00:53.147
+What I want to do is export this
+
+00:53.147 --> 00:55.520
+entire document to LaTeX
+
+00:55.520 --> 00:56.320
+because this is where
+
+00:56.320 --> 00:58.800
+I'll be writing my course notes.
+
+00:58.800 --> 01:00.480
+But before I do that,
+
+01:00.480 --> 01:03.199
+I have some setup that I want to do,
+
+01:03.199 --> 01:05.199
+and you'll notice some of these headings
+
+01:05.199 --> 01:06.509
+are tagged as noexport,
+
+01:06.509 --> 01:08.400
+and they won't be exported.
+
+01:08.400 --> 01:11.680
+The startup setting I'll skip,
+
+01:11.680 --> 01:13.499
+and then the main thing here
+
+01:13.499 --> 01:14.880
+is the LaTeX setup.
+
+01:14.880 --> 01:18.560
+So, I'm using these #+ option lines,
+
+01:18.560 --> 01:21.360
+and I've told Org that
+
+01:21.360 --> 01:23.280
+I want to use an unusual LaTeX class,
+
+01:23.280 --> 01:24.880
+I'll have to tell Org about it later,
+
+01:24.880 --> 01:26.240
+I'll do that in a moment,
+
+01:26.240 --> 01:27.001
+and I have some
+
+01:27.001 --> 01:29.600
+LaTeX header lines, and so on.
+
+01:29.600 --> 01:31.360
+And then I have some export settings,
+
+01:31.360 --> 01:32.941
+the first export setting is
+
+01:32.941 --> 01:35.119
+to export into a different directory,
+
+01:35.119 --> 01:36.799
+not just at the same level
+
+01:36.799 --> 01:38.560
+because I want everything to go into
+
+01:38.560 --> 01:39.716
+the artifacts directory,
+
+01:39.716 --> 01:41.360
+and then I can ignore that artifacts
+
+01:41.360 --> 01:44.399
+directory using Git.
+
+01:44.399 --> 01:45.600
+This is the first
+
+01:45.600 --> 01:47.280
+source code block that we see,
+
+01:47.280 --> 01:49.759
+which is the Babel side of things,
+
+01:49.759 --> 01:52.079
+and I've called it export-setup.
+
+01:52.079 --> 01:55.759
+The way I write it is, #+begin_src,
+
+01:55.759 --> 01:56.965
+the language that I want to use,
+
+01:56.965 --> 01:58.159
+which is emacs-lisp,
+
+01:58.159 --> 01:59.600
+and maybe some options,
+
+01:59.600 --> 02:01.119
+and this is collapsed at the moment,
+
+02:01.119 --> 02:03.600
+if I expand it, you'll see
+
+02:03.600 --> 02:05.155
+inside here, this is really
+
+02:05.155 --> 02:07.600
+just Elisp, Emacs Lisp.
+
+02:07.600 --> 02:09.592
+So, the first thing I've done is,
+
+02:09.592 --> 02:12.440
+I've added this LaTeX class
+
+02:12.440 --> 02:15.360
+to the list of known LaTeX classes.
+
+02:15.360 --> 02:17.433
+And the second thing I've done is,
+
+02:17.433 --> 02:19.599
+I have locally set the value of
+
+02:19.599 --> 02:21.112
+org-latex-pdf-process,
+
+02:21.112 --> 02:24.720
+which is the compiler, to something…,
+
+02:24.720 --> 02:27.200
+this command is complicated I guess,
+
+02:27.200 --> 02:29.440
+but what the main thing it's doing
+
+02:29.440 --> 02:32.160
+is that it's moving the generated output…,
+
+02:32.160 --> 02:34.160
+sorry, the generated image files
+
+02:34.160 --> 02:35.169
+to the output directory,
+
+02:35.169 --> 02:37.519
+so that everything can remain
+
+02:37.519 --> 02:39.680
+inside of this artifacts directory,
+
+02:39.680 --> 02:41.519
+and maybe it's doing some other things.
+
+02:41.519 --> 02:43.680
+And then there are some other
+
+02:43.680 --> 02:47.120
+setup options that I'll skip.
+
+02:47.120 --> 02:49.360
+So, this is a source code block,
+
+02:49.360 --> 02:50.640
+inside of the source code block
+
+02:50.640 --> 02:52.319
+everything is basically Emacs Lisp.
+
+02:52.319 --> 02:54.640
+How do I evaluate this?
+
+02:54.640 --> 02:56.319
+I just press Control c Control c (C-c C-c),
+
+02:56.319 --> 02:57.920
+and it evaluates everything,
+
+02:57.920 --> 03:00.319
+but if I want to automate the evaluation,
+
+03:00.319 --> 03:02.080
+there's one other thing I can do.
+
+03:02.080 --> 03:04.658
+So, let me jump down to
+
+03:04.658 --> 03:06.720
+the local variables section.
+
+03:06.720 --> 03:09.740
+In this local variable section
+
+03:09.740 --> 03:11.680
+I have an eval block,
+
+03:11.680 --> 03:14.681
+so, I've added a certain hook to the
+
+03:14.681 --> 03:16.879
+org-export-before-processing-hook,
+
+03:16.879 --> 03:18.319
+and that just resolves
+
+03:18.319 --> 03:19.519
+this reference from this file.
+
+03:19.519 --> 03:23.040
+It looks for a code block titled
+
+03:23.040 --> 03:24.859
+export-setup, and it runs it
+
+03:24.859 --> 03:26.000
+right before exporting,
+
+03:26.000 --> 03:29.200
+and this is all local to this buffer.
+
+03:29.200 --> 03:30.799
+So, before I export,
+
+03:30.799 --> 03:34.000
+it'll then read the correct options.
+
+03:34.000 --> 03:37.519
+And after this setup,
+
+03:37.519 --> 03:39.760
+I have the course plan,
+
+03:39.760 --> 03:41.599
+which is just what goes into my agenda
+
+03:41.599 --> 03:43.360
+as to-dos, I'll skip that.
+
+03:43.360 --> 03:45.519
+And after that, I have the actual notes,
+
+03:45.519 --> 03:48.640
+and what they actually look like…,
+
+03:48.640 --> 03:54.400
+so, this is what they actually look like,
+
+03:54.400 --> 03:57.040
+nicely LaTeXed with diagrams and so on,
+
+03:57.040 --> 03:57.920
+everything generated
+
+03:57.920 --> 04:00.720
+from that single Org file.
+
+04:00.720 --> 04:04.480
+I'll say more about diagrams later.
+
+04:04.480 --> 04:06.080
+I also have to write assignments
+
+04:06.080 --> 04:07.260
+and assignment solutions,
+
+04:07.260 --> 04:10.239
+so let me jump to that.
+
+04:10.239 --> 04:11.840
+Again, this is a very similar file,
+
+04:11.840 --> 04:14.080
+but I want to now export
+
+04:14.080 --> 04:15.760
+different headings to different files.
+
+04:15.760 --> 04:16.639
+This is not going to be
+
+04:16.639 --> 04:18.320
+exported all at once.
+
+04:18.320 --> 04:19.759
+So, again I have some setup,
+
+04:19.759 --> 04:22.400
+some general setup that I'll skip,
+
+04:22.400 --> 04:25.120
+export setup just like before,
+
+04:25.120 --> 04:29.280
+code setup for Python, really,
+
+04:29.280 --> 04:31.280
+I have a various…, a bunch of different
+
+04:31.280 --> 04:33.199
+languages here, so Shell and Python,
+
+04:33.199 --> 04:35.967
+and some helper functions.
+
+04:36.088 --> 04:38.160
+So, let me jump to this one called
+
+04:38.160 --> 04:39.756
+togglesolutions, this is again
+
+04:39.756 --> 04:41.919
+an Emacs Lisp code block.
+
+04:41.919 --> 04:43.600
+What this does is,
+
+04:43.600 --> 04:48.632
+it tells LaTeX to either toggle the
+
+04:48.632 --> 04:50.336
+display of solutions on, or off
+
+04:50.336 --> 04:53.096
+based on what the tag is
+
+04:53.096 --> 04:54.240
+for that particular assignment.
+
+04:54.240 --> 04:57.520
+So, whether if the assignment
+
+04:57.520 --> 04:58.800
+is tagged as solved,
+
+04:58.800 --> 05:00.240
+then the solution should be displayed,
+
+05:00.240 --> 05:03.280
+otherwise they shouldn't be.
+
+05:03.280 --> 05:05.447
+And here most of the assignments
+
+05:05.447 --> 05:07.120
+are tagged as solved,
+
+05:07.120 --> 05:08.880
+so in this case if I export this,
+
+05:08.880 --> 05:11.840
+the solutions will be displayed.
+
+05:11.840 --> 05:20.800
+Let's look at that.
+
+05:20.800 --> 05:23.919
+So, I see the solutions blocks,
+
+05:23.919 --> 05:27.036
+and this is because it's calling
+
+05:27.036 --> 05:29.919
+the toggle solutions piece of code.
+
+05:29.919 --> 05:32.240
+And the properties,
+
+05:32.240 --> 05:33.840
+if I expand this properties drawer,
+
+05:33.840 --> 05:39.280
+you see this output file name
+
+05:39.280 --> 05:41.440
+has a homework one dash solved,
+
+05:41.440 --> 05:43.360
+so it has a solved suffix,
+
+05:43.360 --> 05:45.912
+and this is related to the fact that
+
+05:45.912 --> 05:47.680
+I have a solved tag up here.
+
+05:47.680 --> 05:48.960
+So, let's see what happens
+
+05:48.960 --> 05:51.199
+if I delete the solved tag,
+
+05:51.199 --> 05:52.639
+so nothing's happened yet,
+
+05:52.639 --> 05:54.000
+but if I save the file,
+
+05:54.000 --> 05:55.919
+then suddenly this homework one
+
+05:55.919 --> 05:58.240
+dash solved becomes homework one,
+
+05:58.240 --> 06:00.080
+and this is desired behavior,
+
+06:00.080 --> 06:02.084
+this is what I want because
+
+06:02.084 --> 06:03.222
+I want to keep the solved
+
+06:03.222 --> 06:04.497
+and unsolved files separate.
+
+06:04.497 --> 06:07.120
+So, once again, if I put in
+
+06:07.120 --> 06:09.440
+the solved tag, and if I save,
+
+06:09.440 --> 06:11.440
+I get back the different file name.
+
+06:11.440 --> 06:12.720
+And how did I achieve this?
+
+06:12.720 --> 06:16.479
+This is again back in the setup section,
+
+06:16.479 --> 06:19.280
+it's the process-export-filenames block.
+
+06:19.280 --> 06:21.120
+It's some big piece of Elisp
+
+06:21.120 --> 06:22.349
+that I won't go through,
+
+06:22.349 --> 06:24.240
+but basically it's mapping over
+
+06:24.240 --> 06:26.720
+Org entries, and it's either
+
+06:26.720 --> 06:30.080
+adding or removing this solved suffix
+
+06:30.080 --> 06:34.560
+based on what tag it sees.
+
+06:34.560 --> 06:36.781
+Okay, when does this
+
+06:36.781 --> 06:37.919
+code block get evaluated?
+
+06:37.919 --> 06:39.840
+Well, I want it to be evaluated
+
+06:39.840 --> 06:41.039
+right before I save
+
+06:41.039 --> 06:43.199
+because I change something,
+
+06:43.199 --> 06:45.840
+I save, and I want the properties
+
+06:45.840 --> 06:49.199
+to be get updated accordingly.
+
+06:49.199 --> 06:51.364
+If I go down to the
+
+06:51.364 --> 06:52.639
+local variables section again.
+
+06:52.639 --> 06:55.840
+Again, I have a local variables
+
+06:55.840 --> 06:56.800
+section here,
+
+06:56.800 --> 06:58.479
+and I'm evaluating this Elisp,
+
+06:58.479 --> 07:01.199
+which is setting the before-save-hook
+
+07:01.199 --> 07:04.240
+to resolve the process-export-filenames
+
+07:04.240 --> 07:05.716
+function, and so that's what
+
+07:05.716 --> 07:09.199
+gives me that functionality.
+
+07:09.199 --> 07:12.720
+And finally,
+
+07:12.720 --> 07:16.240
+I have some skeletons, which are….
+
+07:16.240 --> 07:19.360
+Emacs has this skeleton language,
+
+07:19.360 --> 07:22.240
+which is a rudimentary templating language.
+
+07:22.240 --> 07:24.220
+So, I've defined some templates
+
+07:24.220 --> 07:26.319
+for my assignment and worksheet
+
+07:26.319 --> 07:29.440
+in this little Emacs Lisp block,
+
+07:29.440 --> 07:31.120
+which I think I usually just evaluate
+
+07:31.120 --> 07:33.280
+manually, and then if I just call it,
+
+07:33.280 --> 07:35.199
+I get a nice-looking skeleton
+
+07:35.199 --> 07:37.360
+that gives me this assignment.
+
+07:37.360 --> 07:40.080
+One thing I want to show you
+
+07:40.080 --> 07:43.199
+in these assignments, or I mean,
+
+07:43.199 --> 07:44.720
+in this file in particular,
+
+07:44.720 --> 07:46.560
+are these dot source code blocks.
+
+07:46.560 --> 07:49.840
+So, I've had to type in or draw in
+
+07:49.840 --> 07:52.000
+some graphs in this assignment,
+
+07:52.000 --> 07:54.720
+and I can do that right from Org.
+
+07:54.720 --> 07:56.400
+So, this is some piece of code
+
+07:56.400 --> 07:59.199
+that's creating a file,
+
+07:59.199 --> 08:00.879
+which has this name,
+
+08:00.879 --> 08:05.840
+and if I evaluate this block,
+
+08:05.840 --> 08:10.720
+I see a results drawer with this file.
+
+08:10.720 --> 08:12.711
+And this is a PNG file,
+
+08:12.711 --> 08:13.759
+which now gets embedded
+
+08:13.759 --> 08:15.680
+into my LaTeX document.
+
+08:15.680 --> 08:16.639
+So, this is nice,
+
+08:16.639 --> 08:18.720
+I can actually delete this from here,
+
+08:18.720 --> 08:20.479
+and when I export,
+
+08:20.479 --> 08:23.919
+the file will get attached automatically.
+
+08:23.919 --> 08:26.639
+And similarly,
+
+08:26.639 --> 08:28.800
+in some other assignments here,
+
+08:28.800 --> 08:30.639
+I have some Python source,
+
+08:30.639 --> 08:33.284
+so I've had to type in
+
+08:33.284 --> 08:34.527
+some complicated matrices,
+
+08:34.527 --> 08:36.128
+and some complicated matrix products,
+
+08:36.128 --> 08:36.640
+and so on,
+
+08:36.640 --> 08:38.000
+which I didn't want to do by hand,
+
+08:38.000 --> 08:39.760
+so that I didn't introduce errors,
+
+08:39.760 --> 08:41.599
+so I've written some Python code.
+
+08:41.599 --> 08:44.240
+If I Control c Control c (C-c C-c)
+
+08:44.240 --> 08:45.920
+on this block, you'll notice,
+
+08:45.920 --> 08:47.120
+it's in the session matrix,
+
+08:47.120 --> 08:49.200
+so it's using the previous,
+
+08:49.200 --> 08:52.399
+the same kind of session.
+
+08:52.399 --> 08:55.440
+And you'll see that the results,
+
+08:55.440 --> 08:57.760
+because of the way I chose to format them,
+
+08:57.760 --> 08:59.920
+look like a nice drawer with
+
+08:59.920 --> 09:01.600
+nicely formatted LaTeX.
+
+09:01.600 --> 09:03.920
+Once again these results
+
+09:03.920 --> 09:05.519
+I can cut from the file,
+
+09:05.519 --> 09:07.600
+and the file will get exported…,
+
+09:07.600 --> 09:09.200
+when the file gets exported,
+
+09:09.200 --> 09:10.480
+these source code blocks will get
+
+09:10.480 --> 09:12.000
+evaluated, and the answer
+
+09:12.000 --> 09:19.200
+will show up in the file.
+
+09:19.200 --> 09:20.097
+And finally,
+
+09:20.097 --> 09:21.363
+the last thing I want to show you
+
+09:21.363 --> 09:23.531
+very briefly is the web page
+
+09:23.531 --> 09:26.720
+for this course.
+
+09:26.720 --> 09:28.399
+The only thing I want to show you here
+
+09:28.399 --> 09:30.399
+is that I have a Python source code block,
+
+09:30.399 --> 09:33.279
+which pulls in my handwritten course notes,
+
+09:33.279 --> 09:36.399
+and makes them into a nice-looking list
+
+09:36.399 --> 09:38.880
+with a nice-looking order,
+
+09:38.880 --> 09:41.680
+and then just exports as HTML.
+
+09:41.680 --> 09:44.600
+So, this is what
+
+09:44.600 --> 09:46.080
+the web page looks like,
+
+09:46.080 --> 09:48.880
+and you can see it at this URL.
+
+09:48.880 --> 09:49.892
+If you go click on
+
+09:49.892 --> 09:52.800
+the 2021 link at this URL.
+
+09:52.800 --> 09:54.880
+So, that's all that I wanted to say.
+
+09:54.880 --> 09:58.360
+Thank you very much!