1 00:00:00,000 --> 00:00:03,640 Welcome back to The Deep Dive. Today we're looking at something a little different. 2 00:00:03,640 --> 00:00:04,000 It's not just a 3 00:00:04,000 --> 00:00:08,160 piece of software, but really an architectural solution that was born out of a 4 00:00:08,160 --> 00:00:08,800 crisis. 5 00:00:08,800 --> 00:00:13,990 We're going to be unpacking an essential open source platform, a kind of digital 6 00:00:13,990 --> 00:00:14,560 front end, 7 00:00:14,560 --> 00:00:20,150 that was specifically designed to handle the immense chaos of scaling a university 8 00:00:20,150 --> 00:00:21,040 classroom 9 00:00:21,040 --> 00:00:25,520 during a global pandemic. Our mission today is to really get a handle on how this 10 00:00:25,520 --> 00:00:26,160 platform makes 11 00:00:26,160 --> 00:00:30,240 life so much better for institutions that are trying to manage huge numbers of 12 00:00:30,240 --> 00:00:31,680 users all at once, 13 00:00:31,680 --> 00:00:35,550 especially if they're relying on Big Blue Button. But first, a quick word on why 14 00:00:35,550 --> 00:00:36,640 all this matters, 15 00:00:36,640 --> 00:00:41,240 why stability and a solid architecture are so key. This Deep Dive is supported by 16 00:00:41,240 --> 00:00:42,640 Safe Server. Safe 17 00:00:42,640 --> 00:00:46,460 Server focuses on hosting complex open source software, exactly the kind of tools 18 00:00:46,460 --> 00:00:47,280 we're discussing 19 00:00:47,280 --> 00:00:51,160 today, and they really support clients on their digital transformation journey. So 20 00:00:51,160 --> 00:00:51,520 if you need 21 00:00:51,520 --> 00:00:55,540 powerful hosting that just works, you can find out more about how they do all the 22 00:00:55,540 --> 00:00:56,400 heavy lifting at 23 00:00:56,400 --> 00:01:02,240 www.safeserver.de. Right. So the core subject today is Pylos. It's an acronym for 24 00:01:02,240 --> 00:01:03,040 platform for 25 00:01:03,040 --> 00:01:06,840 interactive live online seminars. And if you're new to this whole space, the 26 00:01:06,840 --> 00:01:07,760 easiest way to think 27 00:01:07,760 --> 00:01:13,690 about Pylos is this. It's a modern, very easy to use open source front end. It's 28 00:01:13,690 --> 00:01:14,880 designed to sit 29 00:01:14,880 --> 00:01:19,120 right on top of your Big Blue Button or BBB server setup. So it's the nice looking 30 00:01:19,120 --> 00:01:19,840 website, the 31 00:01:19,840 --> 00:01:24,510 dashboard, basically the user friendly part that students and teachers actually log 32 00:01:24,510 --> 00:01:25,760 into. Exactly. 33 00:01:25,760 --> 00:01:30,550 It's built on top of that powerful but sometimes complicated engine underneath. And 34 00:01:30,550 --> 00:01:30,960 what makes it 35 00:01:30,960 --> 00:01:35,790 so special? Well, what makes Pylos instantly relevant for say a big university 36 00:01:35,790 --> 00:01:36,560 deployment 37 00:01:36,560 --> 00:01:41,280 is that it brings a massive piece of enterprise level functionality right out of 38 00:01:41,280 --> 00:01:42,080 the box. Okay. 39 00:01:42,080 --> 00:01:46,400 A built-in load balancer. Ah, the load balancer. That really is the star feature 40 00:01:46,400 --> 00:01:47,280 here. But before 41 00:01:47,280 --> 00:01:50,720 we get into the mechanics of that, let's get the origin story. The source material 42 00:01:50,720 --> 00:01:51,440 is very clear. 43 00:01:51,440 --> 00:01:55,440 This wasn't some commercial product. No, not at all. It was born from pure 44 00:01:55,440 --> 00:01:56,800 necessity. Pylos 45 00:01:56,800 --> 00:02:00,680 started at the TeachMiddleHessin University of Applied Sciences, specifically in 46 00:02:00,680 --> 00:02:01,520 their faculty 47 00:02:01,520 --> 00:02:05,390 of health. So not even the main IT department. Right. And that's important. This 48 00:02:05,390 --> 00:02:06,240 was a faculty 49 00:02:06,240 --> 00:02:11,190 that was deeply affected by the sudden shift to remote learning in 2020. They 50 00:02:11,190 --> 00:02:11,920 needed a custom 51 00:02:11,920 --> 00:02:18,650 solution for their specific problems, digital classrooms, secure group work, and 52 00:02:18,650 --> 00:02:19,120 running these 53 00:02:19,120 --> 00:02:23,370 huge online seminars without everything crashing. I think we all remember those 54 00:02:23,370 --> 00:02:24,560 days in 2020, 55 00:02:24,560 --> 00:02:29,920 just scrambling to find any platform that could handle that sudden surge in users. 56 00:02:29,920 --> 00:02:34,400 Most of the tools out there, even the open source ones, just felt like they were 57 00:02:34,400 --> 00:02:35,200 held together with, 58 00:02:35,200 --> 00:02:39,040 I don't know, duct tape and good intentions. And that experience, that constant 59 00:02:39,040 --> 00:02:39,840 frustration with 60 00:02:39,840 --> 00:02:43,680 crashes, with missing features, with the difficulty of getting things to work, that 61 00:02:43,680 --> 00:02:44,560 was the direct 62 00:02:44,560 --> 00:02:48,640 catalyst for Pylos. They just needed a modern, flexible system that was actually 63 00:02:48,640 --> 00:02:49,200 built for an 64 00:02:49,200 --> 00:02:54,150 academic environment. So let's transition a bit into that core relationship. We've 65 00:02:54,150 --> 00:02:55,280 said Pylos is 66 00:02:55,280 --> 00:03:00,180 the front end, the body of the car, so to speak. What exactly is Big Blue Button, 67 00:03:00,180 --> 00:03:01,200 the engine, doing? 68 00:03:01,200 --> 00:03:08,560 So Big Blue Button is the underlying heavy duty open source web conferencing system. 69 00:03:08,560 --> 00:03:08,880 It's what's 70 00:03:08,880 --> 00:03:12,740 actually handling all the functionality. Like the video streaming, the whiteboards. 71 00:03:12,740 --> 00:03:13,680 Exactly. The video 72 00:03:13,680 --> 00:03:18,170 encoding, shared whiteboards, breakout rooms, all the recording capabilities, all 73 00:03:18,170 --> 00:03:19,520 the real-time stuff. 74 00:03:19,520 --> 00:03:23,920 Pylos just tells it what to do. I see. And a really crucial point here, which they 75 00:03:23,920 --> 00:03:24,640 emphasize 76 00:03:24,640 --> 00:03:29,910 in their documentation, is that while Pylos uses BBB, it's not endorsed or 77 00:03:29,910 --> 00:03:31,520 certified by Big Blue 78 00:03:31,520 --> 00:03:35,820 Button Inc. It's a completely independent specialized wrapper around it. A 79 00:03:35,820 --> 00:03:37,200 customized wrapper 80 00:03:37,200 --> 00:03:42,020 built for a university's unique needs. And this brings us to that big pivot point. 81 00:03:42,020 --> 00:03:42,240 Yeah. Because 82 00:03:42,240 --> 00:03:45,830 there's another well-known front end for BBB, right? Greenlight. Yes, exactly. 83 00:03:45,830 --> 00:03:46,640 Greenlight is 84 00:03:46,640 --> 00:03:53,000 a very functional, widely used project. So the critical question is, why? Why did 85 00:03:53,000 --> 00:03:53,760 the team at 86 00:03:53,760 --> 00:03:58,130 THM spend all the time and resources to build Pylos from the ground up? Why not 87 00:03:58,130 --> 00:03:59,040 just, you know, 88 00:03:59,040 --> 00:04:02,060 fork Greenlight and add the features they wanted? And that's really the core of 89 00:04:02,060 --> 00:04:03,440 this whole deep dive. 90 00:04:03,440 --> 00:04:07,440 If open source is about collaboration, why start over? The sources seem to put the 91 00:04:07,440 --> 00:04:07,760 blame 92 00:04:07,760 --> 00:04:12,400 squarely on one thing. Architecture. They're very direct about it. During that 93 00:04:12,400 --> 00:04:13,680 really intense 2020 94 00:04:13,680 --> 00:04:17,370 online semester, a lot of crucial features they needed were either exceptionally 95 00:04:17,370 --> 00:04:18,160 difficult or 96 00:04:18,160 --> 00:04:23,420 just unsolvable within the Greenlight framework. Unsolvable. That's a strong word. 97 00:04:23,420 --> 00:04:24,160 It is. And the 98 00:04:24,160 --> 00:04:29,010 difficulty wasn't about the skill of the developers. It was about Greenlight's 99 00:04:29,010 --> 00:04:29,520 fundamental 100 00:04:29,520 --> 00:04:34,510 architectural choice. It was built on Ruby on Rails. Okay, so for anyone listening 101 00:04:34,510 --> 00:04:35,200 who's a bit 102 00:04:35,200 --> 00:04:38,790 more on the technical side, can you elaborate on that? Why would a Ruby on Rails 103 00:04:38,790 --> 00:04:39,840 foundation be such 104 00:04:39,840 --> 00:04:44,050 a roadblock for a system like this? Well, Ruby on Rails can be fantastic for 105 00:04:44,050 --> 00:04:45,360 building apps quickly, 106 00:04:45,360 --> 00:04:50,220 especially things that are pretty predictable and synchronous. Think of like a 107 00:04:50,220 --> 00:04:51,200 standard website or 108 00:04:51,200 --> 00:04:56,070 some admin forms, but a massive video conferencing system, especially one that has 109 00:04:56,070 --> 00:04:57,040 to dynamically 110 00:04:57,040 --> 00:05:02,720 manage a whole pool of load balance servers, needs extreme asynchronous handling. 111 00:05:02,720 --> 00:05:03,360 You have 112 00:05:03,360 --> 00:05:07,680 thousands of users, all starting sessions, checking server capacity, updating lists, 113 00:05:07,680 --> 00:05:12,000 all at the same time. So the architecture of Rails, which is more monolithic, more 114 00:05:12,000 --> 00:05:12,480 synchronous, 115 00:05:12,480 --> 00:05:16,720 it just started fighting against the chaotic high concurrency needs of a live 116 00:05:16,720 --> 00:05:17,920 teaching platform. 117 00:05:17,920 --> 00:05:21,920 That's a perfect way to put it. They ran into what we call architectural friction 118 00:05:22,560 --> 00:05:28,000 to build a dynamic API driven load balancing system, which needs constant server 119 00:05:28,000 --> 00:05:28,320 health 120 00:05:28,320 --> 00:05:32,720 checks and routing sessions on the fly. They realized it was just too complex to 121 00:05:32,720 --> 00:05:33,200 force that 122 00:05:33,200 --> 00:05:37,520 into a traditional Rails structure. So it was actually easier to start over. The 123 00:05:37,520 --> 00:05:37,920 cost of 124 00:05:37,920 --> 00:05:42,320 starting fresh with a modern decoupled architecture was actually lower than trying 125 00:05:42,320 --> 00:05:42,960 to force the old 126 00:05:42,960 --> 00:05:47,380 one to work. Which brings us back to that essential feature, the load balancer. And 127 00:05:47,380 --> 00:05:47,840 this is where 128 00:05:47,840 --> 00:05:51,920 Pylus really shines. This isn't just a simple round robin load balancer, you know, 129 00:05:51,920 --> 00:05:52,960 you go to server A, 130 00:05:52,960 --> 00:05:56,960 you go to server B. With streaming video, it's not that simple. Right, because once 131 00:05:56,960 --> 00:05:57,840 you're in a meeting, 132 00:05:57,840 --> 00:06:03,040 you have to stay on that specific server session persistence. Absolutely mandatory. 133 00:06:03,040 --> 00:06:03,680 So the Pylus 134 00:06:03,680 --> 00:06:07,640 load balancer sitting on the front end, it uses the big blue button API to check 135 00:06:07,640 --> 00:06:08,320 the real time 136 00:06:08,320 --> 00:06:13,200 capacity and health of the entire pool of servers before it ever routes a user to a 137 00:06:13,200 --> 00:06:14,160 room. So it 138 00:06:14,160 --> 00:06:18,000 prevents those cascading failures you'd see when an institution just pushed too 139 00:06:18,000 --> 00:06:19,120 many people onto one 140 00:06:19,120 --> 00:06:23,960 single BBB server. That stability is the huge payoff for that big architectural 141 00:06:23,960 --> 00:06:25,040 overhaul. Okay, 142 00:06:25,040 --> 00:06:29,680 that shifts us perfectly from the why to the how. If Ruby on Rails was the problem, 143 00:06:29,680 --> 00:06:31,360 what is this new 144 00:06:31,360 --> 00:06:35,320 flexible architecture they chose? Let's break down the four main components, the 145 00:06:35,320 --> 00:06:36,800 stacks that make up 146 00:06:36,800 --> 00:06:40,790 Pylus. Right, so we'll start with the obvious one. Component one is big blue button. 147 00:06:40,790 --> 00:06:41,520 It's still the 148 00:06:41,520 --> 00:06:46,030 indispensable engine, the core conferencing system. Understood. So what did they 149 00:06:46,030 --> 00:06:47,120 choose to replace 150 00:06:47,120 --> 00:06:51,620 Rails with for the main foundation? That would be Laravel. Laravel is a very 151 00:06:51,620 --> 00:06:55,280 powerful expressive PHP 152 00:06:55,280 --> 00:07:00,800 web framework. They chose it specifically to build the backend JSON API. So when 153 00:07:00,800 --> 00:07:01,600 the source material 154 00:07:01,600 --> 00:07:06,840 talks about its expressive, elegant syntax, what does that mean in practical terms? 155 00:07:06,840 --> 00:07:07,440 It's basically 156 00:07:07,440 --> 00:07:11,920 developer speak for saying it makes building complex scalable APIs a lot simpler 157 00:07:11,920 --> 00:07:12,560 and faster 158 00:07:12,560 --> 00:07:15,490 than what they were dealing with before. It lets you have that clean separation 159 00:07:15,490 --> 00:07:16,400 between the backend 160 00:07:16,400 --> 00:07:20,400 logic and the front end display. So Laravel is... That's component number three. 161 00:07:20,400 --> 00:07:22,160 View. View is the 162 00:07:22,160 --> 00:07:26,300 JavaScript framework they used for building the user interface. So the clean 163 00:07:26,300 --> 00:07:27,440 dashboard, the room 164 00:07:27,440 --> 00:07:32,730 creation pop-ups, the settings pages, that's all view. So by using view, the front 165 00:07:32,730 --> 00:07:33,760 end can be 166 00:07:33,760 --> 00:07:37,920 updated and maintained completely independently from the Laravel backend. A huge 167 00:07:37,920 --> 00:07:38,400 amount of 168 00:07:38,400 --> 00:07:42,730 flexibility compared to a monolithic system where the UI and the backend are all 169 00:07:42,730 --> 00:07:43,760 tangled together. 170 00:07:43,760 --> 00:07:47,520 And this decouple architecture Laravel for the backend, view for the front end, 171 00:07:47,520 --> 00:07:50,880 that is the direct answer to the problems they had with Greenlight. It's the whole 172 00:07:50,880 --> 00:07:51,280 point of the 173 00:07:51,280 --> 00:07:55,720 project. And then there's one final piece, the translation layer. They needed a 174 00:07:55,720 --> 00:07:56,560 reliable way 175 00:07:56,560 --> 00:08:01,200 for this new Laravel API to talk to the big blue button engine. The translator, 176 00:08:01,200 --> 00:08:01,920 what is it? It's 177 00:08:01,920 --> 00:08:06,800 the fourth component, a library called Littler Button, big blue button, A-B-E-P. It's 178 00:08:06,800 --> 00:08:07,200 basically 179 00:08:07,200 --> 00:08:12,960 a specialized, unofficial PHP API wrapper. Okay. It translates the commands from 180 00:08:12,960 --> 00:08:14,240 pilots like create 181 00:08:14,240 --> 00:08:19,550 a meeting or what's the server status into a format that the BBB engine understands. 182 00:08:19,550 --> 00:08:19,840 And then 183 00:08:19,840 --> 00:08:23,730 it translates the responses back. It closes the loop. That makes the whole stack 184 00:08:23,730 --> 00:08:24,640 incredibly clear. 185 00:08:24,640 --> 00:08:30,720 And looking at the technical snapshot, the code is about 80% PHP and 19% view. 186 00:08:31,360 --> 00:08:36,000 That heavy reliance on PHP and Laravel, it suggests something about the original 187 00:08:36,000 --> 00:08:36,560 developers, 188 00:08:36,560 --> 00:08:40,160 doesn't it? But it does. It signals that the internal expertise at the university 189 00:08:40,160 --> 00:08:40,720 was likely 190 00:08:40,720 --> 00:08:45,170 very strong in the PHP ecosystem. You could argue for using other languages like 191 00:08:45,170 --> 00:08:46,240 Node or Go for this 192 00:08:46,240 --> 00:08:50,720 kind of thing, but choosing Laravel was a pragmatic choice. Right. It balanced the 193 00:08:50,720 --> 00:08:51,840 need for a modern 194 00:08:51,840 --> 00:08:55,560 architecture, which it delivers, with the need to use the skills they already had 195 00:08:55,560 --> 00:08:56,320 to get a solution 196 00:08:56,320 --> 00:08:59,620 built quickly. You have to remember, this was an emergency. And for other 197 00:08:59,620 --> 00:09:00,880 institutions looking to 198 00:09:00,880 --> 00:09:05,650 actually use this, the docs mentioned Docker images are available. For a university 199 00:09:05,650 --> 00:09:06,320 IT department, 200 00:09:06,320 --> 00:09:11,190 why is that so critical? Docker just simplifies complexity enormously. University 201 00:09:11,190 --> 00:09:11,920 IT systems can 202 00:09:11,920 --> 00:09:16,550 be a total mess. Different operating systems, weird security rules. Docker packages 203 00:09:16,550 --> 00:09:17,200 the entire 204 00:09:17,200 --> 00:09:21,680 application and all its dependencies into one standard unit. So an admin can deploy 205 00:09:21,680 --> 00:09:22,400 it reliably 206 00:09:22,400 --> 00:09:26,800 no matter what their server environment looks like. Exactly. It radically cuts down 207 00:09:26,800 --> 00:09:27,600 on installation 208 00:09:27,600 --> 00:09:31,460 time and configuration errors. It's really the gold standard for this kind of 209 00:09:31,460 --> 00:09:33,200 institutional deployment. 210 00:09:33,200 --> 00:09:36,960 It definitely speaks to the maturity of the project, which brings us to our final 211 00:09:36,960 --> 00:09:37,360 section, 212 00:09:37,360 --> 00:09:43,460 the open source spirit and the community health of Pylos. It's a healthy project. 213 00:09:43,460 --> 00:09:44,240 It's licensed 214 00:09:44,240 --> 00:09:50,360 under the LGPL 2.1 license, which encourages people to use it. And the metrics show 215 00:09:50,360 --> 00:09:50,720 solid 216 00:09:50,720 --> 00:09:56,450 engagement. You see about 60 stars, 26 forks on GitHub, which shows developers are 217 00:09:56,450 --> 00:09:56,800 actively 218 00:09:56,800 --> 00:10:00,720 interested. They're playing with the code. And for a tool designed for education, 219 00:10:00,720 --> 00:10:01,040 which is 220 00:10:01,040 --> 00:10:05,760 obviously global, localization must be a huge focus. It absolutely is. And they 221 00:10:05,760 --> 00:10:06,160 handle that 222 00:10:06,160 --> 00:10:10,070 through a service called the PO Editor Project. They actively use it to call for 223 00:10:10,070 --> 00:10:10,880 collaboration, 224 00:10:10,880 --> 00:10:14,800 inviting people from all over to help contribute translations. It's a great way to 225 00:10:14,800 --> 00:10:15,280 make sure the 226 00:10:15,280 --> 00:10:18,890 platform works across language barriers. So if you're an Ikey director at an 227 00:10:18,890 --> 00:10:19,520 institution 228 00:10:19,520 --> 00:10:22,800 and you're looking at this platform, what are the practical steps available to 229 00:10:22,800 --> 00:10:23,520 actually 230 00:10:23,520 --> 00:10:27,520 implement it? They've provided really excellent detailed guides. You have the 231 00:10:27,520 --> 00:10:28,560 standard installation 232 00:10:28,560 --> 00:10:32,720 instructions, of course. But crucially, they also have an upgrade guide for moving 233 00:10:32,720 --> 00:10:33,360 from older 234 00:10:33,360 --> 00:10:38,240 versions. And maybe most importantly, they offer a specific migration guide for any 235 00:10:38,240 --> 00:10:38,880 institution 236 00:10:38,880 --> 00:10:43,520 that's currently running Greenlight 2. That migration guide is, that's the ultimate 237 00:10:43,520 --> 00:10:43,920 sign 238 00:10:43,920 --> 00:10:47,840 they know their audience. They're basically confirming, we know you hit the same 239 00:10:47,840 --> 00:10:48,560 architectural 240 00:10:48,560 --> 00:10:52,810 wall we did, and here's the way out. It offers a clear, documented path to 241 00:10:52,810 --> 00:10:54,800 architectural stability. 242 00:10:54,800 --> 00:11:00,080 And all the collaborative spaces are wide open, too. The GitHub repo is really well 243 00:11:00,080 --> 00:11:00,640 organized, 244 00:11:00,640 --> 00:11:06,060 with sections for code, issues, discussions, a security policy. It's all there. 245 00:11:06,060 --> 00:11:06,240 This is a 246 00:11:06,240 --> 00:11:10,870 platform built for long-term community support. So if you step back and look at the 247 00:11:10,870 --> 00:11:11,680 whole journey, 248 00:11:11,680 --> 00:11:15,520 PyLas wasn't some theoretical project. It was a knowledge product born from the 249 00:11:15,520 --> 00:11:16,080 immediate, 250 00:11:16,080 --> 00:11:20,620 urgent need of a university during a crisis. Its main purpose was to solve the 251 00:11:20,620 --> 00:11:21,200 architectural 252 00:11:21,200 --> 00:11:25,130 friction they found in a monolithic system like Greenlight. And the result was this 253 00:11:25,130 --> 00:11:25,520 modern, 254 00:11:25,520 --> 00:11:30,640 flexible platform based on Laravel and Vue. Right. One robust enough to handle the 255 00:11:30,640 --> 00:11:30,960 sheer 256 00:11:30,960 --> 00:11:35,310 complexity of large-scale digital education today. It's a really inspiring example 257 00:11:35,310 --> 00:11:35,520 of 258 00:11:35,520 --> 00:11:39,640 how solving an internal problem with intelligence can lead to a tool that's 259 00:11:39,640 --> 00:11:41,120 valuable for everyone. 260 00:11:41,120 --> 00:11:46,000 It shows the power of making the right foundational choices, even if it means doing 261 00:11:46,000 --> 00:11:46,720 the hard work of a 262 00:11:46,720 --> 00:11:51,290 complete rewrite. And that leads us to our final thought. Since Pylos was founded 263 00:11:51,290 --> 00:11:52,000 purely because 264 00:11:52,000 --> 00:11:56,640 an underlying architecture, the Ruby on Rails and Greenlight, was creating roadblocks 265 00:11:56,640 --> 00:11:57,360 that limited 266 00:11:57,360 --> 00:12:02,130 innovation. I want you to think about how often foundational technology choices 267 00:12:02,130 --> 00:12:02,800 maybe made years 268 00:12:02,800 --> 00:12:07,590 ago in your own organization are dictating the limits of what you can do today. Is 269 00:12:07,590 --> 00:12:08,240 your legacy 270 00:12:08,240 --> 00:12:12,750 system enabling flexibility, or is it silently telling you what you can and cannot 271 00:12:12,750 --> 00:12:13,520 build next? 272 00:12:13,520 --> 00:12:18,830 It's a really compelling thought to explore. It absolutely is a fantastic thought 273 00:12:18,830 --> 00:12:19,760 to end on. 274 00:12:19,760 --> 00:12:22,880 And if you are facing those kinds of architectural roadblocks, or you just need 275 00:12:22,880 --> 00:12:23,760 rock solid hosting 276 00:12:23,760 --> 00:12:27,840 for powerful open source solutions like Pylos, remember that Safe Server cares 277 00:12:27,840 --> 00:12:28,960 about your hosting 278 00:12:28,960 --> 00:12:32,880 and your digital transformation needs. You can find out how they can support you in 279 00:12:32,880 --> 00:12:33,840 building robust 280 00:12:33,840 --> 00:12:40,480 scalable solutions at www.safeserver.de. Thank you for joining us for this deep 281 00:12:40,480 --> 00:12:40,960 dive into 282 00:12:40,960 --> 00:12:43,600 the architecture of modern digital learning. We'll catch you next time.