- Author: Andy Lyons
For the past several years, IGIS has been offering online Office Hours for the ANR community on a range of topics related to geospatial science and technology. In 2020, we increased our Office Hours appointments to 4 hours a week. Today the IGIS team is pleased to announce the addition of three new topic areas to our lineup of support for 2021:
Google Earth Engine (January-May 2021 only). Earth Engine is an online platform from Google that provides access to a vast array of imagery and a powerful scripting language for analysis and visualization. Annie Taylor, who taught two extremely popular Earth Engine workshops in 2020, is an Earth Engine whiz and will help you get over any Earth Engine bumps you may be facing.
Cal-Adapt. Cal-Adapt provides access to climate data and visualization tools from California's 4th Climate Change assessment. We work closely with the Cal-Adapt team on a couple of projects and love to talk about climate data. Need to work with Cal-Adapt data in a programming environment? IGIS's Shane Feirer and Andy Lyons have developed add-ons to work with Cal-Adapt data in Python, ArcGIS Pro, and R.
Advanced Google Sheets and Google Apps Script. Underlying Google Sheets, Forms, Docs, and other GSuite apps is a powerful scripting language called Apps Script. We use these tools a lot (in fact the sign-up system for Office Hours is driven by Apps Script), so if you want to do something out-of-the-box with Google Sheets, automate your work, or develop integrated workflows across applications, we might be able to help.
These new topics are in addition to our usual portfolio of support subjects, including:
GIS - desktop software, web GIS, mobile data collection, automation
drones - safety and regulations, equipment, mission planning, data processing and analysis, Pix4D, data management
spatial data and analysis - going from questions to workflows, finding data, spatial analysis
R - programming, working with spatial data in R, statistical analysis, Shiny apps
remote sensing - finding data, image processing and analysis, ENVI
databases - designing data structures, MS Access, SQL
We love Office Hours because it gives us a chance to meet new people, share what we know, and keep us sharp. So please don't be shy when you have a question or don't know where to start - sign up for Office Hours!
- Author: Andy Lyons
- Contributor: Sean Hogan
- Contributor: Shane Feirer
- Contributor: Maggi Kelly
The 2020 COVID19 pandemic changed the way educators work across the board. Like many groups, we had to quickly retool our geospatial workshops from a largely in-person format to online delivery. We quickly learned that simply replacing the overhead projector with a webcam and Zoom was not going to cut it. It's been an interesting journey, with lots of lessons learned, some surprising benefits, and a number of ongoing challenges and frustrations.
In this two-part post, I reflect upon lessons and aspirations for a very specific type of online training: live workshops focused on showing people how to use GIS, photogrammetry, and statistical software. These reflections stem from several workshops I was part of in 2020, including our first ever virtual DroneCamp, a new workshop focused on using climate data for community resilience and adaptation planning, a workshop on working with climate data in R, and two 12-hour workshops on geospatial analysis with R I taught in collaboration with SCGIS and BayGeo. Some of these lessons are specific to this new online technology, while others go back to age-old best practices for effective teaching.
In Part I (this post), I review some of the lessons, techniques, and conversations about training we had in 2020. In Part II, I discuss some aspirations and directions for 2021. But first let's review the particular requirements and challenges for this specific type of online training.
The Curious Circumstances of Live Online Software Workshops
Several characteristics of live virtual workshops frame the challenges we face:
- One-time engagement. Unlike a course that meets repeatedly over many weeks, we generally have a single point of contact with workshop participants. Even when a series of workshops are thematically connected, they are almost always offered as standalone modules, so we can hope but not expect that people have attended previous workshops.
- Diverse backgrounds. Also unlike a traditional classroom, where you can mostly assume students have minimum prerequisites, workshop participants generally have a wider range of backgrounds both in terms of their familiarity with the content (e.g., GIS concepts) as well as the specific software tools being used. Particularly with 'Intro' workshops (which we do a lot of), even basic computer skills like unzipping a zip file can not be taken for granted.
- Hands-on emphasis. The primary goals of our workshops are to impart practical skills, so the format requires a strong hands-on software component. There's a huge demand for hands-on software training, and many, many benefits for the learner, but incorporating hands-on practice also adds a lot of moving parts.
- People connecting from home. Even before COVID, most participants in virtual workshops were joining from home. This generally means people are connecting from a laptop of unknown specifications, using a slow to moderate internet connection. Computer hardware, workspace distractions, and the need to multi-task are generally all over the map when people are connecting from home, and there's not a lot we can do to influence these factors.
- Voluntary, self-motivated participants. The people who attend our workshops are there because they want to be. In many cases they're actually paying something out of pocket. Self-motivated students are delightful to work with, because they're already curious and see value in the content. But it also increases expectations. Unlike a traditional classroom environment where accountability is primarily upward, in adult learning we are accountable to our students. If our materials are not clear or coherent, we definitely hear about it.
Workshop Goals and Design
What is the value of live online instruction anyway?
Unlike a traditional classroom, online instruction forces us to rethink our value proposition because all of sudden there's instant competition on par with what we're delivering - the vast amount of high-quality pre-recorded content out there. Groups like ours have to ask ourselves why would someone sign-up for our live online workshop, when there are hundreds of hours of video and online lessons available on-demand, and often for free or a very modest subscription. Should we just save ourselves the trouble and point them to existing resources?
Online instruction forces us to rethink our value proposition because all of sudden there's instant competition on par with what we're delivering - the vast amount of high-quality pre-recorded content out there.
Having taught numerous workshops both in-person and online, as well as recorded many hours of video tutorials on computational modeling, I see a number of niches for live instruction that recorded on-demand content will never be able to match.
1. Helping beginners get up to speed. Beginners often need to hear concepts presented in different ways, with lots of examples, and the opportunity to ask questions about fundamental terms and concepts. For this audience, live presentations from an experienced instructor, coupled with a generous number of check-ins and opportunities for Q&A, are an efficient and effective way to move up the learning curve.
2. Reaching verbal learners. Many people are verbal learners, and cement their understanding by echoing and exploring concepts they've just encountered. Live instruction, when done well, can provide opportunities for feedback on both the breadth and depth of their understanding from peers and the instructor. This is particularly helpful when people are digesting new ways of thinking or exploring how new tools might be useful in their world. This is harder to do with pre-recorded content. One should always introduce important concepts before the technical stuff comes up, and pre-recorded content can incorporate glossaries, etc. This helps of course, but there is still no opportunity for Q&A and some learners may get left behind.
3. Exploring applications. Another learning goal that benefits greatly from live instruction concerns how to apply a technology to a particular domain. "How GIS can help you manage your ranch" would be an example of this type of learning goal. A workshop mixing basic concepts and tools, case studies, open-ended discussions, and perhaps group feedback on participants' action plans might be good tasks to incorporate for this type of goal.
4. Planning to engage. It's worth noting that while live online instruction can facilitate discussion, it is by no means guaranteed unless built-in by the instructor. This means doing things like capping the student to instructor ratio, building in pause points to address questions and have discussions, and structuring exercises to encourage interaction. One of my best virtual workshops this year was one in which the exercises were done in small groups in Zoom breakout rooms. Each breakout room had an instructor in the wings, but the students basically talked through the exercise and helped each other work through the material. Contrast that to a more traditional approach where the instructor gives an intro presentation for 45 minutes and then prompts to the students to individually work through a long exercise.
5. When live instruction loses out to pre-recorded. The higher up you go on the learning curve, live instruction starts to lose its edge. Intermediate and advanced users know what to ask Google or YouTube, and are knowledgeable enough to follow a guide.
Niche topics are another domain where the scales probably tip in favor of pre-recorded content. I've already decided the tutorials for a R package I'm developing to import climate data into R (an important but decidedly niche task) will be primarily on-demand recorded videos. Coupled with those however will be an extension of our online office hours, which I've found to be a much better way to help intermediate and advanced users work through challenges that can't be resolved by a Google search.
The higher up you go on the learning curve, live instruction starts to lose its edge.
What to do about the registration fee?
The question of registration fees for training is always an interesting conversation. When done thoughtfully, conversations about how much to charge delve into the host organization's mission, financial realities in the short and long term, organizational branding and outreach, and the needs and impact on related activities. More often than not, these discussions illuminate both tensions and synergies between different goals and perspectives, and the final result reflects some combo of necessity and compromise.
In my experience, there are a half dozen principles, or logics, people commonly invoke when thinking about how to price a workshop:
1) Make it free
Making workshops free has great appeal at many levels. It aligns with the values and mission of public universities to provide training and research for the masses. Since most of us are already paid by taxpayers directly or indirectly, training is something we can do to give back and make all the effort we put into research and innovation pay off. Technology is also liberating, so making it available to everyone is a way to reach those parts of society that need it the most.
Despite all of the above, we've come to conclude that charging nothing is rarely a good idea. In both in-person and online training, we've seen the worst attendance rates at workshops where there was no registration fee. Not surprising really. It's easy to sign-up for events that bear no cost, no commitment, and no risk. We all do it. But that makes it equally easy to blow off when something else comes up at the last minute. I put a lot of effort into preparing for workshops, so even if it was very successful, if only 5 out of 30 registrants show up I feel like my time has not been well spent.
Charging even a nominal amount like $5 will not only increase the attendance rate, but increase the odds that the right people show up. That small fee will get people to read the workshop details a little more closer, and decide if it's really worth their time. They're also more likely to do any preparation tasks you send them, such as installing software and downloading data.
Charging even a nominal amount like $5 will not only increase the attendance rate, but increase the odds that the right people show up.
Of course there are tradeoffs and limits to charging even a nominal fee. In our case as a small unit within a public university, just the modalities of collecting money has a lot of rules to follow. We're fortunate that we can outsource this task to another unit (thank you PSU!). If we had to do it ourselves, collecting small fees may not even be worth the effort. Also when we teach on one of our own campuses, we can't really charge students to attend (this is also where our attendance rates are most unpredictable).
We also don't want cost to ever be a barrier to people who need the training but lack the resources. Our go-to model has always been to always provide a fee waiver or scholarship application when there's a fee involved. This isn't hard to conceptualize or incorporate, but it's more work for someone to plan and execute (and probably not what the instructor wants to focus on).
2) Meet financial necessities
Sometimes financial necessity is the major driver behind revenue goals. If an organization's revenue model depends on income from training, those targets will certainly be front and center. Salary support is likely to be a major factor in these cases. Sometimes the training program itself may require a dedicated instructor or coordinator, although this seems less common in the geospatial world than other fields. Another common case is when some staff are on soft money and there are shortfalls or gaps in funding. There could also be another project within the organization, perhaps a pilot project, that is under-funded and needs financial support to keep going. For public institutions like ours, all of this is framed by the long-term trends in state funding, which lately seems to fluctuate between flat in good years and downward in bad years.
3) Recoup implementation costs
Another common goalpost for setting revenue goals is how much it costs to run the workshop. For in-person events, this typically includes the cost of renting a venue, snacks, and transportation for the instructors. On a couple of occasions we've also been asked to pay for a computer lab administrator's time to install software. The costs for virtual workshops are generally much lower, but could include the cost of your virtual platform. As of this writing, a 500-person Zoom webinar license costs $1400 / year. Other online platforms will be in the same ballpark, possibly more if they're tailored to virtual instruction. If you choose to hire someone to support registration, marketing, or back-end support, those will be additional costs. An expense we encountered for the first time in 2020 was the need to hire American Sign Language interpreters for one of our virtual workshops, at the rate of $140/hour.
Recouping implementation costs has always been the 'floor' of the revenue goals for our workshops, because we don't have a budget line for training operations. In many cases we stop at cost recovery because we or our collaborators want the training to be as accessible as possible. In the same spirit, we keep costs down to a bare minimum by collaborating with partners who can contribute meeting space, computer facilities, support staff, or even accommodation.
4) What will the market bear?
Another approach to thinking about price is to research the going rate for similar types of training. This isn't always practical because what we offer is typically not available elsewhere (a good thing otherwise we probably shouldn't be doing it), and the "market" we're targeting may be very different than what other programs are serving. Nonetheless there are many groups around the country and the world who provide geospatial training of various forms, and it can be informative to do a little price research to get a benchmark.
5) Prioritize people, not dollars
Most groups that offer geospatial training have other core activities, such as funded research, consulting services, or software development. In many cases, the real value in providing training is not a revenue stream but the relationships it develops and the market share it builds. Reaching people may therefore be a more important goal than maximizing revenue. And not just any people, it has to be the right people. This will probably favor keeping the registration fee relatively modest, but you might want to bump it up if you're aiming for a smaller niche audience.
Research-centric groups like ours fall into this general category. Providing training is part of our mission but not the core. Our bread-and-butter work is technology innovation and bringing geospatial expertise to research and extension collaborations. Hence goals for all our training initiatives include a bit of marketing, expanding and strengthening our networks, and gathering ideas for new research and extension projects. This is our core business, and our and training has definitely helped develop it. Due in part to our exposure through workshops, we've become a hub for both knowledge and people in our core areas of expertise, and have had several funded projects that started out as a side conversation at a workshop (something I wish Zoom was better equipped for!).
6) Can we get donations or sponsorship?
Aside from registration fees, donations and sponsorship may be able to support workshop costs. This requires further strategic thinking, because donors and sponsors will only be interested in supporting communities and events that advance their interests. In the geospatial world, this will likely include marketing opportunities for a sponsor's goods and services, so the audiences have to match. Another goal for many private and non-profit organizations is expanding technology to underserved audiences. These are elements that can't be tacked on to an agenda two weeks before the workshop is held. They require thoughtful planning and explicit efforts from the very beginning in how the workshop is framed, designed, and marketed.
We've dabbled in soliciting donations and sponsorships over the years for DroneCamp, with modest results. Corporate sponsors haven't been a great fit, because they're looking for exposure to large numbers of potential customers which our in-person workshops simply don't deliver. That might change however with more online programming - over 330 people attended our first virtual DroneCamp 2020. Raising money for scholarships has been an easier sell, because the amounts are lower and what we provide is really valuable to several resource-poor and underserved audiences, starting with students. All of this requires a lot of strategizing and legwork, which ultimately may be the biggest bottleneck in raising this type of funding.
Techniques for Online Teaching
More Important than Ever: Engagement and Active Learning
Classroom teachers quickly learn that the keys to keeping students engaged and focused are active learning and a bit of performance. The same is even more true for online instruction. In addition to all the usual distractions and challenges of presenting complex material, online instructors have to contend with dozens of other windows to click on, temptation from other devices, and Zoom fatigue. A long-winded presentation in a classroom may result in some glossy eyes; that same dry presentation given online may result in losing your students and never getting them fully back.
Being an engaging presenter starts with your screen persona. The usual characteristics of being a good presenter translate well - personable, spontaneous, good use of intonation, a pace that is neither slow nor fast, a little comedy here and there, etc. I often don't feel naturally engaging, particularly when I've been scrambling to develop new content, but I've also learned that much of this is performative, can be practiced, and to some extent scripted.
However the biggest impact on the level of engagement in my experience is not the instructor's personality but the workshop structure and flow. Gone is my traditional 45-minute opening presentation. My general rule of thumb now is to get people doing something hands-on within 15 minutes. Even if its just running sample code they don't really understand yet, I aim to get them quickly interacting with the software and keep them busy after that. I can guarantee this is more interesting than listening to my voice, but it will also motivate them to watch the next batch of slides or demo.
The biggest impact on the level of engagement in my experience is not the instructor's personality but the workshop structure and flow.
There are many other tried and true techniques to make online instruction more engaging. Polls, white board activities, panel discussions with audience questions, etc., are all fairly easy to integrate in platforms like Zoom. I'm a big fan of Google Docs and Etherpad (an open source version of Google Docs) for more collaborative work that gives everyone a chance to contribute. I have yet to do collaborative diagramming using tools like Miro or Google Jamboard but these can help collect and organize ideas or topics from a group.
Teach According to How People Learn
The highlight of many software workshops are the hands-on exercises, where a guided workflow culminates in a satisfying output almost by magic. Students love it, but we all know that no matter how satisfying, completing an exercise by itself does not represent successful learning. Getting students to the point where they can apply the concepts and tools to solve different problems is far higher bar to meet, and requires us to teach according how people actually learn.
There are many aspects of aligning teaching with learning, but some of the most pertinent ones for software instruction are i) understanding your students' background and aspirations, ii) constantly flipping back and forth between higher level concepts and the nitty-gritty of an application, iii) dishing out material in mentally digestible chunks, and iv) getting continuous feedback in the form of assessments. This list is just scratching the surface; tomes have been written about effective instruction. A good overview on the subject I have bookmarked is a recent webinar What Every Data Scientist Should Know About Education, by Greg Wilson, co-founder of Software Carpentry and now at RStudio.
Software setup: An old headache that just got worse
One of the biggest headaches in any software centric workshop is getting everything setup on the computers. Geospatial workshops in particular have several requirements - software has to be installed, licenses obtained and activated, and workshop materials including data distributed. One of the biggest benefits of conducting workshops in computer labs is that this setup process can be dealt with beforehand, however in a virtual setting that is no longer an option.
This past summer I was a helper in a 3-hour live online workshop where literally the first hour was spent on setup. The 'normal' way of installing a critical extension had recently broken due to a update (care to guess which software company?). More than 1/2 of the participants couldn't proceed, so the instructor had to walk through an alternative setup process. Spending 1/3 of the workshop on setup is a bit extreme, but even in a 'good' workshop there is always a handful of people who get behind from the get go because they're working through setup problems. Instructors have a tough choice to make when this happens - take time to help a few people who can't get started at the detriment of everyone else, or keep going and hope they catch up.
Our group has learned that setup issues are best dealt with proactively, before the workshop starts. Starting with the workshop description, I make it clear that i) setup is a required task, ii) is the responsibility of each participant, and iii) needs to be complete before the workshop starts. This is coupled with very detailed setup instructions that are shared at least a week in advance, and pre-workshop tech support for anyone who needs help.
Our group has learned that setup issues are best dealt with proactively, before the workshop starts.
DroneCamp 2020 was one of our biggest challenges ever regarding setup. There were six hands-on workshops involving five large photogrammetry and GIS programs (Pix4D, Metashape, OpenDroneMap, ArcGIS Pro & QGIS). Data downloads for some of the workshops were several gigabytes. Anticipating challenges, we first held full practice workshops with each instructor 2-3 weeks in advance, to test everything including setup. These lessons were incorporated into detailed installation instructions were posted on the website over a week advance. We also had two days of drop-in office hours the week before for anyone having trouble.
To provide some structure and incentive for completing setup, we also assigned a modest "Step Zero" exercise for each program to show that they had successfully installed the software and loaded some data. Although we stopped short of collecting these before the course began, we made it quite clear in our messaging that if people didn't have their computers setup in time for the workshop we weren't going to be able to help them, but they could still learn something by watching the slides and demo. This combo of clear communication about expectations, detailed instructions, pre-workshop tech support for those who need it, and plenty of time to get things setup generally paid off. None of the workshops got bogged down with setup issues, and instructors were able to jump right into the main content.
The Single Screen Problem
A typical live software workshop requires participants to juggle a minimum of 4 windows. You have the instructor's webcam, the instructor's screen share (slides or a software demo), the participant's application (e.g., ArcGIS Pro or Pix4D), and a written exercise guide. On top of that, everyone needs access to the Zoom chat window, the participants pane to raise their hand, the Zoom control bar to mute and unmute themselves, and possibly a note taking application.
In the best case scenario where someone has one or even two external monitors, that's a lot of windows to manage. For participants who have nothing but their laptop, it's almost hopeless.
I try to mitigate the single screen problem in my workshops proactively. Starting with the workshop description, I strongly encourage people to use a second monitor. I've never made it an outright requirement, although I've been tempted to do so. I also provide tips on juggling multiple windows on a single screen, including third party utilities that allow you to pin certain windows on top, and utilities that can save a configuration of window sizes.
Because there are so many windows to juggle, I try to be cognizant during the workshop that not participants may be seeing the slide I'm talking about or the application window I'm sharing. I constantly verbalize which window or slide I'm on, where I'm clicking, etc., and whenever we switch gears I pause to give people a chance to get the right window open. For my R workshops, I've also modified how students do the short exercises. I used to have them copy-paste prompts and starter code from a slide deck into RStudio. That kept them active (a good thing) and ensured they were following the slides as well. However that gets cumbersome very fast on a single screen. I've since switched to R Notebooks, where the prompts and starter code are ready-to-go, and I can use markdown text to explain the task.
Because there are so many windows to juggle, I try to be cognizant during the workshop that not all participants may be seeing the slide I'm talking about or the application window I'm sharing.
The Small Screen Problem
Related to the single screen problem is the small screen problem. I have a beautiful 26" high resolution external monitor, so I never have problems with legibility or enough real-estate for multiple windows. But the participants viewing my screen share may be working on a 14" laptop. Zoom offers two options when the screen being shared is a different resolution. They can either automatically resize my high-res screen share (and get a magnifying glass to read the tiny font), or crop it and just watch part of my screen share (hopefully the right part).
I don't know of a great solution, but when I teach I try to mitigate the small screen problem by first reducing the resolution of my beautiful 26" external monitor down to a modest 1080p, even though its capable of considerably more. That makes it look slightly fuzzy to me, but I know it will come out better for most of the people watching my shared screen. To make it easier to follow my mouse, I also increase the mouse pointer size, enable a feature that allows me to visually highlight the mouse location when I press the control key, and sometimes turn on mouse trails. I've seen other presenters, particularly on YouTube, use Windows Magnifier or a similar utility like ZoomIt to help people follow details.
But most importantly, I try to tackle the small-screen problem by simply slowing down and verbalize each step when I'm doing a demo. I also generally invite them to just watch a few steps, and then pause so they can repeat those step on their own, rather than try to keep pace with me. As we go I ask how people are doing so I can adjust my pace. There may be one or two who just get hopelessly behind, and others who might be bored because I'm going too slow, but my goal is to make sure most people are able to follow.
Part II: Goals and Directions for 2021/h3>/h3>/h3>/h2>/h3>/h3>/h2>/h4>/h4>/h4>/h4>/h4>/h4>/h3>/h3>/h2>/h3>/h3>
- Author: Andy Lyons
- Contributor: Sean Hogan
- Contributor: Shane Feirer
- Contributor: Maggi Kelly
In Part I of this blog post, I reflected upon some of the lessons and conversations from 2020 as we migrated our geospatial technology workshops from in-person to online formats. In Part II, I share my hopes for 2021, including a wish list of improvements in the teaching technology we use, and some thoughts on how we can combine the best of the online and in-person programming in a post-COVID world.
My 2021 Wish List
1) A Serious Upgrade or Replacement for Zoom
It's no accident that Zoom quickly became the dominant communication tool when COVID struck. Zoom has a number of great features that has made it one of the leading video conference platforms. It's widely available, doesn't require everyone to have an account, and has great audio and noise cancellation. It also has all of the core functionality you need for video conferencing, including screen share, chat, integrated polls, whiteboard, registration forms, etc. We've used Zoom for all our online training not because of its feature set but because UC has a contract with them so we can use it at no additional cost.
Zoom however was never designed to be a teaching platform. It may therefore not be fair to expect it to serve as one. The webinar license provides a handful of additional feature geared toward large audiences, but that still doesn't make it a teaching platform in my book. The top-five features I wish Zoom had for software workshops include:
i) Customizable view layouts
Right now, Zoom allows you to choose between 'Gallery view' and 'Speaker view'. For each of these views, the various media streams – speakers and participants' webcams, shared screens, chat window, etc.) appear in predetermined locations. Zoom's programmers made some reasonable choices on our behalf where things should appear, but they don't always work particularly when presenters and participants have lots of windows to manage. Even to do something as basic as having panelists appear in a fixed layout Brady Bunch style isn't possible with the current Zoom client.
ii) Private screen share
A critical part of software instruction is looking over the shoulder of a participant in order to help them troubleshoot something. In theory this is possible in Zoom if a participant shares their screen, but as an instructor I don't like asking people to share screens with everyone in the workshop and open up a potential Pandora's box of privacy concerns. I've tried using breakout rooms for this kind of help, but that disrupts the flow of the workshop and is overkill for what is often a 5-second question (e.g., 'you forgot a comma in line 2'). Without the ability to share screens privately, the chat window because the defacto help tool for many workshops. In the best case scenario this is a klunky way to provide help, and for many troubleshooting needs chat is simply ineffective.
Without the ability to share screens privately, the chat window because the defacto help tool for many workshops.
I wish Zoom had the ability to let an individual share their screen with just one the instructor or a workshop helper for this kind of support. Even better, how about a utility that would allow me (the instructor) peak into any participants' application window? English teachers using Google Classroom do this all the time when their students are doing a writing exercise in Google Docs. Going even further, I would love to be able to graphically highlight buttons and menu items on all participants' applications during a workshop. I suspect that type of functionality would have to be built-in at the application level (e.g., RStudio), and would create all kinds of security concerns, but it sure would be helpful.
iii) The ability to broadcast pre-recorded video from a server
Prerecording bits of workshop content is becoming increasingly popular for many reasons. Foremost among them, pre-recorded video allows the instructor to carefully explain or demo something way more efficiently than they could ad-hoc. During the workshop itself, playing the video gives the instructor a little break from being on stage. After the workshop, participants can go back to the recording and replay or save it as needed. In our group, Sean Hogan used a variant of this technique when he recorded "video solutions" for each step of a photogrammetry exercise.
Pre-recorded video allows the instructor to carefully explain or demo something way more efficiently than they could ad-hoc.
Unfortunately the quality of playing recorded video through Zoom is always disappointing. Did you ever wonder why YouTube videos look 100 times better than the same video played by a presenter through Zoom's screen share? The short answer is even though the source material may be high-quality, the Zoom client is not actually sharing the original video stream. Rather it's grabbing the screencast of a media player on the presenter's computer, re-encoding the audio and video in real time (which is hard to do and generally involves low-quality compression algorithms), and then transmitting it at a single bitrate to everyone else in the meeting. Contrast that to YouTube's approach. When you upload a video to YouTube, YouTube will take its time to encode high quality copies for a variety of resolutions and bitrates, which are then saved and streamed to viewers based on the bandwidth of their internet connection. In workshop settings, instructors also need the ability to start video streaming to all participants simultaneously, rather than asking each person to hit play at the same time. Webinar platforms like BigMarker already have this functionality, but until we can do the same thing with Zoom (or something that replaces Zoom), pre-recorded video will never be a serious part of live online training.
iv) The ability to interact with shared screens
Video editing platforms like Camtasia Studio allow you to embed clickable hotspots in videos, take quizzes and polls, copy text to the clipboard, etc. My slide decks, which I create almost exclusively in HTML5, have similar interactive capabilities including sample code you can copy to the clipboard, buttons to reveal hints and solutions, links to previous slides and external resources, etc. But it's all for naught when I present my slides on Zoom, because Zoom screen shares are video only. I wish participants could copy-paste code directly from my screen share, click on links to get to other resources, etc. Absent that, I wind up spending a lot of time copying things into chat, or telling participants to open the slides in a browser - yet another window for them to manage.
v) More administrative flexibility
Right now there a number of tasks that only the host can perform (not co-hosts). For example only the host can create a poll before a meeting starts, or share cloud recordings. In many workshop settings, I need to delegate these kinds of tasks to a collaborator, but it isn't possible to give those permissions.
Meeting registration is another area that's caused some frustration for workshops. Some of our training involves a selection of workshops that people sign up for after they've registered for the event. This gets tricky when registration needs to be cross-checked with a payment system. When payment is involved, we need to limit participation to registered attendees (who get individualized links), but we don't want to ask participants to register for a bunch of individual meetings after they've already registered and paid for the training. The Zoom webinar license allows one to bulk register participants via uploading a csv file, but you can't do that for Zoom meetings. We wound up creating our own multiple meeting registration system using the Zoom API (which is a great feature) and Google apps. This solved the need but it was challenging to administer and some participants got overwhelmed with all the Zoom links.
That's my wish list for a better online platform for workshops. Will Zoom to rise to the challenge and make their platform more suitable for instructional settings?
2) Tools to Create and View Exercise Guides that Reflow
Self-paced exercises are a standard feature of nearly all of our live workshops. For in-person workshops, we almost always make the exercise guide available in a printed format. Although that may not seem modern, elegant, or certainly green, printed exercise guides are immensely practical (and we always reuse them if participants don't take them home). They can be designed to be efficient and attractive, combine concepts with step-by-step instructions, are easily navigated, and don't require another window on your monitor. For a multi-part, self-paced exercise, they're still a great option.
However in a virtual workshop, PDFs are poorly suited to serve as an exercise guide. Assuming the participant doesn't print it out, they'll have to display the PDF side-by-side the main application window (like Pix4D). The venerable PDF format is designed to preserve the layout of a fixed page, so text and graphics don't resize or dynamically wrap. Hence viewing the PDF not only requires opening up an additional window, it usually requires a dedicated full-size window. To make the entire page visible a at a size where the fixed font is legible, you have to pretty much devote an entire monitor to just the PDF.
In a virtual workshop, PDFs are poorly suited to serve as an exercise guide.
The solution of course is putting the exercise in a responsive format that reflows to any window size. Formats that reflow include HTML, markdown, and ePub. These are not hard to create and tools have been around to make them for ages. In the open source world many instructors create exercises in markdown which they then host on GitHub (for example see this exercise from DroneCamp instructor Taylor Nelsen). This allows participants to place a smaller browser window next to the application, increase or decrease the font size as needed with the mouse wheel, and easily navigate down the exercise. In addition to greater adoption of reflow formats, it would be nice to have borderless browser windows that stay on top (although you can currently do that with DeskPins), or something like a markdown-friendly sticky notes utility.
3) Cloud-based geospatial virtual machines
Would someone pleeeeaaase develop a geospatial virtual machine that runs in the cloud, is simple to setup and use, has a predictable cost model, and is affordable enough for a workshop setting? This would eliminate a huge portion of the setup hassles which consume so much of a one-time workshop.
The underlying technology for cloud VMs is already well-developed. Amazon, Azure and Google (amongst many others) have cloud-based architecture that are more than capable of running VMs for GIS and photogrammetry software. There are challenges however that make it extremely challenging to use these resources in practice. Users have to create accounts and follow a long technical document with numerous steps that are unfamiliar to even seasoned GIS users (when was the last time you had to go into a network control panel to open ports?). To create VM images with all the required software and data, an IT administrator (or the poor instructor) must go through an even longer guide. Your virtual hardware options tend to be either very lightweight (e.g., Ubuntu with 4GB RAM) or extremely powerful (and expensive); there isn't much middle ground. If you want a GPU, you may be forced to spin up a machine that has far more horsepower than you probably need just to complete workshop exercises. Pricing is confusing and unpredictable, because its based on a half dozen factors that are hard to predict, including amount of data transferred and the length of time the machine is running.
The Research-IT group at UC Berkeley has developed a similar solution through their AEoD Service (Analytics Environments on Demand). Developed to be an alternative (or eventual replacement?) to computer labs, the service provides Windows VMs that run on campus hardware and can be configured with the necessary software by lab administrators. The images are persistent so data saved by the user is still available next time you connect. It's worked well for the campus groups that signed-up for the program - perhaps this could this be scaled UC wide? A slightly lower tech option used by some computer labs (including the UC Berkeley Geospatial Innovation Facility) is to set up a calendaring system so students can remote desktop into individual computer lab workstations.
I would love to see a modestly endowed cloud VM pre-configured with GIS software that is as easy to sign-out or rent as buying a book on Amazon.
Pending a UC solution, I would love to see a modestly endowed cloud VM pre-configured with GIS software that is as easy to sign-out or rent as buying a book on Amazon. Pricing should be upfront, and not based on some opaque formula that forces you to set cost alerts just to avoid outlandish bills. A GPU would be nice (essential for photogrammetry software), but we don't need it as part of a pricey supercomputer bundle. The whole thing should cost something reasonable for a workshop setting, say $10-$20 for 10 hours of use. If there's already a product out there that approaches these specs and price point, please leave a note in the comments!
In the R world, I've become a huge fan of RStudio Cloud. I now use it for every workshop and am increasingly pushing participants toward it instead of running their own copy of RStudio Desktop. Using nothing more than a browser, in less than 5 minutes participants can create a free account, click on a link to clone a RStudio project I've prepared for them, and boom they're ready for the first exercise. It saves them and myself countless headaches installing packages and data. RStudio Cloud has some premium features for instructors that I haven't needed yet, but will gladly pay for when I teach a workshop that requires more sophisticated project management or grading.
Hopefully the GIS and photogrammetry companies will be inspired to develop something similar to RStudio Cloud for their platforms, otherwise they'll continue to lose out on a huge opportunity to attract new customers and expand their market share.
4) Ways to hold side conversations in a virtual environment
The biggest bummer about virtual workshops is the greatly diminished social interaction. In both quantity and quality, its simply more challenging to engage with people online. Whether its reconnecting with an old colleague, or having a spontaneous conversation with someone new, its simply not as easy to express yourself through a webcam and a 15" screen. For my group, this doesn't just dampen the fun of attending a workshop, we're actually losing an important and explicit goal for all our events - creating opportunities for participants to interact and learn from each other.
Given the exponentially greater accessibility of virtual instruction, and the increasing importance of fostering communities of interest as opposed to communities of place, we should all be trying harder to facilitate interaction between participants online. I don't think virtual platforms will ever come close to in-person social interaction, but we can certainly do a lot better than the chat window. In theory Zoom breakout rooms can be used for side conversations, but these would work much better if there was a more flexible and decentralized way to identify common interests. I've seen virtual conferences invite participants to use Slack or Discord, with a discussion channel created for each session. This seems like a step in the right direction, because a conversation that starts in a workshop session can keep going after the event is over and spin off in new directions.
We should all be trying harder to facilitate interaction between participants online.
Other virtual platforms have taken interaction much further. There are platforms that let participants sit at the virtual equivalent of big round conference tables (Remo), interact with each other through collaborative flipcharts (Miro), create and share interactive posters (iPosterSessions), and roam around an entire virtual conference center (VirBela). I would love to someday see the equivalent of speed dating lunch sessions, where algorithms match small groups of participants based on common interests to meet each other during meal breaks and down time.
5) Augmented reality and other fanciful wishes
Higher up on the spectrum (much higher up), I look forward to the day when we can programmatically interact with application GUIs. This is partly inspired by the 'take a tour' buttons you increasingly see on web sites, including our own CalLands web app, that explain how to use the myriad buttons and settings available. Being able to programmatically point to or highlight GUI elements of an application like ArcGIS Pro or Pix4D would enable a whole range of learning aids.
Being able to programmatically point to or highlight GUI elements of an application like ArcGIS Pro or Pix4D would enable a whole range of learning aids.
Controlled remotely, the instructor could visually highlight ribbons and buttons on the participants' application windows. Controlled locally, exercise guides could have a 'give me a hint' link for each step. GUI APIs could also enable a pipe dream of mine – the ability to connect the overall workflow to the minutia of individual tasks. Imagine if you will a high-level flow chart of the overall workflow floating above the application window and updating as the user works through the steps.
This kind of functionality would have to be built-in at the application level, perhaps as an extension, but it may not be as far-fetched as it seems. The latest version of ArcGIS Pro has a feature called Tasks, which are essentially visual wizards that walk a user through a common workflow. In other words, GUI manipulation is already possible. RStudio Desktop sports an API which may not expose GUI elements, but certainly exposes most of the functionality available in the menus and buttons. Graphic overlays like arrows and highlights are not that hard to implement over any application via transparent windows. Zoom already has a pretty rich set of annotation tools which are basically overlays.
While we're on the subject of augmented reality, why do participant webcams all have to appear in a single window in little boxes, and why does everyone's audio have to be piped through two little speakers on my laptop? Super wide curved monitors have been around for years and are not that expensive, and surround-around sound systems have been with us for decades. If audio-video streams can be rendered more naturally, mimicking how we see and hear each other sitting in a room together, perhaps virtual workshops wouldn't feel so much like talking to each other through a straw.
Directions for 2021: Flipping and Hybrid Formats
The light at the end the COVID tunnel is starting to appear - does this mean software workshops will go back to the traditional in-person format? I suspect not. We've seen too many benefits of online training, particularly around accessibility and cost, that we'd be foolish to not preserve. We just need to find ways to leverage the best of the virtual and in-person worlds.
For 2021, I'm personally interested in exploring two tried-and-true approaches to make online instruction more effective - flipped instruction and hybrid programming.
Flipped teaching in a traditional classroom is where students listen to lectures at home, and spend class time doing their 'homework' and group work. Far from being a new idea, the rationale is that class time is best used for active learning rather than passive exposure to content (i.e., listening to a lecture). This seems to me to be one of the low-hanging fruits for live online instruction. Making presentations available for participants to watch on their own will almost always be a better use of their time. Newbies to the field can watch slowly, repeat segments if needed, and click on links to other resources. Advanced students can skim through the material and focus on just those things they haven't seen before.
Pushing some of the content to watch at home will also improve retention, because instead of cramming lectures and exercises into a single intense 3-hour window, participants can chew on the material over several days. It will also increase the value of the live session, where the greatest asset is the presence of a skilled instructor to facilitate discussions and address Q&A.
I partially flipped one of our in-person 2019 workshops on applications of GIS in forestry. I recorded the introductory presentation on basic GIS terms and concepts and told participants to watch it before we meet if they've haven't taken a GIS class in a while. My goal was to spend more of the time in the computer lab doing hands-on practice, give participants who were already familiar with GIS a bit of a break, and enable people who couldn't attend both sessions a chance to catch up on the basic terminology. It worked well, and people continue to view the video on YouTube.
Why haven't we seen more flipped instruction? It's catching on, but the effort required to prepare and record presentations is a pretty significant start-up cost. The products can be reused, but they may have a short shelf life particularly in technology fields like GIS that are rapidly changing.
Hybrid programs are simply a mix of virtual and in-person. Pre-COVID, I taught a 12-hour R workshop using a hybrid format. The first and last sessions were in a computer lab on two Saturdays, with two evening virtual sessions sandwiched in between. The format worked well. At the first session, we got to know each other in-person, establish rapport, and have open ended discussions about backgrounds and interests. The two virtual sessions after work were meat-and-potatoes code instruction. The final in-person session was spent on semi-structured projects that involved some group work.
Post-COVID, we can use hybrid formats to connect in person while also maintaining the accessibility we've come to love from online training.
Post-COVID, we can use hybrid formats to connect in-person while also maintaining the accessibility we've come to love from online training. In-person sessions can focus on networking, topics that benefit from semi-structured conversations, and skills that can't be easily taught online (such as how to manually fly a drone). These sessions have to be in-person, but that doesn't mean there has to be only one meeting time. Imagine for example flight practice sessions taking place concurrently at 3 different locations across the state to reduce travel requirements. Then online sessions can focus on topics that don't require a lot of interaction and can be taught with a high student-instructor ratio. This could include covering foundational concepts and things like data skills. Another course component that would work well in a hybrid setting is doing a capstone project after core instruction is over, which in my experience has been the gold standard for cementing skills and knowledge.
The abrupt conversion to online training stemming from the COVID pandemic threw everyone for a loop. We quickly realized that merely swapping out a projector and screen with a webcam and Zoom is not an effective way to use the new format for workshops. Virtual instruction has its own demands, some of which are particular to the technology but many of which are rooted in long-standing best practices of teaching. Reflecting upon the pros and cons of each format will allow us to reap the benefits of virtual instruction in the post-COVID era, particularly around accessibility and cost, while also strengthening active learning and social interaction.
- Author: Hannah Lopez
- Author: Andy Lyons
2020: DroneCamp Goes Virtual
In June 2020, IGIS hosted the 4th annual DroneCamp in collaboration with CSU Monterey Bay, the UC Unmanned Aircraft System Safety office, and Monterey Bay DART. The four-day intensive bootcamp aims to cover the full spectrum of skills and tools needed to collect data and make maps with drones.
Due to COVID19, DroneCamp 2020 was held entirely online. We couldn't teach flight practice over Zoom, but other than that the curriculum covered the usual suite of topics including regulations and safety, equipment, flight planning, photogrammetry, and data analysis.
The online format wasn't nearly as fun as meeting in person at CSU Monterey Bay, but it produced some unexpected benefits. Over 330 people attended the program from all over the US, Canada and several other countries. Attendees came from a wide range of backgrounds including education, natural resource management, resource conservation, agriculture, real estate, construction, and archeology.
The pool of presenters and instructors also diversified both geographically and programmatically. Instructors came from several universities across California and beyond, and an expanded set of research talks covered a range of topics including workforce development, coastal and marine systems, and digital agriculture.
Session Recordings Now on YouTube!
You can access the sessions via the DroneCamp Online Program, or the DroneCamp 2020 Playlist on the IGIS YouTube Channel. The Online Program also contain links to presentation slides, exercise handouts, and datasets.
Organizing and editing all the videos for production was no small feat, and the DroneCamp team is excited to make these resource materials accessible to everyone who would like to learn more about the world of UAV technology. If you find them useful, or would like to get involved in future training on drone mapping, please leave a comment or send us a note.
IGIS would like to extend their gratitude to the many collaborators who made this years online conference possible: UC ANR Program Support Unit; UC ANR Integrated Pest Management program, UC ANR Learning & Development unit; Wilder Interpreting Services; Monterey Bay DART; the FAA Collegiate Training Initiative; and, of course, all our instructors, presenters, and participants. Thanks!
- Author: Andy Lyons
The Decision to Go Online. When COVID-19 struck, the DroneCamp Planning Committee had to quickly decide how to respond when it became apparent an person-event would not be possible. By the time we officially canceled the in-person event in early April, registration had already started. We had a couple weeks to decide - do we cancel? Postpone? Hold it virtually?
Given the amount of planning that had already been invested (we started meeting in October 2019), and the fact that only one component (flight practice) would not translate at all to a virtual format, the Committee decided to move forward with an online event. We were admittedly intrigued by the possibilities of an online format, including a potentially larger audience. I was equally excited about the potential for an expanded pool of instructors, as we had been trying for years to get colleagues from distant campuses to participate. We were torn whether to maintain the same 3-day time frame, or spread it out over several weeks as some virtual conferences are doing. We ultimately decided to maintain the same one-week time frame, in part because instructors had already committed to those days. To mitigate Zoom fatigue, we aimed to limit programming to 2-3 hours each morning and 2 hours afternoon. Sessions would be scheduled on the early side to accommodate potential participants on the east coast.
A Need for New Coordination Technology. After committing ourselves to an online event, the details and requirements for what we needed started to hit me. To manage such an ambitious program, we needed a way to coordinate workshop info, software instructions, and exercise materials involving nearly two dozen instructors, and share everything in a clear and organized manner with a couple hundred participants (which in the end grew to over 300). We also needed a way to manage registration for multiple Zoom sessions, including Webinars for the plenaries and concurrent Meetings for the hands-on software workshops.
Having been thru this rodeo before, I knew two lessons for a successful conference. First, the key to a successful collaborative event is not just catering to the needs of participants, but equally if not more importantly your presenters. Second, almost everyone - instructors and participants alike - waits until the 11th hour to pay attention. Hence whatever tool, or set of tools, we used, they had to be user-friendly and as automated as possible so that last minute changes could be accommodated with a minimum of manual steps.
Specifically, I needed to create three information tools:
- An Online Program, consisting of a mix of content from the Committee as well as instructors, that can be be updated quickly, and capable of sharing including a variety of links for slides, data, Zoom, etc.
- A way for people to sign-up for concurrent workshops, and get individualized Zoom links after cross-checking their registration status.
- A customized summary of participants generated from registration data from the ANR survey platform
Ideally, we would have had a Learning Management System to use, or at least an event planning platform to build upon. That was not our case, so I had to turn to my go-to tool stack of DIY solutions: Google App Scripts, R, markdown, and Github.
The Online Program
An online event needs an online program. DroneCamp in particular needed a program that could be quickly updated before and during the event, was user-friendly for instructors to update their session info, and combined a range of both static and dynamic content including session titles and descriptions, thumbnail images, scheduling info, and links for slides, exercises, datasets, and Zoom.
To make life as easy-as-possible for busy instructors, I pre-populated as much of each session info as I could, including draft session titles and descriptions. Knowing that session description would need links to software installation instructions and other details, I created the equivalent of auto-text fields that when rendered by my R script were replaced with values stored on a different tab in the Google Sheet.
Knowing that GitHub occasionally goes down, or could theoretically throttle our site if there was too much traffic, I created a backup site on an Ubuntu web server that IGIS manages. Fortunately we never needed to use it, but it was good to have a Plan B.
Page views are just tip of the iceberg from Google Analytics. I don't have a huge amount of experience with Google Analytics, but hope to dig into this some more for next time to see what else I can glean about our users. Another area for future development is implementing click tracking, which Google Analytics supports, to learn more about how people are using the site.
Creating a Zoom Registration Dashboard
Probably our biggest headache was managing the multiple Zoom sessions. Our requirements were more complex than your average webinar as we need to:
- Manage a combination of Zoom Webinars (for plenary talks), and Zoom Meetings (for the hands-on software workshops). To complicate things further, we only had access to 1 webinar license (which we couldn't use the entire time because of other commitments), so had to ask colleagues to schedule webinars for us. We also needed up to 5 concurrent Zoom meetings for demos, meaning 5 different hosts.
- Make use of Zoom's registration features, to ensure only registered participants could join and prevent Zoombombers
- Provide a mechanism for participants to sign-up for concurrent workshops, and receive individualized Zoom links for the appropriate session after cross-checking their registration status
- Minimize additional registration steps participants had to complete, including registering for multiple Zoom meetings.
Biggest Challenge: Managing Zoom Meeting Registration. In the 3 months leading up to DroneCamp, we learned a lot about Zoom's dizzying array of dials and levers for meetings, webinars, user accounts, and the Zoom client. My biggest challenge was how to register 300+ people for roughly 8 concurrent Zoom meetings, preferably without asking them to click on individual Zoom registration links. This was a fairly big hurdle because unlike Zoom webinars, the Zoom website does not provide a way to upload a CSV file of registrants for a Meeting. Additionally, I needed a solution that would cross-check our DroneCamp registration list, and send individualized connection links. All of this had to be done as efficiently as possible to cater for the dozens I knew would not read any of our emails until after the opening session, and accommodate people who would inevitably change their mind after the course started.
Strike 2: Third Party API Integration Services. Next, I turned to the Zoom API, beginning with the dozens of third party integration services (e.g., automate.io, integromat, appypie.com, hull.io, tray.io). These platforms serve as the connective tissue for all manner of online services and web apps, because they help you integrate your various web APIs (like Google Sheets and Zoom). These platforms are not free, but they're easy to set up and use so if I found one that would get the job done it would be a small price to pay. Reading through the details however, I discovered they mostly supported Zoom webinars, not meetings, and few if any of them supported registration management. Another dead end.
But the authentication step is daunting. The simplest way to authenticate a custom Zoom App is creating a Java Web Token (JWT), which is the equivalent of sending a password. But that option was not available to me because our organizational ANR Zoom account is locked down for security reasons and I'm not an administrator. Thus I had to go with a user authentication approach using an OAuth protocol, which requires programming a complex ‘dance' between login page, redirects, IP white lists, and secret client keys and tokens under the hood. One would think there would be ample examples of authenticating Zoom's enormously popular API from Google's enormously popular Google Apps platform, but such is not the case. After a couple of late nights of stringing together various chunks of sample code, and playing whack-a-mole with cryptic error codes and configuration settings, I finally got it to work. I knew I could now create custom menus in Google Sheets to schedule new Zoom meetings, define their properties, and register people for them.
The next step was to integrate this new capability into a Google Sheets app for DroneCamp. The Google Sheet serves as the 'hub' for several Google Forms, our registration data, and Zoom. It uses conditional formatting, a whole bunch of VLOOKUP and IMPORTRANGE functions, and a Custom menu with a sidebar GUI to manage the Zoom functions. I called the result the Zoom Dashboard.
Each column of the Zoom Dashboard represents a Zoom meeting, and each row represents a participant. When a DroneCamp participant submits the Concurrent Session Sign-up form, a script runs putting a ‘1' in the corresponding column of the Zoom dashboard. The Zoom dashboard also had a copy of the ANR Registration Survey, and a combination of VLOOKUP functions and conditional formatting rules to flag people who did not have a matching registration. As Administrator, I could quickly check the registration status of people who requested a particular workshop, change the ‘1' to another code if needed, and then when everything was good run a menu command to actually register people for the meeting.
The key to creating an interactive Google Sheets App is using sidebars to present the user with a GUI. I had never programmed sidebars before but have seen them used a lot including many Google Sheets Addons. After another night of reading documentation and programming, I eventually figured it out. Behind the scenes, a sidebar is simply an HTML template with form elements that are configured to execute Google Apps functions. This gives you enormous flexibility both in terms of layout as well as functionality, pretty cool.
The system worked fairly well, and the vast majority of participants got their Zoom links quickly and in ample time. Last minute changes in workshop preferences were dealt with relative ease. It took less than a minute to review new workshop requests, validate them, and run the registration script. A small number of participants had recurring hiccups due primarily to problems on their end including, i) registering with multiple email address despite being told repeatedly not to do so, ii) making typos in their email addresses (shockingly common), or iii) failing to take the recommended steps to prevent Zoom confirmation emails getting flagged as spam. Our phenomenal PSU staff were the frontline dealing with questions about Zoom; but I intercepted many of these issues by first flagging problematic entries with conditional formatting rules on the Google Sheet, and then investigating them on a case-by-case basis.
Other features for the Zoom Dashboard that I ran out of time to implement included writing a script that would extract a participant's individual Zoom links for multiple meetings and send them in a single email. That would be extremely useful for an event like ours with so many sessions. I also had plans to write an auto-reminder email for Zoom meetings, another feature that Zoom only provides for Webinar licenses but can be done via the API.
Summary of Participants
We used the in-house ANR Survey System for registration and payment. Similar to platforms like Eventbrite, the ANR Survey Tool provides a highly customizable registration form linked to multiple payment options (including inter-campus transfers). Unlike Eventbrite however, this older tool doesn't have a built-in report generator, nor an API providing access to the underlying data. Instead, you manage registrations through a web interface, which works well, which includes a download option to get the results as an Excel file.
We had no idea how many people would sign-up, so I wanted to create a HTML summary of registered participants for our instructors and planning team to stay abreast of registrations as they trickled in. I knew we'd get people from all over, so I wanted the summary to have an interactive map showing participants' locations, as well as various summaries about their organizations and titles. I also knew that I would have to update this summary on almost a daily basis, so I needed the summary to be generated as automated as possible. There was no getting around having to manually download an Excel file, but my goal for everything after that was to do it "at the click of a button".
Geocoding. We didn't ask people on the registration form to enter their longitude–latitude coordinates, which meant I had to invoke a geocoding engine. However, I didn't want to geocode a participant more than once, both because it costs ‘credits' and takes a couple of seconds. I also needed a way to ‘help' the geocoding engine when the participants location info was incomplete (e.g., the name of a university, but not the city or zip code).
A small but significant number of cases could not be handled by either of the above approaches. Either the registrant omitted multiple locations fields, or my code didn't parse an international address correctly. These cases were flagged and saved in yet another CSV file. After each render, my script reported the number of unsuccessful location matches, telling me I needed to go look at the CSV file and if possible enter an ad-hoc geocoding string based on other information in the record. This worked in nearly all cases.
Generating the tabular summaries of registrants by domain type and organization was relatively straightforward using Regex expressions to parse those fields. The ‘title' field was very eclectic, as you'd expect, nevertheless some interesting patterns started to emerge that I wanted to capture. Manually putting titles into different categories is normally what I'd do, but registration was happening too fast so I needed a more automated solution. I decided to use a word cloud. I had never generated word clouds in R before, but after a few hours of reading forum posts and playing with packages, I settled on the wordcloud2 package with text cleaning functions from the tm (text mining) package. A nice thing about wordcloud2 is that the output is interactive (hover over a word to the effect), and every time you refresh the page it redraws the word cloud with a different color palette. Thank you to the amazing community of open source programmers who over many years have developed word cloud, leaflet, and all the other amazing open source plugins for the web!
Reflections and Lessons Learned
My homemade event technology solutions for DroneCamp using open-source software performed extremely well, with surprisingly few problems. In the process I learned a tremendous amount about integrating Google Apps, R, and Zoom that I will be able to draw upon for future work. Cracking the OAuth authentication dance and Google Apps sidebars were perhaps the biggest breakthroughs, which now gives me a way to automate tasks involving any of the dozens of web API services out there, including Google Apps, Zoom, DropBox, Slack, and many, many others.
I'm very cognizant of the fact that I'm the beneficiary of an enormously well-developed ecosystem of open-source tools. The ability to import and munge data with just a few lines of code, and present it in compelling HTML based widgets like leaflet and word clouds, is simply remarkable. I and everyone who benefits from my work stand on the shoulders of the legions of open source developers who have toiled for years and years to build and share these remarkable tools. Next time you encounter a popup window inviting you to send a small donation to support an open-source platform or buy a coffee for a developer, please consider this!
There are also a few things I would do differently next time, or advice I would give those with similar requirements. Some of the main ones include:
The value of a LMS. Many of the tools I was forced to build from scratch are features you would find in a Learning Management System (LMS). Perhaps the most valuable feature that would have been really nice to have is a one-stop-shop dashboard for participants. Most LMS's require users to create accounts, which by itself would have resolved a host of challenges regarding multiple emails, cross-checking registration status, distributing Zoom links to only those who need them, etc. LMS's also facilitate sharing course materials like slides and exercises, and give you more options to manage access.
Zoom User Accounts. If we were going to use Zoom again, I would definitely turn on user authentication. This simply means participants need individual Zoom accounts (free is fine), and use the Zoom app to join meetings and webinars. User authentication simplifies managing Zoom links, because upcoming Webinars and Meetings appear in the app. It also simplifies sharing recordings, and gives you better analytics. We initially discussed user authentication but shied away from it so as to not put further demands on participants. That was well-intentioned, but in hindsight there would have been more advantages than disadvantages for both participants and organizers.
Alternative Registration Systems. Linking Zoom meeting to a payment system doesn't just incur credit card fees, it also comes with workflow costs. Either you develop ad-hoc tools and protocols (as we did) to cross-check Zoom and event registration, or you adopt a 3rd party registration system like Evenbrite that integrates both payment and Zoom registration. All of these options come with tradeoffs that need to be incorporated into planning and support efforts.
Simpler, smaller, and/or free trainings can be conducted quite satisfactorily using just Zoom Meetings, but it helps to have a good understanding of Zoom's myriad of settings. Zoom's built-in registration system is actually quite configurable, something we didn't take advantage of. You can add your own questions and branding elements to the registration form. For trainings that only involve one or two meetings, that might suffice./h1>/h1>/h1>/h2>