MileHiCon 52 Virtual Follow-up

About a week ago, I put up a post explaining that I was working on MHC 52’s virtual convention (which was held last weekend – Oct. 23-25th). In that post, I said that I would either be talking about our great technical triumph or hiding in a cave full of bears.

Well, I am not in a cave full of bears, but I did spend a few hours under the dining room table with an irate sloth.

Overall, things worked out, but we did have a few problems.

Just to give you an overview of our setup–the convention was centered around a WordPress site. Registered users could go anywhere on the site, including to pages that had either live or prerecorded content. We were also using Discord for discussions, etc.

For the live programming (my bit), we scheduled a Zoom Webinar for each panel and a number of Zoom Meetings for get-togethers, classes, etc. The Zoom Webinars were all set up to stream (via Twitch) to the associated page on the web site (we called the three program rooms Asgard, Neverland and Pandora because, why not?).

Unfortunately, on Friday morning, the WordPress site first ran into performance problems due to the extra load, and then was shut down by the hosting company–who decided that there must be some sort of hack in progress 😮

Jyn, who was responsible for the MHC website, spent the remainder of the day building an entirely new (much more powerful) server, setting up certificates, databases, etc. My hat is off to her–she managed to get everything back up and running sometime around 2:00 in the morning after an exceedingly tough day.

Amazingly enough, programming managed to continue. I manually (ugh) posted links to each panel/item in Discord so that people could either join the Webinars/Meetings or could watch directly in Twitch. The panelists all had custom links sent out in the days before, so they had no trouble (except when they forgot what day of the week it was–apparently I’m not the only person who has lost track of days in COVID-land).

Saturday and Sunday went much more smoothly! We had a few minor hiccups (a couple of members of my Zoom hosting team were using ChromeBooks, and the ChromeBook version of Zoom is missing features–like the ability to start streaming!). A couple of panels started a minute or two late (although sometimes this was because we were waiting for panelists to show up). But, overall, it went really well. I have, of course, been working on a complex curse on all ChromeBooks unto the seventh generation of their processors, which may have a noticeable effect on a few manufacturer’s stock prices–just as soon as I find the dribbly candles and the goat’s skull.

The Con

The convention had more than 400 attendees, which is about a third of the live convention, but larger than many of the other virtual conventions. Individual panels ranged from 20-80 attendees, which was also really good. There were also a bunch of group get-togethers with various authors, some group classes, and a bunch of prerecorded content–particularly of author readings.

I was also on several panels. The most notable one was on Bitcoin and other Cryptocurrencies, and it was notable because Cory Doctorow was on the panel as well! I think I managed to make it through the panel without obvious squeeing. We are in the process of uploading all of the panels to YouTube, but they limit the amount you can upload each day, so it is taking a while. When it is up, I will post a link.

The content that has been uploaded so far can be found at MileHiCon Virtual on YouTube.

Update: The post with links to my panels can be found here.

My setup

We decided to use Zoom after considering about a dozen conference options that were either too complicated, too simplistic or too expensive. I chose Twitch for streaming after a long conversation with Alan Bond, who, amongst other things, managed tech for NASFiC, and was extremely generous with his time. We originally planned to use YouTube for streaming, but they had a bunch of conditions we couldn’t meet (like having 4000 hours of viewed programming on three different accounts before we would be allowed to do live embedding).

Twitch worked really well, other than a rather frustrating attempt to get answers out of their support organization (well, it is free). I had three separate accounts, one for each live panel room.

Once I got the schedule, I sucked it into a program I’d written to manage COSine programming (that’s the convention I co-chair):

I added functionality to the program to talk to the Zoom API and also to export the schedule as HTML in a bunch of different sliced-and-diced ways for the web pages. It also exported JSON for the main pages–I had a cool setup where it showed “Now Playing” and “Up Next” beneath each streamed program, along with the appropriate Zoom link in case people wanted to jump in and ask questions.

Unfortunately, my JavaScript skills are poor (which is convenient, since JavaScript is a poor language–not that I’m judgemental about it or anything), and I screwed up the timezone handling–anyone outside of MDT was seeing the wrong links on day one. Fortunately, the web site went down early enough that very few people ran into that problem! I fixed it that night, once the new server was up.

The Zoom API is pretty good, but has some gaps. For example, you can easily set up streaming for Zoom Meetings, but not for Zoom Webinars (which makes little sense, since they are obviously the same structure behind the scenes). I ended up having to write code to bring up the Zoom web site, and automate it–clicking on the appropriate buttons and filling in the data, etc. It was a major hack, but worked except, for some strange reason, on one panel that happened to be my sister Dany’s. (I just filled that one in manually).

The other thing I screwed up was pass codes to the panels. I had to auto-generate them, and I created alphanumeric codes. Unfortunately, you can’t enter those into a phone, and we had at least one blind attendee who had trouble because of that.

The scheduler also sent custom e-mails to each panelist with their join links, and to each person who was hosting the webinar (we assigned a Zoom host to each meeting, who was responsible for starting the Webinar and hitting the button to start streaming–something else that the API only supported for Meetings). I did consider automating the launching and streaming of the webinars, but we really needed to have someone technical on anyway, and overall it worked well (for those people not using soon-to-be-cursed Chromebooks).

During the convention, I had 5 computers set up to monitor the web pages, Twitch, etc., and for me to jump into any panel that was having trouble. Other than getting lost in my own systems, that worked well, too (although I probably would have been fine with 4 computers).

Because of my panopticon view, I ended up seeing a lot more of the con than I would normally (although usually in about 15 minute chunks), and I have to say that there was some really great stuff going on. However, during one of the panels I overheard, the moderator started talking about what we might do differently if we were virtual again next year. My for-real out-loud scream of horror was probably heard five streets away.

So, it is possible that the convention might be virtual next October, but if it is, I am likely going to be running Zoom meetings from a bear cave on an island in the Pacific.

Leave a Reply

Your email address will not be published. Required fields are marked *

*