Note: This was written prior to the Hax festival Oct 16-18, 2020 as a submission to hackaday.com. It wasn’t accepted, now posted here for your enjoyment. Small corrections have been made.
———–
I’ve attended enough virtual events this year to know I wanted to do something different for my hackerspace in Winnipeg, Skullspace (https://skullspace.ca).
I already had experienced pandemic versions of LibrePlanet, Red Hat Summit, Linux Foundation Open Source Summit North America, Hackers on Planet Earth (HOPE), and DEFCON.
I kind of had to be different. As an organizing committee of one, with a tech budget of $0 and only 4 weeks from announcement to launch, I needed to cut many corners in my technology choices.
The most reliable way to showcase presenters and panels in our pandemic nightmare is to pre-record and release videos on a schedule. The most polished events I took in this year all did this.
However, I found this killed off the magic of a live event. And I didn’t want to burden my presenters with trying to compose a recording and make it perfect. Nor did I want to spend a lot of time herding them to do so.
So I’m taking a big risk and bringing presenters in by video conferencing. I think of the viral Bill O’Reilly clip: “We’ll do it LIVE!”
About me: I’m the kind of purist hacker who loves free, libre, open source software enough to drop $1700 USD on a PC with a non-x86 architecture, all to have access to an “owner-controlled” compute experience with free software all the way down to the firmware.
If I wanted to be on trend for free software purity in video conferencing, I would have gone with a Jitsi (https://jitsi.org/) setup, maybe even a self-hosted one.
I saw this in action at LibrePlanet. The Free Software Foundation (FSF) and friends crew pulled off a great event, mostly live, but I saw enough presenters experience drop-outs, disconnects and reconnects to give me nightmares. I suspect making the best use of Jitsi requires a lot of one-on-one with each participant in advance to make sure their setup is up to par.
So I had to compromise on the video conferencing solution. Fortunately I have a corporate Google Meet account, and it has a few redeeming qualities: I have found it robust, there’s no pressure for my conferencing participants to get a Google account to jump on meetings I host, and there’s no pressure for desktop users to install an app.
The last thing anybody needs right now is pressure to open an account on yet another service or to install yet another app. I swore to not subject folks to a full-blown event platform.
The next technology piece is read-only video streaming for a potentially large audience. Again, I compromised slightly here by using an unlisted YouTube video. No account is required by viewers and it works in a browser, but it also comes with the usual Google surveillance and tangle of proprietary JavaScript.
OBS Studio (https://obsproject.com/) powers my YouTube stream. I had to deploy a PC with a proper video card. Fortunately it all works great under Ubuntu.
But, true to philosophy, I didn’t want to *force* every viewer to go through the Googleplex.
So I’ve enabled a secondary video feed which will be replicated by the AWS CloudFront CDN on my personal account. This stream is raw and I’ve shown it can be played direct in a video player like VLC. I don’t want to end up with a big hosting bill, so I hope most viewers will tune in on YouTube, but at least I’ll have an alternative for my most picky peers.
Under ideal circumstances I would have encoded my secondary stream at home in a video format that’s not patent-encumbered, such as WebM. One cool thing that OBS supports under its “record” feature is streaming to your local network. From there I could run a fleet of computers that run different encoders. 10 years ago I used a setup like that to stream a 24/7 telethon in multiple formats to multiple platforms.
But one thing I’m lacking at home is the bandwidth to be sending out multiple streams. So, I take another shortcut: on a light AWS virtual machine, I’m running Streamlink (https://github.com/streamlink/streamlink, successor to Livestreamer project) to regain access to my own YouTube stream!
From there I pipe to a command line invocation of VLC to provide a web server that the AWS CloudFront CDN can reach.
I could have also taken the time to re-encode to something more pure like WebM, but I’m out of time and using a low-cost AWS instance.
For text chat, I’m keeping comments closed on YouTube and directing users to our hackerspace’s channel on the freenode IRC network. A web client is made available, but optional. Freenode has the virtue of letting you just join the server and pick a username, again no registration required.
The festival website is in pure HTML.
As such, a really picky hacker with an older rig could use a text browser, a video player and their own IRC client and still take in this festival.
I think it’s really important to support these use cases.
I’m not even subjecting attendees to event ticketing and registration.
Our in-person hackerspace events usually have a cash box at the door and maybe even someone present to urge a donation. For this event, I just linked to the PayPal account Skullspace already had, adding a post-donation thank-you page.
This is all in keeping with my philosophy that I’m running a casual weekend event for a broad hackerspace community. I call Hax a festival and not a conference. On top of traditional presentation and panels, I’m offering gaming sessions and performances, which are equally in keeping with the fun times found in a hackerspace.
Next time will all be in person, hopefully!
— Mark Jenkins