Last week this time I was just sliding off of adrenaline mountain after my Open Education Global colleagues and I ended the week long OEGlobal 2021 Conference.
I’ve railed long and repeatedly here about the conference format, but then again when it’s your own affair, it’s different. And I like almost all others I hear about are several turns past 11 on the online conference saturation knob. Or for that matter, any event of live screen time interaction looking at grid screens of others looking at grid screens.
This was the second time we organized a conference hosted in a platform not really designed per-se for online conferences– Discourse. Hence the reference to “wrangling.” This was a decision/suggestion made by me because since joining OEGlobal I have trying to fan the flames of making our instance known as OEG Connect be an open online community. There is something to be said about running things on a space you manage (maybe the thing sometimes said is “WTF?”) but we do like the idea of it being “inside our domain.”
I have read in awe the way Team Discourse Uses Discourse but at the same time, these folks eat, drink, and sleep their product. There’s a lot to it for people who’s interactions might be for a week of a conference.
And the spawning event for this post was a complimentary message posted in the conference space by Tel Amiel – a UNESCO Chair in Distance Education from Universidade de Brasília and someone doing amazing work with charting platform surveillance in South America (plus by visiting his link I am happy to see using the Anders Noren Radcliffe theme for his domain calling card).
Tel’s message was
I wanted to highlight (and congratulate the organizers) for making use of FLOSS (Discourse) for organizing the conference. This might seem small, but it is not common, and shows an alignment with our ethical principles in open education.
I has never used it as a conference system before and I think it is a very powerful tool for communication during the conference, but also for the memory of the conference itself.
Finally, if anyone from @OEGconnect can share a bit about the ‘backstage’ of this experience, or anyone else who has made use of Discourse for conferences, it would be great!https://connect.oeglobal.org/t/3119
Hence what I can forecast will be a sprawling post. But this likely going to be less recipe book and more sampling of spices and ingredients put into the mix.
But here is the thing, and I can count on some people strongly disagreeing. The conference space in Discourse here can be a bit messy (at least in my hands), and you have to find a place to loosen your desire to make it controlled. But to me, it ends up being more human, like a noisy public place, rather than a place where every room likes like the room next door.
Here Comes Mr. Disclaimer
I am nowhere near expertise level with running Discourse. Beyond the occasional command line plugin install or update command I cribbed from elsewhere, my understanding of the technical workings is thin. I will crib this from Wikipedia:
The application is written with Ember.js and Ruby on Rails PostgreSQL serves as its back-end database management system.https://en.wikipedia.org/wiki/Discourse_(software)
My understanding comes from something more akin to tossing pasta on the wall and cribbing tips and calling for help in the Discourse forums (which by name and reference is meta, its run in Discourse).
I’ve seen it from a participant side e.g. Reclaim Hosting’s support community and casually noticing it as boing boings commenting space. My first time trying to manage an instance was for the UDG Agora project where we wanted an online community space for 150+ participants in that faculty development project. It’s no longer online but I wrote a bit about building what we called dilo (“say it”).
What I learned then I am still learning around- there are a large amount of buttons and knobs and sliders and spanners and wrenches in the administrative interface. Much of the effort is trying to make the space simpler on the front end.
I’ve got a bit more understanding and experience having worked it the last 18 months for OE Global, but any expertise perceived is an illusion. I just keep trying until things stop breaking.
For reference, the differences between these two conference we’ve wrangled via Discourse won’t be all that distinct from the front:
- The OEGlobal 2020 online conference https://connect.oeglobal.org/c/oeg-2020/15
- The OEGlobal 2021 online conference https://connect.oeglobal.org/c/oeg-2021/53
About the Conference Format
The 2020 conference was typically organized around typical formats – meaning a conference was a collection of presentations, be they keynotes, live presentations, pre-recorded ones, and poster sessions– from an “data” perspective they were equivalent, just categorized to indicate the modality.
Not that it helps to illustrate, but a bit of comparison between the 2020 and the 2021 online conference spaces in our Discourse environment. In 2020 I organized things into 12 sub-categories, using the “box” layout. For 2021 I wanted to streamline things into 8 subcategories, and applied custom CSS to hide the description, skip icons, and color them in CSS blue for conference related “stuff” and red for session “stuff”
For 2021 the conference, the makeup was subtly different. Firstly, the entire conference was themed around the UNESCO OER Recommendation and it’s five action areas. Rather than a giant arra of presentations glommed all over a schedule, this one was organized around 23 “Action Area” webinars (which focused on one or more action areas_ that included 2-5 live 20 minute presentations (meaning they could be 1.5 hours to almost 3) plus a 30 minute discussion. This meant we had to devise a two tiered structure where the schedule and site could be framed around these multiple session webinars that included separate presentations.
In addition, the program featured individual pre-recorded presentations as well as a set of asynchronous activities. And then, shortly before the conference we had a few requests for sessions by sponsors.
And then to toss in more interesting factors, being a global conference we did away with the expectation that presentations were done in English. We opened up the call for presentations and webinars to be organized into sets of presentations in Spanish, French, Arabic, and Chinese (these were based on he preferences in the proposals). So we tried to accommodate participants presenting, and communicating in the conference space in the language of their choice.
For those who like guided tours, I had made a screencast to orient participants to the space, included in our guide to navigating the conference.
Attributes of the Discourse Platform
Just a jot list of features. It’s hard to chart because as far as I can tell, there is no real official documentation. Most of my discoveries are via Just poking Around the Admin Interface, Breaking Things, and Searching for them on Discourse Forums
- Every element is a conversation. It’s not fair to compare Discourse to a garden variety BBS or discussion board. Yes, in structure maybe – every item/post is a “topic” and a response a reply, and topics are organized in categories and also via tags. But what I saw for a conference venue is that every presentation, event, announcement was open to being as well a conversation.
- On-boarding and upping roles. As a community space, Discourse does much to gradually give participants more capability as they… participate. By default, people move up in trust lebel by reading, replying, messaging, mentioning, liking. Yes it’s done by an ALGORITHM. This for us presented challenges as new users usually cannot post right away, but because of the flexibility of the platform, I can override this.
- Notifications. Discourse behaves smartly to keep you informed, and knowing what it does becomes a strategy for engaging. You get notifications via a number in a circle imposed on your logged in user icon (like your mobile phone), and these are for times someone responded to something you posted or if they @ mentioned you by user name. The latter is so handy for drawing others into conversations. If you are active in the site (meaning present in the last 10 minutes), that’s all the notification you get. If not, you then get them by spaced out emails and/or summaries if you have been inactive longer. There are ways to increase/decrease the notification levels. Almost no one (and me rarely) seems to find out that it’s the bell icon.
- Access Controls By Categories, Subcategories, and Groups. Discourse provides the means to create categories and sub categories (but only one level) for organizing your space. You can use various groups, like conference attendees and conference presenters, to control access to certain areas, including making them totally closed from public view. You can also provide groups permissions to just read, to just read and reply to existing topics, or to read and reply as well as create new topics. There’s places for all of those.
- Groups Provide Balance for Open and Limited Access. We wanted to have a balance of what parts of the conference were limited for registered attendees and what could be open publically. For both years we made all of the session information and the ongoing discussions in discourse public to read. The portions that were limited for attendees was access to the live session links and being able to reply and post in the conversations. After the conference these can be lifted so the archive becomes open for anyone (with an account) to post a reply.
- Notifications. Discourse has less obtrusive notifications- if you are in or recently in the platform, your user icon registered a mobile-phone like indicator (number in a circle). It issues emails only if you are away (and this can be turned off, managed by users). You get notifications by default if someone replies to your topic or message, if someone @ mentions you. That becomes useful for signalling.
- Never Ask Them to Convert Dates and Times Again. Maybe one of my favorite small features. And really key for global events. There’s no need to state when something is happening with a time zone or even shuttle people away to a World Time Clock. Discourse has a built in feature for this when composing content. I’ve not been able to get too many people to use it (“We are meeting at 21:00 CEST”) (“Webinar starts at 12:30 UTC”) but it’s built in through a WYSIWIG Interface where you can reference a date and time in any time zone, that when published displays that time stamp in the date and time of the site visitor.
This ends up in the Markdown syntax as [date=2021-09-29 time=20:00:00 timezone=”Europe/Paris”] ? [date=2021-09-29 time=21:50:00 timezone=”Europe/Paris”] which, if you get good at it, can be manipulated as needed. All of our events were by reference time to the host, University of Nantes (“Europe/Paris”).
- Media and Website auto-embeds. Like WordPress, you can put a URL for something like a YouTube or vimeo video, a tweet, a slideshare link on a blank line, press return in the editor, and watch it magically embed. It also does this for most URLs (using open-graph tags) for a nice “one box” preview of a web site.
- Account Settings with an Alias. This is really tiny, but clever. If you are trying to explain to someone where to find a setting in their profile or anywhere in the user settings, using something like
https://connect.oeglobal.org/my/preferences/profileresolves to take them to their own account profile settings pane (if logged in).
- Link Counts. I have no idea how this is possible, but next to every hyperlink, Discourse display a count of how many clicks have followed it. That is very useful to know not only popular items, but to get a sense of engagement
- A URL that might look different, but never change. This one takes a while to notice, and most people may not even care. But I love URLs and reading them and making best use of them. Every link in a Discourse site has a bunch of words in it, but it’s always identified by the number at the end of the URL, yes, a database ID.
The default web address is a long string based on the topic of the post, for example this one
But everything between
/2324is not needed to provide a valid link. All of these go to the same place
This means that the title changing, even moving it to another category will never break the link. In a way you can create your own short links easily.
Let Go of Control- It’s Not a Website
This is the hardest thing to accept. A Discourse site is on the web but it’s not quite a web site. It’s meant (I believe) to be largely driven by participant actions and interests, not purely the ones of the site owner. Managing it is more a matter of creating some basic structures, tending the settings, and adjusting as you go.
While you can create “categories” to organize the places where conversations happen, there’s not a ton of control for organizing appearances of stuff inside, and even more so, when you get into topic listings, you do not have a neatly alphabetically organized list things like conference sessions. They move up and down the list according to last edits and discussion response.
And that is the different sauce of Discourse, the design of the space is less the will of a web designer and more driven by the communication and activity of the participants. And I must admit, my bigger mistakes in setting up Discourse has been trying to over organize it. I am still learning to let go of that.
This means that the categories of presentations I set up- e.g. Webinar Presentations is not quite the best way to browser the presentation. Well I guess you can, but it’s a bit of a jumble. Maybe that’s like a conference hallway. Maybe not.
The recommended means to navigate the program in a more organized fashion is the daily schedule. This year I ended up doing it not quite as machine efficiently as a series of hand coded discourse topics in the Schedule area, one for each day, and then internally with navigation elements to connect each portion of the program.
The Table of Contents on the sidebar provided another level of internal navigation. This is via a nifty add-on component, the DiscoTOC or Discourse Table of Contents. It creates this dynamically based on headings in a long post (this means sometime I am re-editing other posts where people try to use bold for headings, sigh, use structural elements everywhere!)
You Can’t Really Broadcast to Everyone
Our team often sought ways to message our attendees in the conference space (we did provide a signup to get emails/announcements sent via our mailchimp machine). I am pretty sure part of the design in Discourse is to not have a broadcast means.
Yes, we could send group messages via the attendee group, which means something akin to a group direct message to 450 people. It gets sloppy.
And just because we post something in the conference information area or there is a post for a conference session, there is no means to make everyone notice it. Again, a discourse space is somewhat akin to a town square. And you do not have a bull horn or a megaphone.
So how does content get noticed? Thing rise in the notification and display queue when there is activity around it- replies, mentions, favorites. This means getting attention means posting elsewhere linking to what you want noticed and mentioning people by name to draw their attention.
What rises to the top of the interest levels is determined more from the activity around, not what the organizers make as a decree. This takes some getting used to, but if I understand it right, this what makes a community space belong to the people who are there.
Data Organized in a Spreadsheet Is Not Quite Always Organized
I love me a good spreadsheet, especially when some formula mojo can simply thing. Our planning team had many of them. The sessions information came via a CSV export from EasyChair and I got a program as organized by the conference planners. I will insert a reference to the elusive but sought after “Canonical Spreadsheet of data”.
Just like I often do with content from Google Forms, I end up creating secondary (and tertiary and…) worksheet to manipulate the raw information into something usable. In this case the timing of sessions was across three columns- “Day” like “Monday”, “Tuesday”, “Wednesday”, Time start (referencing the conference locale in central Europe) like “17:00”, “10:30”, “8:00”, and duration in minutes like “60”, “120”, “150”, all of which needed to be reconstructed into those Discourse time stamps like:
[date=2021-09-28 time=10:00:00 timezone="Europe/Paris"] ? [date=2021-09-28 time=12:10:00 timezone="Europe/Paris"]
This meant getting good chops at
switch functions that are like giant if-then-if-then-else, for example:
=switch(Presentations!H68, "Monday", "2021-09-27", "Tuesday", "2021-09-28", "Wednesday", "2021-09-29", "Thursday", "2021-09-30", "Friday", "2021-10-01", "" )
I won’t bore you with more details, but I had to convert free text lists of categories, languages to lower case text ready to make into Discourse tags.
My colleague Jan Gondol did some script magic ti import the individual presentations into Discourse topics that had a uniform format. We create these as owned by a system account, and then we ask presenters to “reply” to their sessions with links to slides, documents, videos etc.
As it turns out, the second level hierarchy of sessions types, with webinars including individual presentations got a bit complex to formulate into a scriptable production. And since there were “only” 24 I chose to create all of the Action Webinar Sessions by hand – but the spreadsheet made getting the session info as bullet points a little bit easier. These had to be copied then to the representation in the schedule, where each webinar also listed the included presentations.
Somewhat like WordPress, in Discourse you can organize topics into categories, which I try to think of as bigger buckets, and free-form (or controlled) tags for creating interesting cross-relations. I used the latter to connect content related to the conference themes, the action areas of the OER Recommendation:
- Building Capacity
- Developing Supportive Policy
- Inclusive and Equitable OER
- Sustainable OER
- Facilitating international cooperation
and at the same time, listed below, a means to organize topics by the language presenter or written in.
Groups and Access
Like mentioned earlier, we use Disourse Groups to semi controlled access to the conference areas than the general public. The access levels are “see” (meaning it’s visible”), “post replies” (meaning members of the group can reply), and “post topics” (meaning members of the group can create new discussions).
I will admit I made a series mistake in my planning. It seemed to me that presenters and attendees would have the same rights of access, there was nothing special in access level given to presenters. But see below for Titles Matter. To outline the different levels of access set up for the conference areas, see details below the screenshot of the conference sub categories.
Technically there is a ninth area, the general conference link is an overall category. Rather than having updates from all subcategories filter to the front page, for the main area I used the option for Filter Lists to be “no subcategories”. We defined this space as the “lobby” for open, conference participant driven conversation.
Groups used to define access include “Everyone” meaning the public web and people with accounts in the site; “OEGlobal 2021 Participants” meaning people registered for the conference, and “Admin” meaning my colleagues and myself.
- Everyone can read, conference attendees can reply and post new topics:
- Main conference area aka lobby for meet and greet, open discussions
- Conference Info Desk we combined from last year what was announcements and a help desk, so we wanted participants to be able to ask questions
- Next Steps is a place where we aimed to both announce but invite suggestions for what should happen after the conference. It is also where session reporters or “rappateurs” will publish their summaries
- Everyone can read, conference attendees can reply (but not post new topics)
- All of the areas for individual sessions – Webinar presentations, pre-recorded presentations, and asynchronous interactive activities. Some might argue against having this public accessible, but its read only, the conference attendees get the ability to post comments, ask questions, etc.
- Sponsor Areas – here we have “booths” for sponsors plus in some cases sessions they ran during the conference. For these, once the sponsors were ready, we turned over a templated layout to them as OEG Connect users to “own” and thereby customize their space.
- Everyone can read (nobody replies or posts new topics)
- All of the topics in the schedule area are viewable, links work to sessions, but this is the one place we have no conversations!
- Conference Attendees Only (they can reply but not post new topics)
- The posts here for the Action Area webinars were not publicly visible during the conference because this is where the links to Zoom rooms were situated. This managed access easily, but meant that going from seeing a session listed in the Webinar Presentations or the schedule, meant one more click to the Action Area webinar to find the zoom link. I worried much about losing people here, but that seemed less than an issue of their accounts being in the “right” group.
After the conference, I remove the limitations so the general public has access to not only see everything, but to also add to the discussions.
I have found this a balance between open and _______ for the conference content. It’s really mostly open- the things you “get” for being a registered attendee are to be part of live sessions and post things during the conference.
Your presence in different Discourse Groups provide a means to provide a title beneath your displayed name in the site (any place you see a user icon, click once to see their profile “card”, click icon again to see a full profile). Here is a demo account I use for making screenshots to explain things (and this account actually has a custom title I can add to anyone’s account because I am Admin I am God.
When we use the Discourse tool to create an invite to create an account (this is what we do for registered participants) I can add as an option to automatically assign them to a group, and that in turn gives them a title. This worked great in 2020 as almost everyone joining was new to the site.
This time around we have the issue of both bringing in people new to the community (and we can hand out an OEGlobal 2021 Attendee group membership / title. But anyone who attended last year was still wearing their previous title.
Anyhow, membership in the attendee group was critical as that provides access to all the features! What I added this year was a feature where you can let someone request to be added to the group. And by making the settings so you have to be a member of the group to see everyone in there, that was an easy test for someone to know if they have proper conference access (which I post an explanation that maybe a few people saw).
Ok. So if already have an account on the site, but am not in the conference attendee group, from the group page I can click a button to request access:
This works great, because I have it set for a default message to be sent, but they can also add anyothe details to the request.
This sends a private message to owners of the group (me and my OEG colleagues). This provides a one click means to add them to the group, and as well we can provide a message to let them know it was done , and also a chance to provide a personal welcome. My colleagues and I processed maybe 100? 200 of these? But every person responded with great appreciation, not annoyance.
I should add that on a regular basis I would use a spreadsheet where I could compare the names and emails of people in the registration system with an export of discourse users (aka Alan learns some useful VLOOKUP tricks) so I could extract usernames I could add to the group. As a note, people use different email addresses and ways of name spelling in both systems, so…
Some of the lack of using the “proper invite” has to do with the fact that emails from our registration system sent to attendees either landed in spam folders or slipped down the inbox list. Either way, it was a lot of my time the days before and days of the conference handling access requests. Also, we had many people creating accounts via the public signup button, which gets them into Discourse but not the attendee group
They also discovered they lacked access when they went to the webinar area and got a 404 error. I customize this during the conference week to try to provide some guidance:
That email address goes to me and my colleague Jan (who is situated in a near polar opposite time zone, so we had the world covered). Thus we had to handle access issues continuously.
See what I mean by messy? But it was manageable, and again I suggest there is a subtle gain in having brief human encounters. No one I heard from was bent out of shape by this (well maybe I was).
And this does not even get to titles. Right away I started hearing from presenters, who because they did not really need any special access rights, I had decided to assign to the attendee group. But many were asking, especially ones from last year when we did create a separate presenters group, why their title said OEGlobal 2021 Attendee and not OEGlobal 2021 Presenter.
So quickly I decided to create a Presenter Group and add as many as I could identify. For various reasons, we did not have a perfect list of presenters/email addresses, so I had to go with the ones we did have somewhere in a spreadsheet and others who requested.
Again I made a writeup to explain the steps to set your title (it is a setting in the profile), but heck, sometimes it was just easier for me to do as an admin when I saw someone wearing a wrong or old title.
Discourse has its own algorithm (the nice kind) for automatically awarding “badges” to members for doping things like replying often or posting links or mentioning others. It’s kind of elegant. But it also has the means where you can create badges to award people directly.
I created one conference week just to recognize people who did a wonderful job of posting to forums, sharing links, just being good connectors– and specifically I was really proud of what a pivotal role Alex Enkerli did in this, so I made up the Connector Extraordinaire Badge. Getting a badge makes it appear in the bottom row of your profile card and becomes an option for your profile setting. Look at Alex, wearing his badge as a title…
This came into play at the end of the conference with a surprise we had for all presenters… The first of the Open Education Awards was set for the UNESCO OER Implementation Award one. The awards committee had come up with a novel idea- to give it as a shared award to all conference attendees.
Thus I decided to make this as a badge to give out to all presenters who were in OEG Connect. We used the group set up for presenters to send them early notice as a group message (which is not an ideal thing to do because it ends up as something like a twitter canoe with 160 in it).
The response to this was utterly amazing, you would think we were Publishers Clearinghouse or the Nobel Prize folks the way people responded. But it was a stroke of smart action to play out in the space.
The conference planning committee made a bold, deliberate attempt for this, as a global conference, to not force all presentations be in English. Because of the framing around the UNESCO OER Recommendation, proposals were accepted in any of the 6 official UN languages (Arabic, Spanish, French, English, Russian, Chinese). They received proposals in 5 of the 6 languages, and thus we were able to offer webinars were presentations and discussion took place in non English languages (still the majority were in English). This meant the program included:
- 1 webinar and 4 presentations in Arabic
- 1 webinar and 5 presentations in Chinese
- 2 webinars and 8 presentations in French
- 5 webinars and 15 presentations in Spanish
We then listed presentation titles in their specific language (if non english it was followed by translation in parentheses). Discourse did quite well with content that included a mixture of languages.
I set up tags to all webinars and presentations could be linked easily (it also enabled participants who created new topics to also make use of the tags):
- ?? https://connect.oeglobal.org/tag/lang-chinese
- ???? https://connect.oeglobal.org/tag/lang-arabic
- Español https://connect.oeglobal.org/tag/lang-spanish
- Français ttps://connect.oeglobal.org/tag/lang-french
- English https://connect.oeglobal.org/tag/lang-english
We were not able to offer live translation in the conference sessions (with exception of one hosted by UNESCO). And as a suggestion, if you use something like rev.com for automated captions, do not turn it on in non English sessions! Bizarre translations did occur (taken with humor, whew).
Discourse does provide a user setting that let’s them change the language of the interface – I assume it defaults to the user’s browser settings. This makes it so all the menus, buttons of the Discourse part of the site can be in Chinese or an impressive list of options, like “bosanski jezik” (Bosnian).
That does not handle the content that people write. I had some hopes to make use of the Discourse Translator plugin but ran out of time to sufficiently test. As a cheap substitute I wrote up an explanation for how to make use of browser extensions for doing quick translations.
So again, speaking of messy, we had mixes of language around the site, but was pleased to see a good deal of conversations taking place in languages I could not read without Google. But even more so, our attendees reported back a huge amount of appreciation that they could be part of the conference and speak to each other in their native tongue.
Who’s Online (and more add-ons)?
In a response to the question Tel asked during the conference, I did respond with a summary of the custom components and plugins we used in our Discourse. One that deserves a special shout out is The Who’s Online plugin, suggested by by OEGlobal colleague Isla Haddow-Flood.
This displays above topics lists an indication of how many (and who they are) other site users are currently online (well within the last 10 minutes). Maybe it’s Big Brother-ish but to me it really creates a sense of presence, and it was rather dense during the conference, like on day one when I spotted 50 at once
It creates the potential to for members to contact each other directly. I was asked by my colleagues if we should keep it, as often now it might be just a handful. But I love having this feature, whether its crowded or a few.
Where Does This End?
I have grave doubts if Alan’s sprawl brain dump helps. There is so much to Discourse, and I find myself changing settings, fiddling around, doing all things you should not do on a live site.
Frankly I like the messiness. There is less predictability and monotony of a standard bulletin board, and the more you use the platform, the more you respect thought that goes into its design. And the fact that there is variety, and a bit of things to navigate make it closer to a lively public square than a sterile corridor of uniform cubicles.
But it’s a lot to take on, and I am hardly even close to saying I understand the platform fully. But I found it a refreshing and lively experience for our event.
And I am continually thrashing at it! OEG Connect is a public and open community, you can join! We are now moving through the announcements over the next months for winners of the OE Awards for Excellence, and I am trying to create a place to offer both congratulations but also interact with award winners. The community gardening work is continuous.
This post too will find its way into the conversation that started it.
It’s kind of like riding a playful dinosaur ;-)