Behind the scenes at Lovelace 2020

April 20, 2020 - Uncategorized

The BCSWomen Lovelace Colloquium was supposed to be in Stirling this year. As ever, we’d put a lot into it (visits, campus tours, looking around poster spaces and theatres, booking rooms, choosing lunches, block booking hotels, etc. etc.) but as the event grew nearer and the pandemic grew stronger we had to decide: cancel, or move online.

Which is how we found ourselves organising the first virtual BCSWomen Lovelace Colloquium with just 4 weeks’ notice.

This was a big job and pulling it together took a lot of people. There are a few blog posts out there which deal with the conference as a whole but I thought it useful to give a more indepth account of the student facing and interactive parts of the day. We ran these on Discord, a system which allows for voice and text channels (with many participants) and for broadcast (1-to-many) live video and screencast. Each poster presenter got their own voice and text channel so they had a dedicated virtual “space” to talk and describe their work.

I’ve written a more “official” account of the day which should be up on BCSWomen’s site shortly, but I thought it was worth writing in this blog a more detailed account of the technical side of the thing. A lot of people are moving online with conferences right now and to be honest, I was pretty surprised at how well this one went. The decision to concentrate on good quality voice comms with clear channels for each poster presenter worked really well – I have heard others talk about conferences based entirely on video chat which have felt more clunky.

SO if you would like to know how to set up and manage a Discord server for a conference, read on!

The video below gives an overview of how the Discord server was set up for our conference. We were expecting a lot of people who were new to Discord, so I wrote a bot to welcome them and give them links to this video and also a document with “how to Discord” information. I called this bot welcomebot and it ran throughout the conference, messaging all new people on the server to say “hi” and point them to the help info.

We had 45 posters in the end (which is less than half of those we were expecting, but this COVID thing has been immensely disruptive for students). This meant that I needed to set up 90 channels (45 voice, 45 text) with the student posters already loaded up.

I could have done this by hand, but why do something by hand when you can take twice as long and write a program to do it for you? So I wrote a bot for this – posterbot, I called it – which creates channels and uploads poster images.

We asked presenters to say “hello” in an introductions-and-bios channel, and if they wanted to, they could upload a photo for us to us in creating the traditional end-of-conference group shot.

This left me the task of downloading all the photos, so obviously (can you detect a theme yet?) I wrote a bot for that too, called photobot. This bot takes a channel and downloads all images from that channel.

This was the least useful bot – it actually downloads all attachments… and assumes that they are jpg files. So if you have a super-cool attendee who uploads an mp4 video instead of a photo for her intro, you’ll have to edit it after the fact (yes, I’m looking at you, Alex).

Given a set of image files turning these into a montage is easy if you’re on linux – ImageMagick Convert has command line utilities for resizing images, and for creating a montage. This one-liner will create small versions of every jpg file:

for i in *.jpg; do convert -resize 200x200 $i sm$i; done

and this one-liner will convert those small jpgs into a nice big montage called montage.png:

montage sm* -geometry +1+1 montage.png

So here’s the group photo, to finish. We got about 70 photos uploaded (as you’ll be able to count).

You can find the code for all three of the Lovelace Discord Bots online in my github, here:

› tags: bcswomen / general nerdiness / lovelace / women in tech /


  1. Janet Leparteleg says:

    Awesome read!

Leave a Reply

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