Back to School With Linux

Tips on making online course materials efficiently with Blackboard and Linux

Jeremy Teitelbaum
The Faculty
7 min readAug 21, 2020

--

Fall on the campus of the University of Connecticut (photo credit by the author)

I teach math at the University of Connecticut, and like many teachers
across the country, I’m confronted with moving my courses online for
the Fall semester of 2020. At UConn, we are fortunate to have a fine
Center for Excellence in Teaching and Learning that provides extensive
support and a range of tools for producing the materials we need. For
me, though, there’s a catch — I’m a Linux user, and the instructions
and the tools that my university provides are aimed at Mac
and Windows users.

My goal was to produce decent quality videos that include video of me talking and the ability to show slides on which I could write both text and mathematics. I also wanted to simplify my interactions with Blackboard to the greatest extent possible. With some work I’ve put together a package of software tools that let me do everything my Mac and Windows colleagues do, and achieve results that satisfy my relatively low production standards. I wanted to share what I learned with other Linux users getting ready for Fall.

By way of background, I have the following hardware on hand:

  • a desktop Linux machine running Ubuntu 18.04LTS
  • a Logitech CS922 webcam
  • 2 monitors
  • an iPad Pro
  • an Apple pencil.

I realize that’s a lot of hardware for many people, but even if you don’t have such a luxurious setup hopefully you will still find useful information in the rest of this article.

To get a sense of what I am able to produce, you can see a sample here.

A sample video — I’m no movie star!

Now for a walkthrough of what I’ve learned.

Open Broadcaster Software (OBS) for Videos

Open Broadcaster Software is a software package that allows you to build different “scenes” and then transition smoothly between them to produce a professional-looking video. In addition to blending import sources like webcams and audio streams, it can show application windows or an entire desktop. It works beautifully and is easy to set up. In producing my videos, I have three scenes:

  1. A title scene that shows a title card describing what section I’m going to be talking about, while playing some theme music;
  2. A scene that’s just my webcam so I can record myself talking to the class;
  3. A scene that mirrors my second monitor together with a webcam “box” in the upper corner. I mirror my ipad screen to this second monitor (I explain how to do this later) and so this scene is where I write on my “virtual whiteboard.”

OBS smoothly fades in and out of these scenes. It’s quite a lot of fun to use, and I gather that it is the tool of choice for twitch video game streamers around the world, so it has a certain element of “cool.”

Blackboard’s WEBDAV server

Blackboard calls for constant pointing and clicking, and to minimize that as much as possible I have come to rely on Blackboard’s WEBDAV server. This enables me to access Blackboard’s “Content Collection” directly as a sub-directory of my working directory and saves the tedious step of using Blackboard’s web interface to upload files. There are a number of linux tools for mounting WEBDAV file systems, but I’ve settled on rclone.

To set up the WEBDAV mount, obtain the link to your blackboard content collection by navigating in blackboard to your Content Collection and clicking “Set up Web Folder.” This will take you to a page where you can retrieve the link.

Click here to find the WEBDAV link

With this link in hand, you can follow rclone’s configuration instructions to mount the content collection in a convenient directory. Now you can move materials such as videos and pdf files to blackboard’s content collection with Unix commands instead of having to point and click.

Pandoc for slides

After many years of using LaTeX and beamer to produce slides for my courses and talks, I’ve simplified my life by writing everything in markdown with embedded LaTeX and using pandoc to convert to pdf and HTML. This greatly simplifies the process of writing the slides and guarantees that I’ll get good quality pdf as well as properly formatted HTML slides to share. Here’s an excerpt of a pandoc markdown file including LaTeX; each ## section is a slide.

I use the following Makefile to convert pandoc slides into beamer, and then into pdf.

As a result, if my markdown slides are in file.md I can type

make file.html

to generate slides in the slidy.js html format or

make file.pdf

to generate pdf files in beamer format.

Notability to display and annotate, with Github and Working Copy to manage files.

I use the iPad app Notability to display my PDF files on my iPad. Notability allows me to use my Apple Pencil to annotate the slides very conveniently, and the handwriting is fluid and clear. I’ll explain shortly how I get my ipad onto my Linux desktop so that I can incorporate its screen into my video. First, though, I have to get my PDF slides from my Linux desktop into Notability, and then, after I annotate them, out of Notability on my iPadand back to my desktop, then ultimately via the WEBDAV interface onto blackboard.

I manage my course materials using git and store them on a git remote. On the ipad, there is a wonderful git client called Working Copy and using it I can clone my course repository to my iPad. Then:

  1. I can create some PDF slides using pandoc on my desktop, commit and push them to the git remote
  2. Pull the new files into Working Copy on my iPad
  3. Open the files from Working Copy in Notability
  4. Annotate them (while making the video — more on this later) using my Apple Pencil
  5. Move them back into Notability with the annotations
  6. Commit and push them back to GitHub
  7. Pull them down to my desktop and copy them to blackboard.

It looks like a lot of steps, but it goes very smoothly, and it has the side effect that I can use GitHub Pages to publish my slides as an alternative to blackboard.

Displaying the ipad on the linux desktop

What really makes this whole approach viable for me is the ability to mirror my iPad screen onto my Linux desktop (and then, via OBS, into the video as I write on it). If you have a Mac, you can just plug a USB-to-Lightning cable into your iPad to achieve this, but for Linux you need a different solution. Unfortunately, despite much effort, I have not managed to find a free solution. I can offer two different solutions, one of which might work for you, and is relatively inexpensive; and the other of which will work for you, but requires you to have access to a copy of Windows. If you can get Windows for free, the two methods are roughly comparable in cost and I’d recommend you use the second of the two that I will describe.

The less expensive, but unreliable, option is to use the windows version of the program Reflector3 (which costs about 18 bucks) and run it on Linux under WINE. Reflector3 (in its PC version) allows you, via Airplay, to mirror your iOS device to your PC screen. WINE is a software package that allows you to run Windows programs on Linux, but there’s no guarantee that it will work. In my own case, I managed to get it working by following this discussion and I was very happy with the result — I could mirror my iPad to my Linux desktop and then include it in an OBS screen. Reflector3 was fast and did just what I needed.

Alas, in the spirit of full disclosure, when writing this article I tried to reproduce my installation and failed, probably because WINE changed in the interim. So even if you manage to get this working, it might be a fragile situation to be in.

Hence option number 2, which involves running Windows in a virtual machine inside of Linux. The oracle VirtualBox software manages VM’s on Linux and is part of the distribution, and I was able to get a copy of Windows 10 from my University. The resulting Windows VM run nicely on my desktop.

Windows VM on my Linux Desktop

Having already paid for Reflector3, I planned to use it on the Windows VM, but unfortunately its performance was too laggy and I had to look elsewhere. Ultimately I found the Microsoft App called Airserver, which serves the same purpose as Reflector3, but performs much, much better. It costs about 10 bucks for educational users.

Using this setup, I can mirror my ipad into the Windows VM via Airserver, as in the image below, and then include the VM window in an OBS scene.

Airserver in Windows VM on Linux

There are some GitHub projects attempting to write native airplay clients for Linux, but none of them worked for me. If someone knows a better solution to this, please get in touch!

Concluding Thoughts

Putting all these pieces together has been a bit of a project, but now that it’s set up it’s a pleasure to use. My colleagues who work on Macs and PCs might not have had to work quite as hard, especially to mirror their iPad, because they live in the bubble of interconnected devices that doesn’t (quite) include Linux. I think my results are as good as anything they can achieve, and I can work in the environment I most enjoy.

All the best for a very new, and very, very complicated, 2020 school year!

--

--

Jeremy Teitelbaum
The Faculty

I am a Professor of Mathematics at the University of Connecticut.