Weight matters a lot in laptops as manufacturers always strive to create lighter and lighter devices that are easy to move around. Lenovo's business thin-pad laptops have a special X1 sub-brand for their premium machines, of which we have the X1 Carbon Gen 10. It's one of the lightest 14-inch laptops while providing the latest hardware from Intel. The lid of the device is made of carbon fiber, while the rest is aluminum, weighing only 1.12 kg and having a profile of 15.36 mm. This combination of materials also gives it a bit of toughness as the laptop remains flex-free even after we tried twisting it. The lid is a bit bain-dee, but you'll be fine as no one bends their screen on purpose on a daily basis. Additionally, you can pay extra to have a carbon fiber-wrapped pattern on top of the lid. Regardless of how the lid looks, it opens with one hand, revealing the input devices, along with two speaker reels and the power button which doubles as a fingerprint reader. The Lenovo managed to extract as much key travel as possible from the Slim chassis, which when paired with the tactile feedback makes for pretty comfortable typing. The touchpad has a glass cover which is very smooth, but the clicking mechanism is a bit uncomfortable as the top portion can't be clicked. The thin-pad has decent IO coverage, with the left side housing two Thunderbolt 4 ports which can be used for charging, one full-sized 5GB USB port and an HDMI 2.0 port. On the right there is one more full-sized USB port, a SIM card tray and a 3.5 mm audio jack. On the front we have a 2.8K OLED panel which offers amazing colors and deep blacks. The screen covers 100% of the sRGB and DCI-P3 gamemodes while also showing high max brightness reaching 435 nits. It's excellent for productivity work, especially with our design and gaming profile which improves the color accuracy of the display to a delta E value of 1.4. You can purchase it using the link in the description. The 57Wh battery pack doesn't offer ideal battery life, less than for 7 hours and 45 minutes of web browsing or 6 hours and 20 minutes of video playback. These results were with a configuration featuring the Core i7-1270p, a 12-core 16 thread processor. It's not the best performer scoring lower in 3D rendering than it should, being outperformed by the Ryzen 7 5800U and the Ryzen 7 Pro 6850.  For a GPU you get the 96EU version of the Iris Xe Graphics G7 which is great for iGPU standards. Paired with the hardware and coating cores inside, you can use the ThinkPad for a fair bit of productivity work. We can quickly see why the CPU performs the way it does as we move into the stress test. The laptop is cooled by one heatpipe, two fans and some heat spreaders. Lenovo is pretty conservative with the thermal management, dropping its clock speed and the wattage to unreasonable levels, running it below 2GHz for the majority of the test. Lenovo probably wanted to give their consumers a more comfortable user experience, but the chassis still gets quite warm, reaching 48°C. On the other hand, it's very silent, so at least noise won't be an issue. This ThinkPad comes with a dull dirt memory, but at least you can configure it with up to 32GB of LPDGR5 RAM so you can spec the laptop well if you want. Storage-wise, there is only one M.2 slot that supports the Superfast Gen4 drives. We have a separate tiered-down video which shows how to take apart the ThinkPad X1 Carbon. We'll leave a link in the description in case you want to give it a watch. The ThinkPad X1 Carbon is a feature-packed device with an amazing OLED panel and great hardware selection. However, the same high-res display also staggers the battery life, while the performance isn't ideal, thanks to the small cooling setup and poor thermal management on the novice part. If you want to see more tests and details about the device, you can check out our in-depth review. The link is in the video description below.


Right now I'm actually working at Dublin Company, which is a company that focuses on rotating unions and slip rings. I got my job about a month prior to graduating. Just from going to school at UWM, it helped me kind of better depict exactly what I wanted to do, and what I wanted to do ended up being like a design role. I love the Industry Exposed. Honestly, it's such a great opportunity that UWM can put that on twice a year. Just the variety of companies that show up to that. I mean, who knows, maybe that opportunity and me becoming more fluent in just speaking how I feel was the thing that got me this job. And had I not had those opportunities, I wouldn't be half the person I am today. So I went to the org fair, and walking through the org fair, this guy stops me and says, hey, you look like you could hip-hop dance, and I said, I don't know how to at all. They ended up giving me a spot in the first show, which was the most enriching experience ever. So there was just all these little things that kept happening along my way. I'm Kyle Schlimbach, and I'm a Milwaukee engineer.


Everybody forced here ripping 2223 Merlin hobby six box number five or learn from hobby six question number five. There's your random results Let's go ahead and get started. Best of luck everybody. Have a lot of fun with this stuff today. Give me one sec here Do one more thing and we'll get ripping One second still doing this All right, just went ahead and put some NT football teams on sale for you For that full case later on Watch the case father match ball very nice R9 renaissance. That's awesome Alvarez hidden gems hidden gems was hidden gems Nacho under 21 auto 100 Holland Grail. What Holland Grail do they have in this? What's the team? What are the teams? Checklist just says grail, right? I think I may have had the checklist. It does say it. What is hidden gems? I don't see that on the checklist Is that an unannounced like SP or maybe it's just not up yet Merlin's Masters Levendofsky Barça Fracture Sun Spurs Pink Mojo Mbolo to 275 for Monaco Nusa Club Rouge 121 rookie Fracture Mbappe PSG Never seen a hidden gems. Oh, very nice Patrick Kloyvert to 100 on the Iax auto Angels Alchemy one of the nicer hits that you can hit it for Iax for sure Kloyvert to 100 Good start with the autos in this case Six bucks first six box years next six boxes the other half Grona Dua Thurkey refractor Salzburg Okay. Yeah, and finest at the hidden gems gold atomic rookie is Kabore for Marseille 26 of 50 Let's call her there Marseille That one's going out to Marseille so hard to read the combos Sean P and then the Iax auto was going out to The Fenerbahce spot. Yeah to Arcadius Nuno Refractor and cunku for Leipzig Nacho Kloyvert Angels Alchemy on the non-auto there Merlin's Masters Vinnie jr for Real Madrid Rookie Rose Goldschimmer to 299 is Hongyu Oh for Celtic Susie rookie refractor Marcus Edwards sporting Don't think I've ever pulled one of those Rory. I've seen a couple vintage Merlin Aguera for uh West Ham I like the full one Our rookie refractor Kabore for Marseille And base back Let's get a link going for I'm at collegiate down to 12. I'm gonna tweet that out actually So about 20 15 20 minutes behind Nothing huge, but just fyi Gakpo Marlin's Masters Fractor and Bolo Monaco Tahu rookie my aqua speckle to 199 mark Casado for Barcelona. It's like one in forever pretty much sesco Yeah, but if there's no hype around them then The rarity seems greater than the the value for sure refractor Kiesa for Juventus. I didn't even know what it was Like the first time I saw was probably about a couple years ago. Yeah, that's insane, dude Yeah, refractor auto no-aligned club bruce Uh, yeah eastward that happens the wednesday after we got back from the national refractor Vinnie jr for Real Madrid so all the All the prizes have been shipped and everything's been shipped out already rookie speckle the 150 nusa for club bruce Now we have written results Some results here, and then you can search natural promo on our videos and be able to find the the random There we go bills paths gone in and see Then number 47 is that is that the one that we're looking at bill? Nice spots coming in and also an imac division spot came in good stuff Yeah, all the break credit was added to Suley under 21 rookie for Juventus refractor Romero Lazio Zoff a just alchemy for Juve modes reach Merlin's masters Neon green shimmer to to 350 excuse me band united jade on sancho. Yeah, you got it eastward refractor the young barcelona If you need help finding the video just let me know I can Once you search 2023 national promo it should be the only thing that should be the first thing Uh, Khmeri rookie vintage Merlin for Salzburg Sheldorupin Fika our rookie refractor O'Reilly for Celtic box number three. Whoa. Why is that pack sideways? Hmm interesting. What's in this pack? I'll keep it on. I'm keeping it. I know it is What's in that pack? Probably just standard pack stuff We're gonna find out though. Oh, it's a purple wave. Oh my god. It's a purple wave Oh Man, oh nice rookie 8 of 15 from monaco as song you to a magasa Out purple wave rookie and a sideways pack. Hmm interesting interesting very nice hit for monaco It's like the one time that actually happens really something like oh, this one's a little different, huh? There's never anything in there that time there was That time there was refractor rookie bakayoko for eindhoven psv Kaka on the ages alchemy for ac Milan rose gold shimmer killian on bop a 115 of 299 psg refractor amina mino monaco vintage merlin lataro martinez inter garnacho under 21 menu nacho refractor bruno brain refractor 299 of edward will come a venga for real madrid. I'll have to get better pronouncing a lot of these names Bence gear. It's the the first time I've seen a lot of these names is the past few days checklist and In the like refractor alfonso davis for Byron I don't this box yet I don't think that right It's not auto coming Merlin's masters wane rooney menu nacho refractor of gabi from barcelona That's an orange now seems like some of the lower colors run together And it's a 25 rookie valentine carboni Inter pulled an orange mojo in the last break. Have you got a true orange? Congrats inter Nice great rookies in this box. What a box That's he's tell Yeah, he's got some promise too. Oh and a nice. Uh, I said you but I meant oh vintage merlin erling holland nice one there again both those uh low numbered rookies magged for those teams from monaco and inter The broina on the merlin's masters refractor casado barcelona Salina numbered goulas Alvarez, there's a pink mojo to 275 ricky vettinia Marseille Yeah He's pretty ridiculous chris Refractor to a mani for real madrid I'm gonna be the spongebob and like the diner with the cup of coffee in front of me waiting for my box It's like It's gonna be me man. It's gonna be me Oh true gold auto to 50 man city kyle walker Solid hit there for city on the gold auto nacho That was a rickard base refractor jude bellingham like a scuff on it. I might that might come off jude bellingham refractor I don't think it will actually it's like an actual scuff on it green mojo and kung-ku to 99 leipzig Ponce chacha sitting there We're gonna send a boxer now for that one. I was just a base refractor But it might be worth getting replaced refractor lu kaku Enter Van Basten a just alchemy PC Milan Very nice Arto goulash to 299 rookie fennard bashe There we I was just saying I was just saying rose gold shimmer right there This goes to arcadia as arcades is killing it had the um the clover at auto as well Exactly what we're looking for right there. That is the jerky chasing the product as of right now Here we go Good rookie six boxer here refractor immobile vintage quiesa huve Doing more magazine this break than any other break uh, ben sigir monaco under 21 refractor malik tilman rangers Uh, draw bow and speckle the 150 west ham who scored against my club born with on uh This past weekends Yeah, born with I got him in the random last uh You got the draw they got a point, you know what I'll take that probably don't have super high hopes for the season But hey, you know what they're gonna be better than the bottom the bottom five or so Yeah, Chris this stuff is awesome martinelli marlin's masters refractor griezmann atletico They true blue nice a rookie here. It's gonna be the atletico rookie barrios Pablo barrios to 75 true blue. It's a nice one atletico color match kind of kobe minu Is it is it kobe and is it mainu minu or like maino or minu? Refractor mohammed kudas for iax nice rebar g rookie otto kopenhagen Let's get one there. I have a jersey out of his room.  Florida merlin's That's that's that's a yellow card. I think green the 99 to get to layer for ac Milan. Yeah, it's a yellow card yellow card for anthony Not even saying doesn't say hello doesn't say I just says Florida merlin's is the first thing that's That's preposterous Refractor rookie for taboo for sporting Figo a just alchemy inter Carboni base and atomic that get to layer to 250 ac Milan Refractor rookie gison for not Evonne gison Where's he from? Yeah, he's french Evonne gison. I think that's how I would say it gison Probably more like gison if uh, since I'm not I don't I'm not I'm not I'm not a i'm not a french speaker English version gessin evan gessin that's that's that would be the english version of that andreas scolvalson for bruce Yeah, uh, this is a yellow card for sam I know he hasn't said anything today. I haven't even seen him yet. I haven't talked to him yet, but yellow card for sam Uh vintage is virtual van dyke For liverpool last box. We got one more moral after this and we got i'm at collegiates We're gonna pull a money man's out. We're gonna pull an rg3. Maybe I really want to hit. I know it would be a random most likely But a uh, the bijan robins and rick of williams do a lot of we pretty fire. I think We're that tennis huge triple hendon hooker tilman and hyatt musy alla merlin's masters Refractor manne mayron Yeah, sam definitely earned it Got out of bed yellow got an orange to 25 rookie franzi piero From a cabi hypha franzi piero. I think that's how I would say that name lauri rangers Oh Yeah, man, it depends on where he's from really Um, i do ak chelsea refractor Kyle, you know all the rookies in this yet Did your research Rookie auto thopio carvalio for liverpool levendofsky merlin's masters Yeah, i'm also, um, i'm gonna give shana yellow card for influencing the referee Yellow card for shane He fell on the the sword he fell on the sword for that one rookie refractor azuzi Usama el azuzi for onion sangellua green mojo. I see nice rookie mario hila for latzio 13 of 99 Maybe not the most monster hits in this one, but this feels like the most balanced break we've done so far as far as like Pretty low numbered stuff a wide range of teams refractor and ketia for arsenal Gulas on the rookie base with a zedan a just alchemy Arguing with the ref i see oh boy. Shane's arguing with the ref now He's on a yellow. He better be careful. Atomic a 250 comma vinga for real Yellow card on me. All right. Yellow card on me for being easily influenced Man, everybody got booked refractor georena for barusha dortmund Geo is my usmen's national team, uh the guy i collect for them kulesevsky top num on the vintage Not a huge pula sick. I like pula sick, but reina reina is the I think he's got the the most potential out of all the young players gavi Uh, well now, I mean now that they got balogun that might be different But before they got balogun, I think it was reina. Boniface refractor simon for nont Kicking third over home plate. Oh boy. Oh, oh geez He'd be like, uh, who is the bobby? Um, the braves man. Bobby. No, not bobby. I'm bobby Slitzker No, the braves who was a long term bobby cox. I think yeah, bobby cox. Yeah, the one that had the most ejections ever, right? I think gabe cappler and erin doing i'm trying to go for that this year Yeah, maybe Gabe cappler for sanfran You see no one's up here?  I wouldn't be surprised. You just Yeah Hey, what are you doing?   You don't know how to call them It's a 350 sancho 299 in bapae Uh, young uo to 275 vettina Embollo to 250 camo vinga to ketel air to 199 casado to 150 bowen and nusa to 99 in kungku Gila to ketel air in camo vinga The 75 barrios to 50 cabore to 25 piero or pieru Autos now of carvalho bargy Noah lang the clever to 100s a nice hit for ix the gold auto kyle walker man city to 50 We had orange rookie carbony to 25 For inter were we short of auto? I just count on Does anyone remember a box we didn't have an auto Why just counting on uh orange carbony rookie nice one there 25 and 25 inter purple wave rookie magasa rookie from monaco And to 299 art of goulas for Fenerbahce, right? I think we were short on auto there. I don't think you would have missed it But unfortunately it does happen time to time it is per box on average technically All right, so overall still a really good break one of the better overall breaks spread across multiple teams So thanks again everybody on to number six now


Every day, 200 people, as they were decorating and preparing for the holidays, visited the emergency room. The majority of incidents involved falls, lacerations, and back strains. Christmas trees and fresh ones are beautiful, but if they're not watered regularly, they can literally go up in flames in seconds. These trees are involved in about a hundred fires annually.


So, today I'm going to be talking about a topic that's very near and dear to my heart, which is productization and hardware that ships KDE Plasma by default, because I believe that is how we conquer the world with a K. You may have seen me give similar talks in the past. When I introduced the usability and productivity goal, I explicitly set this out as a goal of that effort, and then I gave a sort of mid-cycle update to that a couple of years ago at Academy. So we're going to do a retrospective and see where we are today. So the big question for all of us in free software and in KDE is how do we get our software into more people's hands? And we've heard a little bit before about how we do this from the app side, and I believe that's a very important effort. But I also believe another half of this is to get KDE software pre-installed on hardware by default, and that means KDE Plasma at the operating system layer, because we want people to have a full-stack free software experience, not just apps, which can be a great gateway to our software, but we want people to be using it down all the way to the base of the operating system. On the other hand, there's sort of the why-bother question, who cares? And I think one of the biggest reasons why people should care about this is because the landscape outside of our little bubble in proprietary software is really very bad today. It's not a good situation. When you look at free proprietary apps, most of them are ad machines or they're spyware machines. They're basically just designed to harvest your information and get you into a pipeline for something else. Those proprietary apps that are paid will involve software subscriptions, so your data has basically held hostage to them, and you have to continue paying on an ongoing basis. A lot of them are cloud-based, so you need an always-on-internet connection. Many of them are simply vehicles for ambitious founders to earn an enormous profit by selling their free product to a big company so you can't rely on them sticking around for the long term. You folks are all familiar with this sort of thing, and I think it's really easy to forget that we don't suffer from any of these problems in the free software world, but normal people do, and I think that's one of the reasons why we have to continue to try to bring our software to them because the world outside of our bubble is just not very fun, and we can make it fun again. I hear this over and over again from people who say, well, KDE is fun. Free software is fun, and that's something that I think you can't say about the proprietary software world where people are just not really empowered anymore, and perhaps the most important reason to do this is because all of us started as young hackers at some point, and the next generation needs those opportunities, too. They need to be introduced to free software so that their entire experience of computing isn't just, oh, I used mobile games and see ads for crypto all the time. This is not ideal, and so that's why we got to do that, because this dumpster fire over here is not good for everybody. So then the next question, of course, is why focus on hardware? Because there are other ways to get software into people's hands, and I think hardware is important because hardware is how normal people get their products. They go out into a store or they go online and they buy a thing, and that thing has software on it, and most people are not super adventurous, they don't change defaults, they may install a couple new apps that they're very familiar with, but for the most part, the software that they get on their product is what they have, and so the more of our software we can get on those products, the more reach we have for this group of people. Another major reason is that hardware makes money, and money is important because all of us need to live, and people who sell products for money have money to reinvest in KDE, and I think this is a really important part of helping KDE itself become more financially empowered to financially empower its members. Hardware vendors are also very close to their users, they keep a close eye on what people want on market trends, on market conditions. If the product doesn't do well, they know why it isn't doing well, and they want to fix that. So that's really valuable feedback that they can pass on to people like us who make their software. So the more we partner with hardware vendors, the better our feedback channels become regarding what the market is actually like, and a final point here is that hardware is just really cool. I mean, I think a lot of us sort of share the sentiment that products are interesting, and there are often a lot of really cool things that you can do with them when people are empowered to make whatever they want. There are all sorts of devices and form factors out there that are very exciting. Now with this effort, we've had some successes before. A couple of years ago, I presented on this, and we've had these great laptops that had KDE Plasma pre-installed on them. We've got the Pinebook Pro over there. We have the Slimbook, and we have the K-Focus laptop. And these are really great products. I know some of you are already using them. At least one of you has one in the audience right now, which is super awesome. And so this effort was already successful, but as you can see, it's fairly limited. And I think in the last couple of years, we've been very successful in branching out from just these kinds of devices into a whole different class of devices. We've got gaming consoles now. We've got phones. We've got voice assistants. And we have the traditional desktops and laptops, which all of us are using. And the mainstays of our productivity is never going to go away. So I would just like to talk about a few of these real fast. So we've got the Steam Deck. I think many of you are very familiar with the Steam Deck. This is a really super exciting product. It's something that has put KDE Plasma into the hands of hundreds of thousands of new users, possibly even millions. I don't know if there are numbers. I'm guessing probably by the year's end, there will be millions. And these are people who I think are a really great market for KDE. The response that we've gotten so far from users about the Steam Deck has been generally overwhelmingly positive. People use the Steam Deck and they say, wow, this is easy to use. This is just how I like it. It seems like gamers are a good match for the software that we make. And so the partnership that we've had with Valve through this has been very impactful in terms of driving fixes, driving improvements throughout the stack. Like I said earlier, hardware vendors are very close to users. And in this case, Valve knows what their users want. And so they communicated through various channels what they wanted. We did it, and KDE Plasma has really benefited a lot as a result of this. We have other things too. We've got the PinePhone and the PinePhone Pro. This is another new device class that we've moved into. These are really exciting mobile phones that have Plasma Mobile on them. They're currently running Manjaro with Plasma Mobile, but I know you can put other things on them. And Plasma Mobile is also another sort of emerging new frontier because it's an opportunity for us to make our software convergent. And Nicolo talked a little bit about sort of consolidation in terms of software. And I think one of the ways that we can accomplish this is by creating the next generation of mobile apps that also happen to be really great on the desktop through our convergent user interface framework Kirigami. That becomes a way to basically make this happen without any drama. Instead of having to say, well, here's the old thing that we're throwing it away and here's the new thing that we're making, we can just sort of quietly make the new thing, allow the new thing to encompass what the old thing did so that it's better. And then boom, all of a sudden we have one unified app, one unified code base. And this is an opportunity that we didn't have before and now do have because of this new device form factor. Another really cool device that's out there is the Mycroft AI smart speaker and home assistant. We had another new device class that we didn't have before. This is, it's like an Amazon Alexa Echo sort of clone, but it's open source. And it runs KDE Plasma, it's got an OS on it called Open Voice OS, which is Plasma. And its software stack uses Kirigami and QML and it's our stuff, basically. The user doesn't interact with it as a Plasma device, but it's a KDE device through and through. And I think it says something very positive about our software that it was chosen for this. And then next, even more exciting, this is what I'm really excited about. All Tuxedo computers now ship Plasma. Tuxedo is another vendor out there like Slimbook. They compete in the same space and they ship a customized Ubuntu based OS on their computers called Tuxedo OS. And Tuxedo OS now runs Plasma. So if you buy a Tuxedo computer, you get largely a stock KDE Plasma experience by default, and they have tons of hardware out there, and they ship a lot of things. So this is very exciting as well. And then finally, rounding out the list of new hardware, we have the Elite Mini, which is a sort of all in one PC that can be used for a lot of different things, and there's a partnership with Manjaro. They ship this with Manjaro Plasma Edition on it. And here's just another device in that space. So I think if you look at all of these things put together, you see that there's a very clear trend towards hardware vendors wanting to pre-install KDE Plasma on their hardware. And so then the question is, why would they want to do this? What's driving it? And I think what's driving it is a few really positive trends in the KDE community and in Plasma. If you look at some of the reasons that have been communicated to us, as well as some things that we can kind of intuit on their own, one of the big reasons is that Plasma is flexible. This has always been a historical strength of the KDE community in general, and Plasma embodies that strength. Because no matter what kind of device you want to ship, Plasma can basically be adapted to meet the needs of that form factor. You can scale it up, you can scale it down, you can write custom software really easily, you can turn some things on, you can turn some things off. It's just a very good platform for device integration because a lot of the custom integration work that might need to be done doesn't need to be done because of the built-in configurability in the system itself. And so that's been a big feature, especially in branching out to new device types. I think another big reason is that Plasma developers are really nice and they're easy to work with. So when you as a hardware vendor do have problems and you do need some custom integration, it's not very difficult to get that done. And you don't find that there's a ton of friction within the community. We've seen a lot of distro partners and hardware vendors reaching out to people in the KDE community and saying, hey, we really like your software, but we've got this problem with it, or we'd like this feature implemented, or there's this integration that could be better. And generally speaking, the response to this is, yes, that's a good idea. We would like to do that. And then the conversation can happen regarding how this gets done. But Plasma developers are really approachable. And so being easy to work with is important. And a final reason is simply that Plasma is very fast. It's a high performance environment. It's really good for all sorts of uses that require low latency and high performance like Valve has used it on the Steam Deck. And gaming is an extremely high performance intensive thing. So the fact that they chose us, I think speaks very well to the technical bona fides of the platform that we've established. And so for all these reasons, we've got this amazing amount of new hardware coming out. And I'm very excited about it for quite a number of reasons. But it's not all perfect. I think that there are still some things we can do better. There's always a way to improve things. In the last couple of years, we've gotten these many new products that have Plasma running on them. But it's only a few, right? It's not a thousand. It's not everything. We're not going to conquer the world with all this. So I think if we really want to get there, there are a couple more things that we need to work on. Some things that we've specifically heard from distro partners and from hardware vendor partners regarding what they want us to focus on. And one of them is the Plasma LTS version. For those of you who are not aware, Plasma is a product that has a very aggressive release schedule with three major releases per year. But we also have a long term support version. And every two years, we designate one version to receive ongoing maintenance and bug fixes. And this product has been adopted by a couple of distros. But it's sort of an incomplete product. Because even though Plasma itself is a long term support version, we don't have, I'm going to go from this list from the bottom here. Hope you guys don't mind. We don't have long term support versions of frameworks and apps. And Plasma is only a part of the system, right?  But Plasma sits on top of frameworks, and there are no frameworks bug fix releases. There are no LTS versions out. So you, as the integrator, need to choose a version and freeze on that. And hope it's really good. And if there are bugs in it, you've got to backport things yourself. Because we and KDE don't take care of that. The way we take care of doing that for Plasma. And another potential issue with this is that even though in principle in the Plasma LTS, we backport bug fixes, in practice, we only backport a certain number of them. We don't do everything, we don't do big ones. Part of the reason is because some bug fixes are built on top of refactorings that happened later, and it's very difficult to backport these things. This can be done, of course, but it adds risk. And so that leads me to the third point here, which is that most Plasma developers, I'm aware of, are not using the LTS product. And so there's sort of a lack of QA on this product. A lot of the internal QA that we have comes from people using it. And so when people aren't using it, it means that things can break. So I think the Plasma LTS was a really great idea, and we've gotten very positive feedback from a lot of our partners about it. But it's a little bit incomplete, and I think we can work on that. The next major challenge that I see is that there is a lot of reinventing the distro wheel. If you looked at the previous set of slides and notice the OS that was listed there, there were a lot of different operating systems there. We've got Steam OS, which is a custom OS that was made by Valve. It's arch-based, and they have their own things on top of it. We've got Open Voice OS, which is Ubuntu plus Plasma, but not Kubuntu. We have Tuxedo OS, which is also Ubuntu plus Plasma, but not Kubuntu. We have Kubuntu, which is shipped on the K-Focus hardware in a very heavily customized way. We have Manjaro Plasma, which is also rather customized and opinionated about certain things, certain defaults. And then of course we have our own, not a distro, half way. Not quite a distro, Katie Enion, which is shipped on Slimbook hardware right now. So there's a lot of diversity here. And in general, I feel like diversity is a major strength of KDE. But there's a certain point where diversity can become redundancy. And especially when you look at all of these different distros, that's a lot of different packaging labor that's required. And very little of that packaging labor is shared among those distros. So there's opportunities for collaboration on products that are sort of fundamentally similar by nature. And I think what we see in the distro space is that, especially the people who ship distros, who ship hardware are often not interested in that collaboration. Not because of any fault of their own, but simply because it's not their responsibility. In the same way that we have this Plasma LTS product, we make it our responsibility to backport bug fixes. And distributors like that, because it takes labor away from them, I think there's room in this space for more collaboration in the distro space, either consolidation or creation of a sort of reference KDE distro that can up the quality broadly. But either way, I think there's room for KDE to make progress here at a level above the distros to say, here's our vision, here's our product. You're welcome to use it or not in a way that meets all of your needs really well. Because clearly, the reason why we have so many distros here, and this isn't even a full list of course, this is just a list of distros that are currently being used to ship KDE Plasma to users. There are tons and tons more that all of us have on our personal computers here. But I think the fact that we see such diversity here shows that there's room for KDE to be a more active player there. And a final challenge for this effort is that there's an unclear locus of responsibility when bugs are found. We've had this experience of distributors and hardware vendors finding bugs in KDE software that they say that, well, we love your software, but there's this bug here that's affecting our users and it's losing us sales. What are we going to do about this? And so there's that question, who's responsible, right? Is the distributor responsible for hiring somebody to fix it, because it affects them? Are Plasma devs responsible for fixing it because it's our product? Should they hire a Plasma dev to do it? It's unclear. So I think what we need to do is clarify this a little bit. There are a couple potential options that we've got to work on this. We could have, for example, a KDE specific channel that allows pipeline for developers to be hired to work on this. We sort of have this right now with a list of, like the EV maintains a list of contractors that you can contract with, but it's sort of indirect. I think there's room for KDE to be more direct about this thing and say, hey, if you have a problem with KDE software and you're shipping it, here is your channel right here. And that could be not only a channel for dev work, but also just a communications channel too. Right now, when distros and hardware vendors want to communicate bugs to KDE, there isn't an official channel for that either. So it's sort of challenging to figure out where to go. In my experience, sometimes people go to chat rooms. Sometimes people send an email, but then you don't know which email to send it to. Sometimes they'll send it to a particular person who they know about and say, hey, can you direct my query somewhere else? And so I think we can do a better job of saying, hey, if you're integrating our software, here is your communications channel to us, right here. Let's make this super clear and obvious and put it right front and center so everybody sees it. And finally, because we have this diversity of distros, this means that a lot of times distros find different ways to solve the same problem, and oftentimes fixes for problems don't get upstreamed. Again, not because of any kind of malice, but because people are busy, right? You solve the problem, you solve it for yourself. Working upstream can be challenging. And so I think in KDE, we often need to nudge a little bit to make sure that people who are patching our software downstream are submitting those patches upstream. And if those patches are not acceptable for being upstreamed, we need to help communicate why that would be and maybe help them fix the issue from another perspective. I feel like we have sort of a recent success story I can point to, actually. We have Neil over here from Fedora. And Fedora was carrying a patch for Plasma to add an add to terminal menu item that had been sitting in their source tree for over a decade, right? He said it was like 14 years. And it broke recently, and Fedora users complained. And they complained to KDE. They said, you took out the open in terminal menu item, how dare you? And we said, well, we never had one. Where did you find it? And they said, well, I used Fedora. And we said, well, we don't know where this is. And so it turned out Fedora had added it and it had broken. And so we communicated with the Fedora people recently. And we looked at their patch and we said, hey, this is not that complicated. But you're also doing this in kind of an old way because it's 14 years old. That's why it broke. So we worked with them to upstream the patch. The patch is now upstream. The functionality is now in KDE Plasma. Anybody who wants an open terminal menu item can turn it on if they want. And Fedora now does turn it on. So this was really an example where it was sort of a win-win-win situation, right? Users get more reliable software. KDE gets more features. Distros don't have to have so many patches. And so I think there's a lot of low hanging fruit like this. Many of us have distro hopped quite a bit. And so we're familiar with the patches that go into the distros that we use. I think all of us can just kind of help to ensure that distros are communicating to other people. And maybe finding ways to upstream their work so that it becomes less work for them ultimately. But despite these challenges, I think what this shows is that Plasma is a really mature product. It's a really popular product. It's an excellent vehicle for people to put on their hardware. And those challenges that I've mentioned, they're sort of low hanging fruit. I think we can overcome these challenges without too much trouble. They strike me as very surmountable issues. And I think there's also lots of room for people to help out if they want. One relatively easy way for people to help out is to use the Plasma long term support version. One thing that I know is that a lot of very active Plasma developers are living on Gitmaster, right? We're developing all the time. But if you're not an active Plasma developer, or let's say maybe you're a former Plasma developer who would like to kind of come back in an easy way, use the long term support version. Because this is a hole in our QA. And by using it and finding bugs in it, you don't even have to do any back porting or anything. Just use it and find bugs in it. This is a hugely valuable thing that is a way for people to contribute to that product. And I think all of us can also do a good job of communicating more with our distro of choice. Everybody in this room uses one. And so many of us are a part of a distro. So let's just make sure that we've got that channel of communication now. We want to be talking to each other so that people aren't working in a vacuum and unnecessarily duplicating work. Everything becomes easier when we talk to each other.  I have an initiative that I started earlier this year called the 15 minute bug initiative, which was all about the idea of when you first use Plasma. Let's say you're showing off your KDE software to a friend, right? And you run into tons of little paper cuts here and there. All sorts of tiny issues that you hit in the first 15 minutes. These are usually not major issues. They're just, they're polish issues, right? They're things that make you say, oops, I'm sorry, that's a bug. We're going to fix it. And you don't want to have to say that to your friend when you're showing it off. So when you find little paper cuts in the software like that, just see if you can work on those. It seems small, it seems minor, but these kinds of paper cut issues really add up and they make a difference. So that's the end. I wanted to just say thank you all for coming to my presentation and open it up for some questions now. All right, I see a question back there and another one back there. But just beforehand, maybe we can have a show of hands. Who is a distro person, like actual distro builders? So we got a lot. That's a bunch of distro builders right here in the room. Yeah, so let's all talk. Is there a distro buff? Maybe we should have one. I think I have a different conclusion to the LTS topic than you. A different conclusion to what? What was that? To the LTS topic. Okay. Because distros may like it if you freeze your Plasma version, but I don't think that users like it that much. Like users want new features, want the latest software probably. And your Windows, it doesn't freeze if you buy your left window update. Your Android on your phone will update or should update. But people complain that your Android doesn't update any more because the vendor is shit, right? So maybe we shouldn't have an LTS at all and focus on making the latest Plasma the best version with almost no regression. So that's definitely one option. I'd like to also open this up to some of the distro people in the room because I'm sure they have their own answers. Before we do that, one thing that I want to say first is this is where I think it's really important to be listening to our partners. I mentioned earlier that hardware vendors are close to users, so they're a good gauge of what users want. I think we often think we know what users want, but it's important to listen to the people who are closest. So I would be very interested in knowing the opinions of distro people here, whether that's true or not. Is that what users want or is that not what users want? So maybe we can pass the mic around a little bit. Here's a distro person. In Fedora, we also now maintain, for the last couple of years, we maintain KDE Plasma for enterprise Linux distributions, so REL, CentOS, Almanut Drop, whatever. We actually decided to stop using KDE Plasma LTS for many of the reasons that you had, but also for the additional reason was that every combination we ever got was always wrong. For the frameworks with Plasma, with the apps, it just was impossible to get it to stay working. And so we just changed it to being we, every spring, we will refresh to whatever the latest Plasma we ship for that Fedora release and sync it down to Apple for all enterprise Linux users. So we're effectively creating our own maintenance cycle for this because the one that KDE does is not useful. I understand that there are others that are still continuing the Plasma LTS, but our own users tell us that the Plasma that we provide when we were shipping the LTS version was just not a good experience. So to condense that, would you say that your reason for dropping it is because of deficiencies in implementation and not deficiencies in concept? Yeah, deficiencies in implementation, as you said, with the KDE Plasma LTS, it was only the core Plasma components that were actually life-cycled in that manner. The underlying frameworks and the overlay applications weren't, but also on top of that, the necessary combinations to keep those working. So if we uplifted the frameworks and the applications at different cadences, they broke Plasma in surprising ways. And because that's really the only way to get bug fixes in frameworks or applications, we eventually wound up with a combination that looked like it worked, maybe passed some of the tests, but then applications would have bizarre behaviors and things like that. And people were just unhappy. It sucked for us as distributors because we had to pull all these combinations and figure it out. And it sucked for the users because the applications looked like they worked. And then when you try to activate a pretty good function, like one I remembered was Dolphin from Plasma LTS with KIO, was just KIO for frameworks eventually broke on it because of these kinds of things. Weird side effects and consequences just made it an untenable position to keep doing it. Other guy. Are there other distro people? What I'm interested, I know it doesn't work very well. So I guess the question that I think is more interesting is would it make sense to put more effort into making it work well? Or would it make sense to scrap that effort and reuse the effort towards something else? And so I think this is just a great example of we're listening to distroses really important. If everybody says, well, we use it, but it's not great, you can get rid of it, then okay, that's great, let's get rid of it. But if people really want it, then let's make it work the way people want it to work. Clearly we're well in the, this is more of a comment than a question stage, but that's fine because you asked for a conversation. I did. Are there any other distro people who would like to weigh in? Here's another distro, it looks like Debian to me. The LTS is that they never line up with the distro cycles unless you're lucky. Right. But the concept of LTS in many cases makes sense because at least users of slow moving distros might not want the frequent updates, but it depends on your user. I want frequent updates on my personal systems, on the systems in my, I don't want to fiddle around with upgrades. I don't want them to be changing at all. No visual changes, I know where all the stuff are. And these parts of things just get in the way for that. While you're at home, at work, I need to get stuff done and cannot fiddle around with stuff jumping around. And in some businesses like targeting feed, features, tool systems, for example, where you're active to the segmentation, then stuff moving around in a multi-passion is a bit hard. Thank you for your perspective, that's helpful. I could, do you speak to this discussion? You offer it.  Oh, great. Because beyond the distro perspective, I can offer the end-user perspective. Because at Mercedes-Benz, we have around 5,500 developer laptops running a customized version of Ubuntu with VATLAB. And that's maybe what they customize for, along with adding a bunch of other stuff. And the reason it's even worse for the end-user is that we, of course, use Ubuntu LTS. And the main reason why we use Ubuntu LTS is because we have the capacity to modify it, just not the capacity to do it very regularly, meaning that not only do we use the LTS, but we also trail behind it by two years. And then within that LTS, which is at that point already the outdated LTS, we don't get plasma updates at all. So you arrive at being completely cut off from fixes of any sort. There are some curious exceptions, though. There are some bits in the software that can get updates from a repository that bypasses, for example, widgets. It's that you will find from the KDE store, there are some widgets where people have actually back-ported the widget from a newer plasma to make it available so that you can airlift it into an outdated system. Amazing. And I think we should actually kind of look for some opportunities to do stuff like that. We have a couple of things that are common sources of problems integrating different hardware. For example, like the algorithm that hashes where a display is to fix your multi-screen setup that we have to revisit every plasma release. Maybe there should be in a script that not that hard for the C++ code so we can actually OTA it while setting the entire system. Then there's a couple of things where we could look at actually doing what David suggests, just to take control of the update channel and not rely on the distro in a kind of very specific way with some of the sort of critical bits that can update independently of itself. That's a very interesting perspective. I'm feeling like we need a cross-distro buff to flesh these things out a bit more. There will be a cross-distro buff. I'm sure it's gonna happen. Oh, yeah. We can also talk about installers. Does anybody else have any other questions? There are questions from online. Okay, let's get to some of those. Mention those because the hybrid participants are first-class participants. Remember that. Of course. Antimista asks, what about the configuration management of KDE Plasma? Like coin config framework, libElectra, because apparently their company doesn't like it. Are there plans there? So I don't know about any concrete plans there. I have heard from other people that the way KDE does configuration management throughout our software stack is not ideal from an enterprise perspective. I think there's definitely room for improvement here. That said, I can't remember the last time anybody was specifically approached by an enterprisey person or a distro-y person saying that. So I think it would be very useful to codify exactly what the pain points are. So in case that's something we do wanna address in the future, we're making sure that we actually address it and don't just make something that isn't helpful. I would be interested in hearing more about that. And I think my fellow Plasma devs probably would be as well, but I'm not aware of pain points. That's something that pick up in the talks channel. Second question from online, and then we'll go back to, Neil seems very insistent there. Julius Enriquez asks, wouldn't there be concerns from the EVs endorsed contractors or endorsed consultants if it also provides a channel for direct paid work? I suppose so, in as much as any amount of competition is potentially puts pressure on the one being competed with. I personally don't think that competition is a problem. I think in general it makes people stronger and I believe it makes institutions stronger. I think if KDEV wanted to potentially get into the game of hiring people to do technical work in a way that would explicitly compete with KDE endorsed contractors, I don't actually think that would harm the KDE endorsed contractors as long as they were also doing quality work. And I say this as a person who is currently an employee of an endorsed KDE contractor. So when I say this, I am potentially saying, yes, people can compete for my job and I think there is no problem with this because when all of us have this kind of a fire lit under us, we do better work in general I think. As one of the other KDE endorsed contractors, I'm gonna say, help, help, KDEV, KDEV, KDEV, KDEV, KDEV. So if you ever wanna talk about that list of configuration foibles, I definitely have a long one from a distro site and someone who's tried to do enterprise integration because at my workplace, it doesn't matter in this particular context, but in my workplace, we spent several years trying to put together a mass management at its work station environment and like, oh boy, everything sucked about that. So I have a list for sure about those kinds of things. The other bit that was I think the Debian guy who said the LTS experiences that users might actually like having that, I think even for us when we're shipping KDE Plasma for enterprise Linux users, I think they would definitely prefer for us to ship LTS versions and I would love for the LTS versions to work and have bug fixes and be something I could put my stamp of approval on. So like, if it was actually qualified and validated and like we had LTS cycles for all of the layers, I would happily go back to shipping that for enterprise Linux users because boy, it's not easy shipping the latest Plasma to enterprise Linux. Yeah, that's what I meant when I said that it's sort of an incomplete product. It's a good idea, but it needs a little bit of work to flesh it out as a complete thing. 45 seconds for, sorry, this is the last question. All right. So we have hardware now shipping with KDE Plasma, but for world domination, I think it's not enough having the hardware, but also having the hardware in the store where normal person buys the hardware, right? Right, I think it's really important that people can buy this stuff. I think the other angle which has been discussed earlier is getting apps out there too because nobody uses Plasma for Plasma. Plasma is an environment to run apps and we want these apps to be KDE apps as much as possible so they complement each other, right? We want people to have hardware that's running our software at all levels of the stack. And I think, in general, we're all kind of having a variant of the same conversation about distribution, about how we get our software into people's hands. And I think as long as we're focused on that and pointing in that direction, we're going to succeed. We're going to succeed. Thank you, Nate. Absolutely. Thank you very much. Thank you for your time, everybody. We've got five minutes left.


Harnising science, technology, and innovation is key to ending poverty and hunger. Young farmers in Rwanda are using mobile phone applications developed by AFO. They say the technology is helping them transform subsistence farming into market-oriented agriculture. The mobile applications support better production and better nutrition. Rwandan farmers are using them for information on trading and feeding their livestock, production, conservation and the consumption of nutritious foods and the weather and the crop calendar. The farmers are using them for information on the market-oriented agriculture. They are using them for information on the market-oriented agriculture. The farmers are using them for information on the market-oriented agriculture. More than 70% of Rwandans are involved in agriculture. They need innovative ways to get more from their labor. The solution is science and technology.


I love to walk around Salford because when I walk around Salford, it gives me peace of mind. When I go to other cities like London or even whenever I come back, I feel that I'm back home.  Regardless of your background, regardless of your race, regardless of who you are, they welcome everybody and they help everybody. I love Salford. Salford is a beautiful place. One post-to-experience I had in Salford was people helping me when I needed help. They didn't see my culture, they didn't see my nationality, they didn't see my colour. What they saw is that I needed help and the people were ready to help me. I'm not thinking that I'm the outsider. I'm more part of the community, so doing things together. You may know your refugee in general, like any kind of... It's difficult. What's your general understanding of refugees? Refugees. I think we have to help people, that's my view, because you don't know people's story. We're welcoming a refugee to come into the country. Somebody who wants to claim refuge needs somewhere to stay or be. Refugees are just victims of war. One thing I would say to Salford would be to say thank you for giving us some truly. Your past experience don't really matter. You should focus on achieving whatever you want to achieve. Refugee Week is about internationally to take that time to think about refugees. What is it like to be a refugee? And what do you know about refugees?


I thought it was a great experience for the boys and for myself also. It's very hard to get to the Nationals. I thought they played pretty good. I don't think they played as good as they can, but it's a great experience because they're young and we can build on this. They want to go back. Even the freshmen said it when we flew in and landed, they want to go back. Our key to success is going to be able to put two rounds together. One boy might do one round, one day real good, then the next day he doesn't. And that's the key to success. That's why we do two-day tournaments. We've got to be able to do two days in a row outstanding scores. No doubt about it, September comes quick, but we're just going to focus on the mental part of the game. If we have a bad hole, we've got to learn to let it go, and that's hard. I just thought it was a great season. I thought it was a terrific season from September to the Nationals, and I'm just hoping we build on it for next year. We would have liked to make the cut, but one has to remember there's only 40-some schools there in the country. We were one of those 40-some. That's pretty special because there's a lot of boys playing golf in college that do not get the opportunity to go to the Nationals and experience what we did.


Thank you, Stan. OK, with Mary Carr's The Liars Club, we're going to round out our discussion of female child boards, which is going to bring back the theme of family, humanities, family relationships, and particularly those relationships between mothers and daughters, because those seem to have an intense connection to how female identity gets formed. Glenn Chamberlain, who teaches writing at Montana State University, and is the author of her own short story collection, Conjugations of the Bird to Be, will be from Carr's No More. I left it on for a minute. Two bad things jumpstarted my parents into an evil stretch. Drinking and fighting. I suspect if daddy had ever talked about such things, he might have said, mother's drinking and mulligrummen drove him out of the house. Mother said that daddy just bailed out during grandma's cancer, and after the funeral, which absent said her to drink. I don't know who were what to blame. Nor can I figure what exactly led to mother's near-fable attack of nervous. Maybe drinking caused her to go crazy, or maybe the craziness was just sort of standing in line to happen, and the drinking actually staked it off for a while. All I know is that first mother was drinking, then she and daddy were fighting worse than ever, and finally they were hauling her away in leather four-point restraints. Drinking was not a totally new hobby in our house. Daddy always drank, but with few ill effects. Every now and then it come home lurching around like a train conductor, and I remember a few times dancing around the kitchen in my nightgown with my bare feet on the steel-toed boots, over the sliding around in the yummy plot of whiskey he was drinking. That is it, really. Mother was a good story. She'd sat down at her end when grandma came home to die, out of necessity, I guess, and she picked it up the night she got back from the funeral while we were all rubbing on it. She'd said, could I fetch her some gala wine and summon up from under the China cabinet? A combination she liked in a sparkling burgundy. And I said, sure, then I walked as slow and miserably as any mule through any cotton row in order to assemble that drink. At some point after that, the wine made her hang her for alcohol with a high test variety. Then she dialed up the liquor store to order vodka by the case, and she reached down the biggest jelly glass she could find and recovered. There was no me for ice or a shot glass or even her mood for those weird baby Dunions people would play at Gibson's make such a fuss about. The vodka was sloshed out in five-figured units. Oddly enough, she hated the taste so much that she literally had to hold her nose to swallow the first one like a kid taking medicine.  The big game for me once she'd started drinking was to watch her engage which way her mood was running. My sister, Lisha, didn't have a stomach for watching her that close, so she put herself in charge of counting mother's drinks. She kept a long running table above the number of drinks poured and the approximate number of ounces consumed.  Somehow, having exact numbers reassured Lisha no end. Even so, she just never knew what would happen once mother un-forked that bottle. The difference between two drinks and 10 might not even show. So on my technical-minded sister counted, I myself zeroed in on the lines of mother's face and the timber of her voice in hopes of dividing the degree of nervous she might get to.  If she's feeling high-minded, for example, she'd play opera. The opera had a big downside, though. It could lead mother straight into the worst sort of crime chain. Some Italians, a grand, would start catarwelling how she lived for art and some tubercular female would rasp out. In Italian, of course, come to Paris and be my brother to her own boyfriend. And mother would go beepy. Her face would settle into a series of faint lines you normally didn't see on her.  And we cared who's fault it was instead of just wanting it to stop. Those were the opera nights. The jazz nights were a little worse. And worst of all, the nights when daddy was home and mother put on the blues. My birthday was such a night. I should have known I was coming.  I was also waiting for daddy. I've been sitting on the back step the better part of the afternoon holding back the floodgated talk just for him. When he finally showed, I started to prattle about how I'd gone with mother and Lisa that morning to buy my birthday dress. It was black crave, the first black dress I'd own. Just sitting in the movie and he'd feel like a movie star, I told him.    Lisa took one look and said, where's the funeral? But when I spun around in a mother fight, I looked like the ballet dancer in my Japanese music box. Even though cost $63, she rolled her eyes and said, what the hell when she ended the sales lady or charge plate? Not 10 minutes later, she'd also bought Lisa a chemistry set from the toy department. On the way home, we'd stopped for a shimper and a lot of Al's seafood, where mother made the quick work of two God-comartinis to celebrate. When I finished telling him, daddy said the dress looked pretty while he wiped his feet. He wasn't even looking my way. Then he slipped into the house.  Nobody said it was secret, but he wasn't drawing any pay, a fact he harped on more or less constantly.  Didn't take a rocket scientist to figure out that what mother and Lisa and I had done that, they was crossed someone's open mind between good times and bad day here. I also knew that the black dress crossed another line between an outfit and a get up. Later, after I chained out of the thing and was back in my blue jeans, I was on the road and dressing Barbie for the umpteen time when my parents' man voices floated back. Lisa was next to me, trying to pin her Barbie straw colored hair into a French twist with a bobby pin. I couldn't make out the words, but it just was plain. Mother roared and slammed kitchen covers. The screen banging signal daddy's walking out and his boots scuffed down the steps. The screen bang began and I heard the glass lasagna and casserole shattered on the patio after him.  Lisa just wound that French twist into a tight coil and said, take 10, reel 1,000, happy God day and birthday. Out in the kitchen, mother stood at the sink, holding both her wrists under running water.  She wants some aspirin, she said to me and I said, no thanks.  She took the German chocolate cake from the top of the fridge. You can have this for supper, she said. I told mother that she could take the dress back. It was no big deal. No I can't, she said. And she started planting candles in the muddy top of the cave. Forget about the dress for Christ's sake, she said. I went outside making me wear on the glass and spluttered lasagna and into the garage where I could at first see the ruby end of daddy's cigarette and nothing else. Then I could make out his white t-shirt and a lint of the bottle and lift it to his lips. Daddy, I said, just go in the house, go in the house, pokey.  I don't remember our family driving across the Orange Bridge to get to the Bridge City Cafe that evening. Nor do I remember eating the barbecue crabs. I don't remember how much mother drank in that Bayou Cafe where you could walk to the end of the dock and toss your leftover hushpuppies to hungry alligators. My memory comes back into focus when we're drawing close to the Orange Bridge on the way home. From my spot in the backseat, I can see a sliver of daddy's profile, his hot, big nose and square jaw. I wanna see mother's face to see which way her mother's here feet. But I'm staring at the back of her head in this short, wild tango of all green curls. All at once the car rears back away, of course it does underneath you if it shies away from a small, skittery animal and we're climbing the bridge. The steel webbing of the road sets the tires humming. The night streams over the car and fans away like black water. They can almost feel a long wake of jarred drag doubt behind us. Lisa rolls down the window. Her hair is frowning loose from its French twist.  I muster all my courage to look out at the long drop-down that makes my stomach blurge. The steel girders jerk by in fasticato in the distance I can see two flaming refinery towers. They make a weird, oz-like glow that bleeds at the whole bottom part of the sky. Out beyond the river are marshes and bodies, a black, large barge moves slow under the bridge. Mother is shouting, shouting she whist herself dead before she'd ever married dad. She wished she'd been struck by lightning on this very bridge before she crossed over into that goddamn bog.  I feel over for Lisa's hand and it's as cold then it's a cold fist not as shut. Then out of the darkness I see mother's white hands rising like they were powered and lit from inside. Like all the light in the world has been poured out to shape those hands. See, she's reaching over for the steering wheel, walking on to it with her knuckles tight. The car jumps to the side and skips up onto the sidewalk. She's trying to take us over the edge. There's no doubt this time. I mash my eyes closed and Lisa heaves herself over on top of me and I can't see anything but I can feel the car squirt while mother and daddy wrestle for the wheel. Then there's a loud noise in the front seat like a branch cracking after which the car goes steady again. I can almost feel the tires click back in between the yellow lines. When Lisa and I praying from the back seat we see that amazingly enough the car is off the bridge and back on the road, safe. Mother's line slaps out against her window where daddy has softer to get control of her. When she wakes up we'll be pulling into our driveway. She'll rake her fingernails all the way down daddy's cheek drawing deep blood so he looks for days like something Lumpard's fault has gone out. The kids playing night tag will stop their game together and watch us spill out of the car. The mother's still trying to claw daddy, daddy holding a wrist in his iron hands. At some point Joe Dillard will sidle over to ask me what they're fighting about and his brother Jr. and his wise-ass voice will crack hollow fighting over a bottle. Then mother breaks loose from daddy to stand for a foot at the group of kids and they scatter like buckshot into their own dark backwards. And that's it. That's what I remember about my birthday.


So my name is Shannon Cohen. I'm a product manager at Pivotal, responsible for routing and load balancing in Cloud Foundry. I'm joined today by Aaron Hurley, who's our lead engineer on the routing team. And we're going to share with you some of the work that we've been doing over the last year integrating Istio and Envoy with Cloud Foundry, what we're currently working on, and where we see it progressing. So I'm going to start with a couple of basics about the problems that Istio solves. And then we'll get into the nitty-gritty of integrations and specific features that we're rolling out in Cloud Foundry. So the domain space of problems that Istio attempts to address is quite broad, but it is scoped to how microservices are consumed by clients, how microservices interact with one another and consume their dependencies. So this diagram shows some of the concerns in that domain space. You've got services of disparate, written in different frameworks. They have to manage multiple versions of them. You have to manage how they're consumed by clients and how they consume external dependencies. And the challenge with this is that there's many things which developers of each of those microservices have to be concerned with. And it's the same common problems that every developer needs to be concerned with, things like load balancing and rate limiting and retries and timeouts, very standard communication patterns. Operators are also concerned with security concerns like is data in flight encrypted? How are requests authenticated and authorized? How do I manage security policy across a large portfolio of these applications? And how do I have visibility into the traffic patterns and whether the security policies being enforced are the appropriate ones? So a common way that these concerns are being addressed today is that each application developer is less to solve them themselves. And all application developers solve them over and over and over and across large portfolios of applications. They're not always solved the same way. It's difficult to have visibility into whether these are solved in a consistent way. Here the colored boxes represent either custom code or libraries that application developers are leveraging to solve these problems. As I mentioned, a problem with this pattern is consistency. A lot of folks who are leveraging Cloud Foundry are doing so to enable large teams of developers, many developers and many applications. And so managing that consistency or lack thereof of how these problems are solved is a challenge. It's very hard to have visibility into, for example, across all of these applications have they updated their dependencies to address a CVE that's been rolled out. It's also a burden on application developers to repeat these solutions over and over when they could be focused on value added business logic. An alternative approach is to use an out of process proxy or side car and a centralized configuration plane or control plane to manage them all. Istio and Envoy are examples of what we call a service mesh or service mesh describes as pattern of side cars and control planes. And a service mesh helps address some of the concerns that or troubles with the custom code pattern in that it provides the operators with a way of keeping all of those solutions up to date. The platform operator is responsible for updating the side cars and then app developers are focused on their business logic code. It's a polyglot solution because the proxies responsible for these patterns are out of process. It can be agnostic of the framework that the applications are written in. Policies can be applied at scale because you have centralized management of all the side cars and the policies that the side cars are enforcing. Application developers don't have to be responsible for as much security because a security admin can be confident that when applying a security policy across a service mesh that it's enforced at all points. And the user experience for applying these policies is consistent for all personas involved whether it's your security admins or your platform operators or the application developers. So as I mentioned, SDO is a service mesh and we like SDO because it has a very vibrant open source community. It is platform agnostic. Like the success we've seen with the Kubernetes project, SDO is gaining wide adoption. There's consistent maintenance and innovation happening from Google, IBM, Lyft and more recently Pivotal. Envoy has already been proven in production. There's an emphasis in SDO on extensibility and plugability and it addresses some of the concerns that I mentioned around traffic management, security and observability. It's another view of the relationship between SDO and the data plane. The three data planes that we're concerned with are Ingress, represented here by the red arrows. Service to service represented by green, otherwise known as east-west and egress. SDO has three primary components. Pilots responsible for applying configuration across the sidecars. Mixer is responsible for receiving telemetry and making additional policy checks in a pluggable way so you can have multiple mixer back ends which are providing additional policy engines. And Citadel which is responsible for distributing TLS certificates. When you look at the data flow diagrams here, there's a number of components involved and this is the nature of requests being made through many intermediating components. But when you think about how to manage traffic management and security policies in a service mesh, the view becomes much more simple because you're only having to control the sidecars. So it's like having a remote agent in every application with which you can use to as a security admin or platform operator enforce global policies or enable application developers to apply their own policies within those guardrails. One reason why we chose SDO to integrate in Cloud Foundry was so that we could deliver, speaking selfishly from the Cloud Foundry routing team, deliver on use cases that we've heard from Cloud Foundry operators time and time and again more quickly. We're one team. We have our team sizes grown from four to eight and fluctuates and being able to leverage this large community of folks who are innovating on the same use cases that we've heard from is a big advantage. And so we've in the last year, as we'll describe, have integrated or begun integration of SDO with Cloud Foundry and participated in that community. Erin will talk about some of the contributions we've made. So a bit about what we've done already and where we're going. As some of you may be aware, Cloud Foundry already has installed an Envoy proxy in every container. But that proxy is currently statically configured and fulfilling one small purpose. It's actually a very valuable one. It is terminating TLS from the go routers for ingress traffic and also through identity in the certificates guaranteeing against any misrouting due to a stale routing table in the go routers that may occur during a failure in the control plane. Of course, we'd like to eventually have those sidecars be dynamically configured and I'll get to that in a moment. What the team is currently working on is a analogous and eventual replacement for go routers and TCP routers, leveraging a ingress perimeter Envoy that is dynamically configured by SDO Pilot. And in order to accomplish that, we've had to do some fundamental integrations between Cloud Foundry and Pilot. Erin will talk about some technical details, but the gist of it is that we've needed to sync the idea of routes and applications and the IPs and ports for application instances from Cloud Foundry to SDO so that the perimeter or ingress envoys have knowledge or this route mapping between a URL and back in IPs and ports as they change as the container orchestrator moves containers around. So we've done that and we've done those fundamental integrations. And in addition, we've targeted some initial new capability that we can bring to Cloud Foundry based on SDO Envoy and the one that we've chosen based on feedback from many users has been supported for traffic splitting. This will enable an application developer interested in rolling out a new version of their application to control some percentage of traffic sent to a new version. In a demo you'll see later that we can show how, for example, an app developer can send 10% to version 2 and then turn that knob, increase the percentages and shift traffic over time and finally cut over. So we've done that integration. We'll show you a demo of that later for that feature. And we're currently working on scaling this integration. SDO itself has been tested at Kubernetes scale. This is not yet Cloud Foundry scale to give you approximate comparisons. A Kubernetes cluster has been tested at about approximately 10,000 containers. A Cloud Foundry cluster supports 250,000 containers. So there's a significant difference in scale for a single cluster there. We have tested that our integration supports 10,000. But in the interest of, as we've done historically, getting production mileage on Cloud Foundry innovations, we target a scale of a production environment which we have access to. Pivotal manages something called Pivotal Web Services. That production environment serves production customers and operates currently at about 20,000 routes and 20,000 apps. So that's our current scale target. So we're iteratively working towards that target. We've already accomplished an integration of 10,000. And that's what we're currently working on. Just recently, the CF Container Networking Team has begun the initial work to eventually enable east-west traffic, egress traffic from a container to transit the sidecar and dynamically configuring that sidecar for the purpose of eventually offering features like client-side load balancing and control of retries and timeouts and all of that. But there's some fundamental work that needs to be done first, packet capture of egress, sending that through to Envoy Vips and eventually the dynamic configuration of those Envoy's. So once we have these fundamental ingressions in place, we're excited to roll out to Cloud Foundry users the capabilities that Istio offers. One of the top asks we hear from users is support for mutual authentication or MTLS between services so that encryption everywhere in the service mesh, sorry, data is encrypted everywhere in the service mesh. This will enable us also to offer token validation for authentication and authorization, support for rate limiting, support for new protocols like HTTP2. We hope that Envoy will soon support UDP, which will I think cover many, many use cases, retries timeouts, redirects and rewrites and a great deal of flexibility in route matching. Folks have asked for regular expressions instead of just prefixes that Cloud Foundry supports already. We see the Istio-based service that we're developing as not just being responsible for ingress, but also service to service and egress as I mentioned. And we're also participating in conversations with Istio community on how Istio can facilitate application of these traffic management and security policies not just within a Cloud Foundry cluster, but between Cloud Foundry clusters, between Cloud Foundry and Kubernetes. The Istio community does have currently recommended patterns for a single Istio governing multiple clusters, but not yet for how these policies can be managed across clusters which are in across geographic regions or across cloud providers. And those discussions currently are in a conceptual phase. But recently a couple of proposals came out last week that were a good read. And if you're a member of or considering joining the Dev mailing list at recommending reviewing those proposals and participating in that conversation. A point about rollout plan. The new Istio-based routing control plane is being rolled out in parallel. There is no, absolutely no deprecation timeline or sunset timeline for the existing go routers and TCP routers. We know many folks are getting great outcomes of those production grade services. The envoy in Istio control plane is being brought up in parallel and we recommend that for app developers and operators who want to leverage the new capabilities that they would do so by using a different DNS name. Eventually once we reach parity, we would identify a deprecation timeline for the go routers and TCP routers and we're very much looking forward to having a single proxy that supports those use cases. We mean to do the work necessary to support that scale. Okay, here's a quick diagram of that parallel control plane, a data plane. All right, with that I'm going to turn it over to Aaron. Thank you. All right, thanks Shannon. So Shannon touched on a lot of the product value that we're getting out of our new routing subsystem. I'm going to talk about some of the implementation details, engineering benefits and then as well as our experience with the Istio community so far. I'm going to try to get through this quickly. So as you can see in the bottom left-hand corner here, we have an envoy which is configured in the gateway mode to the edge of the cloud. The ingress traffic will go through this envoy. This envoy receives its configuration from Pilot through the Envoy V2 XDS API. So this is a bi-directional GRPC stream. Pilot itself receives its config information from Co-Pilot which is a component that the routing team has created. And you can see here that Co-Pilot is really responsible for talking to Cloud Controller and Diego. And it takes the actual LRP information and maps that to the routes so that we can provide all of the Cloud Foundry route information into Istio config so that Pilot can read it. You can see that the solid lines are event-based transmissions. These are like CRUD actions. Whereas the dotted lines are the bulk synchronous actions. And so these happen every 30 or 60 seconds or so. And this guarantees that if we do happen to miss any one-time event-based transmissions, that we'll still have any eventually consistent model which has served us well so far. So some of the engineering benefits of the new routing subsystem is that it's a simplified routing tier within Cloud Foundry. So instead of having go router and TCP router and routing API and that, we now only have Envoy and then Pilot and Co-Pilot. So it's just we've converged on one control plane on one router and we expect it to be able to handle everything. Another added benefit is the resiliency of each of these components. So both Envoy and Pilot have some built-in resiliency. Resiliency is to like a network partition if it loses contact to, like if Envoy loses contact to Pilot, there's some built-in resiliency as to how long it should keep its routes in place. And these are all configurable so we can tweak as needed. Another benefit to really the entire Cloud Foundry system is the fact that we're able to clean up the container orchestration layer. And we can do this because currently Diego has some route emitters that are co-located on each of the cells and these are responsible for emitting the route registration messages. As I showed in the previous slide, we're now polling BBS which holds all of the actual state of the world so that piece of the Diego cell reaching back out to NAT will no longer be necessary and it just cleans up the abstraction across the board. This provides some of the initial groundwork towards a service mesh to gain all the capabilities that Shannon mentioned. And maybe most excitingly is the fact that we hope to better enable all the other teams for future integration and extensions of STO and a way to get other teams to accelerate on delivering some of their features. As Shannon mentioned, our current focus is scaling, a target of 20,000 apps and routes. We've been tackling this in an incremental process, basically scaling till it breaks, finding what breaks, fix it and repeat. It's been a pretty fun track of work so far. Some of the early things were obvious inefficiencies in our code but then we also found some inefficiencies in pilot itself and contributed some bug fixes to get scaling up in pilot itself. So we've learned that through our CI and the test that we run that we are able to identify some of these scaling issues more transparently than even the community might as they don't quite have it built into their CI yet. They do run them daily but we find, you know, a red box in CI, a much easier thing to notice. And then currently we're around 11,000 so we're on our way. So as Shannon mentioned, we've been working with STO for about a year or so now and we've learned a number of things. Probably the biggest thing is that it's a fast moving project. STO just released its 1.0 release a few months ago so you can imagine up until then there are things constantly changing and staying on top of those changes has been tricky. We learned that a lot of context additionally is needed to understand not just the code base but also, you know, the intentions of the entire platform itself. So what we learned was rather than our standard pair rotation strategy that we take, we actually dedicated one pair of our team to work solely on STO community focus work. And this was able to get us the more like day to day knowledge of how this community works and build up some relationships and some goodwill with the community so that we were able to further our understanding of STO. And one way that we saw an opportunity to do this was the fact that STO is largely built with Kubernetes in mind and this is largely reflected in the code. So since STO is intended to be platform agnostic, we saw this as an opportunity to provide some pull requests to generalize a lot of the code. Some of the other things we learned was the way communication in the community works is slightly differently and what we have found best is just to be as open and transparent early. So creating a GitHub issue, gathering comments, using that as an audit trail and then providing proposals for comments has worked best for us. And then last thing to mention here is we do have a few like blessed STO members on the routing team now and so this comes with some further capabilities within the project itself but also gives Cloud Foundry a bit more representation into the community. So one big piece of work that we worked on is the mesh config API and protocol. So this was really a decomposition of pilot, so an incremental refactor and the goals of this was to make it easier to test pilot. It resulted in a bit more modular and more well-defined boundaries of the code itself. We were able to rip out some of the more platform-specific code as we follow a general API and protocol now. This is a well-defined and accepted API so that all folks that want to provide a server know what they need to provide and can expect the same like responses. And then lastly, as a result of the MCP work, it's also easier to extend for future tools instead of having logic live inside of pilot, these are now moved out to the MCP server and so the server just has to communicate all of its config over the APIs. And so it looks something like this. So previously up top you can see that there's a client for Kubernetes and a client for co-pilot. These both reached out to different servers and they had different APIs. After the MCP work is all completed, it will look something more similar to the bottom where there's a generic MCP client and then some other servers that follow the MCP API. For example, co-pilot for Cloud Foundry or galley for Kubernetes. Now I'll do a quick demo of our weighted routing functionality so far and this is going to follow a canary rollout of doing a standard v1 to v2 and switching traffic from 0 to 10% to 50 then 100. So first, I'm just kind of showing that there's two apps. They're very simple at v1 and at v2 and they're currently only app v1 is mapped to a host app.istio. And here on the bottom is just a little curl loop so I'm curling 20 times and the currently highlighting v1 so you can see that 100% of the traffic is being sent to v1. What I just did here was I added a weight of 9 to the existing route mapping and maybe something I should pause this for a real quick second is that right now this current demo is weight-based, integer weight-based and so it will essentially take the weight you assigned this route mapping along with a sum of all the others and that's how we'll determine the percentages. We actually plan to move to a percentage-based routing once we get some time with the CAPI team to work on the v3 routes object. So what's in this demo may slightly differ from what we have in the future. So I did a preemptive increase of the existing route mapping from 1 to 9. It still receives 100% but this will make sense once I map v2 to the same route so it gets the default mapping of 1 and then so we would expect that the v2 instance would get 10% of the traffic. So right here I'm just quickly taking a look at the route mapping's object. Even recorded demos have some unnecessary steps but this is all just a show that the route mapping itself by default will have this property and there it is. So now when we do this same curl you can see that there are some v2s that are starting to pop up. So this example shows that 2 out of the 20 so that's 10% so that worked out as we had hoped. Now I'm just going to update the original v1 mapping and move that back down to 1. So now each instance has a weight of 1 meaning we should get 50% of the traffic split between both of them. And it takes a little bit of time to propagate but you can see that it starts kicking in halfway through. And then so kind of the last step from here is as you're monitoring your app and 50% of the traffic going to v2, everything seems great. Let's just finish the cut over and un-map the original mapping to the v1 instance. And then from here do one last validation, make sure traffic's going where we expect it to go. And we can see that it's all now going to v2. Alright. So here's a list of resources that we've referenced in the talk. The slides are uploaded so feel free to take a look. And we want to hear from you. I just showed you one example and using API endpoints is not the best but we're curious to hear what are your thoughts as to what the provided UX should be. Should it be something similar to CF or would you prefer to actually use some of the Istio native configs? Additionally, what sort of problems could Istio address for you or are there things that you're looking for? We would love to hear your ideas there. And then lastly we have a routing and networking office hours today at 350. There's also an Istio birds of a feather session at 530 and you can always reach us in the routing or Istio channel in Cloud Foundry Slack. And that is everything.