Authoring and presenting university courses with Emacs and a full libre software stack
James Howell
Format: 21-min talk ; Q&A: BigBlueButton conference room
Status: Q&A to be extracted from the room recordings
Talk
- 00:00 Introduction
- 01:12 Presenting
- 01:47 Hardware
- 04:46 Example setup
- 05:30 Presentation software: flexibility in function
- 07:05 Live demonstration
- 07:59 OBS
- 10:26 Animation
- 10:55 Emacs
- 11:42 Making slides and handouts with Org Mode
- 13:22 Pedagogy first
- 16:17 org-teach
- 19:38 Blank slides
- 19:50 Animations
- 20:19 Conclusion
Q&A
Description
Resources: https://git.sr.ht/~jamesendreshowell/org-teach
Relying exclusively on free and open source software for teaching science courses at a large university? With GNU Emacs at the center of these workflows? It's not only possible, it's much more flexible and empowering than being locked into proprietary platforms. We will step through the entire software stack and workflows for authoring and presenting lessons, authoring and evaluating assessments, and engaging students both in person and in fully online teaching environments.
About the speaker:
James Endres Howell has taught Molecular and Cell Biology, Biochemistry, Microbiology, Immunology, Toxicology, and Molecular Medicine at Penn State since 2006. Recently Dr. Howell has developed popular courses for non-science majors in Genetics, Ecology and Evolution; Science in Literature; and Science in Society. He has used Emacs daily since 1988.
Discussion
Notes
- I'm digging the weather-report style with your pointing at the screen
- I'm using org-mode to study for exams rather than present lectures recently btw. I like to copy questions in the org file and add notes as I work through the questions on paper.
- Q: do you use org-present or something like that?
- A: Nope, just a normal Org buffer. I have a few custom keybindings for narrowing to headlines and such, when I do use Emacs for presenting. (Coming up in a few slides)
- Next step: libre hardware
- ahh he broke the fourth...fifth?...wall!
- bookmarking xournal+++ for sure
- Living dangerously now.
- he's definitely a wizard!
- OBS looks very useful. Must explore.
- I had never thought of using OBS for presentations like that... this has to be the slickest setup there is
- my students all seem to come to class with tablets these days and they annotate the PDF of all of my slides. When I realised they were doing this, I decreased the density of material on each slide to ensure there was enough space for their notes.
macros are a very powerful and useful feature of org for complex documents!
Feedback
- Damn, this looks really really useful
- This presentation is damn cool, LOL.
- excellent talk! Thank you.
- Thanks for the talk, it was very interesting!!
- Fantastic. I think this talk will be a reference for years to come!
- Great stuff!
- You are one of my heroes now! 👏👏👏👏👏
- Brilliant talk James, inspiring stuff
Great system!
Download the handout (27MB PDF):
- The whole repository: https://git.sr.ht/~jamesendreshowell/org-teach
- Resolution kinda low.
- No, sorry! It was the best I was able to record.
- okay, it's fine.
- No, sorry! It was the best I was able to record.
- OBS is cool.
- I use pdfpc (can also present and draw, but command line) -
https://pdfpc.github.io/
- Also, pdfpc supports videos/animations in presentations
- Hm! I will look into it!
- Kinda mute?
- I don't know why!
- On publishing lectures/books - another classic example is John
Kitchin's https://github.com/jkitchin/dft-book
- Kitchin is a monster! He must have made a deal with the devil or
something.
- I suspect that it is what Assistant Prof position does to people
- Kitchin is a monster! He must have made a deal with the devil or
something.
- Pedagogy first "development"
- Materials must provide a way to take notes on
- Separate the work of writing/developing/scaffolding from slide wrangling
- THe org-teach allows for grabbing a slide from another repository (e.g. don't repeat knowledge)
- If you want to highlight org mode documents you can use
https://github.com/nobiot/org-remark. If you use Org Remark with
https://github.com/alphapapa/org-web-tools you can get an offline
backup af a web page that you can highlight and edit
- Wow. I will look into these.
- Macros are a cool idea!
- Are org-mode macros a new concept/learning for you?
- Surely not (I am a contributor). But it is a new idea to use
them for beamer presentations.
- Yeah, I loved see other ways folks use macros. I've done some of that for Beamer, but only recently.
- Surely not (I am a contributor). But it is a new idea to use
them for beamer presentations.
- Are org-mode macros a new concept/learning for you?
- I use org-transclusion
(https://github.com/nobiot/org-transclusion) for include other
document.
- It sounds like the include other file might be for including
non-org-mode files; does org-transclusion provide that
functionality?
- yep~, quit powerful.
-
- opps, I double check the manual. It seems mainly for human readable source code (txt, md, source code). I don't think it works with Pdf ...
-
- yep~, quit powerful.
- It sounds like the include other file might be for including
non-org-mode files; does org-transclusion provide that
functionality?
- OBS TIP -- You can use an android app like OBS Blade to control obs
from android
- Cool, thanks!
- CRDT.el https://code.librehq.com/qhong/crdt.el -- This can allow
multiple people with thier own Emacs Configs to edit a hosted emacs
buffer at the same time
- Awesome
Questions and answers
- Q: I'm curious how the xournal stylus work is composited with OBS
- Q: that entire screen was xournal at the time? I was thinking the slide was a different screen / software
- A: All the slides are presented via Xournal++. The "slides" frame is video capture from the tablet, running Xournal++.
- Q: Do you have a fancy OBS scene changer to switch between the software being presented?
- A: I just map scenes to function keys on the keyboard.
- Q: How you overlap yourself with the presenation? It's so cool.
- A: OBS provides a chroma key "filter"
- it's so cool! with DNA demo.
- A: OBS provides a chroma key "filter"
- Q: How you deal with Video in Beam? I found it's so hard to do
that. PPT on the other hand is so easy to achieve.
- A: I use Beamer export to make static slides, that I present via Xournal++. Videos, I present via VLC. So I use OBS to switch back and forth between Xournal, VLC, Firefox, etc.
- The above-mentioned pdfpc provides a LaTeX package to link
videos right to pdf (battle-tested on conferences ;))
- Thanks, I will have a try.
- Thank you!
- Q: Do you ever use things like Org Presnet and stay forgo powerpoint
slidees
- A: I've tried them but my core need is to annotate PDFs with the stylus in real time, so the best solution is Xournal++
- Q: Is the {{{ }}} syntax an Org Mode core feature that I have missed
so far, or did you program that? (Btw, thank you for the great
talk🙏)
- A: https://orgmode.org/manual/Macro-Replacement.html
- Some export backends allow for conditionals in the macro
replacement; when exporting to Hugo you can add an @@hugo
within the resolved macro.
- @@backend:...@@ is a separate construct - you do not have to use it in combination with macros. For example, see @@html example in https://orgmode.org/manual/Quoting-HTML-tags.html
- Some export backends allow for conditionals in the macro
replacement; when exporting to Hugo you can add an @@hugo
within the resolved macro.
- Thank you very much, I'll definitively look into this🙏
- A: https://orgmode.org/manual/Macro-Replacement.html
- Q: What kind of (comparative) feedback are students giving you
regarding your approach?
- A: They love it! All accounts were that my courses were much more successful than other instructors'.
- Q: You also teach English at Uni? cool
- A: Yes, it's a fun course.
- Q: Is the input from the Surface captured by OBS and all of that combined goes to Jitsi or Zoom? Correct?
Transcript
include-slide
,
impact-slide
, subsection-slide
,
et cetera, and then a bunch of stuff.
Then I've got this include
file that just has
the macros that I've written.
You can look at this on the repo.
I'm not going to take
the time to walk through it and
explain what all the LaTeX means.
But the upshot is
that by including that file
that has all the macro definitions,
you get things like this macro pause
or newline or whitespace-break,
which just allow—
pause splits a slide into two frames,
so you can get these overlays,
so you can go through paragraphs one by one.
These just put
white space in.
Text-slides: This thing here, this title
is level three heading.
Figure-slides:
the same thing are level three headings.
One of the most powerful things
is that I can take other files,
I can take other Org files that have level
three headings that are slides and those can
be in some other repository.
I only need to have one version of
that slide that I
can use in multiple courses.
Just that functionality is
incredibly helpful for keeping
track of work from a few years ago.
All of these I'm going to
explain in the next few slides.
The section slides
correspond to course modules.
Each of these is going to
be a few weeks of a course.
This is a major division of a course.
I have some macros so that I can decorate
this with relevant information.
Then for every subsection,
level two headline, that
corresponds to a major
course topic in the module.
Then text slides, again,
level three headlines become
titles for the slide,
and level four headlines become text elements.
Most of my slides look like this.
They're figures.
Here's the glycolytic pathway.
Level three gives you the title.
It's missing here actually,
but there's a way you can put in captions.
This line here just tells
the LaTeX export backend
how big you want it and stuff like that.
Impact slides, they have to go under H1 or H2.
And they just give you one of these text slides.
For an entire slide being an image,
you can use this image-slide macro.
Q&A transcript (unedited)
me? Great. The little angels in the background have done it for me. So now finally that everything is ready. Hi James, how are you doing? Good morning. Hello. Well, thank you for your talk and sorry for the little hiccup at the middle we had to pull out a fire with the audio going out in the middle and sorry about this. very fancy setup with the green screen and I'm sad to see that you haven't put out the green screen for your BBB session right now. Do you have it in the background just for you? Right, okay, it wasn't that far. Great. So I'm just going to ask, so this is the first live Q&A that we have for the session so things might be coming into place so pardon us if we take a little bit of time to put the questions on the screen and all of this. What I'm going to do, I'm just going to load up the pad. I would invite James to also open the pad on his hand. So yeah, I've got people talking in my ears and it's been a while since I've last had this. And okay, so opening the talks right now, opening the pad if I can find it. Open up the pad. Okay. So have you got a pad open on your end, James? So I can read the question. So, okay, great. Opening it on my end as well. What I'm going to do, folks, I see some of you have joined us. I'm going to start doing is first taking questions in the other part because it's a little faster to ask questions like this. And then as soon as we've finished, feel free to unmute yourself and ask your questions. All right so I've got some reactions about OBS being cool and yes both James and I will be able to tell you that it's very cool we do very fancy stuff like when I need to talk to production in the background and all the stuff obviously that James has been able to show you with a green screen. So I don't see a whole lot of questions so far. I see a lot of reactions on publishing lectures book and of a classic example is John Kitchens obviously. Pedagogy first developments. Macros are a cool idea. Okay questions. So how do you overlap yourself with a presentation. It's so cool. It's quite simple. You can have a separate filter for each video feed and 1 of the filters that's available is chroma key. You just choose a color to make transparent and just make sure that the webcam is at the top of the composition. And the thing that surprised me the most was how quickly my brain was able to mirror everything and control my body from a separate point of view like the way weather broadcasts are done. It took seconds to be able to do that. Well, and now I have years of practice because that set up that you saw that I used to record this video. I used for years during the pandemic for 4 or 5 semesters to because my courses are all have 2, 3, 400 students, except for the English class, which has, you know, 30 students. And so during the pandemic, and even after lockdowns were no longer mandated, I taught online just because I didn't want to have so many students in the room at the same time. So I've yeah, I'm it. I have a lot of practice doing that. you know, it feels like it's the same thing with weathercasters, you know, it sounds very it looks very easy to do, but it also takes quite a bit of practice. 1 of the things that you also need to remember if you're using a chroma key that James has explained is that you need to have very good lighting, basically for the color to pop out in the background and for your body to be easily highlightable. Okay, were you finished with this question? I found it so hard to do that. PPT on the other end is easier to achieve. produced from Org Mode as PDFs. Well, and in fact, I even before when I was using other software to produce slides, I produced them as PDFs, precisely because I wanted to be able to mark them up on on the screen with the stylus. And so I don't do video in the slides. I use OBS to switch from static slides that I mark up with the stylus over to some kind of video viewer and then back. And again, that's how I can use Firefox. I use OBS to switch between Firefox and video and the Shornell plus plus program where I can mark up slides. So those functionalities are that's why I use different software and pull it all together with OBS so that I can have lots of functional flexibility. org-present and stay for the PowerPoint slides? I'm not sure exactly how to read this particular question but at least we can focus on org-present. Are you familiar with what it is? again I guess you could use org-present to show images and to show headings as slides. But again, because I'm it's such a crucial functionality to be able to mark them up with stylus. I didn't really show this very much, but I also highlight things the way I would highlight using a laser pointer on the screen. And again, I don't see Emacs being able to do that for another couple of generations. So really the only thing I use Emacs for during presentations is to narrow headings that we can focus on particular text excerpts. EmacsConf are usually, especially the Org Mode ones are done with OrgPresent. And. Sorry, I had again someone talk to me in a year. You know, the problem with EmacsConf is that every year, you know, you have to relearn a lot of skills. And by the time we finished by Sunday evening we are masters of it and then we forget everything by the time the next year comes around. What I was going to say is that org-present is often used by people inside Emacs conf presenting about org-mode but yeah whenever you need to do something a little more visual, it gets a little more complicated. Some people have tried to do fancy stuff with SVG, which is probably the path forward for this type of stuff. But yeah, if you need to draw, if you need to highlight, it is pretty complicated. Perhaps something that you might want to be interested, James, in checking out is PDF tools, which is a way to open up a PDF in Emacs. And this allows you to have basic PDF annotations, like putting a little bit of a Nikon on it. Perhaps you've already played with it. package but until it allows me to make a mark on the screen that shows up in a video compositor. It's not going to replace Shortenel. Moving on to the next question. Is the triple-accolade syntax an Org Mode core feature that I missed so far or did you program that and thank you for the great talk. it's just part of all of the export backends. Actually, I think the way it works is it precedes all of the export backends. When you export, the first thing that happens is expansion of macros. And that's a built-in org mode feature. It's definitely beyond my Emacs Lisp powers to be able to have made something that powerful. That's right. I have come a long way. you know, most of the people who show up to Max Conf. Especially talking about stuff that has to do with presentations or what they do in academia. You know, they always say, oh, but, you know, I couldn't have done all this, you know, it's just far away. And then they come back 1 year or 2 years later and then, oh, I've made my entire library for presentation and stuff like this. So Be hopeful about what the future holds for you in terms of coming up with crazy new features for the entire ecosystem. since the pandemic, I have written, I wrote my first major mode. It's trivial, but it provides functionality that is very useful to me and it's it's going to sound like I'm just trying to butter everyone up but seeing a lot of the names in the IRC channel people who have taught me so much on their YouTube channels and in their blog posts and on Reddit and on Mastodon. Without many of the people who are here today watching my talk, it's very fun to have people who have helped me learn so much about Emacs. So thanks to all of you. of this crew of people inspiring others to do very much the same. So thank you for joining questions and then we'll open up the mic to other people on Big Blue Button. What kind of comparative feedback are students giving you regarding your approach? the pandemic especially when most of the courses were just being taught over zoom by people sharing their screen. interruption. Very rude interruption. We've got the intro for the next talk playing and I'm not sure what's going on. Give me just a second. Sasha. Yeah, I think it's started. Okay so yeah I think it's not a because of the little delay we had getting the audio fixed up. The good news is that we're still recording the talk right now and we still have James around. Obviously James you're no longer on being broadcast on General but if you want to keep answering questions or if you want to anyone in the room right now wants to ask you questions feel free to do so. I'm going to need to hop off because I need to get other things ready for the next talks obviously because I was not expecting this to happen and that led to a very abrupt end to this discussion but people afterwards on emacsmo.org slash 2023 slash talks will be able to find all the content here. So I'll have to leave now. Thank you so much James for doing the difficult task of opening up EmacsConf and I'll probably see you later. Yes. You are using the tablet as a monitor, right? Touch screen monitor with that? know I can. It has a touch screen and so. So basically the functionality that that program provides is to be able to just mark up PDFs with a stylus, you know, in the way that you would use any other tablet. And to be able to take that video signal and put it into another machine. That was the that was the key. That's the killer app. of like changing my laptop into a tablet to read manga, browse the web and kind of curious if it works well like as a wireless monitor with a tablet or how well it like you can use Emacs with it in a tablet mode or were you just is it it's just a Microsoft Surface and so it comes with a keyboard so you can take the keyboard off. Yeah, but I use it. I use it with the keyboard as well. And I just. I bumped the mute button on the mic. Yeah. So again, this is, used and it runs Emacs. I mean it runs. You know Linux really well. And the trouble is that the hard drive you know the SSE drive is small and the RAM is small, but it works for the purposes. Basically, if I had a couple thousand dollars, I could probably buy a touchscreen machine where I could run everything on it and do the streaming and do the video capture and do the PDF markup. But since both of these are so, the hardware that I use is so old and cheap and weak I have to split it across 2 machines. having specific purposes for specific things where it's just not. Yeah it's like I don't want a smart TV that plays Netflix I want a smart TV that has all the smarts that I turn my smart TV into a TV monitor I don't want to yeah feel that ethic. Oh, on do highlighting in an org mode document. You can use org web tools. I wrote this in the notes, but you can use org web tools to download a web page and then you can use org remark to start highlighting in the org mode web page and then because an org mode document now you can just edit it directly. If you want other people to join in on an Emacs session you could use a package like what's it called? CRDT.EL that will allow 2 people with 2 different Emacs configurations to edit the same buffer. And you have a host that can host a buffer too. It works with, and they have 1 optional extension for org mode that will synchronize the folding of the org drawers. Like you have each highlight line mode these are just some ideas like you can have like highlight line mode so people can easily see which line you're on cursor tracking and then you can have other people join in students or Is there anyone else in the in the big blue button room who has a question? All right, I'm going to go over to the pad and see if there are any pending questions I can address. Thanks, Plasma Strike. could be Markdown, could be OpenOffice, could be a notebook format. This methodology was conceived by Donald Knuth in 1984. The main purpose of literal programming is not only to make code or documentation or output more manageable, but to allow humans to create a data story to be used from a single source. What you see on the slide on the left-hand side is the story and code inside an org-mod file. The file starts with some documentation, then you write back down this code, and at the bottom you see the output file, which is not shown in the slide itself. In the middle you have the source code, which is the result of tangling or opening a buffer inside offload. On the very right hand side we have a PDF, actually this HTML, very same file that you see in memory language. So the humans look at some of this code and the machines look at other parts of the code. I actually did all my programming in the literary world even in the early 1990s, not using Org Mode, which didn't exist yet, but using Norman Ramsey's Norep preprocessor. They still use it inside the Org-Mode today. This preprocessor, Norep, allows you to tangle code from within an Org-Mode file that is self-standing file, much like Org-mode's edit functions, which export code blocks into buffers in whatever language the code blocks. In data science, these interactive notebooks, in 1 of the interpreted languages like Julia, Python, or R dominating? The basic technology is that of Jupyter notebooks, which take their name from Julia, Python, and R. And these notebooks use a spruce-dark shell, for example, IPython, and an option to add SQL cells. All good inside Emacs has a large number of advantages. Some of them are listed here over these notebooks. 2 of these stand out particularly. Different languages can be mixed as shown in the image. While in Jupyter notebooks, a notebook is limited to running a kernel in 1 language only. The content of the notebook, its document code or output part can be exported in a variety of forms.Questions or comments? Please e-mail emacsconf-org-private@gnu.org