Welcome, welcome in the room. So this session, we're having Thomas. Thomas will talk about KMU parameters jungle. Thomas, the stage is yours. Thank you. So hello and welcome to my talk. My name is Thomas Hoot. I'm working for Red Hat and I'm a QMU developer since more than five years now already. So, working with QMU since a couple of years already, of course, the first question is, is there a need for a guide through the QMU parameter jungle? I'd say, yes, QMU is a very big project. It supports a lot of guest devices. It supports a lot of host backends. It's been in development since approximately 15 years now. So there's a lot of legacy code in there and of course a lot of legacy command line parameters. And if you just have a look at the help output of QMU, it already has more than 450 lines of code, 450 lines. And especially I regularly see people asking on the mailing list and on IRC about how do I start QMU to get this and that done. And so I thought it would be a good idea to maybe explain some things. One thing in advance, if you just want an easier way to run a virtual machine, try to use libvert, word manager, OpenStack or any other upper layer tools. Instead, they can make your life much easier. But if you're interested in running QMU directly, this is hopefully the right talk for you here. So generally know how, I hope everybody knows what QMU is, is anybody in the room here who does not have a clue about QMU at all? Okay, that looks good. Whoever tried to run QMU directly already? Okay, and whoever wanted, how do I use these parameters to get the things done that I wanted to do? Okay, so pretty much everybody who tried to run QMU also had some problems, is that already? Okay, so let's get started with some general know-how. First thing to notice is that QMU does not distinguish between single dash parameters and double dash parameters like most other GNU tools are doing it. So dash help is exactly the same as dash dash help. Then you've got to be aware that QMU is running the guest with a set of default devices. So each normal guest has a network interface card, for example, a VGA card. And sometimes there are cases you do not want this. You'd rather want to start with a blank board instead. And in this case, you should use the dash no defaults option. And this will disable almost all of the default devices. And there's also a way to suppress just certain default devices. For example, dash VGA non or dash net non to disable the VGA card or the network interface card. Getting help about the command line. Of course, there's a man page and we also have a pretty long HTML help text. For QMU, which explains most of the thing. But if you're just sitting at the shell and want to get some help about the parameters, you of course can run it with dash help to get a rough list. But the important thing to know is that you can also run a lot of parameters with string help too. So for example, if you run QMU with dash xl help, it will print your list of available accelerators like KVM, XAM, Hexam in the recent QMU releases. And this is especially helpful for the dash device parameter. Dash device is the parameter that you use to add an additional device to the gas. So additional hardware like network card. And so if you run dash device hub, QMU will print out a nice list of available devices for the gas. And if you've chosen one of the devices that you want to add, you can also run a dash device parameter with the device name comma help and it will print you out a list of parameters that you can use to configure the device. So here's an example for the E1000. The E1000 is a network card. And I run QMU with dash device E1000 comma hub and I get a nice list of parameters that I can use to configure the network card here. So for example, a PCI slot address or I can set the MAC address of the network card. And once I've picked the parameters that I want to set, I can run QMU with dash device E1000 MAC equals the MAC address comma address equals the PCI slot and function. Any questions? So the question was that address here should be an int 32. Actually, that's a good question. Yeah, maybe it's just, I never noticed this. Yeah, you're right, it should be an integer but actually you can really set PCI slot and a function number. So it's slot dot function number in this case. I've got to look it up. That's a good question. Thanks. Next thing that you should really be aware of is that a QMU device consists of two parts. So at one side there's the emulated guest hardware like the network card itself and the other part is the host backend. So the hardware in the guest has somehow to interact with the outside and this is the host backend. For example, an E1000 network card could be attached to a tap host network via a bridge to the outside. I explicitly say it here because a lot of people get this wrong. They just think I want to run QMU and I want a network card so there must be one parameter that gives me everything. But that's often not the case especially if you want to have full control over the system. If you want to do it correctly you've got to normally specify both dash device to configure the guest side and another parameter to configure the host side. And this leads us to the next slide. You also get to be aware that there are different classes of QMU parameters. So the first class you could say that the convenience parameters and these convenience parameters often give you both in one parameter. So for example, dash CD-ROM and then you can give an ESO file image name will add a CD-ROM device hardware to the guest side but it will also configure the host backend and then the host backend in this case is just a block layer module that reads the ESO image on your host. Then there are the architected options and these give you now the full control over the QMU internals and here normally you have to specify both sides separately. So for example, to configure a CD-ROM drive you would say dash device IDE CD for configuring the guest hardware and to configure the host backend you would use block depth raw and then you can also specify the ESO image on your host somewhere. Yeah, there's a question. I mentioned that a minute ago. Oh, the question is whether this dash block depth is a typo or whether it's on purpose. So QMU does not distinguish between single dash and double dash. So in this case I was just lazy because the line got very long and I do not want to reach it into the jungle leaves here. But yes, it's a little bit ugly that QMU doesn't distinguish this but once you introduced it you have to stay compatible with all the versions so you do not want to switch. Yeah, third category are simply legacy options. So as I mentioned, QMU is a very, very old project, it was 15 years already. So there are a lot of options that have been introduced in the past but simply do not match the current internals of QMU anymore. But the QMU project normally tries to stay as compatible as possible with all the releases. So there are a lot of old options around. And for example, for the CD-ROM example you could for example use dash drive IF for interface equals IDE comma media equals CD-ROM and then you can also specify the iso file name on your host. So that was just the introduction. Now let's look into the different classes of devices a little bit closer. Let's start with character devices and character devices, you configure the host back end with the dash card of parameter and you can list the available host back ends with dash card of help. So for example, I can map a character device to a file on my host, I can map it to a socket, standard IO pipe, GTY, there are lots of more options if you're interested, just have a look at the QMU documentation. So for example, to redirect a serial port of the guest to a file on the host, you could run QMU. In this case, I started with no defaults because I want to avoid that QMU configures a default serial port and I also do not want a VGA card in this case, I explain why. And then you say dash card of file and you have to give it an ID, identification string in this case, C1 and this path equals the file name, I say I tell QMU which file to use on the host file system. The guest hardware is configured with dash device, either serial is a serial port on the isa bus and then I say comma card of equals and here's now the ID to tell QMU which character backend should be used to connect the serial port to. And actually if you run this command with a recent version of QMU, you will even see something in the file already because the recent version of QMU, they ship with a guest firmware that can redirect its output to the serial port if no VGA card is available. So since I started QMU with no defaults here, you would see the output of the, it's called CBIOS in the text which is quite neat. So for character devices there are also some legacy or you could also say convenience options. Sometimes you cannot really distinguish between legacy and convenience because, yeah, because the old options are often way more easier or way easier to use than the options that give you full control. So some people say they are legacy, some people say they are much easier to use, we should keep them forever. And in this case, there's for example dash serial and dash parallel for configuring serial and parallel ports and these also give you, or these also configure both the host backend and the guest hardware in one go. And I sometimes use dash serial because it's really convenient. For example, you can use it if you want to emulate an embedded power PC or ARM board which outputs its, or which prints its output through serial part and you have to run it with no defaults for some reason. You can use dash serial mon, called standard IO and this is a special mode that multiplexes the QM, the so-called QMU HMP monitor with the serial output. And you can then toggle between the serial output and the monitor with the keyboard shortcut control AC. I'll try to show it. So this is the command line here. I'm using embedded power PC board, run it with no graphics because I'm a console guy, I do not want to fancy GTK window. For some reason I want to run it with no defaults and then I say serial mon standard IO. And here it is. So you see the serial output of the guest. In this case it's the U-boot firmware. And I'm talking here to the U-boot. Can for example run the help text and I get the U-boot help. And at one point in time I say, oh I want to talk to QMU instead. So I press control A, C, and you end up in the QMU monitor. If you want to type help again, you get the help output of the QMU monitor instead. And there you can do things like a system reset for example and you see my power PC guest just started again. So of course I can also quit the system. Okay, that's all for character devices. Let's have a look at network devices. So modern network devices should be configured with the so-called dash net def command to configure the host back end side.  And the type can be for example a user for a fully emulated network stack. Which is quite nice because it does not require any privileges or a special bridge set up on the host. But it's a completely network address translated network. So by default you cannot reach the guest from the outsides. You have to do things like port forwarding. And of course if your TCP traffic has problems with network address translation then it's also not that good. So for having more control over the network you normally want to use the TAP device which gives you real network access via a bridge. And there are also some other options like for example socket which can be used to tunnel all the network traffic to another instance of QMU. If you just want to hook up to virtual machines for example. The example looks somewhat similar to the character devices here. So I specified a host back end. In this case a user network with an ID and one. And since the user back end is a fully emulated network QMU also provides an emulated DHCP server here. And you can for example configure the DHCP server with a parameter like DHCP start and then the starting address of the IP addresses that should be assigned to the guest. The guest hardware is configured with flash device again. In this case I'm not using the E1000 network card. I'm using the word I own network card. And I use comma net def equals and here the ID of the back end to tell QMU which host back end it should connect the guest hardware to. Of course there's also a legacy network command and this is the dash net command. And the dash net command can be used to configure both the guest hardware and the host back end. And but not in one line you have to specify twice. So with dash net nick for network and interface card comma model equals the type for example here when E1000 you configure the guest hardware and the host back end part looks similar to the dash net def on the previous slide. So the dash net user configures user back end for this. The thing is that you also have to connect these two parameters together and this is done via the so called VLAN equals number option. In this case I said VLAN equals zero which uses the VLAN is number zero. Zero is default so you can omit VLAN equals zero if you just want to use that one. You just have to specify it if you want to use another number. Now the confusing part. VLAN is not what you think of when you hear the term VLAN. Normally VLAN is network traffic encapsulated in some other network packets not in QMU speak. In QMU land a VLAN is you could think of a emulated hub. So just replace the term VLAN with hub in your mind and then it's pretty much what you get. You see the dash net option is quite confusing so I recommend to use dash net def if possible. You just have to be aware that there's still one case where you need dash net and this is if you want to run and normally just try to use dash net def instead. So to really give you a vision of what I'm talking about I've drawn some nice pictures here. So dash net def gives you a real one-to-one connection between your guest hardware and your host backend. For example here I'm one to run a guest with two network cards and that's also with two host backends and the first one is an E1000 device connected to a user net def so connected via the ID and the second one is a virtual net connected to a tap host backend with N2 and in this case you really get straight connection between your E1000 and the user and the virtual net to the tap just that's normally what you want. Now if you try to do the same and I often see that on IRC and on the mailing list if you try to use the net command like you can also see it in some very old examples in the internet on some third party pages. People often try to use dash net, nick, model, something, dash net user and then the second network connection they just do it again, dash net, nick, model in this case word IO, dash net, tap and in this case I omitted the VLAN equals number option on purpose because this was what people often get wrong. In this case you get a hub in between so everything is connected to an emulated hub so the traffic of the E1000 network card is also visible on the word IO network, word IO network card for example and of course it's somehow working because people normally do not look very close at the traffic yet but it's not what you really want normally unless you really want to sniff the network traffic on one interface to see what's happening on the other interface. If you really want to use dash net you have to use VLAN equals number parameter or try to avoid it and use dash net def immediately. Yes, that's a question. Yes, there's also a way to connect net def to a QMU hub but actually if you just want to sniff the traffic there's even, oh sorry the question was if I want to sniff the network traffic on one of the interfaces with the dash net def command you can do that. There's also a way to connect net def to a hub since a couple of weeks at least but actually there's a better way to sniff network traffic. QMU can sniff the network traffic for you. There's an option to dump the network traffic into a file in the same file layout as used by Wireshark and TCP dump and then you can just let QMU dump the traffic into the file and look at it afterwards with Wireshark for example. So let's have a look at the third category, block devices. Modern block devices should be configured maybe you guessed it already with the dash block def parameter. Now I see a couple of people looking strange so block def is quite new. Block def is only there since a year or two I think since QMU 2.9 or something like that but that's the way to go. So in this example I want to stop my guess with a QCO2 image. So QCO2 is the native image format of QMU which is the preferred one of course and as you already see I specify your block def twice so the block layer of QMU is quite complex and you can stack the different block layer drivers on top of each other. So this works like this so I specify a block def file driver which connects to a raw file on my host. In this file, in this case the IMG.QCO I give it a node name so this is pretty much the same as the ID equals something as you've seen in the previous examples but with block def it's node name equals F1 in this case and the file driver just gives me a raw access to the file on top of that I have to specify a driver that handles the layout of the file so this could be QCO2, VMDK, something like that. So I specify another block def driver in this case QCO2, give it another node name and I say connect to the raw driver that I specified just before and then I can connect my guest hardware in this case an IDE hard disk and say drive equals the QCO2 driver and this way I connected to the QCO image. If that's too much to type there's also a short way where you can specify everything in one line so in this case you immediately start with the QCO2 driver give it a node name and then you can say file.driver equals file so this is the raw driver in the same line and file.filename equals mg.QCO and also connected to the IDE hard HD guest hardware and you see already this is quite complex but this gives you the full control over the QMU block layer stack so if you've seen the presentation of Kashyap this morning you maybe also got already the sense that the QMU block layer is quite mighty and this is an example for what is possible with the block layer today so the IDE hard disk guest hardware in this case is connected to a raw block driver which again connects to a so-called quorum block driver and the quorum block driver can query multiple other sources for example one is in QCO2 which is then connected to another block debug driver and finally the block debug driver is connected to a file on your local host but QMU cannot only connect to files on your local host so this QCO2 driver has a backing chain for example to another QCO2 driver which connects via HTTP I think it's using Curl on the inside so it can also access files that are somewhere on an HTTP server for example and this way you can really set up complex trees in your QMU command line parameter jungle the question is what the quorum driver is I think actually I've never used it so I think it just queries multiple sources and uses the... or maybe Stefan can answer that one so the question is what does quorum do it can do a few things and the main feature is replication so say you have three NFS servers and if one of them goes down your VM could keep running because what the quorum driver does is it will actually read from all three of them it will compare and make sure that the disk image is still consistent and then it has rules for repairing does that mean it's still high available? so as also mentioned here at the bottom the slide has been taken from another talk from KVM Forum 2014 by Max Reitz and Kevin Wolff so if you are interested in the QMU block layer I can recommend that talk and also there are some other talks for example from Markus Ambruster a year earlier something like that I've got some references on the last slide for that of course block layer is complex so there's also a legacy option and this is dash drive and since dash block depth is still quite new you see dash drive still in a lot of examples on the internet you can use dash drive to configure both the guest hardware and the host backend in one line for example to set up an IDE drive you would say dash drive if for interface equals IDE format equals raw could also be Qco in this case just give a raw file and then file equals filename on your host there's also a special case here where you say if equals none and this was used to only configure the host backend side and this was mainly used before the new dash block depth command was introduced into QMU so if you are using a recent QMU try to use block depth instead if you are using an older version of QMU you're likely got to use the dash drive with if equals none dash drive is quite complex and does not really match the internals of QMU that much anymore so be aware that parts of dash drive might be removed in the future don't do not use it in new scripts and code anymore in Apple layers if possible and of course there are also some convenience or even more legacy options for example if you just want to use a hard disk image on your local file as any kind of or in this case it's an IDE on the x86 platform guest disk you can use dash HDA for example dash FDA is used for floppy drives and dash CD-ROM for CD-ROM drives you had a couple of these already in the past slides and there are many more of them so this is all I wanted to say in a short amount of time here and you could of course talk forever about QMU parameters I think just a couple of points I wanted to for you to take away so if you run QMU try to be aware that there are always two parts the emulated guest hardware and host backends and if you want to run if you want to have full control over both parts you also got to specify each part separately by using the dash Cardiff, dash NetDev and dash BlockDev commands together with the dash device and in scripts and other code that should be future proof please avoid to use dash Net and dash Drive since these are really legacy and might get removed in the future we do not have concrete plans for doing that yet but the discussion pops up every couple of months you could say so the comment is that LibWord for example also still uses dash Drive and did not switch to dash BlockDev yet so it won't happen very soon that we really can get rid of dash Drive but I think people are working on that so that's all I wanted to say thanks for your attention and questions I think you were first so the question was that the legacy and the convenience options sometimes had to distinguish and whether we or how we remove or when we yeah so options that we intend to remove they are clearly marked as deprecated so if you run QMU with such an option it normally prints out a line at the start if this option is deprecated please use something different instead and we've got a chapter in the QMU documentation where we list all the deprecated devices so some options like dash Drive for example they are considered somehow as legacy but they are not deprecated yet so they won't get removed very soon yet I just wanted to say that you should be aware of it maybe two or three years they could be marked as deprecated and a year later maybe they are removed or something like that yes please yeah there is a configuration file but the question was we have so many options why don't we use configuration files you can use configuration files but they are not for some reasons they are not that popular actually you cannot do everything with the configuration file as far as I know not every command line parameter really works from the configuration file and people are not using it that much actually so the comment was that some hosting providers apparently are using the config options and only a percentage of the configuration of the command line parameters are really working right from the configuration file yeah that is also true so the comment was that people who want to use configuration files they just use slip word yes please so the question was for the parameters that use these IDs or node names are there any limitations in length or characters actually I have never tried I don't know I guess there are some limitations but apparently people did not try to hit them yet sorry yes please very true so the question was I mentioned this possibility to dump the network traffic that QMU can also dump the network traffic and the question was what about the host backends like vhost user that somehow bypass the QMU networking stack and you are right for these backends you cannot dump the traffic this way so this only works for the normal case where the network traffic is fully handled by QMU okay time's up if you have more questions just catch me outside thanks


let's talk a little bit more about what it really means factoring polynomials graphically right we already talked about what it means to factor polynomials which is basically just breaking them down to its core elements right but let's let's take this a little bit further and just visually graphically show what it means when you actually take a polynomial and you factor it now when you're factoring numbers just straight out numbers you know we already talked about this in series one right you just take a number whatever integer it is or whatever rational number it is and break it down those prime factors right for example six breaks down to two times three for example the number six you can break down into two times three right and what we end up doing with polynomials is taking a polynomial and breaking it down to its prime polynomials right breaking down to its smaller degree polynomials right for example if we had the following polynomial and we've already talked about this we can break this down in the following form right so if we take the polynomial x squared plus 5x plus 6 we can break it down into x plus 2 times x plus 3 right so all this is really is just one function or original function that we're given if they say factor this polynomial we take this polynomial and break it into two smaller degree polynomials when multiplied together give you the original polynomial right which is really one function is equal to two other functions multiplied together so the way we can think about it is this this polynomial this function we could just call f of x so f of x would be this guy f of x is equal to h of x times g of x and this guy would be our h of x and this guy would be our g of x now this is just basically terminology wise right graphically we can you know present this graphically and graphically this is this is the way it's gonna look like this guy is a parabola so we're taking our parabola and breaking it down into two functions that aren't plot parabolas multiplied together to give the parabola and these two guys here are linear functions their lines so two lines multiplied together give you a parabola and this is what it's gonna look like so our polynomial here x squared plus 5x plus 6 is a parabola and its x intercepts are x is equal to negative 2 and x is equal to negative 3 right we already talked about this when you factor this guy if this guy is equal to 0 all you're doing is finding the x intercepts so you can set each one of these equal to 0 and solve for it right so this is x equals negative 2 and x equals negative 3 so it's a parabola that crosses the x axis as x equals negative 2 and x equals negative 3 so we've got our parabola this guy graphs something like this and we're gonna talk about graphing polynomials you know more more accurately when we get into graphing polynomials when we start talking about completing the square but this guy would be our f of x right this parabola if you break it down into smaller polynomials is going to be two lines multiplied together to give you the original function so what we have here is our h of x is basically y is equal to x plus 2 and again we'll talk about you know graphing linear functions if you look into the polynomial section you know if this is if you're looking at this right now when I'm putting it up haven't done it yet but we will talk about graphing linear functions so this guy x plus 2 is just a line it's a linear function with x y intercept of 2 and a slope of 1 so all you do is you find your y intercept and go up one over one so that graphs a line right the other guy is also linear function a line linear line right with y intercept of 2 and a slope of 1 which is this guy so if you take these two functions multiplying together you get this function if you take these two lines multiplying together you get this parabola here and this should be like hey wait a second how can we multiply two lines and get a curve well if you remember from series one what's two negatives multiply together right they give you a positive so over here we go down into the y equals negative down here you got y is equal to negative right so two negatives multiply together to give you a positive so it kicks the function back up over here between negative 2 and negative 3 here we have part of the function here is negative or this this function here is negative when it goes below negative 2 right when you go past negative 2 on the x intercept in the y section your negative here over here negative 2 is here and that's going to be positive for this function right so negative times a positive over here is going to kick you still in negative section right but as soon as you go past negative 3 or negative 3 here right your y your x intercept is negative 3 as well as soon as you go past your negative 3 here then this function is negative and this function is still negative right so negative and negative kicks you back into the positive in this section right so two lines multiplied together give you a parabola as long as the lines you know they go into both of them go into the negative as long as their their domains whatever their x can be continues on forever right so factoring integers factoring rational numbers is just like this it's just you know two different numbers multiplied together to give you the original number factoring polynomials it's just two other polynomials multiplied together to give you the other polynomial the polynomial you started with graphically it's whatever these polynomials graph now they don't have to be linear functions it could be curves it could be other polynomials right these two polynomials multiplied together give you the original polynomial and that's what factoring is we're taking things and breaking them up and seeing you know what they're made out of and that way you can take you know maybe we want to take this part whatever this thing is and multiply it with another function right this part of the function and multiply by another function just to create a new function right and and you know that's what it is that's what that's what factoring polynomials means you're taking graphically anyway you're taking a function and breaking it up into two other functions multiply together they may be lines they may be parabolas they may be quartic functions cubic functions it could be anything right and they don't even have to be polynomial functions it could be non-polynomial functions right things that have asymptotes things that have you know unknowns vertical or horizontal asymptotes right the things that have breaks that have holes in them right you could take any type of fun any any two functions multiply together to give you a new function and from that new function you can do new things or apply them in new places okay that's what factoring is factoring a polynomial break it down to its function factor rational number break it down to its prime factors right factor polynomial a polynomial is just a graph right it's just a graph of function break it down to its new functions


One of the things that you guys do extremely well that I can't say so much for my scientific colleagues is admit when you're wrong and recognize that you make mistakes. Does that happen often? You guys made many errors? Actually that's probably the most important question to ask here. The thing is that we love it when we're wrong. It's like the best possible thing that can happen to us is to be wrong. And the simple reason is that that's an opportunity for us to learn something. If we weren't wrong, then we're just wasting our time. We didn't learn anything. When there's a failure, if we've taken a particular course that has let us down a path that's been unproductive, we have to stop and ask, well, why? And what was it that I was doing wrong? And that's when the light bulb goes off and that's when you're on your road to some new adventure or discovery. Without being wrong, it's just you're just kind of going through the motions. When you construct an experiment and you believe your methodology is as robust as you could have possibly made it and you come to an answer that is the opposite of what you expected to happen and you run and check your numbers and you realize that it is genuinely the opposite of what you expected, it's thrilling. It's absolutely thrilling. Jordan said, do you mind busting things? And we're totally agnostic when it comes to whether it's busted, plausible, or confirmed. We don't really care. But what we genuinely do love is learning something, yeah, like Jamie said, it's learning something new. And science is messy. The two most important science teachers I had in all my schooling, both were willing when I asked a question to say, actually, that's something I don't know. These are people in authority. Teachers generally don't like to say they don't know something. These were teachers who were willing to say that and that showed me that there was a space to be, there was a space that I could perhaps both learn and potentially contribute. And that's totally vital.  I have a great example of one where we were genuinely shocked.  Now, there's not a fisherman in the world who doesn't believe that if a braided steel cable on a boat gets stretched to its breaking strength, that when it breaks, it can whip around and slice right through you. Now, I'm eliminating aircraft carrier cables, because those are about this big around, and that's more like getting hit by a building. That's not a whipping cable. But there's thousands of anecdotal reports, legs severed.  That's totally happened. We're talking a whipping cable having enough energy to slice through you. So we built a methodology where we figured out how to cut a cable stretch to its strength around a bollard so that it whipped around at this incredibly high speed. We then got several grades of cable and a hydraulic cutter. We got a hydraulic puller that would stretch the cable to within 85% of its breaking strength. And then we'd slice it. And right at the apex of the cables whip, we placed pigs, real pigs. And we really thought we were going to get these beautiful high-speed shots of the cables slicing right through. Pigs didn't like it much. They were already dead. And come lunchtime, we tested three different cables and we'd only been denting pigs. We hadn't even broken skin. And we called up our producer on that, Linda. And we said, she'd been researching this for months. We said, in all of the research, do you have a single firsthand visual account of this happening? And she said, I'm sure I do. I'm sure I do. And she went and she checked. And she called back an hour later and said, I don't. And we realized, we're going to have to bust this because the evidence does not support that this has ever happened. There are plenty of other ways to get sliced in half by ropes and cables on a boat. But whipping is not one of them. And we totally busted it. And we began the day believing we were going to totally confirm. Yeah, those kinds of things happen all the time. The longer we do this, the less cocky we get about our, like, there can be some really stupid, simple question about something that, of course, that's going to happen. And then, darn, I didn't think that wouldn't happen. In fact, given the vagaries of making a television show, there are times that we have to shoot out of order because we lose a location or we have some sort of snafu or something occurs. It's happened. And we are good at doing what we call backfilling, right? And go in and shoot what we need, and then we'll backfill it later when we find out what the actual results are. But occasionally, we have placed ourselves in a position of shooting out of order, going, that's OK. We can shoot out of order because we know what the results of that experiment are going to be. We don't do that anymore. Because every single time we have done it, every single time we've put our eggs in the basket of, well, we know how that's going to turn out, we've been boned. So we've stopped ever expecting. Even when we've seen people do it and we've had experts tell us this is what's going to happen, we don't count on it until we've seen it. Nice. And how about your viewers? Have they been fairly reluctant often to change their opinion if you do bust or confirm a myth that they hold dear? Oh, absolutely. The best known one was playing on a conveyor belt and the idea was that if a conveyor belt is going in one direction fast enough, a plane that's sitting on it can't go fast enough on in the other direction and take off. And that's just it's. The question itself has a trick within it, which leads you to believe that the plane will somehow remain stationary. And the fact is, the plane will never remain stationary. The plane will always push forward no matter how fast the conveyor belt's moving. And we demonstrated this on the show. Much as Jamie's should grin because he was like, why are we even testing this?  It's totally obvious what would happen. We tested it on the show. And I mean, back then, Jamie's shop number was you could find it online if you looked hard enough. And when that show aired, people were calling his number all night long and screaming at him that we had somehow cheated the data and we were lying and it was all because we'd come to a different result than they expected. And they were open about saying that. Well, they're wrong. Well, why? Because they came to a result I didn't expect. I think that was one of the first times that I really put it front and center, this whole thing about belief. And that is that people, they just want to believe stuff. If you can present evidence that denies it, it doesn't seem to affect people. I mean, there's a lot of things to do with religion that line up with that. There's a lot of warming, politics, et cetera. And personally, on the other hand, I asked myself, is there anything that I actually simply believe in? Because believe in sort of, or to believe sort of implies believing things or an understanding that does not require proof or evidence. You simply accept it. Well, and this is this. And I can't think of anything that I wouldn't, personally, that I simply accept. I'll accept it until the contrary. Yeah, that's pretty much all there is to it. And it amazes me that in this day and age that a lot of people, if not the majority of people in the world, aren't that way. Yeah, I mean, look, the fact is, and the argument will get put out all the time on the line and in other debate forums that, well, science is a religion. Science is a religion that is based just as much on faith and science as religion is based on faith in a supreme power. Except that, as Tim Mention says, nope, that's total BS. Because science suggests its views based on evidence. It actually will change its understanding of things. And this has happened multiple times throughout the history of science. It's still happening today with major experiments, change whole fields overnight when the data gets confirmed. And that's as it should be. Like we said, it's a messy process. And people would benefit from understanding that it's a messy process, that it's one that we could all contribute to. Well, we get referred to in a lot of cases as scientists. And the fact is that neither of us have science educations per se, like a formal university type science education or degree or background. But I think one of the strongest things that would actually say that we are scientists would be that both Adam and I have sort of a pact that if there is evidence to the contrary, like in particular when we're arguing amongst each other over some particular thing that we're trying to problem solve as to how we problem solve it or what the results are, the minute that there's clear evidence to the contrary, even though this may have been an idea that one of us has been championing, like just to the death, that this is the way to do it. The minute there's anything that pops up on the radar that changes that, it's point of pride for us to do it immediately, immediate without hesitation, backflip and agree with the other person or go off in a new direction. And that's so I would like to think that that's fundamental to science. And it's also fundamental to us wanting to understand and really understand the world and our place in it and the things that we run across. So there again it plays towards science isn't just for scientists, it's for anybody with integrity that really honestly wants to understand their world. I mean yeah, when you learn, when you learn when you're on the belt and you're trying to kill an animal and you learn that one kind of sharpen stick works better at killing them than another, that's a scientific experiment. Humans, by their nature, are scientists. We are explorers, we are tinkers and thinkers and we want to understand the world around us and every time you come up with a better method for doing something, you have applied the scientific method in order to determine that. You've taken variables, you've looked at them, you've compared them and you've chosen the one that works better, that's really, that's it, that's science, baby.


Actress and pop star Christina Milian has been busy lately moving into her new crib in West Hollywood. She and her French singer husband Matt Pacora bought the modern home in November 2021 for $4.3 million, and hopefully it'll be the perfect place for the couple and their two babies to settle down. Not even a year ago, and Pacora sold his home on Mulholland Drive for over $3 million, and at the same time, the couple bought a castle-like suburban estate in the Agoura Hills neighborhood. Selling that crib only five months later. Well, you know what they say, three times a charm, so let's take a look at Christina and Matt's brand new family home. In these videos, we don't reveal any addresses, and even though I've done a house tour of my own place, please do not show up at any private residences because it's not safe for anyone. Christina Milian is an actress, singer, and songwriter who signed a record contract at the young age of 19. She found some success as a pop star with her first album in 2001 and some other hit songs to follow, while she's also landed acting gigs over the years too. Her other half, Matthew Tota, better known as Matt Pacora or M Pacora, is a French singer and songwriter, and the couple tied the knot officially in 2020. They already had their first son at that time and welcomed their second son just this year while Christina has a daughter from her previous relationship as well. At the time of this recording, it's said Christina has a net worth about $6 million, while her hubby's fortune is reported to be somewhere around $8 million, with other sources pegging much higher at $75 million. Either way, the young family now has a spacious and contemporary new crib to call home, which is definitely impressive. Hey guys, it's Kara back with another exclusive house tour here on Famous Entertainment, and today we're seeing where Christina Milian and Matt Pacora call home. Don't forget to like, subscribe, and follow me on Instagram to chat. Now let's get into this video. In November 2021, it seems Christina, her French celebrity hubby, Matt's and their growing family found a newly built crib to call home. Even while spending time in the south of France in Paris, the couple keep a home base in Los Angeles too. Their real estate portfolio has been all over the place from selling a contemporary home on Mulholland Drive to buying a massive Castle Lake estate in Agora Hills only to sell that suburban area house too. Christina and Matt have now shelled out $4.3 million for their current home, which is super modern and brand new, located in the trendy Beverly Grove area and the center of West Hollywood, Los Angeles. Beverly Grove is a busy shopping and dining district named in part for the Grove, a popular outdoor mall which had borders. The area also boasts the Beverly Center, a slick 8-story retail paradise, upscale boutiques to sit along Melrose Avenue and Robertson Drive. Popular restaurants here include celebrity scene classics such as the Ivy plus high-end sushi spots, vegan cafes and celebrity chef spots. Anyways, the Popstar couple's new abode spans 4,932 square feet of space with 4 to 5 bedrooms and 5.5 bathrooms sprinkled throughout. As you'd expect from any fresh new build, the home offers plenty of fancy features like floor-to-ceiling walls of glass, a state-of-the-art home theater and much, much more. The exterior of the mansion is a boxy structure with wood cladding, concrete and glass, while there's a second floor balcony as well with amazing views. The main level is airy and offers an open floor plan with common rooms flowing into one another. There are high ceilings and light wide plank hardwood floors to add warmth to all of the modern features. There's an office situated behind floor-to-ceiling sheets of glass with its own bathroom that could easily be turned into the fifth guest room while there's also an elevator servicing the rooftop terrace and two other levels. In Christina and Matt's spacious great room there's a dining area which opens to a courtyard patio with fire pit and nearby there's the kitchen. Interiors are both charming and dramatic including the kitchen, cabinets and island finished in a very dark shade. There's snack bar style seating and upscale appliances here which are concealed in the cabinetry. The attached family room offers a fireplace and built-in shelves while it flows out via a retractable glass wall to a covered poolside patio and the compact backyard. The ceiling of this terrace is finished with herringbone pattern hardwood adding a nice touch. Elsewhere in the home you'll find the state-of-the-art home theater with seven plush seats and a projection system as well as features like the glass enclosed wine cabinet located just below the stairs. Upstairs there are three guest rooms each boasting their own private ensuite and on this level there's also Christina and Matt's upscaled master retreat. The primary bedroom has two large walk-in closets as well as a built-in fireplace and cozy private balcony. The spa style bathroom is also decked out with a glass enclosed shower tub, hair and makeup vanity and yet another fireplace.  Here there's a fire pit built in booth style seating as well as panoramic views over West Hollywood. Out back the couple's contemporary oasis is a private garden and outdoor living area with covered lounging deck as well as a smaller deck appropriate for sunbathing. The compact yard also has a small outdoor kitchen with a grill and custom plunge-sized pool with built-in spa. What more do you need? Back in 2004, Christina bought her long-time home in Woodland Hills, California, which it still appears she owns to this day. Little is known about the house itself but we do know she paid $1.16 million for it according to records and it spans 4,330 square feet of space with five beds and four baths throughout. Not to mention aerial views also show the property has a pool out back. In 2013, Christina invited HGTV inside her home for the holidays to show off how she decorated the place. But it's unknown if this is the same Woodland Hills home. Either way, her mansion's interiors here were decked out with a lot of opulence and gold and it had an upscale Mediterranean villa vibe. We could also see some massive chandeliers and how the actress decorated at least one of her grand fireplaces. More recently, not even a year ago, we know that Christina's other half, Matt, sold his contemporary home on Los Angeles's acclaimed Mulholland Drive for nearly $3.3 million, which the pair was living at at one point. Then they chose something more suburban. The couple bought an 8,000-square-foot 1980s castle-like home for $3.15 million in the suburban neighborhood of Agoura Hills. This area is about 30 miles out of Beverly Hills and it seems like they missed the action of Hollywood since they put this estate up for sale only five months later. It may be hard to keep up with the couple's real estate, but they have had some scares in the past, so it makes sense to why they've had trouble settling down. In 2018, Christina and Matt suffered home break-ins twice within four days. The couple's San Fernando Valley home at the time was burglarized one night and then again a few days later during the afternoon. The robbers allegedly entered the home in a similar fashion each time by smashing a side door. The alarm was triggered when the door was broken, but by the time security arrived, the thieves were gone. Now, Christina and Matt were out of the country on vacation both times, so it seemed like way more than a coincidence. Either way, let's hope those days are long behind them. Alright, so now we've checked out Christina Millian and her French singer husband Matt Bacoura's homes, so I think I'll bring this tour to an end. After checking out their new modern crib in the Beverly Grove area of LA, what did you like best about it, yay or nay? I thought it was a good blend of ultra-modern, yet still warm and family-friendly. I love the upper-level lounge along with the stairs to the rooftop terrace and all of the outdoor amenities. Be sure to let me know your thoughts on the couple's homes down below. Thanks for watching! Don't forget to follow me on Instagram and I will see you all in the next video. Bye!


The World Health Organization estimates that over 121 million people worldwide suffer from some form of depression. It is one of the world's most common mental disorders, and with 30% of sufferers attempting suicide, I'm not lying when I say that depression kills. Creative types have been proven to be the group most affected by this disorder, with people such as Ernest Hemingway, Virginia Wolf, and Michael Angelo all being affected. Is this due to nothing but their unique thought processes, or could it be something else? It has been proven that as a species, human beings are drawn to those with whom we share ideas and have similar thoughts with. Studies have shown this time and time again, such as in Newcombe's 1956 experiment, where he found that men liked their housemates more if they had similar attitudes about sex, family, and politics. This is because people enjoy feeling validated, are impressed when others have the same taste as them, and find it easier to talk to those with the same interests. So it is reasonable to assume that if a person is unable to find someone with a similar thought process to them, they will become lonely and may end up suffering from depression. Creative people have the most unique of minds, and therefore we can draw the conclusion that, as cliched as it sounds, no one understands them. However, Newcombe's study was flawed in many ways. Its gender bias and small sample size of 17 means that it can't be generalized to the entire population, and it fails to explore deeper levels of thought. This means that whilst people may be more agreeable when they have the same views, it doesn't mean those with different views are shunned from society. So what does cause such levels of depression in the more creative half of the population? At Genola and Mendez in 2008 conducted a study that looked at the role of rejection when it comes to creativity. Participants were given either positive, negative, or no feedback on a speaking task and then asked to produce a collage. The participants exposed to negative feedback or rejection produced more creative collages than participants in the control group and the positive feedback group. This suggests that societal rejection, a particular symptom of depression, may be responsible for increased creativity. In other words, depression causes creativity instead of creativity causing depression. It is crucial to think critically when it comes to the art in order to reach your optimum capability. But the problem with overthinking is that self-doubt often follows, and with that lower confidence making it easier to slip into depression. Perhaps the cause of such mental issues with creative people is that they get too used to judging their own work and slowly begin judging themselves. I know that I am guilty of doing this as it becomes hard to distinguish between the two, especially when you put so much heart into what you're working on, it almost becomes a part of you. The role of an artist is to always dance on that dangerous line and for many, the dance is too hard to keep up. Do you suffer from the same struggles? Which theory do you support? Depression causing creativity or creativity causing depression?


What's going on and if you're my fan, welcome back to another video. It's your girl, Denise. If you guys are new to the channel, make sure you hit that subscribe button and join the family. So guys, right now, Isaiah is in the bedroom and he's perfectly distracted playing his game. I'm in one of the guest rooms because I had to come here and talk to you guys. I need to tell you guys about what I've been conjuring up these past couple of days. So guys, as you know, Isaiah just got his brand new dream car, his M3 BMW. And he's infatuated with that car.  And what do you guys think he would do if he found out that I sold his car? I think you guys know where I'm going with this. So guys, as you know, team Denise is the best team to be on. We come with a banger, so you already know. Last night, I put a four sale sign on his car and I am going to be pretending like someone is calling me to get this car and pick it up today. And this is how it's gonna go down. So guys, these are the four sale signs right here. Like I said, last night I put a four sale sign on his car. Now I'm going to have my uncle in on this prank with me. Now he doesn't know my uncle. He's never met my uncle before.  And we are going to get Isaiah's reaction. Guys, this is going to be freaking epic. I have everything already set up and ready to go. So if you guys are ready for today's video, don't forget to smash that like button.  And with all that being said, let's get this prank started.  I told him to call within the next few minutes. So let's get this. Time on me. So I'm gonna need you to come downstairs and spend some time with me. Here's what you're playing. Janice, Janice, Janice. Don't, Janice, Janice, Janice, Janice. Janice, Janice, Janice. No, no, don't do that. What? What did I say? We spent 24-7 with each other. Yeah, you're saying that I don't spend time with you. All day. So pull up stairs and just sit next to me while I play the game. No, let's not spend. All right, well, let's spend some time together and problem solve. No. Let's figure out what we're gonna eat for lunch. Okay, what are we gonna eat for lunch? I'm thinking Cuban. Cuban? What's wrong with Cuban food? Here we go. Wait, wait. Since when do you like randomly create Cuban food? What do you mean? What do you mean, since when? I want my noodles with rice and chicken. Oh, hold on, hold on, shh, I gotta take this week. Don't shush me. Okay, so it's a brand new BMW M3. It's a 2022. It barely has any miles on it. We've only had it for, I believe, like a month or so. My car's not for sale. And it does have orange interior. My car's not for sale. What are you doing? Something wrong with the car. It's in perfect condition. There's something wrong with the car. The car's not for sale. That's what's wrong with it. I'm sorry about that. Yes, it's in perfect condition. There's nothing wrong with it. What are you doing selling my car? We just really want to get rid of it. What? What are you doing selling my car? Say, I'll try another seller. What are you doing? Car, sir. There's nothing wrong with the car. It's in perfect condition. I promise you, it's just- Right, it's mine. It's difficult for my husband to let the car go is all. I'm not letting nothing go. I'm better than- Yes, we have everything. We have the title. We have it all. Janice, what are you doing? Cash. My car's my car. It has nothing to do with you. I pay for it. I don't- If I sell your car, you want me to do that? Anything. We don't need any of this. Everything is just a lie. Everything is a blessing. We're allowed to have this stuff. And you're trying to sell my car for what? We don't need nothing. It's my toy. For 50, are you crazy? How- You're listing my car. How did he find out about my car? You're selling a car? That's not- I'm taking the sign. No, seriously. And you're over here, you're gonna list it for 50. You're- Bro. Something that's not yours. The name is on the title. That doesn't show that we share that car. That car is mine. That car says, Isaiah Rivera, that's who the car belongs to. Mine. You cannot sell something that is not yours. If you were to even sell that car, I have to sign off on the title that I'm selling it. Why are you trying to sell it for 50K at that? It's worth at least twice that. Are you done? Explain to me how you don't see anything wrong with this. I don't see anything wrong with it because there is nothing wrong with it. There's nothing wrong with selling it that's something that's not yours. We share everything. That car is not shared. Yes, it is. That car is mine. It's all right. I take all your clothes, lay them out on the driveway and be like, yeah, all these clothes are for sale. They're not mine though. They're my girlfriends, but she doesn't go. Honestly, if you hadn't been free. We don't need it? Okay. You're acting like we need the money though. So why are you selling it? Why are you selling it? What is he doing then? He's taking up space in the garage. That's just bothering you? Yes. He's taking up a lot of space. Okay, so get ready to go. Me as much as you do. 2022 BMW M3 X-Drive. $50,000.  How? You know? He's already on his way. This is going on the road. He's not on his way. What do you mean? He's held up on him. He's not on his way. He is. That's exactly. He drove past and he saw it. If he comes here, I'm going to tell him to get the hell out of here. I would sit outside. I would sit on top of the hood of the car and wait for him to come. No. I would sit on top of the car or crisscross applesauce. Don't play with me, bro. You're going to sign that thing? I'm not signing nothing, bro. I'm done with this. I'm going upstairs. No, you're not. You're going to have to give the car to him. I'm not. I'm going upstairs. We don't need this car. It's not your car. It's a cell. What are you talking about? Bro, just go somewhere, please. No. I'm going to irritate you. I'll give you a credit. I'm not giving you a high five. Wow. Russ, infinite fam. Bro, let me cool down, bro. Go somewhere.  Go somewhere. Trying to get some cool air in his system. Go somewhere. You're trying to cool yourself down? Yes, I'm trying to cool myself down because you got to be hot. Damn, this was a banger. You know I got high blood pressure and you're over here trying to spike you. Oh well, that's not my fault. You're over here getting crazy. That's going to be your fault, I have a heart attack.  Yeah, it's not. Babe. What are you doing? That's enough. What are you doing? It's over. Yeah, it's over. Let me cool down. Like, this was good.  Don't touch my car. Don't touch my personal belongings. Oh, don't do this, but you'll be young. It's a team to be on, and that's on period. I accept this. Yes, he accepts it. You guys should accept it too, Team Isaiah, because like. Leave my team out of me. Yikes. Leave my team out of me. Anyway, it is time for today's post notifications shout out. Today's post notifications shout out goes out to Traveling with Matt. Thank you so much for your love and support. Isaiah and I love you. If you want to post notifications, shout out.  Turn on those post notification bells so you're notified whenever we post a new video. And with all that being said, I hope you enjoy today's banger and we will catch you in the next one.


One thing I do a little different. Some people do their spiral ride to the leg end. You put it on the same side as the high hand here. What I find is when guys do that, when they put this leg in, a lot of times they start falling off. All right, so whenever I go spiral ride to a leg end, I always want to go high leg. This is the thigh fry hand, my fore side. I want to put that leg just to keep my hips up on top. All right, I don't have the tendency to fall off there. All right, so spiral ride, forward pressure, go on top leg end here, all right. What would I do? This way of short time, we're going to go all parallel legs. Parallel legs right here, square on them. My toes short, I'm not looking at my ankle. Put my toe in the mat, then you go to the table and pull right there. And then this ankle is not going under his laces right here. Lace to lace, ankle to ankle here. Everything I'm doing the whole time on my top, this toes, I'm using it as an adjustment. My hips start to slide, and I'm pushing off this toe and getting my hips up. This toe is what keeps me in position. If my toe comes up or it's not in the mat, it starts sliding. So this is my toe and it keeps me high and keeps me adjusting this toe. This toe is kicking out pretty much the whole time. Trying to take his power away, take his base away, take his leg out. So that's parallel, cross body, number four. We're not going to get into that, we're going to go all parallel with the shallow leg. All right, so get spiral ride on the other side, spiral, side by side, back by again on top, right here. Get my toe shallow, right between his knees, curled into the mat, ankle to ankle. I'm sitting right on his belt line, right on his waistline here, the center is back, I'm not off to the side. If I am, I'm just pulling myself back up. I'm getting right square onto him, sitting right on again his belt line. All right, then we're going to break down.  All right, big guy's got good handles, he's got some muscle on like those little guys. All right, so I'm going to grab right here, I suspect he gives me a good handle if he's got some muscle and I'm going to elevate. He'll hide, he'll hide, when I elevate, I got to get his knee off the ground. If I don't get his knee off the ground, I'm not that good at this. I got to get his knee off the ground here, elevate, chop my leg in on that position again. My hips, when I first get in here, I've got to be off a little bit, I've got to pull myself back up on top. We're going to break him down next. But just getting in that position, I'm sitting in the center of his back, I'm square on with him. So again, the two set ups to get there, inspire ride, hide my leg in, or out the whistle, bump, overstep, armpit, please hold, hold, help me. He'll hide in the ceiling, jump in a position, toe in the center, reduce it, get my hips right in the center line, belt line, ankle to ankle, toe curl. Thank you. Question? One, two, three.


That guy released 2,529 days ago, 8 hours and 30 minutes as of this video's release, which means in 28 days, happy birthday, he'll be 7 years old! I know it's superfluous to even point this out, but 7 years is a long time! I'm 33 years old now, which means I was 26 when I first lined up at a Canadian EB Games to get my first grey Nintendo Switch, which by the way, I drove really far out of the way to get the grey one because I refused to get the colourful neon one? What was I, depressed? But 26? I was a child! I was a baby back then! I was barely old enough to legally drink in America! And now I'm married with a wife and kids! 2017 was a year filled with fantastic decisions. I mean, we have Firefair Slash, Jedi, Trump, Trumped only by Stickdrift. Did you know in 2017 a British surgeon admitted to branding his initials on patients' livers? Sure, but I still can't customize my home theme! It's funny, you know, the whole concept of time. 7 years divided by my entire life is only 4.5, which means I've only been alive for 4 Nintendo Switches. What am I, a baby man? Sometimes I feel really old, and then other times I realize I'm still sticky from the womb. If I had pre-ordered a baby in 2017, it would be a huge financial burden by now. I'm not burdened by these. The Switch is so old. The Switch is so old, it thinks 120 Hertz is just a lot of rental cars. The Switch launched with a measly 10 games, and only 5 of them were physical in the stores, which means your options on launch day were Zelda or hoping GameStop accepted returns. And Zelda was also on the Wii U, which means the only reason to get a Switch on launch day was to brag that your Kakariko Village ran in a glorious 20 FPS. Well, as on the Wii U, it ran on fire. Well, technically, I guess there were 6 physical games on launch day, if you were willing to import I Am Set Sooner from Japan, which I remember a lot of people were doing, probably so that their copy of Zelda didn't look lonely on the shelf, or so that when people came over they could better justify their new $400 Zelda machine. One-two Switch, Just Dance 2017, Skylanders, and Super Bomberman. Ah man, really out the gate swinging here. I remember standing in line at EB Games waiting to pick up my Switch, looking at this sad selection on the shelf and thinking to myself, am I really only going to get one game on launch day? And trying to convince myself to buy one of these absolute stinkers? Honestly, it was a pretty good strategy by Nintendo. I mean, it's the same strategy I take to dating. Set the bar real low, never promise anything you can't deliver, or else they'll never let you forget it. Sprinkle in nice surprises here or there to keep them happy, and hopefully they won't realize they actually need a new side piece to let off some steam. Oh man, Bomberman was such a disappointment. I played it for like 20 minutes before I realized the R stood for return. But I mean, one-two Switch. It was the classic Nintendo pack-in game. Kind of like Wii Sports. It showed you everything that the Joy-Cons were capable of. It was kind of fun to mess around with, but really only worth playing because it was free and came in the box. Unfortunately, there was a big mistake on launch day, and all the Game Stops and EB Games got confused, took it out of the box and tried to sell it for $50. I don't think Nintendo ever realized because it's still $50. And a lot of other people didn't realize this mistake either because it sold more copies than Bayonetta III, which is a real slap in the face because this face is Jean from Bayonetta. She also said that they Photoshopped her nose to be bigger on the cover because Nintendo really said, how can we make this game sell better? Should we make it more fun? Nah, just slap a big old schnoz on the box art. That'll get him. One-two Switch even got a sequel. Everybody One-two Switch. I heard they're calling the next one Nobody One-two Switch to better align with Sailor's Projections. It took a little while for the ball to get rolling on the Switch. I remember checking the eShop every day to see if anything new had been uploaded, and most days to begin with, there was nothing. It's not like now, where 30 games are uploaded every minute. And those are just the hand-tie ones, but it was nice back then because every new game was a big deal. I maintain to this day that indie games on the Switch helped propel the Switch to be as successful as it is now, and in turn made a lot of these indies as successful as they are now. We didn't have a virtual console library this time around. We didn't even have backwards compatibility. We were starting fresh. Even ZombieU wasn't here. It was tough times. So, believe it or not, releases like Master Blaster Zero a week after launch was a big deal. Most people had already played themselves into a Zelda coma by this point, and this was the first new game to launch on the Switch since the original lineup of titles, a charming 8-bit recreation of an NES classic, and within a few months it sold 100,000 copies on the Switch alone. Even GameStop saw the potential here for the rising success of indie games and decided to take a stab at making their own. Has been heroes. Yes, this was made by GameStop. No, they never made another game for Switch. In fact, I'm pretty sure since releasing this game, GameStop's publishing company, GameTrust, has just quietly closed down and now any links to their website just take you directly to GameStop's website. I don't mean this isn't an abomination of that.  Snake Pass was an instant classic, and you can't tell me otherwise. The concept of these wacky characters with goofy controls have become very popular over the years, like getting over it and fall guys. Snake Pass brought pretty visuals and silly gameplay to the Switch portably, and it was just so cool to slither on the go. At the time, this was one of the best-looking games on the Switch, and now, seven years later, it still is. I remember meeting a guy from Craigslist under a shady bridge somewhere in Canada to buy his copy of Lego City Undercover because he said, and I quote, it sucks. Rhyme was the first game to showcase the Switch's limitations, and that only took until May. But once Stardew Valley and Hollow Knight and Overcooked and Skyrim and Celeste and Enter the Gungeon and Mario Kart 8 Deluxe and Not You and Mario Odyssey, and so many other great games hit the Switch in that first year, it was already set in stone that the Switch was going to be a huge success. Outselling the Wii U in its first year alone at 30 million, and where we stand today is 132 Nintendo Switches sold. That's like one for every living Australian person, not counting the kangaroos, obviously. By the end of 2017, games like Steamworld Dig 2 sold 10 times more on the Switch than Steam.  By the holidays, the Switch had solidified itself as a hit. It was the number one toy that Christmas. Well, that and Vingolings, which I've never liked the name of that. Sounds like something high schoolers do behind the shed. It's crazy to look back at it now. The amount of people who knew for sure the Switch was going to fail. Trying to explain to somebody now that isn't aware of what it was like back then, that most people expected about as much out of Nintendo as the next Call of Duty. It's like trying to convince someone that crocs are actually really cool and they don't at all make it look like you might need help crossing the road. Nintendo was down and out during the Wii U era. They couldn't sell water to a fish. And now you look at the list of best-selling games of all time ever and Nintendo are there with multiple entries with the Switch. Bam, Zelda. Boom, Mario Kart. Animal Crossing with 44 million copies sold. That's one in every three people that own a Switch have Animal Crossing. Who said COVID was good for nothing? Again, I like to think that Indies played a big part in that, but you can also look at the huge dramatic shift in marketing. Throughout the Wii U era, there was such a heavy focus on kids. Well, kids and Steve from Stranger Things. Hi, bud! I wasn't a kid when the Wii U came out. I was 22 years old. I was already old enough to know that life had no purpose and I was drowning in existential dread. Where was my representation? What'd that even look like? It would just be a sad man on his couch alone playing Color Splash, which to be fair is really the only way to play Color Splash.  It's all adults. Heck, I mean, this guy from the tears of the Kingdom commercial is like a mid-40s businessman. He's in a suit and tie. In fact, I'm pretty sure the implication here is that he's depressed and the only thing that keeps him going is the new Zelda. Nintendo finally understands me. Nintendo understood their audience better this time around because they understood us. I was a big advocate for the Wii U back in the day, but I saw its flaws. I made videos about it back then, like games worth buying or if the Wii U itself was even worth buying. I did that purely because I enjoyed playing the first-party games on it. So when the Switch came out, I just started making videos about that instead. It was the new Nintendo thing. What else was I gonna do? Because all ye had such little faith, there was so few of us making videos about the Switch back then. Months later, when people started to realize that, hey, maybe this thing isn't the new Super Duper Wii U Switch 2. And I might actually want to grab one of these things and they start looking up videos about games worth buying on the Switch or just about the Switch in general. Guess whose videos were there? Arlo's! Well, and mine. Arlo's and mine. I'm not just glad the Switch was a huge success because it makes me right, or even because I'm a big Nintendo fan, but because it gave me a whole career. Nintendo have always had a passion for video games. Alongside that, they've also had a passion for players being able to play their games wherever they want, which is why we've always had Nintendo handhelds alongside Nintendo's home consoles. But their handhelds obviously had their limitation. You couldn't put Ocarina of Time on a Game Boy in 1998.  You remember Shrek Ketchup? So Nintendo's always had these two platforms, the portable and the at-home. But as soon as the scientists got smart, and we reached a point where those two worlds could come together and the lines didn't have to be so blurred anymore, Nintendo jumped on it. And from 2017 onwards, if you wanted to play Nintendo, either at home or on the go, your only option was the Switch. Of course, it was going to do really well. It definitely was not all successes though. Throughout the Switch's run, we've seen Nintendo try and fail at many things, like thinking they could get away with charging us more than a normal video game's worth of money for cardboard. To be fair though, that cardboard did have some unique uses. Like, I can't remember the last time paper made me vomit. Like, did you ever try playing Zelda and VR? What am I saying? No one bought this. Ultimately, it was a very expensive product that had barely any replayability and whatever fun was there was pretty short-lived. Another thing, the game cartridges that Nintendo offer, they come in several sizes, all the way from one gig to a whopping 64 gigabytes. I mean, that's just enough to fit one dinosaur from Ark. The biggest issue with that is that the larger cart sizes cost the developers a lot of money. After speaking with several dev teams over the years, I've heard anything between 20 to $30 in production costs to get a 64 gigabyte card for your game. That's half your profits from a $60 game going straight to Nintendo's greedy, grubby little pocket. And that's assuming your game is $60. If your game is 30, it's a wash. It's not even worth doing. That's why over the years, we've seen so many of these, the download code in box effect. This sign on a Nintendo box turns gamers off quicker than baby talk, which is why I've also seen developers do this nifty little trick where they'll buy the one gigabyte little bitty baby card and they'll stick that in the box and they'll put just the tiniest little fraction of their game on the actual card, essentially just the title screen. And then when you go to boot up the game, it'll download the rest of it at launch. You're buying nothing. You're essentially buying it digital, but you get to hold it for a second. Ooh, ha. Nintendo also never really figured out their online social infrastructure, either. I'm not sure if at some point they decided to, ah, who needs to talk to people. Don't mind the fact we went through a whole pandemic and people were playing online. Just get a Motorola flip and download our app. I know it doesn't work this way, but I just had this really funny image of a guy downloading the app and playing Splatoon Online and just hardcore raging losing his tits during a game. But nobody else has the app so no one can hear him. He's just screaming into an empty void. I will say that throughout the Switch's seven-year reign, it didn't have much competition for most of it. I mean, when the Switch released, Xbox fans were already in the middle of a drought of games so dry that Microsoft bought up like a bazillion studios just so that now, almost a whole decade later, the drought is still as dry as the Sahara Desert. I guess they just released Starfield to pour salt into the dehydrated wound and no offense, Xbox, but Nintendo have really only been squaring up against Sony this entire time. The PlayStation 5 has done a really great job at releasing quality banger titles at a steady rate, but gotta be honest, it does not hold a candle to what Nintendo has created. These are the first-party exclusive games currently on PlayStation 5. It's, like, 12. I don't know, some of the great games aren't here because they ended up going to PC. But if we look at Nintendo Switch's exclusive games right now... Jesus Christ! I can't count that, Minis. I'm a YouTuber. But it's not just the amount of games that Nintendo has over its competition, it's the amount of genres. Sony really specializes in third-person over-the-shoulder action games. Demon's Souls, Pharma Fantasy VII, Horizon, God of War, they're all fantastic groundbreaking experiences, but they're also all very familiar. Similiar. Similar at their core. I'm not just talking about their cover art. It's like someone standing on a mountain. I'm not just trying to be facetious either. I mean, take a look at any first-party Sony game. It's most likely going to be a gritty over-the-shoulder action game, and then either a shooter, a samurai game, or have zombies, or in many cases, all three. But then you load up that Nintendo and you've got... Eraser, a fighter, an FPS, hack and slash, platformers, party games, micro mini games, melatonin, strategy RPGs, fitness, build-it-your-damn-self games. A million enemies at once, good luck. But also this game has great story and cutscenes for no reason. 47 different Kirby games. The best pissing open-world RPG you've ever seen. In fact, that we got two of them. 2D Metroidvanias, which is kind of weird to call this game a Metroidvania. Nintendo's own over-the-shoulder shooter.   There's like two good Xenoblades on this thing. Bucket loads of exclusive indie games, whatever the f**k arms were supposed to be. The Weaches Mansion 3, baby. Every Zelda game except the best two for some reason. XCOM style Mario, who even asked for that? The Pokemon games are here for better or worse. Pretty much for the worst, to be honest at this point. An animal crossing. An adorable island life sim that took the pandemic by storm. And to be honest, Nintendo's not even done. Thousand-year door is coming this year. Peach is getting a weird and wacky wonderful game. I swear to God, if Metroid Prime 4 releases after I'm dead, oh, I'm gonna be so annoyed. The scatterspray of having a game in every genre is insane enough. But the fact that so many of these games are considered the best game in its genre. The best kart racer, the best open-world RPG, the best platformers, the best fighting game, the best collection of 51 worldwide classics. When you really only have to compete with one other platform and your platform can offer something for literally anybody, it's no wonder why the Nintendo Switch is one of the best-selling consoles of all time. But now, it's 2024, baby. Hand-held consoles have exploded in the market recently. Sometimes, literally. Many companies realized they could create powerful hand-held PCs to put in your hands and allow you to play any of your PC games all in one place. You know, like the Aeonio, the Aeonio Air, the Aeonio Air Pro, the Aeonio Next, the Aeonio Next Pro, the Aeonio 2, the Aeonio Goon, the Aeonio Pocket Air, the Aeonio 1s, the Aeonio 2s, and the Aeonio Geek 1s. And that was all in the span of three years. Aeonio, slow down. The console market is getting absolutely flooded. It is out of control, but the king of them all right now is very clearly the Steam Deck. It's also the most affordable. Nintendo is starting to have competition. I mean, maybe not with the games, but certainly with the hardware.  I doubt that old Dougie and the rest of the game are really concerned at all about any of that over there at Nintendo HQ, and I am really excited to see what they do next. How does Nintendo plan to combat this expanding and ever-growing realm of handhelds? Can they recreate the success of the Nintendo Switch? Or will history repeat itself as it often does for Nintendo? They create a success, then they make a failure. But then they create a success, and then they make a failure. Right now we have a success, so as long as they don't...


Hi there, I'm William Morgan and I'm one of the creators of LinkerD. Welcome to the KubeCon EU 2021 overview and state of LinkerD talk. I'll be joined by LinkerD contributor Matei David. He will present the second part of the talk with the current state of the project and I will be providing the overview. So what is LinkerD? It is a service mesh. If you don't know what a service mesh is, I'll give you a very brief definition in the next slide but suffice it to say that LinkerD is a very unique kind of service mesh for one and is very focused on being as light and as fast and as simple as possible for Kubernetes environments. LinkerD has been in production for over four years. We have a very healthy and active community centered around the Slack channel and we have lots and lots of GitHub stars so thank you, please give us more. Over 200 contributors, we've publicly committed to open governance and of course we're hosted by the CNCF. We've proposed LinkerD for graduation so hopefully we'll hear some good news in that regard pretty soon. I'll also add that by watching this talk you are now also a member of the LinkerD community and you have just as much a right to run it, to talk about it and to participate as I do. It's a community project and you are now part of the community, welcome. So what does LinkerD do? Like any service mesh we categorize its features into three buckets, a set of features around observability, things like golden metrics and service topologies and distributed tracing, a set of features around reliability, things like load balancing and traffic shifting and retries and there's a set of features around security mostly built off of mutual TLS and the interesting thing about LinkerD and any service mesh really is that we cannot be a complete solution to any of those categories so LinkerD is not a complete observability solution, you still have to instrument your application, it's not a complete reliability solution, your application has to handle all sorts of failures that LinkerD cannot protect against and it's certainly not a complete security solution but the set of features that LinkerD can give you sit at the platform layer and they belong as part of the platform and so what the service mesh gives you is the ability to get those features at the platform layer without having to rely on developers to implement them in their application. So that's good for you because it means you have control over your destiny and it's good for the developers because it means that they can focus on writing business logic and not on having to implement things like mutual TLS and certificate rotation which are difficult and probably not where you want to develop your expertise. So how is LinkerD designed? In short, less is more, very powerful statement. So if you have a functioning Kubernetes application and you install LinkerD, the application should continue functioning with some minor asterisks on that statement but we can do that from the vast majority of cases. So zero config out of the box you should be able to just add LinkerD to a system and not break anything. It's designed to be as light as possible so introduce a bare minimum performance and resource cost especially when it comes to the latency introduced to your application because that is a user phasing cost and it's designed to be as simple as possible and by simple I mean operationally simple which means you the operator should not have to waste your precious life energies worrying about the service mesh. You should be able to let it run and understand it and feel confident in it. And then finally to the extent that it's possible when we have security features we try and enable those features out of the box and not to put them behind barriers involving configuration. So LinkerD today has a control plane that's written in Go. So it's in a Kubernetes namespace. It's about 200 banks and then it has a data plane built out of these rust micro proxies. I'll talk more about that in a few more slides that are extremely fast and extremely light. LinkerD has a long history. It was originally actually a JVM application and I wrote a little bit about that history in this article. So if you want some bedtime reading just click on the link in the slides or just search for that title. So what does LinkerD look like when deployed? Well it has a name it has a control plane and a data plane. The control plane has a couple components including one called identity that's basically a certificate authority one called destination that's a service discovery endpoint and so on. And then in the data plane like many sidecar based service measures LinkerD has a little proxy that gets injected into the same pod as the application does and it sits in there and has all TCP traffic transparently wired to go through that proxy. So the application is blissfully unaware that traffic is going through the proxy and that is how the service mesh does its magic. LinkerD 2.10 which is the latest version introduces this notion of extensions. So if you want additional functionality you can add these opt-in extensions. There's one called which is demonstrated here called the Viz extension which is a metrics pipeline includes things like Prometheus and Grafana and a web dashboard that take all of the metrics that the proxies instrument and turn them into a set of human consumable outputs. So if getting observability into your system without having to do any config is important to you then you may install that extension if it's not or if you have an additional mechanism for doing that then you don't have to install it. So that's the control plane. On the data plane we use a proxy called simply linkerd2-proxy. LinkerD is unique in a lot of ways one of those ways is that this proxy is not Envoy. I wrote a long article about why that is so if you want to dig more into this just search for why LinkerD doesn't use Envoy or click on that link in the slides below. The short story is Rust the choice of Rust which is what we use to implement this proxy allows us to avoid an entire class of memory vulnerabilities and CVEs that are endemic to C and C++ programs. Rust of course compiles a native code so we can be as fast as the machine will let us be and using Rust gives us access to a state-of-the-art network stack so libraries like Tokyo and Hyper and Tower and the rest of the modern Rust asynchronous networking stack. I think this part of LinkerD the LinkerD2 proxy is probably the most advanced technologically advanced project in the entire CNCF landscape but that's my biased opinion and our philosophy here is that the proxy ultimately should be an implementation detail for a service mesh so if you install LinkerD you will have to learn how to operate LinkerD but you should not have to also learn how to operate a complicated proxy that's the goal. Okay I mentioned a little bit about security LinkerD is very security focused and we have a very strict philosophy that starts with number one making sure that the foundations are secure which is a big part of why LinkerD2 proxies are in Rust. Number two building on top of Kubernetes as much as possible so rather than introducing new primitives you use ones that are already there things like service accounts and then removing the barriers as much as possible so you know the moment you install LinkerD and you mesh your application all TCP communication is automatically put behind mutual TLS without you having to configure anything. Complexity is the enemy of security that's our belief and so we want to reduce the configuration as much as possible turn it all on by default and basically don't make you have to work for security. Okay I always have to talk about LinkerD versus Istio because Istio has a lot of marketing energy behind it I think it comes down to what do you need in the service mesh Istio is designed to handle a very large set of scenarios and has a very large feature set the downside is that it is very complex to operate. LinkerD has a very different philosophy which is we should give you the bare minimum to build a secure and reliable and flexible Kubernetes platform so it's much easier to understand and operate smaller lighter faster but it is also very Kubernetes specific so if that doesn't work for you then LinkerD will not be the right service mesh for you. Here at KubeCon EU 2021 we actually have a pretty amazing LinkerD turnout so if you want to learn more I encourage you to look at to attend some of these talks. Oliver Gould who is the creator the real creator of LinkerD will be delivering a talk why the future of the cloud will be built on Rust on May 3rd on May 4th at service mesh con we've got a whole set of end user talks around scheduling COVID tests doing experimentation adding FIPS 140 compliance and doing chaos testing and May 5th we've got some debugging we've got some compliance the easy way talks that sounds scary and seamless multi-cluster communication and observability and then finally if you really enjoy my voice I'll be giving a keynote about LinkerD versus COVID-19 on May 6th so I encourage you to join those talks with that said I am now going to hand things over to LinkerD contributor Matej David. Thank you William and hello everyone my name is Matej and today I'll be giving you a brief overview on LinkerD in 2021 more specifically I'll be talking about some previous releases that we've had I'll touch base on the roadmap give you some community updates and finally tell you how you can be involved so before I start I'm going to talk about myself for a little bit I've been a LinkerD contributor for over a year now and like a lot of people in the community I had my first contribution completely by accident I stumbled upon LinkerD when I was looking for some projects to contribute to I attended my first meet-up in March 2020 after I saw how inclusive and supportive the community is I kind of got over my anxiety of contributing to open source so in April 2020 I had my first merge PR and it's sort of snowballed from there I applied for a CNCF mentorship scheme and in September 2020 delivered topology wear service routing just in time for LinkerD 2.9 and since then I've just been around the community helping people out on Slack doing some bug fixing here and there and small improvements in April 2021 I became a full-time contributor as a software engineer at point so if my my humbling story doesn't convince you that the community is awesome hopefully the next slide will I'll be talking a bit about some some updates we've had in the community so as LinkerD grows so does its community and I think in 2021 we saw a lot of updates that went a bit unnoticed in favor of the codebase updates that I'll be talking about shortly but first of all we created a LinkerD steering committee so in a very fast and dynamic space there are always new cloud native emerging trends and it's pretty hard to stay on top of everything and aside from that we we have adopters from large enterprises the very small and lean startups so we wanted to have a way to get the end user involved and in prioritization and shaping the direction of LinkerD and the steering committee does just that second we rolled out a LinkerD community anchor program a lot of people in our community do amazing things with LinkerD they have amazing stories tales from production where LinkerD helped them fix some bugs or find a bottleneck we have a lot of people who use LinkerD for research so lots of cool stories we want to help people work on them and share them so that's what the community anchor program is all about if you have an exciting story please check it out we've opened up a new discord server we have a very active community on Slack but we also started trialing with discord and there are a couple of cool conversations going around there a bit more implementation specific so if that's your cup of tea please come and say hello and finally something I'm very excited about we have our graduation proposal officially submitted it's still early days to talk about it but I just wanted to kind of echo this out and let people know that it's been submitted and I'm super excited about it huge round of applause for for the whole team and community all right now let's get technical when I first joined as a contributor the team had just released 2.8 multi cluster support well LinkerD multi cluster and also the idea of add-ons started floating and that's important I'm going to come back to it later but LinkerD 2.9 extends zero-config mutual TLS support TCP connections this was the banner feature allowing TCP traffic to be in TLS and to do this there actually were a couple of changes with the service discovery mechanism I won't be going into details now but a lot of work went into 2.9 it was a huge release happened in November and it's very close to my heart because the CNCF mentorship schemes projects were also delivered as part of this we had arm support which allows LinkerD to run anywhere on Raspberry Pis I use it on my Pi clusters for example this was a GSOC project we had multi core proxy runtimes to add throughput and concurrency serviced apologies my project as part of CNCF LFX to introduce routing preferences on per node basis and bring your own Prometheus to make the control plane lighter so if in 2.8 we started floating around the idea of an add-on in 2.9 it started taking shape and then in 2.10 it came to fruition because we delivered modularized control plane with extensions so we split the control plane up into multiple extensions to make it lighter have less of an overhead and truly allow you to run LinkerD on any platform that you want as light as possible so with LinkerD 2.10 you can pick and mix what you want with your LinkerD distribution out of the box the control plane comes with the discovery service identity and zero config mtls and then we have a Viz extension for the metric stack so Prometheus Grafana dashboard LinkerD tap which is an amazing tool Yeager extension for distributed tracing and then the multicluster extension for those of you that want to do multicluster and on the topic of multicluster in 2.10 we've extended a multicluster to TCP connections so before LinkerD was more geared towards HTTP with multicluster and in 2.10 that changed we've also included opaque ports to proxy traffic without protocol detection so LinkerD used protocol detection to determine if you're running gRPC or HTTP and this aided in load balancing decisions and also in mtls but with opaque ports we also added support for server speak first protocol we're doing mtls is a bit trickier but yeah there's a great blog post about this so if you want to get a bit more in depth knowledge please please give that a read but moving on where we are today in 2021 our main objective for 2.11 is to bring configurable access policies to LinkerD and this is something that I'm very excited about because I've seen how excited the community is about it and the maintaining team is about it and the community has been asking for authorization policies for for some time now and I'm happy to say that with 2.11 we're bringing this in so authorization policies bring flexible access control to meshed workloads and I have two examples here the first of all we'll make it so we can you can make it so that service owners can require connections to be mtls and then service owners can also limit which client can connect to their server so to kind of have a visual aid for this I have this very simple diagram to the left where we have free pods all of them running inside a mesh and if you have two servers A and B then you can configure some policies on the server to say okay I do not want the client to connect or I do not want the client to connect without mtls so this gives you a lot of flexibility and power over authorization so I'm very excited about this the roadmap it's still in early days so if you want to keep up to date give us a star on github and make sure to keep up with the issues there and on the topic of github finally to get involved my favorite part of the presentation all of our development is on github we're active in the discussions we're active in issues pull requests so please come and have a look if you're curious or if you want to contribute please feel free to do so it's very easy to get set up we have a thriving community in Slack and Discord we make formal announcements using mailing lists we have monthly community meetups my favorite part of the month for sure and then also for the party security audits most of all I think what I want to say is that to be a contributor with linkerd you do not really need to contribute code we accept contributions in all forms and shapes and actually we encourage people to do some doc contributions to come and help out on Slack there are a lot of people with good production experience that give great advice on Slack there are a couple of people that I really look up to that are daily active and helping people out so yeah we're very friendly and welcoming community join us it's tons of fun and we're doing lots of good work so that's it for me I think it will be time for Q&A yeah I hope you're excited as I am for linkerd and stay tuned for more updates to come in 2021 thank you