My team at work hosts a lightning talk session once a month. Each member comes up with a topic that they present for five minutes in one of our conference rooms. The session is broadcast on Google Hangouts to the rest of the company, including our branch in Osaka. The goal is to inculcate inter-departmental knowledge sharing; encourage continuous learning and research; foster an open engineering culture; and all that good stuff.
I am not, however, going to talk about how to use reveal.js or reveal-ck. Nor am I going to talk about how I put together content for a lightning talk. This article is more about the technical logistics for hosting my slides given my rather specific circumstances:
- I don’t have a laptop at work, which means that I can’t just sneakerware my slides into the conference room. I could always apply for one, but I’d just rather not deal with all that bureaucracy.
- My teammates have laptops that I can freely leech off of, but in this day and age, I don’t want to waste time copying HTML files and assets across machines.
- Internal talks sometimes include sensitive content, which precludes public hosting services like slides.com.
My ideal solution would ultimately look like this:
I prepare my slides beforehand and host them from my desktop. My teammates’ laptops have access to the company’s WiFi network, so all I have to do is bring up the slides in one of their browsers.
Setting Up a Web Server
I started off by looking for a web server — preferably one that wouldn’t be too painful to install. As it turns out, macOS comes with Apache by default. No installation needed whatsoever! ✌
Next, I had to configure Apache. A bit of googling led me to How to Set up Apache in macOS Sierra 10.12, which came in very handy. The instructions John Foderaro gives are easy enough to follow, but tl;dr these are the steps I took:
1. Create a ~/Sites folder
$ mkdir ~/Sites
As he mentions in the article:
Once you create the directory, you can see that Finder still pays homage to this feature of yesteryear, as the folder icon gets a special treatment, receiving an icon that appears strikingly similar to that of Safari’s.
This was a nice touch. It makes it look as though this was meant to be. 😄
2. Add this to
Options Indexes MultiViews FollowSymLinks
Require all granted
your_username as necessary.
3. Uncomment these lines in
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
4. Uncomment these lines in
5. Restart Apache so that the settings can take effect
$ sudo apachectl restart
These are all one-off settings. I don’t use Apache for anything else, so there’s probably no need for me to touch them ever again. 🎉
Hosting the Slides
These are the steps that need to be repeated every time you have a new deck of slides to present:
1. Create a symbolic link in your ~/Sites folder to your slides
$ ln -s /path/to/reveal.js/slides ~/Sites/your_presentation
your_presentation as necessary.
2. Make sure your slides show up on your browser
your_presentation as necessary.
3. Make sure you can see your slides from someone else’s machine
your_presentation as necessary. If this doesn’t work, then you may need to configure your firewall.
Update: June 12, 2017
I presented the contents of this article in our lightning talk session last May. Dogfooding FTW. The slides are available here (in Japanese).