Yeah. Good morning. Welcome to Taiwan. This is awesome. I've been to Taiwan for a couple of years. It's glorious to be back. The food, of course, is amazing. The people are friendly. The climate is warm and inviting. Maybe a little more than warm and inviting. I'm going to be talking about some work that Valve has been paying me to do as a contractor on making gaming better in the Debian environment and other Linux environments. Valve has kind of a reasonably long history now with working with the Linux community. They, of course, are a commercial software company, and they do a lot of closed-source software. But they've realized that there's a significant market and a profitable market to be made in selling their proprietary software on top of free software stacks. So there's a boundary between what they hold dear and keep private and sell as commercial, closed-source software and what they rabidly and actively support the free software community. I'm on the underside of that boundary trying to make the Linux desktop environment better and to support games of all kinds, including Valve's games. And that's what I want to talk about today. Some of the work that I've been doing. Let's see if I can get this to work. So this is about making games work better in Debian. This is not about games in Debian. There was an awesome talk by Marcus yesterday. If you want to learn about the status of free games in Debian, you should go listen to that talk from yesterday. This is all about hardware support. Getting the operating system and the hardware drivers and kind of the ecosystem, the 3D graphics ecosystem working better for Debian and getting games working better there. I'm going to talk a bit about the current gaming environment, hardware support and API support. There's kind of a transition going on in the world in API support. And then later on I'm going to talk about the work that I've been working on in particular and some other work that other people are working on to try to make, to try to improve the status of the world. And those are all system software stuff. I'm, I, I apparently am a system software engineer because I've been working in system software now for about 40 years. So apparently that's what I do. And so I'm going to be talking about this under the application. So playing games, games on Linux today, how many of you play games on your Debian desktop? A couple, yeah. I'm not among that set. I don't really play video games. Kind of the best video game ever is, is the program called Emax. And that's where you, right? That's, that's where you get to change how the computer works. And it's like, wow, that's a pretty cool video game. So other people enjoy, enjoy a different kind of video gaming. And it's fun to watch them play. I'm kind of a, of a generation where we didn't really have Twitch games when I was a child. And so I really never learned how to do that. So my skills are kind of lacking. It is, it is fun to watch and fun to participate and fun to think about the problems that these, that these interesting interactive graphical applications bring to the system. So that's where, that's where I find my delight is in solving the problems of making these things work. Because they are highly interactive applications.  And it turns out that you can apply all the same technologies that we use for flight simulators and other things and bring that into gaming. The, the goals are very similar. Some of the, some of the thought processes are very different. Of course, there are lots of free games available on Debian. Marcus gave a really good overview of what's going on. That there's a whole group within Debian, the Debian Games group, which works on bringing more games into the Debian environment. There are lots of non-free games, including all those available from my, from my, my customer Valve. Valve has supported the Steam, their Steam platform on, on Linux for quite a while now. I think it was 2012 when they started doing that. And that means you can get, I think there's like three or four thousand games. I don't know the exact number that are available through the Steam store that will play on, play on your Debian system, without requiring any, any other proprietary software other than the games and the Steam environment. And there's also a number of games that you can play today. Window, legacy Windows games, things like Eve online. You can actually play that through Wine today and those work surprisingly well. And that supports improving over time as the Wine environment gets better and better graphics support. So there's no real fundamental reason why a Windows game running through Wine wouldn't, wouldn't be able to offer the same performance on Debian as it does on, on a Microsoft platform. So that's, that's something that some of you can play with as well. And the reason, one of the important reasons for thinking about that is that there are some really old games that are really awesome, right? There's some old Windows games that you can't get the source code to anymore. Nobody has it anymore. Nobody's going to be able to recompile it. And Wine offers a remarkably good, a remarkably good platform for running those. And we support that, of course. So the first API I want to talk about is OpenGL. This is really popular 3D API in, developed by SGI as the Graphics Library back in 1989, 1990. I'm not sure the exact year. So long, long, long ago, eventually became released from SGI hardware and kind of generally available. And then, and shortly after SGI released the initial specification for OpenGL, there was a free software implementation by some, by some people called Mesa. And so we've actually had a freely available implementation of this industry standard API for probably 25 years now. And at first, of course, it was as many free software projects, you know, just, just something to be done in the spare time and kind of a toy to play with. It did software rasterization, it didn't take advantage of the hardware, and so it wasn't very fast. But it proved that we could actually come up with a completely compliant and, and extensible implementation of a very sophisticated 3D rendering API in our environment. And today, actually Mesa is a, is one of the leading OpenGL implementations in the world. It really, it really is, there really is at this point Mesa and NVIDIA's proprietary stuff. And those are the two kind of, kind of premier OpenGL implementations. On AMD and Intel hardware, we're at OpenGL 4.5, it's nearly 4.6. I think it's one more extension to be done for OpenGL 4.6. And so we're basically, at this point, we are at the, at, you know, we're no longer lagging the OpenGL world. So Debian provides support for current OpenGL applications. It's no more that, no longer that you have to say, oh, I can only play older games because Debian doesn't support the APIs necessary for modern games. In reality today, Debian has full support for pretty much every API that an application is going to need. We also have support for embedded, the embedded version of OpenGL at 3.2, which is I think the current, the current version of that standard. And that's available on Intel and AMD platforms because Mesa has this tremendous advantage because it's a free implementation that people can play with. We actually have OpenGL ES and OpenGL API implementations in the same library that we don't have two implementations. We don't have an ES library and a GL library. We share the same implementation. So any place you see OpenGL, you will also see OpenGL ES, which is pretty cool. They are different.  But because of the common code base, we actually keep track of both of them quite, quite actively. Another, another really good platform that we support quite well in Mesa's is the Raspberry Pi using the Broadcom chipsets. My close friend Eric Anhold actually works for Broadcom and supports, his entire job is supporting free software drivers for Mesa for the Broadcom platform. So if you have a Raspberry Pi, you can actually get a free software stack for all the rendering. There's still some firmer requirements for mode setting, and he's working on that. But it's, that environment is a challenge, but it's kind of, certainly an interesting challenge to work on. So we actually have competent support for OpenGL ES on that platform. And a lot of OpenGL, but it's the existing Raspberry Pi hardware is limited in some fundamental ways, and you can't actually do OpenGL 4.5 on that hardware. But it's actually surprisingly close, and there's a lot of good, a lot of cool work that's been done there. There's also a reverse engineered NVIDIA driver called Nouveau, and that actually supports OpenGL 4.0 something. I think it's probably 4.2, 4.3, it may be higher than that. The fundamental problem with Nouveau is because there's no support from NVIDIA for this at all. It offers very limited performance and hardware compatibility, so it's usually only supports older hardware. It doesn't support it at full performance. In particular, it has severe limits in how it can do thermal management and memory timing modifications. So while I love the Nouveau project, because NVIDIA doesn't support it, it really has some fundamental limitations, which makes it very difficult to use in a gaming environment, especially. So if you want to do gaming in Debian, you really have two strong choices, both of which are supported by the hardware manufacturers in free software, and that's Intel and AMD. Sorry, I recommend you purchase that hardware. If you have a Raspberry Pi, you can play there too. It's a little more difficult. Getting the free software drivers running in a Raspberry Pi takes a bit of work. Right now, there are some other things, reverse engineering mostly going on, Vivanti, Adreno, and the Tegra X1. These are all being reverse engineered, and they have various levels of OpenGL support. If you want to play with these, it's fun to play with. Again, these are reverse engineered. They're not supported by the hardware vendors. So unless that's what you want to do, which is to say you really want to do reverse engineering, and that's an interesting thing to play with, I wouldn't recommend trying to use these for gaming because they just aren't well supported. But it is an awesome task to go in and figure out what the op codes mean and figure out what the various bits in the rendering engine do.  I think that's a fun thing to play with. There's a new API coming into town. It's called Vulkan. How many of you've heard of the Vulkan rendering API? Okay, awesome. So it's very different from OpenGL in some ways and very similar to OpenGL in other ways. It's much closer to the hardware. It exposes a lot more of the hardware vagaries and variances to the application. And of course, game developers think this is awesome because then they can tweak their games for the underlying platform. It actually has some advantages over OpenGL in that the behavior is much more tightly specified and there's a test suite for it that is required to get branding. And that means that the variance of Vulkan behavior between vendors is exposed in the API and smaller than you see in OpenGL. So in OpenGL, many games are designed to only work or designed primarily to work with NVIDIA hardware or potentially with the AMD close source drivers. And as a result, when you run them against Mesa, Mesa is like, hey, you're not following the spec here. I'm going to throw an error and your application is not going to work. Developers, of course, think that's awesome because our implementation is much more rigorously applies to the standards than the NVIDIA implementation. Game players on the other hand aren't very excited by that because then their games just don't work because their games are expecting the looseness of the NVIDIA implementation. Vulkan, on the other hand, is much more tightly specified. So the variance between the various implementations are smaller. Intel and AMD are the two supported Vulkan platforms right now. So if you have a modern Intel chip, I think it's past Skylake. I think I have the implementation past Skylake. So it's not older Intel chips, it's modern Intel chips and modern AMD chips. And that's largely because of the requirements that Vulkan places on the chip in terms of what it does and how it operates. And so it's not likely that we're going to get support for older chips at any time, just because the hardware can't do that. It is a lower level API. It offers significant advantages for the applications in terms of being able to manage the hardware and being able to squeeze out every bit of performance. So as games migrate from open GL to Vulkan, you can watch them improve in performance. In particular, they take much less of the CPU inside the library. In an open GL implementation, there's this vast semantic gap between what the API provides and what the hardware does. And so that library has to sit there and try to effectively figure out what the application wanted the hardware to do through the API and then stand on its head and turn around three times in order to get that hardware to do what the application wanted. And Vulkan narrows the semantic gap between the application and the hardware and reduces the CPU overhead everywhere. So it's a pretty nice API. I've been doing a bunch of work in Vulkan because one of the things that Valve is doing is aggressively moving a lot of their code to Vulkan because of these performance and functionality advantages. Let's see. Non-free API, NVIDIA ships binary only drivers. I'm not going to ask. It's just too embarrassing. I don't want to know who uses the binary drivers. There is not very much collaboration with the Debian community. And if you install these drivers on your system, you will get a lack of support from Red Hat.  We offer you no support for that. So you can understand what people think about these. One of the big things that I started doing at Valve was working with head-mounted displays. Head-mounted displays are fun.  Obviously, the use for virtual reality. Inside the head-mounted display, there's an IMU, a little inertial measurement unit that figures out where you are in space and what direction you're pointing. They use these little, they're called lighthouses, these little rectangular, these little cubes that sit up on the wall or on a shelf to actually orient the device absolutely in space and it's pretty cool. Valve did almost all the implementation or almost all the design of this hardware. It's a pretty cool design. I don't know what they've published on it, but I got to go and play with the hardware designers who were showing me how this thing worked and it was like, wow, there's nothing inside this box and it provides you sub-centimeter resolution and position with basically no hardware, which is always cool. Inside the display, there is a single panel. I think it's 1K or, I don't remember the resolution of the panel. It's like 2K by 1K or something. It's a strange resolution. There are a bunch of optics in there because the panel is about four centimeters from your eyeballs and I don't know about you, but I can't focus that close anymore, so they put some optics in there to make the panel appear further away from you and to make the fusion of your vision work correctly with two separate views. The result of that is that there is a bunch of distortion of the image coming into your eyeball from the panels, so you're not seeing the panels don't just get translated right into your eyeball. There's a bunch of optical distortion. They could have spent a pile of money and put a nice thick and heavy lens stack inside the optics, inside the head-mounted unit to make that, to make the optics nice and non-distorted, but they decided, as is often the case in our world, that it was cheaper and better to do that in software. So, yeah, thanks guys. So as a result, there's actually a steaming pile of software that gets between the application, which is constructing these two eye views, between the application and the actual presentation of the image of the user, and that's called the VR compositor. So the application generates a view for each eye, and then the VR compositor takes those images and actually gets them into the display. So you see this, we've interposed another piece of software here. So, now that I've kind of introduced the current state of the world, there's a couple of things in my world that are kind of the big issues for us that we're working on right now. Obviously, we're doing a pile of software to do virtual reality support, and then there's also this broader issue that occurs across all gaming about stutter. How many of you have played a game, and as you pan across the scene or move forward, you see the scene kind of jerking occasionally and stopping and moving in weird ways? How many have seen that when they're playing a video game, yeah? Pretty reasonably common. One of my friends from Crow Team actually put out a post on that, and I thought I had a link in the presentation, and I'll see if I can find that, that describes what the problem is and why it's actually becoming, why it's not getting fixed any time soon or hasn't been fixed recently, and what that problem stems from, and I'm going to talk about that in a minute. And the other change that's happened in the last 10 years or so is that people have moved from direct display window systems or clipped window systems to composite window systems. That makes it possible due to all kinds of shiny eye candy in your desktop, and it makes gaming really hard, and I'll talk about why that's such a pain. So virtual reality, Debbie, and there's kind of three main virtual reality systems. There's open HMD. This is free software for head mounted displays. It doesn't have great support for current hardware. There are some reverse engineering efforts being undertaken. I think the data that's in the HTC Vibe is pretty easy to parse. It's got like JSON or XML description of the display. Figuring out how the lighthouses work and how all that data is transmitted is a bunch of work, and I would love to see more support for that in open HMD, but it's not quite there yet. There's another software stack called the OSVR, the open source virtual reality. It's somewhat open, and what they're trying to do is take more of the stuff that's in the SteamVR environment and kind of somehow interpose a different software stack. I really haven't looked at OSVR. I just kind of found out about it last week and started poking around. But open HMD is actually pretty well documented, and you can actually use open HMD with existing head mounted displays and start playing with virtual reality totally in free software, which of course is awesome. The one that I've been helping but not really working on is SteamVR. It's closed source, but it does have full support for the HTC Vibe headset. So if you're playing in Debian and you don't mind using a little bit of closed source user space software, you can actually play with the HTC Vibe headset using the Steam stuff, which is pretty cool. And so that does all the Lighthouse supports. You have absolute position and orientation. Okay, so last year, I don't know if I presented it. I don't think I presented this at DEBCOM, but I presented it at a bunch of places about this display leasing, and the goal for this was to solve that composite window system problem and more by getting the window system out of the way for head mounted displays. And we've actually got that all implemented now. It's then available in the upstream Linux kernel. It's available in the kernel that's in Debian and stable. It's in the X window system. Sources that are in Debian and stable. And it's most of the work is in, I think it's, yeah, most of the work is available in MACE as well. So this part's all done. So this adds support for taking a monitor that's in your environment and saying, hey, window system, yeah, that's not yours anymore. Let go of that. Let me borrow that and communicate directly with the kernel. And this means that the virtual reality environment can manipulate that display directly and get rid of a lot of latency and a lot of uncertainty in the environment. That's been surprisingly successful. We actually have it up and running now and the SteamVR application supports that. OpenHMD should be able to support that without too much work. It's really not that big a deal. And so I'm hoping that's going to become more prevalent. I would like to figure out if we can use this for non-HMD gains as well. Because of the performance advantages it offers, Microsoft Windows has a similar system where you get to do something similar in their environment. I would love to just be able to adopt a lot of the same APIs and functionality from their world and see games using this directly because it's, you know, you save a millisecond or two per frame. And for those of us who work in interactive graphics, that's kind of a lot of GPU time that you get back. So you can do a lot of cool stuff in that. So that's all available now. So what we did for, what I did to support SteamVR was just all that I really needed to do was implement like half a dozen Vulkan extensions. But of course when you implement an extension in an API you have to implement all the framework and scaffolding underneath that API in order to make it work. So I started down in the Linux kernel. We added some stuff to that. We added stuff to the X window system and now we've added stuff into the Mesa Vulkan implementation. There's a little more work that I need to do here. There's a new extension that's called the Google Display Timing extension that lets us get some information about presentation that we need to work. There's Chronos is working on a similar extension. I don't think that's, and so eventually that will come out and we'll get that integrated into Mesa and that will help finish off that work. And then there's another mechanism I'm working on within Chronos that's going to help the VR system not get too far ahead. Right now the VR system just starts presenting frames and it hopes that each frame is going to take less than one frame time to compute and display. But it has no way of knowing if that's true because the Vulkan APIs are like they have this gap. It's like, yeah, ask us to present a frame and we'll present it sometime. And then sometime later it will appear to the user and you can't find out when that happened. So there's a bunch of stuff actually working on getting that support into Vulkan. Okay, I want to talk a bit about Stutter. So it's a jumping or jerking in animation. And there's really two fundamental causes of this. And one of these really surprised me. And that's the one we're working on fixing. So you can either draw the wrong thing at the right time. So in an animation what you're trying to do is present the correct motion on the screen and you present a frame and you wait 16 milliseconds and you present another frame. You have to predict what you need to present in each frame so that you draw the correct thing there. So you can either draw the wrong thing at the right time or you can draw the right thing at the wrong time. And that usually comes from drawing too much in a frame and missing a frame. But it actually can come from not having enough control over when frames are presented and ending up presenting a frame early. So that happens as well. So this is what happens when you miss estimate, when you draw the right thing at the wrong time. So you can see in this little demonstration on the top you can see the system is estimating the time between frames exactly 16 milliseconds apart. And so it's drawing, it's smoothly drawing the objects of the correct location in every frame. And the wrong frame is actually miss estimating the interval, the display time interval and it's saying, oh, this object, the frame time between these two frames is 20 milliseconds. So I need to draw this thing, you know, further to the right because the animation is further to the right. And so you see this discontinuity between the location of the object, the time that the user has presented the object and the time the system thought the user was going to be presented this object. And this is just a gap in the API support for display timing. The applications have no way of knowing when displays are going to be presented. And they often misestimate when that's going to happen. And so you see these little tears. Even though the application is drawing 60 frames per second, it drew the wrong thing and it looks terrible. The other thing that happens is you get a rendering underrun, which is to say you cue too much drawing to happen before the frame needs to be displayed. And because we can only start displaying a frame at the top of the top of the interval, we can't typically these days, we can't start displaying a frame in the middle of a V blank, in the middle of a refresh cycle. So we have to wait for the next refresh cycle. And so now we've computed a frame and we have and we can either not display it at all, or we can wait for a frame and display it late. And those are your two choices. So so this happens in for several different reasons.   And it's like, wow, exciting things are happening because we can barely see what's going on. So that's that's kind of the classic mechanism. The other another mechanism these days, of course, is when you're sitting there playing your game on a laptop, it all of a sudden the CPU and GPU are getting too hot. And so the system is like, hey, things are getting warm here, let me throttle down the computational resources available so that we get rid of some thermal heat. So this is something that the game cannot even predict is going to happen very easily. It's like, things are getting warm. All of a sudden the operating system is throttling down my resources. And so all of a sudden I'm starting to miss frames. So this is this is kind of a new thing for game developers who are used to having 300 watt GPUs that never slow down. And all of a sudden this is actually becoming very common. This happens really a lot in mobile gaming, especially on your phone. If your phone starts, you know, roasting your hand, you might notice, you might notice it slowing down. The other thing that happens in composited environments is all of a sudden the window system presentation mode changes. Something happens on the screen. You go from full screen to windowed.  And all of a sudden the window system is like, well, instead of just putting you into overlay, I'm going to have to composite a bunch of stuff and I'm going to steal about four milliseconds worth of your GPU time this frame to display information. And so all of a sudden you only get 12 milliseconds instead of 16 milliseconds to compute your frame. And you drop a frame.  And so we need to find some ways to fix this problem because smooth animation really is it's useful in a regular desktop gaming environment. But when you think about a VR environment, it's really critical.  So when we talk about fixing stutter, it's useful on the desktop. It's critical for VR. So obviously, obviously, I have a big interest in making this work for my VR work. But it's also really important for smoothness and fluidity in regular desktop gaming. So we obviously need a couple of things in order to help the application get some idea of whether they're about to start underrunning on the GPU, whether they're trying to do too much computation with the GPU. We need better measurements or how much GPU time frames using those extensions are becoming available. We've had we've had that ability for a while. One of the things that's missing from the just, you know, how much GPU time am I consuming one of the things that's missing there is the ability to relate when the GPU rendering finished to when the display cycle happened to start. And there's no Vulkan and OpenGL don't really provide any relationship in those two times. So you have no idea how much spare time you have. And so we're adding some extensions to Vulkan to report when V Blank happened before and when it's likely to happen in the future. And also provide some information about when presentations happen. It's like if I asked for an image to be shown to the user, I really want to know, hey, did you actually manage to get that on the screen at the time I asked for or was that late? And should I start trying to scale back the number of objects in the scene so that I can try to hit my V Blank targets more often. So we're doing a bunch of work in Vulkan to try to fix this stuff. There's a bunch more work in the in the Windows systems. So when you're trying to accurately present something in an accurately present something at it to the user, the data that you want is not when, you know, some random operation happened within the GPU. Oh, I managed to copy this image into the frame buffer. Awesome. I don't really care when that happened. The time that I'm interested in knowing is when the photons started going from the monitor to the user's eyeball, right? That's that's the relevant time here because that's the time the user sees. I don't really care when I pass the image to the Windows system, which means that in any of this computation of accurate presentation time, it's not something we can do up in the up in the rendering library. It's something that we have to engage the rendering library and the Windows system and the kernel to make sure that everybody is working together to get this information sent back to the user. Applications have to be able to control when their frame is is is to be displayed. They need to be able to say, oh, well, you know, I need this scene complexity in order to show all the cool art that my I paid a lot of money for. So I'm going to instead of reducing scene complexity, I'm going to go from 60 frames per second to 30 frames per second. And as long as I know that I'm going to display every other refresh cycle and display every frame for two cycles, then I can at least offer an accurate, if not as smooth an experience. But that means the application has to be able to to know that it can trust the Windows system to delay a frame by a certain amount so that the frame is presented at the correct time. And when when frames are displayed, the application needs to be able to get feedback from that. Did it work? Right? Did I actually manage to tell the Windows system and that information come back to me telling me that my frame was displayed at the correct time? So those are the two critical pieces of information. We're getting pretty good at the first of these. There are APIs in Vulkan and OpenGL and the X-Windows system that lets you tell the system when to present a frame. And that control is starting to work pretty well except for composited Windows systems. So in a composited Windows system, the application provides an image to the Windows system and then the Windows system does a bunch of computation with that. It'll put overlays on it. It'll merge that with other images on the screen to construct the scene for the user that includes all the applications of the environment. So they're two obvious common composited environments in our world and those are the X-Composited extension, the X-Windows system and Weyland. The X-Composited extension seems more complicated because it involves an external compositing manager which may do arbitrary computations, but Weyland is just as complicated. It just integrates all that complexity into the Windows system server instead of putting it in a separate process. So these two environments are very similar from this problem because all of a sudden the applications images come in and now the compositing system is going to take that image and do stuff. And it can do a lot of computation of that environment. And that means that the amount of time available for the application to render using the GPU is reduced. How much is it reduced by? Well, it depends. If the application is running full screen they're being there, the composited Windows system may do nothing at all. It may just hand that image right off to the kernel. So it may have all 16 milliseconds of GPU time. If the user pops up a little dialog box over the application down in the corner and the compositing system says, wait a minute. I have to take the applications image and this little text chat window and paste them together before I hand them off to the Windows system server. Now all of a sudden we're talking about copying the applications image into another buffer, blending the chat window over the top of that and then handing the resulting image to the Windows system, to the operating system. And that can take a lot of extra time, a lot of extra synchronization. So all of a sudden the application's amount of rendering time gets reduced by a lot. We contrast that with a kind of a classic clipped Windows system where every application gets a set of pixels on the screen so that when you want to present a scene from an application you know that all you have to do is copy those bits into a frame buffer. There's no arbitrary complexity of computation. Every application has a pretty much fixed overhead. And the real problem is not the overhead but the variance. The applications have no way of knowing that. So one of the bugs that I'm trying to fix this year is there's actually a bug in the X-composite extension for dealing with this frame timing stuff. When you have the composite extension running and you're presenting an image from an application, the time that the Windows system does the copy, which is to say it's going to delay the copy until the time that the application wanted that image to be on the screen. And you think, awesome, it's going to delay it so it gets displayed at the right time. Well, no, because it doesn't display to the screen at that point. It copies it into the, thank you, off-screen buffer and then tells the compositing manager, hey, there's new contents over here. And so now the compositing manager has to say, oh, let me construct my scene image from that. So it takes the application's image, which was handed to it when the application wanted to have it shown to the user. And then the compositing manager has to do a blending of whatever it wants to do, construct a final image and hand that back to the X server, which then means that that image is not going to be displayed until at least the next frame. So when you run the composite extension with a 3D application today, you are guaranteed to get at least one frame of inaccuracy in your frame timing requests. So that's kind of bad. And of course, the application gets told that its image was presented when that copy occurred, the initial copy occurred. So the application always gets it displayed at the wrong time and is always reliably lied to about the time that it was presented. So these are errors in both halves of this. So I'm working to fix that this year. I'm also working on, so the way that I'm going to try to fix this is I'm actually going to try to, I'm actually going to copy the image immediately tell the compositing manager and then somehow associate the compositing manager's presentation with that copy. And I've got a couple of ideas. I think I'll do something ad hockey at first and then come up with something a little more principled later. But so I want to associate the compositing manager's presentation of the entire scene with the application's request to present its application image. So tie those together so that when the compositing manager, the presentation is done when the application, once it's image presented and the application gets told that the stuff was presented when the compositing manager presentation occurs. So I'm hoping that's going to kind of resolve these, resolve those issues fairly nicely. So I have a further goal beyond that is to actually separate out the kind of the primitive, simple compositing environments from the construction of the content on the screen. So you have the compositing manager doing all kinds of crazy decorations everywhere. I think we have this really simple operation. It's like I've got these applications. They're stacked on the screen. I want to blend them together and send them to the video hardware. So I want to pull the construction of that compositing stuff into the X server so that the X server has tighter control over that. And the advantage of that is we're going to be able to do better timing predictions when we have to use the hardware. The second advantage is if your hardware has multiple video planes that it can scan out from, I'll be able to use those for your games as well. And that means that I'm going to get to basically not interacting with the compositing manager at all when I want to re-display an application's image, which means that the jitter of this variance in display time is going to go down a lot. And that's my longer term goal. And I'm trying to get that done this year. It's for it. So in summary, support for gaming is obviously improving. There's a bunch of companies that are working really hard to make sure that we have competent gaming support in free software. The free software implementations of the OpenGL and Vulkan APIs are very well supported by AMD and Intel. And so that's getting better all the time. As I say, we've now caught up. We're kind of at the leading edge of API development now instead of trailing by years and years and years, which we used to do. The VR stuff is coming along. I'd love to see more work in open HMD to get free software HMD stuff really available. It's time at this point to solve this long-term stuttering problem. And that's really what I'm focusing on for the next six months or so. We used to solve this by just buying faster computers, but game requirements are now getting heavier faster than hardware is improving. And so we need to actually come up with principled mechanisms to make sure that games can actually do the right thing even when their resource can strain. So thank you very much today. I really appreciate the opportunity to speak at DEBConf. I love coming to this conference, of course. It's my people. And thank you again. And have a great time for the rest of the week. We've got about five minutes for questions. Anybody has a question? Come on down to the mic. Yeah, come on down to the microphone down here. OK. Sorry, I didn't keep very close to the presentation. But my question is that it's that basic issue in the free driver or non-free driver have any result, have been resolved before, especially in multi-screen setup? In multi-screen v-sync? Yeah. So we have the advantage right now that the system knows which monitor the application wants to be presented to. So we have all the tools that we need in order to present your when your application is presented on a particular screen. We have the tools necessary and the APIs necessary to make sure the v-sync happens on the presented monitor. We just need to solve some of the stuttering problems to actually get the timing accurate. So yeah, we have the infrastructure available and the applications don't have to change. We just have to fix the underlying implementations to fix that. OK, thank you. Yeah. I suspect like everybody else that we're all ready for lunch and thank you again for coming. And I'm around the rest of the week if anybody wants to ask me questions about what I've been up to or anything else. I'd be love to talk to everybody here. Thank you very much. Let's go find some lunch.


Well if you want to take a walk on the wild side this weekend you might want to check out the wild rice festival in Park Rapids. Mal Meyer caught up with some of the local talents who will be at the festival in this week's In Focus. Simon Zornes has been processing wild rice since he was a kid with his grandparents. I thought he had praised me and he was more like can you now get us into the rice? At the festival he'll be talking about his handmade rice process and the simple machine said he's used for years. If you want to feed yourself a little bit of education some time that's all you really need you know the equipment itself can be either as complicated or as basic as you want it to be. And before the machines he picked it apart by hand. It's an art form he says is starting to fade. We have this mass production thing going on with wild rice right now but that's not anywhere near of what it always was. He hopes that people at the festival will learn to start asking questions about their wild rice to further appreciate it. Knowing where that food came from is like the first step in knowing something about that food you know. Here in Park Rapids at the music shop local musician Eddie Lee Kidd gives us a taste of what he'll be performing this weekend. Eddie Lee Kidd was raised on Dolly Parton and Willie Nelson but steered towards rock. He has found inspiration in all sorts of ways including through a music contest as he describes. This nine-year-old girl that was in a hospital in Nashville and she wrote a story called Wonderland so I wrote a song called Wonderland. Eddie's craft also comes from years of practice with his family band. Started a band called Burning Sage. It was my mother, my sister Wendy, my oldest brother Richard, me, my brother JR and my little sister Lisa. Previously a drummer he picked up a guitar and has been playing that ever since. I still play drums every now and then but very rarely. I like to stick with the songwriting. It's my way of giving back to the people. He'll be one of the first musicians to play at the festival with other performers throughout the day. With this week's in focus in Park Rapids, I'm Mal Meyer, Lakeland News.  I know you might be taking part in that right? And music as well. The event starts at 10 a.m. on Saturday at Armory Square in Park Rapids. If you've enjoyed this segment of Lakeland News, please consider making a tax-deductible contribution to Lakeland Public Television.


One of the more powerful methods of integration is known as a trigonometric substitution. If we can identify the terms of an expression with the hypotenuse and sides of a right triangle, we can find a trigonometric relationship between the terms. For example, let's consider the integral of x squared over x squared plus 4. Now in this particular integrand, this denominator of x squared plus 4 is problematic, so let's see if we can construct a right triangle where this expression x squared plus 4 comes up naturally. The fundamental relationship we have in right triangles is the Pythagorean theorem. In a right triangle, we have a squared plus b squared equals c squared, where a, b, and c are the lengths of the sides, and we'll want to identify our terms with the side of a triangle. And we might note that x squared is x squared and 4 is 2 squared, so we'll take a right triangle with sides x and 2. So let's see if we can draw a picture where two sides of a right triangle have lengths of x and 2. And since we have two sides of a right triangle, we'll be able to use the Pythagorean theorem to find a relationship between all three sides. There are many possibilities for such a triangle, but we'll want one that also leads to the expression x squared plus 4. So again, if you don't play, you can't win. So let's just put down x and 2 and our third side c, and see what happens. Since we have three sides of a right triangle, we can use the Pythagorean theorem to write a relationship between the three sides, and we see that the expression x squared plus 4 comes up naturally if we make these choices for the sides of our triangle. Since we are interested in a trigonometric substitution, let's go ahead and find the actual length of that third side, and then see what trigonometric relationships we can dig up. So we do need to designate a particular angle as our theta, so let's use this one. Now we have a right triangle where this expression x squared plus 4 comes up naturally. So let's see if we can use a trigonometric relationship. There are several trigonometric relationships we can use. We could look at the sine of theta, which will be the opposite over the hypotenuse, the cosine of theta, which will be the adjacent over the hypotenuse, or we could look at the tangent of theta, which will be the opposite over the adjacent. All three of these relationships must hold between x and theta. So we could use any one of these in our next step. We'll start with the simplest one. We'll let tangent of theta equal x over 2. At this point, we're going to do a lot of algebra and a lot of trigonometry, and very little calculus. So hold on to your hats, and here we go. If we let tangent of theta be x over 2, then we find x is equal to, and so x squared is. We also need to do something about this differential. So again, if tangent of theta is x over 2, then differentiating, which tells us that dx is going to be. So I'll make a bunch of substitutions here. Now this rather horrible mess can be simplified because we have a couple of basic trigonometric identities that we could use. And because we have tangent and secant, we want to use the fundamental trigonometric identity that relates tangent and secant, tangent squared plus 1 equals secant squared. But I don't have tangent squared plus 1, I have 4 tangent squared plus 4. Well that's okay, we can do a little bit of algebra. And that allows me to simplify the integrand. Now if I knew what the antiderivative of tangent squared was, we'd be in great shape. Unfortunately, we don't. But we can use our fundamental Pythagorean identity for secant and tangent to rewrite that tangent squared. And that gives us a new integral. And what makes this useful is that secant squared is the derivative of a known function so we can find the antiderivative. Our last step is putting everything back into place. And because we started with an integral in terms of x, we need to end with an antiderivative in terms of x. Fortunately, we know something about tangent theta. Tangent theta is x over 2. And that means that theta itself is our tangent x over 2. And so that gives us our antiderivative. What about integral square root 9 minus x squared? So again, in the expression 9 minus x squared, the terms x squared and 9, which is 3 squared, can be identified with two of the sides of a right triangle. There are many possibilities, but we'll want one that naturally leads to the expression 9 minus x squared. Again, if you don't play, you can't win. So we'll throw down x and 3 and see if we get an expression that we want. So maybe we'll try this. If we use the Pythagorean theorem, but that doesn't give us our 9 minus x squared. Well, as the saying goes, if at first you don't succeed, give up and join the circus. Possibly I misheard that. I would try again, maybe changing where we put our 3. If we apply the Pythagorean theorem now, and maybe do a little algebra, we do get this expression 9 minus x squared. And finally, since we are interested in finding the trigonometric relationships here, we'll need to throw in an angle theta. Again, there are many trigonometric relationships we can use. We could find the sine, cosine, or tangent of the angle theta. And because we seek to impress bands of wandering rogue mathematicians, we should pick the most complicated expression possible. But we'll start with the simplest one. And that seems to be sine of theta equals x over 3. So at this point, we have to do a lot of trigonometry, a lot of algebra, and a tiny bit of calculus. So let's get started. From sine theta equals x over 3 we have... We also need to do something with our differential. So from 3 sine theta equals x, we can differentiate both sides to get.  So if I want to simplify this mess, we'll pull in the Pythagorean identity for sine and cosine. And since I want to say something about 9 sine squared, I'll multiply everything by 9 and do a little algebra. I'll do a little algebra. And we should be concerned that when we take this square root, we are going to have to worry about the S-I-G-N sine, but we'll take care of that later. We can use another trigonometric identity to reduce this product of cosines and then finally do some final algebraic cleanup to give us a new integrand. That constant factor of 9 halves can be removed outside of the integral. And we can find the antiderivative of cosine 2 theta plus 1. And we have our antiderivative, except this is in terms of theta and not in terms of x. Since we started in x, we need to end in x. Now we do have a trigonometric identity for sine of 2 theta. So we can replace the sine of 2 theta in our integral. And from our initial triangle we know sine of theta, cosine of theta, and theta itself must be the arc sine of x over 3.


So for those of you who missed me, I've been on a little trip and it started a week or something. So that was Sunday morning and that was the ferry crossing from Anglesey over to Dublin port and a quick drive and journey over two and a half hours, other side of the country, into Sligo. Sligo was where this whole thing started and before I start, let me say a massive thank you to Lynch Pintours, Lowell Courtney who helped me organize all this, a massive thanks to Lowell and Lynch Pintours and if you are looking for similar trips then that is the place to go because he organized every little bit of this and it was organized to perfection. For what was, it was just a brilliant week for me personally and then I have a video this is to share with you but I want to give you my guided tour around for the five or six days and what I experienced and why I've come back with a little bit of man flu but ultimately blown away and fell in love again with Ireland, been there many times but not for a few years and I absolutely adore this place, but let's get back to where it all started in Sligo. Stayed at the Glass House Hotel, great locations right in the middle of Sligo on the river, nice little views there, nice little place didn't stay there long enough to decide exactly how much is going on there but there's plenty of little pubs, bars and restaurants as with all little towns and villages in Ireland and we're a little bit of a night out and come across these bunch of musicians of the highest quality that apparently had just met together few of them know one another but they get together for what's called a session and one starts on the fiddle the other one joins in and away they go for absolute hours and it was absolutely brilliant and just a it's just great entertainment it's so that the whole bar was so enthusiastic about it all and like I said the quality what they would do absolutely brilliant Anyway, that was day one That was the evening of day one following day was the real start to the tour I went over to County Sligo Golf Club It's in a place called Ross's Point and seriously the views from this place are absolutely breathtaking What I'm going to run now is a quick video of Give you an idea of what County Sligo Golf Club is all about Okay, so after the golf it was back on the move and I moved up to Bali Liffing Went to stay in a place called Bali Liffing Townhouse Which I was in Bali Liffing four years ago and apparently this place had just been sort of taken over and renovated Brilliant place to stop off really nice Rooms were superb great food in there breakfast was absolutely brilliant as well and a real good stop off there Ready and prepared for the following morning, which was to visit Bali Liffing Golf Club, which I said I've been to previously Two courses the old course and the Glashidi links and the Glashidi links will host the Irish Open in About three weeks from now. I got a real opportunity to play the course and To experience well eight just from the first team where they the sort of backdrop is in with all sponsors names and DDF Irish Open did you buy duty-free Irish Open as it is? Just standing on those tee boxes Pretending I was part of that Irish Open for just a few minutes and losing yourself is that it's a great experience And then coming down the 18th with the grandstands in place to the right of the green I couldn't help but take me cap off and wave to the imaginary crowd It was a great great moment. So again, here's a little insight to what Bali Liffing Golf Club is all about So there you go absolutely stunning Stunning it was a macular condition as you'd expect it to be for the world's top players arriving in a few weeks time But it was and to be fair when I played there four years ago It wasn't exactly the same absolutely pristine condition. What a golfing experience. Absolutely loved it But again, it was back into the car back on the travels and we do stop Very shortly for a few nights, but it was off into Northern Ireland and into Port Rush now quick tip If you travel from Bali Liffing to Port Rush, it's probably about an hour and a half drive But there's a little shortcut and you can go to a place called Green Castle and get on the lock for your ferry Which costs you about I think it's 14 euros and that's about 10 minute crossing across the lock Rather than driving all the way down to the bottom of it and round and it probably saves you about I don't know Maybe an hour's journey 45 50 minute journey Time so that was great But also I love the little ferry crossing itself a nice little time to just stop off Taking the views and sit back for 10 minutes and a break from driving in To Port Rush where we stayed for the next three nights at a place called in on the coast Which yet again, these places are all perfect locations for Experiencing the Gulf And all these golf courses are basically in the near in the near vicinity So we played Castle Rock and Port Rush which again from in on the coast to sort of all about 10 or 15 minutes away Either side so perfect locations in on the coast very good as well stayed there Quiet night in after a bit of traveling following morning. It was open out Castle Rock Golf Club for an early start It was a bit dull on the day, which was a bit disappointed and we were nicely the sun shining But we perhaps didn't catch the course in the best light in terms of the film about to show you But having said that you will certainly get the idea of again. What a fantastic place Well, this is just a golf region. It's just heaven Every golf course I have played there. I can't really find any that I've been critical of I love links golf as you well know I love golf courses with views These all these golf courses offer both of them, but then you get classic quality links tracks as well to boot So here's a look around Castle Rock and what we experienced at their golf course They're a really enjoyable day at Castle Rock and experienced some of the changes They made quite a few changes on that course over the last it reopened or the changes were reopened I suppose you'd say in about April May time and it's great to see me You'd hardly notice that the change were made this I think six holes where they've had some Alterations done and done a lot of good work, but quality work and again course superb, but then on the Wednesday evening we ventured into Port Rush Town centre, I suppose you call it a friendly body who's been there You'll know that in and around the harbour is where the sort of a lot of activity goes on one place in particular is The building that's known as Ramore and within that building and in and around it the sort of pubs the harbour bar There's another bar to the right. I think they're all part of this Ramore group and Great location in terms of a vantage point. You're right on the harbour All different types of food within these different restaurants that they clearly own and again It's great great food great great atmosphere and we then went into the harbour bar inside of the harbour bar real little quaint place loads of character Great atmosphere lots of pictures on the wall of when Darren Clark has been in there with his open trophy. Graham McDowell has been in there with his his picture of the US Open Trophy so Great history of the place, but again a great great atmosphere and then as I went to the To the toilet I had some noise coming from upstairs which sounded like some live music That's what was going on. Yeah, somebody playing live upstairs went upstairs and unfortunately That was a mistake One two one two three four As a mistake was because it was absolutely brilliant the atmosphere in there was Electric it was a Wednesday evening. It was absolutely packed to the rafters But the mistake was I ended up drinking too much Guinness and bearing mind I'm about to play Royal Port Royal ship eight o'clock in the morning. It wasn't the best idea. However The following morning storm Hector decided to hit Northern Ireland, which effectively meant there was no golf being played.  I mean it was literally howling 70 man on our gales So we didn't play at seven o'clock. We played at around eight o'clock We played at five o'clock that day, which gave me perfect time to get over to hang over and be geared up and ready to Experience the open championship venue for 2019 and one experience it was Absolutely superb Right up there for me with one of the best golf courses I've played and again because you've got to remember What it is I like about golf course is not the same for everybody. So it ticks the box in terms of links It takes the box in terms of the views. It's right on the seed The views were stunning the condition of the course was absolutely pristine. I mean trim to within an inch of its life It was really I stood on some tea position. My favorite tea position is on the fifth green Not tea position The green vantage point is the fifth green six tea you stand there and it's just takes your breath away Absolutely stunning. Here's a look at why I like Royal Port Rush so much As much as you can see from there pretty damn special I want to like to play it with a little less wind because it was near blow me over still at five o'clock that day But that said I actually played all right around there and enjoyed it immensely And then that was our last night in the following day. We traveled over to Dublin Where we decided to have a little bit of a walk around temple bar and enjoy all the enthusiasm of the Irish people in and around Dublin city We had a great night out and I should run a clip right at the very end of this video Which will show you our little time at Dublin But what I want to talk about is before I do that It's a couple of things the videos that will come from this is every corner man versus golf hold challenges at the four courses That I mentioned so they're the videos that will come out They'll show you the courses in a little bit more detail rather than just these little overviews that I've shown you today They'll be coming out in the weeks to come I hope you all enjoy those, but I just want to talk about Ireland for a second as a golfing destination Like I said a lot of links tracks there's a lot of parking tracks don't get me wrong But the stretchy coast is wild Atlantic way as they call it It's it's unbeatable in terms of the sort of views the quality of golf course everything I've already mentioned is brilliant, but on top of that It's the nature of the Irish people is unbelievably welcoming and You sometimes question when people are being overly nice And polite and friendly and helpful Sometimes in certain parts of the world that can be You sometimes question is that because it's part of the whole tourist job that they're encouraging people to be nice and A false environment is what I'm getting at and that is certainly not the case and it doesn't feel like the case in Ireland People are so They're so friendly. They're so helpful It's almost like I said from my day-to-day life It's something you're just not used to experiencing and it is real It is a real nice touch like I said as soon as you go in the barn on the first day went the bar at county slide Go guy behind a bar comes over and he's chatting away And he wants to know a little bit about you and it's just so so nice and then back on the final day We travel from Port Rush over to Dublin and a little bit of a stop off at a McDonald's I Drive through McDonald's and even there, you know The guy just cannot do enough to help you to make sure that you've got everything you need So it's like I said a real really friendly friendly country great great golf courses great hospitality great enthusiasm And as you know when you get to all these bars Guinness music and great times seem to be everywhere in and around Ireland so I had an amazing week like I said really grateful to everybody who helped With the planning and the people with the accommodation and the golf courses allowing the average golfer to turn up and play and Film it was a real privilege, you know, and I loved every minute of it I'll play you out with our little trip to Dublin and give you a feel for the atmosphere there and Hello, I've got a little bit of man flu to get over. It was well worth it Island I'll see you very very soon and as for everybody else that's watching Give it a thumbs up the comments the likes all of things and I'll also see you very soon with some man versus golf all challenges


SNES DRUG One negative about Contra 3 is that it was so freaking short. It's such a great game It looks and sounds awesome, and it's so satisfying to play, but it's only six levels. Come on! Thankfully, there's games like the Super Turrican series to pick up the slack.  These are the games for you. The Super Turrican games are primarily side scrollers But with a much more open level design similar to something like Cybernator or Metal Warriors So each level is a huge area to explore to find various power-ups and believe me There's a seemingly endless number of them. There's the spread that looks like something out of the Raiden series There's a Gemini Man style weapon that bounces off the walls There's a straight ahead laser, a freeze beam, a clear all-screen attack You can morph into a Metroid ball and lay bombs. Jeez, what didn't they think of?  It just takes a bit to get used to. I will say for comparison's sake There isn't as much carnage here as there is in Contra 3 or in Contra Hardcore for Genesis The Turrican world is a lot brighter and more cartoony if that makes sense I'm not saying that's a bad thing at all Just saying there's a distinct aesthetic difference here The music is especially brighter and decidedly bouncy sounding I gotta admit it puts me in a good mood like, yay, destroying aliens If there's a flaw in Super Turrican, the jumping can be a bit problematic in cramped areas That's frustrating for the wrong reasons there But other than that, this game is as fun as it gets Super Turrican 2 does exactly what a good sequel should Which in this case is more Super Turrican The graphics here really stand out as something special, especially the backgrounds All the power-ups are back, the music is still great And you get vehicles to drive around and create even more mayhem You also get a Bionic Commando-like grappling arm, that's very cool However, there's something just a little off about the controls It's like they're too loose Too many times I felt like I was just flailing around out of control Especially when in control of a vehicle I felt like I was just barely keeping it together That's a shame because Super Turrican 2 is much harder than the first game It's way more like a shoot-em-up where you really need to concentrate on not getting hit So there's a greater emphasis on precision if you want to progress in the game Also the open-ended levels are pretty much gone This game is entirely a side-scroller, and that also adds to a shoot-em-up feel to it Anyway, the Turrican series originally started out on the Commodore 64 Before it and its subsequent sequel were ported to about a million systems It also spawned an NES game as well as two Genesis titles The NES game is also titled Super Turrican, but it's modeled after the first two Turrican games The Super Nintendo Super Turrican games are entirely new games So yeah, the Super Turrican games are tremendous fun Run and Gun gaming at its finest Reminiscent of Gunstar Heroes, the Metal Slug series, and even Rendering Ranger R2 for the Super Famicom If I had to pick between the two, Super Turrican 2 is definitely better looking, better sounding, and more of a challenge But I think I'd go for the first Super Turrican because of its more wide-open level design and tighter controls Also, Super Turrican and Megaturrican are listed on the virtual console, so go check them out


Benni und Dorina, jeweils von Chaos Macht Schule Berlin bzw. Hamburg, sind heute hier, um etwas uns, um dieses Projekt etwas näher zu bringen. Zu erzählen, was so passiert und wie das so abläuft und wie man die Technik, mit der wir ja heutzutage jeden Tag leben, auch in den Schulen näher zu bringen. Um mal ein Beispiel zu bringen, wer hat hier Abi gemacht mit Informatik? Wer hatte diese Möglichkeit? Das sind nicht viele. Jetzt stellt euch mal vor, an jeder Schule gibt es so ein Angebot. Wer von euch hätte gerne Informatik in der Schule gemacht? Das sind mehr Leute. So, unsere Speaker werden uns nun erzählen, wie Informatik an Schulen ordentlich rübergebracht werden kann. Dankeschön. Okay, vielen Dank, dass wir hier das Projekt Chaos Macht Schule vorstellen dürfen. Wir, das sind Benni mit bei Chaos Macht Schule in Berlin aktiv und ich Dorina in Hamburg bzw. auch in Lübeck. Außerdem möchte ich nochmal großen Dank an Steffen aus Mannheim. Aus Mannheim danken, weil bis heute früh nicht feststand, ob ich hier wirklich stehen kann und er wäre sonst als Backup eingesprungen. Hallo, hier ist die Translation von C3Lingo. Wir hier representieren sehr viele Chaos das School of People across the nation. Chaos das School is a Bildung, is an Education Initiative with the goal of supporting media competence and technical understanding among students. We'd like to tell you why this project is so important to us and close to our hearts. We live in a world of digital change. So, there are a lot of politics involved and companies and active teachers, so which are only a few type of people and the most of them living outside of our filter bubble and the space we are comfortable in. And they just say, oh well, because everyone is using Facebook, I have to do it as well. And of course the collection is totally normal. This acceptance of things which can be different, we have to criticize here. We want citizens to notice the space that they have and understand technology and what's behind it. And that's why Chaos those School has started this project for the new generation that is thinking critically about technology, answering questions that can't quite be answered by teachers in schools. That's our starting part. Here are some news, new news from the past weeks, you can say. I don't know how it's for you but for me in the digital world in the news there's a lot happening and it was always like this but it seems to become more. And when you're interested into it, it can be difficult even to follow it. There's a lot of, for example, the new BND law, thanks to the Snowden case. It's been hard to combine that which is happening with BND law with German law. What happened is the opposite you've probably noticed. The watching has been expanded and new laws have been expanded. But there haven't been any critical following in the press about this. For example, that presses should pay money to link to journalistic contents. Journalism in this age hasn't figured out how to finance itself and there's too little money in this area. If search engines didn't show these things, then it would be even more hidden and that's a problem. This law went to presses and you don't show enough critical things about this law. You should also report positive things about this law in the future. There's a special example for this. So when the social democrats in Germany like something on Facebook and suddenly, which says that politics and politicians and other people have to check if news are fake or not, which means that there's a special law on the European side, which means that if you have a link to a special website, you take care of what happens on this side where you link to. So there are a lot of stories about it and it's always the same. They always make a decision and afterwards you ask yourself when you think about the techniques, if this is really useful, because normally there is no criticism. There is no one who ask if this is really useful and yes, people ask for this but it's not happening. All people at the congress are in a group of people who think about different things about data security, about security itself, about safety in the internet. But if we go out of this area and talk to other people who are not used to this topic, it's not the topic where all the people are interested about and not all the people care for it. So yes, of course we can talk to them how to make things better, but we have the knowledge, but we don't have, we haven't get this knowledge into the people outside of this community. And now concretely to Chaos.school and the map, on the map you can see where we are active in Germany. At least the ones we know of. Chaos.school was started in 2007 with two groups. That was, schools asked if the CCC could come and talk about these things and the project has been here since ten years. It's a decentralized organization, which means the activities are responsible, the people who are active in the different regions are responsible for what happens. And there's no centralized agenda of what should happen, but it lives instead based on the knowledge and interests of those who are regionally active. It's important to understand these are people who are active in the CCC with technical background, mostly these people are not teachers, but we go to schools to work with children and it tends to work relatively well. The main focus group are students in schools. We work also with teachers and to use teachers as multiplicators and to reach more people. We do with the students relatively different diverse topics, particularly given the diverse interests of those who participate. For example, Lötten, soldiering and critically questioning of technology, data security, personal privacy. Sometimes we are called to schools if there's bullying issues. Then we usually say we are technicians, but the schools often still want us to have us there and to talk about technical issues like how social networks work and how that bullying works on social networks. When we work with teachers, it usually has to do with giving teachers technical tools about how they can talk with students about these topics and it is an informational source for teachers. The parents come to us because they need information, particularly about software for protecting children on the internet. What we advise, children be on the internet, when should they be allowed to play games online, discussing with parents and making it clear to them that it's not so useful to keep children away from the whole digital world, but rather together discovering the digital world. The metaphor doesn't make the world safe for children, but make children safe for the world. Don't just let them jump into the world. They'll go over the fence anyway eventually, but that's the direction it tends to go. So these are the main topics. Of course there are more groups of people who work for that and Benny now will describe which ones. So 10 years ago we started alone and today there are a lot of groups who started working in this area. So at the beginning we asked people if they have computer science in school and a lot of them don't. But now more and more schools get this topic on their agenda. Yes, we have some of them on the board and some of them we don't know and there are more and more groups. So what we show there are very small groups and most of them just get up, just work because there are a lot of people who do it for free. So there are a lot of groups who just start to teach kids how to program. For example the Coder Dojo or Jugendhekt, which start new projects and change the view of the kids on the world itself. And we have ClickSafe, which provide information for kids and parents. Or we have web days in Berlin and we work with them together. And we invite a lot of young people from Germany to work special papers, to work, to discuss with politicians. We work with some of them, groups together. Sometimes we don't, but these are all very, very small groups of people. And all of them take the work that we should teach in schools. But the system, we are living it and the government doesn't work yet on these issues. So this is our spot where we are today. So of course the industry is working on these topics as well. A lot of IT companies have groups for young people. Here we have two articles about them, which are published on Heizer. One of them is from Apple and one of them is from Microsoft. And they have, well, the problem by doing this is actually that there are companies und they have, and they want to make money with it. So this is a big issue because at the end they want to build people who can code so that they, because they need them in their companies. But this is not how it should work. We want to have education, which is not linked to companies. The examples of public discussions that Benny showed before show how big the variety is of topics that you need to understand in order to understand the digital world. And we've seen that there's already quite a lot of great things happening in the education sector and also in different other areas. And there's also a lot of money that's earmarked for digitalisation in schools, which is great. I don't want to talk about that right now, but instead I want to show that in order to understand this digital world, it's not enough to show students how to use computers in their everyday life or in their work. But this is an important part to show them how to use their computers for homework and for work. But if the focus is only on applying what we think is important is that people can come into the digital world and in their work together. So, the word that I like to use is digital adulthood, maybe, which is the fact that you can make your own decisions, you can make good decisions and what I want to do is I want to transfer this concept to the digital world and in order to get there to be able to understand that, you need to really understand the digital world. That includes technology of course, but it also includes, especially when, right now when we hear politicians talk about digital loss, what we ask is whether they actually have understood the technology behind it. But that's even not enough. What we actually need is someone who understands how the internet works beyond the technology as such. How does the internet work? How does the smartphone work? How does WhatsApp transmit my messages? Or whose interests are standing behind the drivers of political discussions right now? So these questions of what happens in the digital world we think are also very important. And once you're able to judge that, then you can actually be an active participant and change the digital world. And there's a number of ways where you can change the world. Now you don't need to study IT in order to do that. Of course that's one way, but if you code something yourself or if you set up a cloud by yourself or if you do Freifunk by yourself. But you can also, as an artist, use technology in your paintings, in your sculptures, or even use technology for political and societal discussions. And we want to show that there's different ways of using this digital world and of changing this digital world. So for us this digital adulthood means being open for technology, understanding the digital world, but also questioning the digital world. Does it need to be like that? And also to get an idea of how to change the digital world in technology, in ethics, in whatever. And that's something that I think that we think everyone should have in order to be a digital adult. And we think that we can contribute to this actively. We've done quite a lot of theories so far. We've shown you why we do what we do. But now we want to show you some more concrete examples, some projects that we're actually doing. When we go into schools and what we do with these students. One example, this is a web interface of Open Data City. And this can actually show us how does the internet actually work. It's very basic to get a general idea of how the internet works. To be able to contribute to discussions. When talking to students about the internet, one thing that we've noticed is that they're actually pretty enthusiastic about the internet. This is their reality. This is the world that they live in. This is also something for them where they can say, well, yeah, make a cut between the generation, the young generation and the generation to their parents. But if you ask what do you know exactly about the internet, they normally don't know much about it. The internet for them is like a big black box. They don't know what's going on in the box itself. Many really don't know that when they're using a smartphone app, they're actually communicating with a server that's located somewhere, maybe in China, maybe in the US. And that when you do something on your smartphone, it might not actually happen locally on your smartphone. They can't really imagine where in the internet a message will be transmitted to and from. Whether it's going to be one smartphone to another smartphone to another smartphone or something they just don't know. The way to deal with that is to do some visualizations. So in this open data city you can use different kinds of interfaces to show young kids how routing works. So at the moment we're in Germany and click on this website. And now our daughter has to be transported to the server and our computer has to communicate with the computer in America. So now the doctor has been routing to America and back. So in the sea itself, in the Atlantic, there are huge cables and everything is working really, really fast. And if you show the kids these really, really basic things in this really easy way on this website, you can click on all the links in there and every way is of course different. So from time to time these signals are travelling out of our continent to others. So now we have to answer the question, what's happening if you send one signal from your computer to a different server and back. So there is one example. So I've done this fourth grade class and we draw a lot and they don't know the word server and they don't know what it means. And then someone asked, a girl asked and this girl is raising their hands up and asking, so does the server can read my messages? Yes, it can. And she finds that was really bad and that was not what she wanted. Yeah, she told me this was not fair and she did not agree to this. And this shows the approach that we have. We want to show them the technology and make it clear to them. We make it very simple for them of course. But when we explain the technology in a very basic way we often don't have to explain the problem anymore but one student raises their hand and shows what the problem is. Can the server read my messages even though I didn't agree? Another problem we have in schools is often the saving of data. We are explicitly asked about this and it's very difficult to share with people why it's problematic that data is saved, so much data is saved and there's so few rules about how data is handled. For this we use the example of Open Data City that compares the space in Berlin that the Stasi files took up compared to the files of the NSA when you were to print them out. And we ask them, what do you think about this big box that's coming out of the screen? How far out do you think this goes? How many of you know this by this example? Maybe half and half. If you begin or you ask, estimate it. Well, many parts of the city. Then we scroll out. Whoa, and it continues going. Oh, it's more than Germany. Oh, maybe it's many countries in Europe. We continue further out. Well, we can stop here. As the students sometimes are, if there are external people there instead of just their teachers who are boring, at least when they see this example they wake up. Because that really is quite impressive and shows them that it's incredibly large amounts of data particularly when you compare this with the Stasi in the elementary school that this example wouldn't be the best. But if they've had the Stasi in school, then it will work. With older students this example works quite well. And with the quote from Gauck. Well, can you compare them? Yes, it is. Well, Open Data City gave us quite a good tool. And it's available and you can show it to students. This example is quite good to talk about the topic of the Secret Services. But also the question, what is saved? And if you visualize the amount of data of the NSA and what else is saved from other institutions, from data communications providers, from Google and Facebook and many others. Hotel booking systems. It's just similarly large amounts of data. And you compare, you can enter the discussion in this way to think about the differences between the Stasi. And yeah, this is an original screenshot. And here's a marking in Berlin. This marker is the Marienstraße 11. The address of the CCC in Berlin. We had to mark it on the map. The next example also has to do with Open Data City. The visualization of the data from 2010. General data storage. You may have gathered. In Berlin. Many couldn't answer this question. The politician had asked to receive his personal data that had been saved by private companies. And this data, he shared and prepared this data with the site online. The data was presented in a very visually pleasing and understandable way. And here's the visualization. We see. This is data from six months. Below we see a line from September 2009. We can see on the map where he was active. In Berlin. Not only where he was, but also clearly in which street he was in. Exactly the street. When he moved between cities. And if you took the train or maybe the car. In addition, on the right side, he shared with other data, like which phone calls he made or text messages he sent. Open Tweets he made. All of this, we show this to children and we explain to them that the saving of personal data can be done to prevent terrorism. Today we only have six months, but we don't know. We can ask what will happen in the future following the new decisions. It really is the connection. It's really only the connections that a normal phone has to the towers all around. And even when we explain that when we tell that to children, they ask us why, what purpose does this have? Why would they even do that? Should I not take my phone anymore now? Recently I was at a comprehensive school and someone, a kid there, he said it very pointedly. The people saving this kind of data about other people, they should be punished. But actually it's the other way around. The providers that don't save this kind of data, they are punished. So this is the way it usually works. We just visualize how things are actually happening. We don't make an opinion for them, but they form their own opinions based on these questions when we give them good tools to understand them. To talk about privacy. Ein anderes Thema ist WhatsApp. We also talk a lot about WhatsApp because students, almost all of them use WhatsApp and that tends to be the most important app that they use in the internet. If you ask in a class, usually all people raise their hands except those that don't have a smartphone yet. Or because maybe their parents don't allow them. And many classes even have their own WhatsApp groups and WhatsApp is pretty ubiquitous. WhatsApp likes to analyze their users, their user behavior. Usually if you want to find out something about someone else, all you need to know is their phone number. You can get a lot of information on WhatsApp just based on their phone number. You can see their picture. You can see when they were online last. You can see their status. And when using this app, you can always see this just for the moment. But in this project, what they did is they just used random phone numbers and continuously looked whether these people, these random people were online or not. And then they saved this data. And this graph that you see has one person's data usage visualized from 0 to 23, or from 0am to 11am, 11pm. And you can see how often this person was online in this time. We don't usually distinguish between the red and blue line, but we just ask them to analyze what they see. The first thing they see is that this person sleeps at night. So from midnight till 5am or 6am, he's not active in WhatsApp. So we can think that she would probably be sleeping in this time. So we can see when does this person get up and this graph is highest at 9pm. So this is the time when he or she has free time and will be communicating with their friends. And then in between, it's probably a work day, it looks like it. Because you can see there's like a break between 12 and 1pm. So probably a lunch break. What we see is that even though we only have one information about this person when they are online, we can actually see his schedule for an entire day. Just from this. And students can actually see that, which is very surprising to them. And then we ask them, how do they think their own graph looks like? And they say, well, in the morning we usually aren't online because we're at school. Obviously we always laugh about that because we know that they probably aren't saying the truth because the teacher isn't there. And from that, they actually understand that everyone can see this data. And they think this is pretty scary to see that just from having a phone number, everyone out there can see their day, their schedule. And students, they often are active all day. Once they get up, they turn on their smartphone. And then one thing that they see is that this person doesn't really sleep that much. He or she only sleeps four or five hours and students notice. And then we can ask them, do you think this person can work productively when he or she only sleeps for four or five hours? Or is it good to drive a car at this point?  Oh, he might become ill. And then we can tell them that there's someone who might be interested in this data. Maybe an employer might want to know whether his employee sleeps too little and actually might be more prone to become ill. So this is more of a very practical example that we show. And this actually works really well. Even though we are more on the technical side of things, students tend to be very interested in it. To slowly show you how we discuss privacy with students with an analog game. The teachers came to this idea, not the technica. On these cards we see topics that are typically shared in Social Networks. And the white cards show a type of who, what kind of people I would share this information with. With parents, with teachers, with the whole world. There's various variations. The idea is that children should organize the topics in the different categories, as they think is appropriate. And the idea is that children will see this differently and then we might do it. And there are also differences among the children themselves. And they talk then with one another about why would you show everyone the picture of your room? I wouldn't do that. And they can play this also with their teachers. There are topics that are not so relevant to students, but things like the bank information or birth date is that public information, is that private information. But when you call the bank and identify yourself, often they ask for your birth date. And this plays a role and helps to bring aha moments. And you come into a discussion with teachers and students. How do you handle your own data? That was a few examples of what we do. We have a lot more, of course. We could have brought them. And just shows a small bit of what we do in chaos. Go school in Berlin and Hamburg. But on one side we think that we've used with these examples. We create motivation among the students with these examples. And it does work, as the examples have shown in the anecdotes that students are very much in the position to ask good questions. Although they don't exactly know very much about technology. We see as well, although we aren't teachers, but rather Technicians, we are also in the position to reach children through these topics. We see for ourselves, we see positives for ourselves. Our arguments function, work. We see that our thought processes can reach children. And we see what questions the students ask. And see what tools they are using. A few years ago the main tool was Facebook. But today this is used less and less. A lot of things are happening over WhatsApp. At this point we should probably say the CCC itself sees many technologies, particularly Facebook, very critically and advise. We try to go, we try to contact children in a neutral way rather than talk to them about what they actually do and then saying that certain platforms are evil. What are the good and the bad sides of each technology. Just to think about these things. Who reads my messages. And maybe this also can bring students to notice that the CCC does interesting things. Also new people into the CCC. This is where we see that it works well for students but also for us. And how do we bring everything forward. We've shown you the map of where we're active in Germany. But there are a lot of white spaces in this map. Maybe you have interest to participate as well. You can do a poll and find a place where you could bring chaos to school. You can ask in the CCC if support is needed. You can do this separate from us or do it for yourself. I'm going to go into school and I will talk to students. And since it's important that this information is brought to society, if you have teachers who you know, talk to them about technology and they will probably be thankful for all the help they can get. Maybe you have children yourselves. A connection to a school, you will always find it. And maybe you have contact to your old school. In der CCC, you can ask there as well. We've shown some examples of what you can do. You mustn't have studied computer science, but a general understanding can also be enough. If you have questions, contact us. You'll see our email address. You can reach all the people who are active. You can ask if there are people in your area who are active. If you have questions about what could work or what can I do, you can ask. Well, you can also ask us. We don't have to go home immediately. You can also ask us here at the congress about chaos school. On the young hackers day, we invite young people to participate. And you'll see a lot of young people around. And there's lots of workshops for them on the second day. The young hacker day on day two. There's a list in the wiki of everything that's being provided. And maybe that will also be something for you. At chaos does school, there's also a soldiering workshop. Eight year olds who've never sold it before. And it's amazing how quickly they can put together a project. Much faster than older people. On the third day, there's another opportunity in chaos west assembly hall four. There's various initiatives that are meeting in the educational sector at 8 p.m. Talk to us. Let's discuss and network together. If you have interest in becoming active, just come there and talk to us. Or with others who are active in other projects. We've reached the end of our talk and are open for your questions. And to discuss with you. Here are our sources. Here's the opportunity to answer questions in the room. We will also answer questions from the internet. We have a teacher asking. She would like to bring these topics like network policy technology into her teaching. And she asked whether there's some documentation or maybe some teaching material that she can use so that she can do that in her own teaching. We're not just here at the CCC for no reason. We are very decentralized in our organization. And there's this address on this display. CCC slash schule. You can find there in what regions and groups chaos does school is active. You can definitely find something there. You can also contact us. We are very gladly offering support. More questions from the internet. Doesn't look like it. Thanks for your talk. We in Dresden are also very active in chaos does school, even though we haven't connected much with other groups and have done more private stuff. We still struggle with the subject of open source, open knowledge, because we haven't found a good way to make this accessible to smaller students, to younger students. We want to show them it's important that things are open and extendable and that you can look into the software and look into the code. But how can we make this accessible to students? Do you guys have approaches for that ideas? In Hamburg, we haven't gotten to this topic very deeply. We have begun with students at the technical school, high school to look at these things. It depends on the age. Maybe we can speak directly in Berlin. In Berlin, we haven't done anything. Chaos goes to school. It's decentralized and it depends on the interests of those who participate in the active people. But we haven't done it. But as an example, Wikipedia. Students use this for homework. Usually they end at Wikipedia first and you can talk about Wikipedia and this free knowledge and what is that. How you can personally change these contents and interact with others. I have two short questions. Do you still need helpers for tomorrow for the Young Hacker's Day? And is there already some visualization about Snapchat or something that shows the problems there? For tomorrow, speaking for chaos goes school, we have enough helpers. But there are many other initiatives that want to do something. Just write an email. If you would like to participate now, we could probably find something to do for you. Regarding Snapchat. Snapchat is very popular since the past few months. And we've definitely noticed this topic. But we haven't quite decided how to deal with it. And if any of you have an idea of what's relevant. Or if you have an idea, let us know. And we would be happy about any information or ideas. I work for the Global Association of Education. And I wanted to ask you about copyright. Because there's a new single strategy for copyright. And there's some students and teachers that don't actually follow this rule. So do you already have this in your program? This is a legal question and I am not a lawyer. So I hold myself back. There are groups that have dealt with this, done something similar. And we would enjoy support, but we're not lawyers. Chaos does school, is open. So we would enjoy any participators who know more. In Hamburg, there's someone who did something about this. So I might be able to connect you. Did you think of setting up a wiki or maybe a collection of links in this topic? Yes, there is a collection of links. I don't know when it was updated the last time. But so much is happening in this area. New things are coming, being added all the time. And we're happy when we are able to prepare things in time for our talks at schools. And perhaps we don't have the most up to date stand status. You guys had a list of organizations that you've networked with. And a lot of that was from the technology area. Did you already try to reach out to education or more children-centered groups? There's a lot. And we don't mean to intend to say that we stand alone. In Hamburg, there's the initiative to connect the Hamburg initiatives together. Of course, there's a broad spectrum of things. And of course, we would be happy if more would happen in this area. Do you also mention that in the working world in Germany, if you want to introduce technology that controls what people do or where they are, do you show them that the workers' unions need to be involved? Usually we start with this after class 8. But as to now we haven't done much in this area. In the 7th or 8th class, you could... The way I thought about this was more about participation. But I'll come back later. Do you use this as open education resources? That is, do you have wickeys or some sort of guidelines that show teachers how to use them? This is an important topic. We would gladly deal with this, but in our free time. But we haven't done that much up to now. Often the question is, do you want to walk with the multiplicators, the teachers or with the students? So, sometimes if some external person from the CCC comes, this can have a different effect on children than if it's simply your teacher sharing information and giving instructions about what one should do online. Up to now we haven't done so much in that area. There's actually programs that would fund this. We have no more time. Any other questions you can ask later? But this room has a long break. Thank you very much for listening. We are happy for feedback. Just tweet your feed.


T F N N headline news update Welcome folks. They had the Dow industrials up three Nazca 40 s and p's up five and a half They got them all in the green folks. They're pretty good They did really good with the Dow industrials getting in the green because guess what they got it in the green literally 10 seconds before the bowel at 4 p.m. Gold contract gold contract down six dollars and seventy cents trading at fourteen fifty nine and ounce We had silver down twenty three cents sixteen dollars seventy seven cents an ounce light sweet crude Fifty seven dollars forty one cents a barrel of notes and bonds you get the ten year down two ticks one twenty eight ten Thirty a down eleven at one fifty six ten King dollar King dollar was up two hundred and twenty four ticks trading ninety eight three sixty seven Euro closed out the week at 110 the yen at one oh nine point two one and a pound at 127 to one the US dollar what you're going to see out here folks inside your S&P Of course that hit all-time highs that being said you're laying up here on a weekly basis with a nice little doji at highs That Bottom line we'll see how this shakes out next week. We look at the NDX 100 which also went to all-time highs This week same type of setup once you got to the all-time high You just basically had a sideways week You know with without price spread All week Dow industrials different ballgame dot Dow industrials Is not laying up on a doji up there Dow industrials Closed today at twenty seven thousand six Eighty and the high out here is twenty seven thousand seven seventy four Oh, I think I got it today Let's see That's seven seventy four No, it was yesterday got it yesterday. That's the bottom line Gold contract gold contract out here that got slammed as did bonds this week Gold contract closed down seven dollars and forty cents that is that does lay open that a 1448 can get hit 1448 is the breakout area in gold from the Fifth of August have a great weekend folks. Have a safe weekend come join us back here Monday morning Larry Pezz event They'll kicks us off great program nine o'clock in the morning. Have a great one folks