FOSDEM Conference Infrastructure
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 287 | |
Author | ||
Contributors | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/57001 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
FOSDEM 2022192 / 287
2
4
6
8
12
17
21
23
31
35
37
41
44
45
46
47
50
62
65
66
67
68
71
73
81
84
85
86
90
92
94
100
102
105
111
114
115
116
117
118
121
122
124
127
131
133
135
137
139
140
141
142
145
149
150
156
164
165
167
169
170
171
172
174
176
178
180
183
184
189
190
192
194
198
205
206
207
208
210
218
220
224
225
229
230
232
235
236
238
239
240
242
243
244
245
246
249
250
253
260
262
264
267
273
274
277
282
283
287
00:00
Self-organizationVideoconferencingFigurate numberDiagramComputer animation
00:26
SoftwareComputer networkPointer (computer programming)Internet service providerSoftwareVideoconferencingCASE <Informatik>VarianceField (computer science)Computer animation
01:24
Data managementWebsiteScripting languageControl flowPhysical systemEvent horizonMatrix (mathematics)Cartesian closed categoryDrop (liquid)Self-organizationInterface (computing)Axiom of choiceResultantLattice (order)Automatic differentiationScheduling (computing)Water vaporEvent horizonMultiplication signScripting languageTrailWebsiteStreaming mediaVideoconferencingDifferent (Kate Ryan album)TouchscreenFerry CorstenMathematicsComputer fileBlock (periodic table)Sheaf (mathematics)Mixed realityInformationLetterpress printingAreaTelecommunicationProcess (computing)Proof theoryWeb pageFigurate numberWeb browserSoftwareGame controllerMiniDiscMatrix (mathematics)MereologyVideo gameMetreCASE <Informatik>Data managementArrow of timeDiagramUser interfaceFunction (mathematics)Structural loadVideo cardBitDefault (computer science)Right angleRow (database)YouTubeCovering spaceBasis <Mathematik>BefehlsprozessorComputer animation
07:34
Event horizonComputer iconInsertion lossInterface (computing)Self-organizationScheduling (computing)TrailFeedbackCodecQuicksortInstance (computer science)Computer animation
08:37
WebsiteSource codeBroadcast programmingMereologyCompilerFluid staticsUsabilityData managementShift operatorTask (computing)VideoconferencingMoving averageRepository (publishing)CodeDatabaseSoftware testingGamma functionSystem programmingPrototypeCapability Maturity ModelComa BerenicesModemInternet service providerComputer wormPublic domainOpen setAnalog-to-digital converterSystem on a chipCuboidLaptopDivisorOrder (biology)Ideal (ethics)Broadcasting (networking)Operator (mathematics)Uniform resource locatorCASE <Informatik>Film editingVideoconferencingComputer hardwareLaptopSoftwareGame controllerArmData structureCuboidWebsiteMixed realitySet (mathematics)Different (Kate Ryan album)NeuroinformatikStreaming mediaFunction (mathematics)Wave packetSelf-organizationScheduling (computing)CompilerMereologyDrop (liquid)Source codeComputer fileObservational studyProcess (computing)QuicksortInterface (computing)Default (computer science)Multiplication signInstance (computer science)Codierung <Programmierung>Web 2.0Video cardSystem on a chipGraphical user interfaceComputer animation
13:58
SoftwareCuboidSlide ruleMotion captureSpeech synthesisComputer animation
14:27
Function (mathematics)Right angleCuboidSoftwareCodierung <Programmierung>PiScheduling (computing)VideoconferencingSet (mathematics)Scripting languageComputer animation
15:00
Web applicationScripting languageVideoconferencingBroadcast programmingFunction (mathematics)Content (media)Process (computing)Event horizonRegular graphRow (database)Web 2.0System administratorProcess (computing)VideoconferencingFunction (mathematics)Scripting languageSet (mathematics)Scheduling (computing)Content (media)19 (number)Menu (computing)Forcing (mathematics)Right angleFunctional (mathematics)Form (programming)Computing platformPlotterComputer animation
16:18
Normed vector spaceStructural loadGamma functionProgrammable read-only memoryWeb applicationScripting languageVideoconferencingBroadcast programmingFunction (mathematics)Content (media)Event horizonRegular graphGame controllerMatrix (mathematics)User interfaceUniform resource locatoroutputComputer networkForm (programming)Online helpVideoconferencingMatrix (mathematics)Computer fileHash functionRepository (publishing)Web pageoutputUser interfaceSoftwareState of matterMereologyOnline chatElement (mathematics)Arithmetic progressionPhysical systemProcess (computing)Cloud computingUniform resource locatorMoving averageStreaming mediaVirtual machineVideo cardConfiguration spaceMixed realityLengthRobotPoint (geometry)Network topologyVideo gameOffice suiteDifferent (Kate Ryan album)Lattice (order)InformationDigitizingBitTraffic reportingTouch typingRule of inferenceScheduling (computing)Computer animation
20:18
Computer animation
20:41
LaptopMultiplication signOscillationComputer configurationPoint (geometry)Bit rateExterior algebraPerformance appraisalWebcamVideokarteDifferent (Kate Ryan album)Right angleStandard deviationElement (mathematics)AreaBitGroup actionImplementationMatrix (mathematics)Maxima and minimaMotion capturePlastikkarteCuboidProjective planeSlide ruleHooking1 (number)Meeting/Interview
25:56
Multiplication signMeeting/Interview
26:28
Arithmetic progressionProcess (computing)Meeting/Interview
26:52
Right angleMeeting/Interview
27:14
Streaming mediaOnline helpPeer-to-peerPower (physics)Multiplication signBand matrixMeeting/Interview
28:16
Computer animation
Transcript: English(auto-generated)
00:06
Hi, FOSDEM. My name is Woutjof Haust, and I'm a FOSDEM organizer since 2010. I've been involved in various jobs, most recently in video work. This talk is about the FOSDEM conference infrastructure, the video work, but also the way
00:23
we actually schedule the conference and organize the conference. What will we cover? The software and methods for FOSDEM, both in the online and offline variants. We may skim over some details because some things are quite involved or quite complicated, but in such cases,
00:43
we will point to past talks that will go into some more detail where possible. What we won't describe is the network infrastructure that is used for in-person conferences or the monitoring that is being set up. If you are interested in that, I
01:00
can recommend the lightning talks that were done by Richard Hartman from 2016 through 2020 in the lightning talks room at the in-person FOSDEMs. Those were very interesting talks. They are recorded. You can watch them on video at FOSDEM.org or in any of our other channels, but they're not here.
01:22
We won't cover them in this talk. What is the infrastructure that we have? It looks a bit like this in our offline event. First and foremost, there is PentaBath, which is our scheduling tool that we use to communicate
01:40
with our speakers. They submit their talks there. They get approved or rejected through PentaBath, and then these talks can be scheduled on the schedule either by us for the main talk rooms or by Devroom organizers where relevant.
02:01
The output of PentaBath goes to the FOSDEM website, which builds the XML file and the whole schedule section. That XML file is then used by other tools in our workflow, such as the scripts that create the booklet basis.
02:20
It gets its information from the XML file. The volunteer management tool, which we use for handling volunteers, some jobs are related to things that are on the schedule, and therefore it needs to know the schedule. So it pulls that from the website. And also S-review, which is our video review and transcoding
02:43
tool, also requires the XML data, which it gets from the FOSDEM website. Those are the tools that use the scheduling and other metadata, which is referred by the blue arrows in this diagram.
03:03
The red arrows represent video information, video data, which comes from the in-room infrastructure, such as cameras and screen grabbers. They just forward that to Voctomex, which is a tool written by the CCC that we'll cover in slightly more detail soon.
03:23
Voctomex then combines the streams into a single stream, which goes out to the streaming infrastructure. Streaming infrastructure then can be used by people who are not in the room to watch the live stream. It also records the live stream to disk,
03:41
and that recording is used by S-review to create the post-processed videos that go out to our video mirror network, as well as to YouTube in the past. The Voctomex tool, the mix that is created by Voctomex, can be controlled by a video control tool that we wrote.
04:03
It's a very basic tool that allows you to choose between a few presets. Use of this tool is optional. We don't require Devrooms to use it. And we're perfectly happy for Devrooms to just stay on a single, the default preset. But if they want to, they have the ability to make changes.
04:23
For an online event, it looks slightly different, but not much different. There are a few blocks that go away. The in-room infrastructure is gone, because there are no rooms. As a result, there is no need to choose
04:42
the... There's no need for a manual choice of the streaming layout anymore, so the video control tool is also gone. And finally, the booklet scripts are not really necessary anymore either, because we don't really create booklets. So those are the three things that are gone.
05:02
What's added is Matrix, the Matrix user interface that we created to allow people to participate in an online FOSDEM. It's the output of all that info, of what comes to our streaming infrastructure.
05:20
It just goes to Matrix this time, and it is through Matrix that people can watch the stream. Other than that, the tool just stays the same, except that we also use S-Review as the pre-processing tool rather than just the post-processing, because whether you're pre-processing or post-processing video,
05:42
the requirements are very similar, and so we just kept using S-Review and slightly modified it so that you could also use it as a pre-processing tool rather than just the post-processing tool. But it's mostly the same. So to go into some more detail of all the tools that we have, let's start with PentaBoff.
06:01
PentaBoff is a tool that we use for scheduling all the talks. As I said, it's done either by us ourselves for the lightning talks and the main tracks, but it can also be used by Dev Room organizers to schedule their talks. It was originally written by the CCC, the Chaos Communication Congress, but our requirements are somewhat different,
06:21
and so therefore we've made significant changes to that tool. The problem with PentaBoff is that it is getting quite old. It does the job that it needs to do, but there are some warts left and right that make it somewhat difficult. For instance, there's one page that we use to do permissions management,
06:42
and the instructions on that page are load the page, let your browser use 100% CPU time for a few minutes until everything is loaded and the JavaScript is finished. Then make the changes you want to do, click the Save button, and then wait a few minutes again for everything to be stored. This is obviously not optimal,
07:01
but it works once you know how to use it, but yeah, there are downsides. For this reason, we would like to replace PentaBoff. Unfortunately, because it is hooked up to so many things and because so many things depend on the output of PentaBoff,
07:21
replacing it is not an overnight job. This will take quite some effort, and we've actually been wanting to do this for many years, but we just haven't been able to do so just yet. What does PentaBoff look like? If you look here, this is the PentaBoff interface used by Devroom organizers and main track organizers.
07:44
I'm looking at the talks that have been accepted for this conference organization, Devroom. As an organizer, this is the interface that I see. Let's look at this talk, for instance, which is the talk that you're watching right now.
08:01
Then I have all the abilities that I want to make changes here. There's an abstract that I can see. There's ability to make some notes for myself that are not shown to the speaker and so on and so forth. I can schedule it. Things can be rated. People can leave feedback and so on.
08:22
This looks slightly different from the submission interface, which is the interface that speakers use, but in essence, the idea here is that the PentaBoff tool is used by us to schedule talks
08:41
and to handle all the talk data. From PentaBoff, everything goes to the files and websites. PentaBoff itself doesn't really talk to many other things. So the Fosn website itself is a static website. That is, all the files are static
09:02
and are compiled by Nanoc, which is a Ruby-based tool, like a static compiler to create a static website from dynamic data. The source, or at least the mirror of the source, is available at GitHub on this URL. The website repository, the Nanoc itself,
09:24
will pull all the data it needs from PentaBoff to build the computer parts, like the schedule and other things. The way we've set it up seems to work quite well. Although the output is not ideal in every location,
09:41
like the schedule itself becomes large and somewhat difficult to navigate in certain cases, and could therefore certainly use some usability improvements, but I don't think we will replace the way we build our website anytime soon. It seems to serve our purposes, at least that's how I feel about it.
10:01
Another tool we use is for volunteer management, which looks like this. Sorry, I forgot. I was going to show you the Fosn website itself. This is basically the way things work. Um, let's see.
10:21
There was, ah, yes, in the content directory, I forgot. I always forget that. There is a news thing, for instance, and there are some HTML files. They're not really just HTML files. They are slightly different. You can see there's a title here, and there's a fault there, and basically that's how this works, so it works quite well.
10:40
Um, the schedule is somewhat more involved, but anyway, our volunteer tool looks like this. So volunteers have the ability to go to a certain job, and they want to say, oh, I want to do, I want to work on this job,
11:01
which is hosting for a talk. Let's go to this one. You can see where volunteers have already been added and where they are still needed, so that the volunteers have signed up for this talk, but not for that talk yet, so we would need volunteers there still. So the idea here is that volunteers can say,
11:21
can sign up to a job that they want to perform without one of us having to coordinate that, and the tool will let volunteers know if somebody's already there or not, and will show where there is, where work is still needed. It is a Django-based tool. It imports a schedule from the Fosden website
11:42
to create the jobs that are necessary per talk, and then volunteers can sign up for whichever job they want to do. This tool works fairly well, but then the requirements are not very complicated, so it's just a simple tool.
12:02
The video infrastructure, our central tool in the video infrastructure is Voxomix. Voxomix is a tool written by the CCC as well that allows various different video streams to be combined into a single stream. It is a software broadcasting infrastructure.
12:22
Voxomix runs on laptops in the network operation center at an in-person Fosden, rather than in the room as in some other conferences. We do not use the GUI tool for Voxomix called VoktorGUI, but instead we use that web interface,
12:42
the video control tool that I spoke of earlier. The default layout that we create is a pick and pick setting, but if people want, they can change it to a different layout. The reason we don't use VoktorGUI is because VoktorGUI itself, while it's easy to use,
13:03
does still need some training, a short amount of training, but we do not have the ability to train our dev room organizers at all, and therefore we try not to do that. We try to keep it as simple as possible. The in-room infrastructure is basically a wooden box
13:20
that was laser-cut that we created ourselves, and then some hardware inside is mostly an arm SoC to combine everything, and then there's an HDMI to SDI converter, so because the encoders we use require SDI, and that encoder is made by Blackmagic Design.
13:41
It's an H.264 encoder. For the cameras and other AV equipment, we rent most of this because buying that is just too expensive. As I said, we try to keep everything as simple as possible because training more than 20 teams is just not possible. To give you an idea of what these boxes look like,
14:02
these are the first year when we used the wooden boxes in 2017, when we were doing a final Ansible run over a small network here. It's a bit messy, but you can see all the rooms have two boxes, one for the camera and one for the speaker capture,
14:23
like the slide capture device. If we open one, this is a Fosden box that's on the inside. Right here, you can see the H.264 encoder. This is the SoC, RMSoC, I believe it's a banana pie.
14:46
That is the HDMI to SDI converter, and then here there's a network switch as well because you only want to output one cable and not three.
15:01
Once everything has been recorded, the video goes into something that I wrote, S-Review, which is a Perl-based web app, and then a set of scripts. S-Review sees the video as a timeline and then uses the schedule and a lot of crowdsourcing to extract the content that we actually care about.
15:21
I did a talk about S-Review at Fosden 2019 and that recording is available. Which you might want to look at if you are interested in using S-Review. For Fosden 2021, we added upload functionality, which was written in a way that it would allow people
15:44
who want to do manual editing of their talk to upload their talk without requiring manual intervention by the administrator. And that is slightly abused to allow uploading and processing of pre-recordings.
16:01
So like I said, the manual overrides is something that we have had requests for in previous Fosdems, but yeah, it's not necessarily something that we absolutely need for an online conference, obviously. S-Review looks like this.
16:20
If you are a speaker at Fosden, you would have seen this already. And this is the upload form where I can select a file. This is the upload form for this talk. So this is before this talk, obviously. Basically, you select the file and then you click upload. It's very basic infrastructure. It doesn't use all the HTML5 spiffiness
16:42
that allow you to give a progress bar, et cetera, but it does the job and that's what's necessary. There is an overview page that shows you all the talks that the system knows about and what their state is, waiting for files or files that still need to be uploaded.
17:02
So there's quite a lot of them. Preview are the talks that have been uploaded, but that require a review and then uploading speaks for itself. And then there is DOM. I mean, there are many states in the system. There are some that we don't see here, but basically the idea of SREview
17:22
is that all the talks go through the system and then eventually something rolls out. It is written in such a way that as much of it will work automatically as possible. What have we changed for an online Fosden? Well, like I said, the prerecorded videos,
17:44
they are uploaded into SREview. People say they go through PentaBaff, but it's actually not true. What we do is we distribute the URLs for uploading a video through PentaBaff. So speakers have to click on that URL and then they get an SREview page
18:00
where they can actually upload. From SREview, they are then synced to the Voxel Mix machines who are on a cloud service. In CASU, this is actually Hetzner. Voxel Mix is no longer controlled with the video control tool, but instead it is controlled by a bot that knows the schedule,
18:22
that knows the video length and will automatically switch the input from the pre-recording to the JITC room, et cetera, et cetera. The user interface is based on matrix for people to look at a talk and JITC for those people who want to be part of a talk
18:41
or want to join the live stream. If you're interested in more details here, then you should look at last year's matrix talk where the elements people will give some detail in the explanation on how all that works together.
19:02
What if you want to do this yourself? Well, everything that we do is in Ansible except unfortunately for the matrix bits, those are separate. If you want to get started, then this repository and the infrastructure repository is where you would start. It contains everything, not just the online bits,
19:23
also the in-person infra and also things like the network configuration and the monitoring, well, not the configuration obviously, but the way that the network is set up and then the monitoring is also in there. The video team hangs out at Fosden Video,
19:41
obviously not the network team, they are in a different channel, I should have added that, my mistake. The documentation is not entirely up to date everywhere, I think people know how that works, hence this talk, but if you have any questions and you want to use some of the infrastructure
20:02
that we use, then you definitely can contact us and we'll help you out with pleasure. Like I said, the network team is not in Fosden Video there, but you can also reach the team at just hash Fosden at Libra chat. And that's the end of my talk. Thank you for listening.
20:21
If you have any questions, I will be happy to answer them, thank you.
20:41
All right, that is the end of the talk. I'm not sure if there's anything else at this point, there were a few questions. So one question was whether these wooden boxes are used for the remote event, the answer is no, we don't use them for that
21:04
because I mean, they're the in-room infrastructure, we use them to hook up cameras and frame grabbers for slides and that kind of thing, which you obviously don't need for an online event, so no, we don't use them there. But yeah, the talk wanted to show both online and offline workflow, so that's why I showed that as well.
21:23
Another question was, I assume that alternatives for submissions and evaluation have been explored such as pre-talks. Yes, we have been looking at things, but of course there's a difference between looking at something and actually implementing it. We've done the first, we haven't done the last yet.
21:41
It's just a matter of time. There are also a few missing features in the options that we explored. I think at some point we also explored FRAP and maybe a few other options too, but every time we came up with some requirements that we had that weren't implemented.
22:01
So yeah, hopefully we'll get there at some point. We still have some time. If people have questions, more questions? Yes, I see a question about do people
22:24
use their webcams and microphones or do we have some kind of minimum standard recommendation? For cameras, we don't really tell people what kind of camera to use. Usually people just use webcams and that kind of thing. We do have like a standard of encoding,
22:42
like try to get it at 720p and try to do about two megabits and we are working with MP4, so if you do that, then we don't need a transcode, that kind of thing. But we don't really have any requirements for the webcam. For audio, we do recommend that people try to use a headset like this one
23:01
rather than just a microphone in the laptop because that creates a lot higher quality than if you try to do something in a laptop. And another thing that we try to tell people not to do is use a Bluetooth headset because Bluetooth can sometimes go back to eight kilohertz
23:20
rather than higher bit rates in audio and that is actually quite audible. It's not very nice to listen to a talk that way. So those recommendations we have, but yeah, that's it. Other questions, lots of questions.
23:43
Two years ago, there was a project going on to replace the capture cards by an own designed one. Did that work in the end? I'm not aware of that. I don't think it happened. I don't think it happened in detail. I do know that DEPCONF was looking at that and they did go with a few options there,
24:00
but I think FOSDEM was not ready to jump on that chip yet because I mean, there's a difference. I mean, DEPCONF, there's three rooms, FOSDEM, there's 24. So there is a difference and for that reason, I think we didn't go with the designed ones because I mean, what we have works and if it didn't broken, don't fix it, I think is the situation there.
24:21
Could you use big blue button instead of JITC? I'm sure you could, but we just ended up going with JITC partially because I mean, I'm a member of the DEPCONF team as well and we gave that a try and that seemed to work. And then when we talked to the people from Matrix, they said, well, we already use JITC in Matrix 2
24:43
and we integrate it there. I don't know if it's possible really to have big blue button integrated in Matrix like JITC is, but I have, I mean, if you really want to know that I think it's probably best to talk to the elements people, they might know better. I think I've had all the questions
25:03
or am I missing one? No, I think that's it. Right, I can't come up with anything else.
25:28
Kyle was going to join me for a final goodbye to everyone. Don't know if he's here yet.
25:48
Well, I can say, oh, there you are. Hi, Kyle. Sorry? It took a while to join for some reason. Oh, okay, yeah.
26:01
Technical issues always great, isn't it? I definitely can say that I personally think that this first time of a conference like this, like a conference, organizing conference was quite a success. And I think we had some interesting talks and we should probably try and get more of this in the future.
26:22
So thank you for helping me out with this. I don't know if you want to say something. Yeah, definitely. Thanks a lot for kind of having the idea running with it. It's definitely something I'd like to see happen again and maybe grow to a bigger dev room, maybe have a full day's worth of talks next year.
26:41
That'd be great. Yeah, yeah. If we get people who are interested in submitting talks, of course, because otherwise. Yeah, I'm sure not everyone wants to listen to us prattle on for eight hours. That is true, yeah.
27:03
All right, I think we're ready then. Unless there's something you want to say or somebody else want to say. Nope, I think that's it for me. Thank you everyone for coming and joining and making this dev room work.
27:24
It's a lot more interesting when there's people that actually attend. We did just get another question. Could some peer-to-peer help for the streaming or would it only make things more complicated? I think it would make things more complicated. Streaming is something that requires large amount of bandwidth
27:41
and you want it at low latency and otherwise it would be an issue. I think it might be problematic to try and go peer-to-peer at that. But yeah, I don't know. I would say go ahead and try and if you make it work, more power to you.
28:05
And with that, I think I'll join you in thanking everyone and calling it a day. And then hopefully next time. Bye. Yeah, cheers.
Recommendations
Series of 110 media
Series of 70 media
Series of 84 media
Series of 199 media
Series of 150 media