Thank you a lot. Oh, thanks a lot. I guess I'll start with why I came up with the idea for this talk. I'm kind of since a few years, the DRM I915 into graphics, Cernelimentena. And graphics is a bit special because every driver, every GPU has their own private interface. dearlight caching, submission of GPU commands to the whole thing and all these things. So we don't just have one generic interface, we have one interface for each driver. So we have lots and lots of cheats. What happened? I'll pull that switch up. Yeah, doesn't it good for my quality serie of graphics. Anyway, yeah, don't, like, take pictures of that. Oh, so we have lots and lots of IOC, all written by kind of driver maintainers like me and people with clue. So, and the other thing is also cheaper, it's like change all the time. Every two years everything changes completely and we need to throw out stuff, make new stuff. Of course the problem is with user space interfaces, you're never going to get rid of them. So, like, if you put it up, you're going to live with these mistakes for like 10 years at least, something like that. And I've also spent a lot of time kind of cleaning up ISHL code and legacy code and trying to fix all mistakes. So, that's essentially what I'm coming from and I noticed when people talk about IOC, they're often discussing things as you absolutely need to do that. The IOC just not even really look at the pageant as I read you checked it. So, figured, we seem to have quite a good, oh no, that wasn't me. Oh, we seem to have quite strong opinions and best practices and how to do user space interfaces simply because we have so much experience in getting it wrong. So, that's what my talk is going to be about. Is it going to, did it just phrase? That's kind of awkward. Well, that's better. So, produce all the things I'm going to talk to you about. Now, we don't screw it up and kind of have the bone marks to prove it. So, it's going to be three points. The first is the basics. Like, if you don't do this, if you get that wrong, you might as well forget it and never use the shiny new IOC number that you've assigned again because it's just hopeless. Second point is about technicalities. That's usually what people bring up when they talk about getting IOC tools, right? That's stuff like padding your structures so that you don't end up writing compact layers and things like that, which is a bit embarrassing. And at the end, I'm going to talk about a bunch of special topics. I expect that's kind of in the really opinionated stuff is going to come in. So, I mean, this is primarily about experiences from graphics drivers and maintainers like me and Dave, much more. But if you have, like, other war stories that kind of contradict things, I'm kind of trying to show, hey, are very much welcome to input. We can have a bit of discussion. Oh, if you don't agree with things, or anything, please raise the questions. So, let's get started. The basics first is, like, do you even need an IOC tool? Because, yeah, I just kind of the easiest choice. You just have a device drive and you do that, and mostly you can sneak it under the eyes of kind of the senior kernel hackers and trying to get something in that no one really reviewed. I mean, one example is, hey, the KD boost stuff, the review is like, why should you just do a proper system core? So, that's kind of one question. The other is, often with device drivers, if you do an IOC tool, why don't you just, like, use read write and pull and all that stuff on the file descriptor? So, I mean, it's all there. You can all use that. And very often these operations make a lot of sense. I'm going to talk about file descriptors and stuff some later on in the special case topics. There's also, like, lots and lots of other interfaces that the kernel has, which I know, like, system calls or anything like that. This, yeah, this is a first configuration, especially a debug interface. If you have something that only your task suite needs that no one else needs, maybe put it there to kind of hide it better so that people with production systems never ever see it, which is nice because that means they can also never, ever complain to you about the regression or breakage. And the other thing is these lots and lots of subsystems that kind of doing, well, not maybe not a perfect job, but these lots of encoded experience about lessons learned and things, so reuse them. For example, in the GPUs, we're currently working on the intergraphics driver to to expose performance counters to user space.  Or we could just reuse both. Of course, that means we get to deal with Thomas Glecksner a bit, but, yeah, long term that might be better. So that's kind of the first thing you really should be asking, like, what's the right interface type for the thing you want to expose to user space? The other really basic thing you absolutely need to have is a real-world user space implementation, a user of your interface. A demo is just not going to cut it.  I need to be reviewed by whatever project you want to use it. For example, if you have some great new idea that's going to make databases faster, have a fully tested reviewed and ready for merging patch for postcressor. Oh, for graphics, obviously. Or the requirement is that the entire stack is implemented. So we don't just want the kernel side, we want the interface shim and lib DRM. We require the OpenGL feature, I'm sorry, the OpenGL feature implementation in the Mesa library. And we require all the piglet OpenGL test cases to really make sure your interface actually survives the real world and doesn't like fall apart once you have to deal with all the corner cases, with the error handling. I think a great example that Mike Kerrysg always brings up when he's discussing interfaces is all the file-notify APIs, which all can have been designed with demos. And then people try to actually use them and implement them. This is where you can recover in any other way by throwing away re-scanning the entire file system, which is not so great. So, really, a Mesa v production code, you need to have it. That's the only way to remotely make sure that the semantics of your interface are correct. I mean, if you don't get this right, you can throw away your article. If you get one of the technicalities wrong that I'm going to talk about later on, there's no problem. You just make a version two and then implement version one on top of version two, which is doable as long as the semantics are kind of the same. And that's why you need to have this. But this is a very big thing. Always merge the kernel patches first. Because there's a good chance that some random reviewer will spot some minor data and your interface is going to slightly change. If you have shipping user space out there that's using your interface, the old version of the interface, it can develop your script. Because you can just throw away that IOC and never use it again because the existing user space that's shipped out there will not work with the version that's actually merged into the kernel. So, always merge the kernel patch first and then merge the user space. Of course. That's actually such a hard and fast rule that they fairly broke compilation of a bunch of user space components when people violated that rule. So, that's really... We're not going to discuss about that in the graphics world. Now is the button. The next basic thing is task cases. So, you have your real-world user space thing and it kind of does at least beyond reasonable, they'll prove that your interface is not totally broken. But it's not going to test all the other things. And all the other things are usually all those bits and pieces that are going to score your CPU or some other disaster. So, you really need to have task cases. You need to have lots of test cases for all the corner cases and the things that people use to break into your kernel and all the things you can test with a functional level. That's pretty much going to be a running gag in my task cases. So, this... I'm going to bring up lots of examples where I think you really need to test this and that. So, we're going to be more specific about this later on. So, that's kind of the basics. They're going to make, hopefully, sure that you use a shiny new system called a Ryan's SQL or whatever, or the new interface is solvable. But these are technicalities and it's kind of nice to get them right because if you don't get them right, you end up writing a compact layer and that's just boring, busy work and it's also somewhat hilarious for everyone else. They're going to watch you do that. So, the rules there is, if you do a struct that's part of your rabie line, only use the four special type types that the kernel has, the double underscore S32, U32, S64 and U64. I mean, the reason for these special rules is that the kernel is kind of older than C99, so are the U and underscore T kind of types in no go. I mean, nowadays C99 is kind of old, so you're not actually going to be all that successful in actually breaking user space and making it fail to compile if you'd use the C99. Yeah, that's a nice to, especially if you kind of screwed up and you want to know where the holes are that you actually put in. PA hole is really nice too. Oh, thanks. So, but the thing is, it's still really nice and useful to use these types because if you're kind of running around the C-scope in your kernel files, at least me, and I usually don't notice that I'm in a user space header file, but if I see these types, I realize, okay, this is ABI, I'd better be very careful when I touch this. So it's still, I think it's still really useful to just use these types. Then, like Dave just said, this is an anti-topic with padding and alignment, so if you just use 32-bit integers, you're going to be fine, but if you use a 64-bit one, align everything to 64-bit and pad manually, and then you can use PA hole or something like that to check whether you didn't actually accidentally put a hole in there. So, both align all the members and the size of the structure because eventually someone is going to do an array of these and things like that are going to use size of, for example, a size of in the iOS CTL, which the size of the structure is encoded in the iOS CTL number, so that's going to slightly change. And the next one is pointys or 64-bit on-site, shocking to know. And finally, if you did screw up, just use attribute packed or manually pad it up to whatever kind of alignment you do have and then take out all the humility you have and write your compact layer. So, with that, I mean that's kind of the boring stuff. You can pretty much, if you google for iOS CTL design, there's parts and parts of explanations of all that. The next technicality is input validation, and there's kind of two reasons why you need to be really, really careful about this. The first thing is if you allow users space to supply random stack which are registered garbage, that's going to break your extendability, because essentially that field or that register or whatever this is not useful, because at least on all kernels, if you didn't check for garbage in these values, anything was valid input in there. So, you can't decide whether the application accidentally wanted to have the new feature or whether it just accidentally set this value. So, that's one thing, always check all your input, because otherwise it can't extend your interface. The other thing I saw, if you don't check all your input, some people will try to figure out whether they can put something evil inside these values that kind of pipe passes you checks. And then, like I said, it scores you a nice CD, which is again not too great.  So, any time you multiply out or do generally anything with values supplied by user space, you have to double, to check that you don't know anything else like that. And the other kind of important thing is, and that's especially important if you have like a big complicated interface that has grown over time and has grown lots of different modes and combinations, check all the invalid combinations of flags and values. So, if you don't set that flag and then the ratio be zero size, check for that. Because if you're unlucky, you can't assume in your code that no one is going to give you input data that doesn't make sense. So, your code implicitly assumes that if that is like, that flag is not set, the ratio is zero and suddenly you have like yet another explorer at hand. So, especially take good care with all combinations and of course, half test cases for everything. Because at least in my experience, it's generally really hard to review code that does input validation because you don't see all the checks that are missing. And those are the importance. Whereas, if you write the test case, you have a different mindset. You look at the entire input space and just go through all the combinations and make sure, okay, this should be rejected. This one should be accepted and resolved and blown or something else. And so you can go through all of them and make sure that you have a test for all of them and make sure that it either gets rejected with the error code you can expect or it does what you expect it to do. So, that's one of the major reasons why you need to have a special test suite on top of your real world user space thing that hopefully also has a test suite to make sure that the functionality at the high level is correct. So, that's... Now, this is a special case with flags, with input validation. I think, nowadays, it's pretty much common knowledge that you should have a flags parameter. Even the kernel is full of version 2, 3, 4 ISATLs just to add the flag parameter and system calls and things like that. But the thing is, so you added that flag parameter, you're really proud that you didn't screw up and unfortunately you forgot to check that it's zero and reject that with the email. Someone is going to give you stack error which in top flags parameter is totally useless. So, really make sure that you do check for flags equals zero and reject that with the email because, yeah, otherwise you're just going to have version 2 of your interface. That is not set by the user space. Yeah, exactly. Check for flags equals equals zero. Exactly. Because, yeah, then you have user space that gives you garbage. Someone will get that wrong. It just happened.  And have a test case for it because you're going to forget about this. And the other thing with flags and that's kind of ties back to the thing about combinations and invalid combinations on the previous slide. Really check for all the invalid flag parameters because it's super easy to squeeze something in there that you can assume didn't work.  So, really check for all the flags. It's super easy to squeeze our interesting books into flag parameters if you don't properly validate them. That's kind of another technicality. I mean, the entire point of flags parameters is to have some means to be able to extend the interface without breaking old user space. And that's something you need to think about anyway is compatibility in both ways so that old user space and new kernels and new user space in all corners both kind of work. So, one thing is, like I said, merge the kernel stuff before you merge your user space stuff. Unfortunately, because otherwise you're going to end up with interfaces that are kind of not compatible.  So, one trick that they use in the DRM system quite often is hide a big new interface between a module option that kind of tains the kernel and needs to be explicitly set and kind of looks dangerous. The thing is, you can kind of stretch your window by one to two kernel releases because by that time user space is all over the place and essentially already using your interface, it can't change it anymore. So, for actual, what once you kind of have your interface and it's frozen down and locked down, for actual backwards and forwards compatibility it's like, yeah, have a flags parameter every day for everything. The other thing is have, there's kind of some other, I mean, sometimes the flags parameter is kind of not good enough because by the time user space wants to do your system call or IRCTL it's kind of too light already. For example, with GPUs you you have to construct this massive command stream and you kind of need to decide why you construct that command stream which features you can use. So, by the time you do the actual command submission to the kernel it's already way too light if the kernel then tells you, oh sorry, I'm a too old version, I can't do this for you. So, you kind of need driver capability flags, that's what the I915 driver does. The RAID and driver just has like interface revision that they increment every time they add something. I mean, there's kind of, both approaches have their pros and cons. The driver capability thing does lead you to maybe believe that you could disable something without the other. But, fact, there's kind of that user space just assumes that when one capability A has been released before capability B then when they check for B, A is always going to be erect. So, it's a bit dangerous. One thing we also do a lot in DRM is user space opt in flags and the user space has like, okay, I'm new, I understand these new concepts. One example is a recent introduction of universal planes. I mean, to the display side of DRM had like the concept of the primary plane which is just like your desktop and the cursor moving around. And then people added additional overlay planes for video and compositing and data and for example. And then kind of realised, well the primary plane and the cursor, but that's just normal planes. So, why don't we expose, just expose all the planes as plane objects. But of course, old user space within C, the primary plane and the primary plane object and think there's two different things. So, for that case, we have an opt in flag. The user space says, I understand this. Please give me the full list of objects and I'm not going to use like, both the legacy primary plane and the new plane primary plane object because I know it's actually the same thing. And so there's lots of cases where user space has to explicitly opt into the new behaviour. So, that's another way. One thing and that's probably a bit legalist, lawyer trick is, I mean the point here is to avoid regressions and all that. And it's only a regression if this is an actual book report from a user. So, if you can somehow trick your user into not realising that you just broken this system, you can get away with it. And we've actually done that. In the 1915 driver, we have the big break is kind of kernel mode setting and user space mode setting. And all the code for user space mode setting is horrible. That was written a long time ago. It's full of security holes and horrible things and things are wasted for user space to crash. So, we kind of want to get rid of that. Unfortunately, we've only switched to kernel mode setting like five years ago, which is way too new for just throwing the thing out. But the X server transparently falls back to the Vesa driver if the real driver doesn't work. So, what we do? We load the module. We do not load the driver. That's why users don't realise that the driver didn't load because Alice Mart store shows I915. And then the X tries to load the Intel driver. That doesn't load because the driver, the kernel interface isn't there, falls back to Vesa. And we get all the nice features of that. And the only real regression is that it's no longer accelerated. But, in fact, these chips, these old chips where people kind of stuck on these old versions are so slow that, well, CPU rendering is actually forced. So, we got away with breaking user space as long as no one notices. I mean, other examples is like just ship new versions of your user space tooling that kind of used a new interface, then wait for a few years for the distributions to upgrade to the new toolings. And then maybe you get lucky and don't break all the scripts. Of course, there's interfaces where this is impossible, like system calls used by Lipsy. Essentially, you have to keep them around until the heat depth of the universe. But still, it's only a regression and the only broken compatibility if someone actually notices. And that does help quite a few times. One last thing, that's engine-ness. It's terrible. I mean, in the GP of it, some people do actually care about that because raven and ditch ship and power PC machines, I brace all the time. So, the hardware is really nice. It has all the bits where you can tell it, well, my command stream isn't big Indian, but the texture is over there in little. And then you have all these bits to fiddle. And so, it should be. But the matter of fact is the build is little Indian.  And occasionally, like every few years, report box and then someone tries to fix it up. So, and the same thing is kind of network is little Indian and all that stuff. So, in almost all cases, you can just say we're in a little Indian world and mostly get away with it. But if anything that you pass around between kernel and user space kind of goes over the network or lands on disk or comes from this, like on graphics where you have textures or video streams and stuff that you load from desk, it might be very to think like the two seconds about this. So, that's with the technicalities. So, let's look at a few other topics. One is resources, all kinds like allocating memory or synchronisation objects. And the thing is attach everything to your struct file because when the process dies, all the files get closed and you can release all the things and not leak stuff. The other thing is do you consider standardised file types? So, if you want to share or expose a memory object and maybe want to allow user space to pass that to some other driver, use dmabelf. We don't reinvent the world and there's also fences which are generally just Android only for synchronisation. Another nice new thing is, for example, MFD, that's just basing around memory blocks. So, that's the other thing. The really important bit is every time you have an interface that opens a file descriptor, like allocate a dmabelf object or something, have a flack parameter for close and exec semantics because, I mean, honestly, I didn't really understand for a long time why you would need this. It kind of didn't make sense. The reason for that is in multi-threaded applications, there might be one thread using your shiny iOS ATO, while the other thread isn't some random library which does fork and exec some helper script tooling. So, if that thing opens, if your library opens a file descriptor and not have to close an exec call and the other thread does a fork which means your file descriptor gets duplicated and then an exec, you leak dot file descriptor into that binary and creative people have used that to exploit things. Because maybe that file is running in a different security context, well, that executable, or things like that. So, you really want to have a oclo exec flag to close that gap. The next thing is about sharing resources, topics like that. I mean, file descriptor is all nice because you can just pass around them on Unix, the main sarchins, KD bus will support passing file descriptors around. It's all really great. Unfortunately, there's some things where you have so many objects that file descriptors just kind of don't scale up, at least not by default. One example is user space GPU buffer objects where some desktop environments easily have a few thousands of them. So, for these special cases, it's kind of okay to have an ideal lookup table on your device file or something like that. But yeah, like I said, don't do it like DRM and reinvent your own resource sharing and passing because it's kind of annoying. You're most likely not going to think about security all that much, so you make it there. Everyone can get at the shared object kind of thing, which is not so great. Another thing is if you actually have a use case of passing around objects, think about uniqueness requirements. Does your user space on the other side need to know whether the thing it gets is the same thing it might have gotten from the other side? I know this is important for GPUs because the command stream validation does not allow back references. So, if you give it the same buffer twice, it's going to tell you, no, I can't check this and validate this. So, user space needs to know whether it got the same buffer twice. But something like the Wayland RX server, I can't really trust it's client all that much. The client might say, I'll have you buy your V-Buffer here with three planes, but I'm going to give you the same buffer object for all three planes. So, it needs to know on input time that it's the same buffer object. Kind of the nice way to do that would be the F-stat. Unfortunately, that means you get to implement the full virtual file system, which is a bit much work. So, what do we actually do in the DRM world? That's also a different problem. I mean that the sealed memory thing is so that the receiver can be assured that you either don't change the memory anymore, which simplifies the input validation thing, because then it doesn't need to copy. It could just check in place without the other side kind of being sneaky and changing things. And the other thing is you can also see like just the size of your shared memory block so that if you memory map it, you can have an assurance that the other side doesn't just shrink the file and you then get the sick buzz. So, different problem. But, yeah, what we in DRM is just when you input and it's the same object, we give you back the same integer ID in your local namespace and that way user space can figure out that it's the same thing. The other thing is about revoke if you have kind of any global resources that are not shareable, like keep your memory or things like that, think about revoke so that you can have like multi-user setups. DRM has got that because of some historical accidents with multi-user, which for example loginD can execute but not your X server. And if you switch from one X server to the other X server, the first X server does not want to give up the display hardware, loginD just takes it away. So, that is a very special case. The other thing is also if you actually have shareable objects, like you cheap you memory address space, think about properly isolating different clients. The thing there is the memory mapping support in DRM is broken like that because you don't want to do a memory map operation from an ISCTL because then background won't understand it, which is a bit annoying. So, you want to do a memory map unlike the device node file, but we've forgotten to restrict memory maps from all the clients for boffers it doesn't there. So, be careful there. The next thing is slightly hilarious, it's signals. I mean everyone hates them, at least I do. Unfortunately this is your next and there's no way to avoid them. Eight and no one is going to use your system called a RIO CTL or some will use them and just lost signals. So, you do need to have an answer. Unfortunately, the Mampage is completely useless, it says something about slow devices can return E-inter and the question is what's a slow device? Essentially, it's the other way around. If you ever see an E-inter, you have a slow device. So, the Mampage is totally useless. Yeah, it's like and the thing is like maybe the next scale version suddenly started the maintainer decided well maybe we should make processes at least killable and suddenly your device changed from fast to slow. The Mampage says it can sleep forever. Sleeping is kind of loud and forever is hard to prove and not prove. People are usually not like. One solution is just require that you use the space handles E-inter correctly in all cases. That's just not going to work. The other one is just don't ever break your blocking sleeps anyway. I mean, both cases are solutions of the kind of I'd like to have a pony.  So, that's not going to work. The next one is killable weights, which is kind of nice because you only need to care about when recovering from an interrupt when your process actually dies. But if you do it now, you'll see that it's a false script and someone else might have a tube from that false script. So, if the process dies, the thing actually doesn't disappear. And that duping thing is really common. For example, log-n-d has it for the revoke. The x-server has it. Sorry. Oh, this was fine. I thought that was it. Anyway, the x-server has it to share it with clients. And all these things. So, that's kind of not that great a solution. And the other thing is also really hard to test. Because you only can test all that recovery code by killing a process. It's really hard to figure out that anything worked correctly. The driver will fall over the next time around you use it. So, the solution we pretty much use in 9-on-15 is to stop varying and blow off signals. The thing is, once you decide that you have to be able to restart all your things, it makes testing your error recovery code really easy. Because you have all these functional test cases, all these test cases for corner cases. And the way you check error handling code is you just add new copy-pasted sub-tests of all these test cases. The second process bombards the first process that does the actual testing all the time. And if that's not enough test coverage, you just add more killable, weightable sleep, interruptable sleeps, or manually inject interrupt points. And yeah, the nice thing is that e-injury is an error code, but in definition it's a recoverable one. So we still have all the correctness guarantees. You can run any kind of application constantly, interrupt them, and if those things work, it gives you reasonable assurance that your error code is not totally screwed up. Which is nice, because that's one of the same evil people like the exploit. So summary, my recommendation is pre-opinionated support fold restart. Just do it. Ah, the other thing is, because the application of writers will still get it, all wrong, have for your subsystem driver whatever one function subsystem IOCTO, which does the restarting for you unconventionally. So that no one ever gets an e-injury and just falls over with white segmentation violation or something else. Because the thing is, the book reposer will come to you because it's uLibrary, not the other programmes, yeah, uLibrary functions are in the back of the trace. Then exploit e-interhandling for testing, because it's really nice. Or just don't do any like sleep and weights and do it all with fallable file descriptors. That's kind of one way to do stability. So that's the thing on signals. Do you have any questions? I'm running a bit late overall, otherwise I guess I can throw in a few more things. What is a bad time? The thing is, time is relative. And you realise that really quickly a senior start to grab time stamps from various hardware blocks because they're just not synchronised. So, firstly, make it really explicit to user space and then you can interface thing. Which kind of time source you're using? If you do anything on the CPU, just grab a clock monotonic because that's what DRM also and video for Linux are using. So you have a good chance to actually match with the other subsystems and drivers. If you're sampling or harvey clocks, give user space some way to synchronously grab a time stamp so that its own tracing and blocking can use the same clock and you don't have like the effect that the CPU size is kind of not synchronised with what the GPU does or your device driver does. We started rendering here and then completed here, but we kind of received the bytes here before the rendering actually. That doesn't make sense and kind of confuses people. The other thing is, well, use 64-bit seconds and 64-bit nanoseconds because that thing called 32-bit overflow that happens in 2038, it's kind of a thing.  So that's kind of on some, do you have a question? The other thing is waiting. Like I said, just use polar polarities. There's some people who've thought really hard about how to make that scale and work well. The other thing is support absolute timeouts because if you have this restarting behaviour and you need your own weight aioctol and the thing is every time you restart, if you have a relative timeout, it starts to skew.  There's some fundamentalist apparently who think this is really horrible because you're supposed to only have the timeout right around the weight, but the thing is user space is not going to be able to tell the difference. I mean again, if no one reports the bucket, it's not one. So if you do the absolute timeout, it kind of includes all the setup and tear down and whatever CPU time you waste around, it doesn't matter because you're still going to sleep as long as, at least as long as kind of your absolute timeout. I'm over the time actually, a little bit at least. So documentation that's kind of an off the thought, I really think you should have test cases because they give you an executable specification and that's so much better than anything written because people just disagree about what English means, where CPUs are pretty strict. One thing is if you have a really generic IOC tool or maybe even a system call to consider to write a man page, you're going to at least make Michael Kerrysg's life a bit easier. The other thing is there's tons and tons of documentation, something ABI and honestly, I don't think anyone really uses it that much. I tend to completely ignore it. There is some subsystem cases. The maintainers insist that you update the documentation in there, but I mean to submit the patch, get yelled at and fix it up because yeah, people tend to ignore documentation. So summary, only two minutes over the time, have a real-world user because otherwise no one is going to check whether your semantics are actually correct. Then have test cases for everything, for all your Conan cases, for all your error handling using interrupts and IOC TL restarting and all these things. Don't screw up the technologies too bad. On the other hand, it's not a disaster if you do so. In this case, people will laugh at you and you get to write a compact layer. Finally, think a bit about documentation and maybe decide not to. So, that's pretty much the lessons learned from writing graphics driver and totally getting it wrong. Thank you for listening. I guess we don't have


My name is Denise Denine and this is Holistic Happenings. I'm in Granby, Massachusetts at Total Body Yoga in Pilates Fitness Studio with owner Heidi McEwen. Hi, Heidi. I'm Denise. How are you? I'm great. I'm great. I'm excited to have you here. I'm very excited to bring the camera into a beautiful space and to get out of the studio and do this. This is such a beautiful space that you have. Yeah. Very excited. The name of your studio is Total Body Yoga and Pilates. You offer that to your clients and that's not all you do. It's not all. We're a barefoot studio and everything is yoga, Pilates, but dance, movement. We offer ballad tone glasses, Pyo, which is a fusion of your Pilates and your yoga together, set to really cool music and fun moves. The Bosu, which is a balance trainer and stability ball, foam rolling, so a little bit of everything. It's all interwoven into breath balance, posture. Yeah. Nice. It's good. So you've been doing this for some time now. I know we met, you told me this, what the other last week, how long it's been since. Yeah. Well, you and I, we met. Yes. We met. So our first meeting is when we graduated, well, we went through the 200 hour yoga teacher training together, but that was in 2013 and 2014. So we graduated. I know we graduated six years ago from our 200 hour teacher training, yes. But before that, my journey actually started in fitness and just finding is I was getting older. I was working in corporate America. I worked for an insurance company and the stress level from being in corporate America, I needed an outlet. So when I was working at the insurance company, I would, I was actually following my first introduction to yoga was Rodney Yee takes way back when I remember him. Yeah. So that was like early 2000. And I would take myself into the conference room, lunch break. Yeah. And I myself, I just a space to sit, to stretch, to Zen, to breathe. Yeah. Yeah. And when I had an opportunity, it was 2007, I had an opportunity to go to Hawaii. And that was my first introduction to like, I think a real traditional yoga class. Right. But it was right on the ocean. It was on the beach. And I said, someday. Sounds lovely. Someday. This is a little oasis. Yes. This is my blue oasis. And the closest I could get to Hawaii in Gambimass was to paint my walls. I think they're ocean blue and a connolly blue. You did a great job. So that's kind of where, and I was working as a group fitness instructor. Okay. So at the time when you were working in the corporate world, you were doing that, too? Yeah. Group fitness instructor. So I was working for Golds and Chickabay. Okay. And I was teaching group fitness classes. Oh, nice. And so that's when I first became certified and got into fitness and just the love of group dynamic and fitness. And that was in 2007 and 2008, 2008 I was certified to teach. Nice. Yeah. And did you lead the corporate world completely? Yeah. I did. I had the opportunity actually, things just line up. Things line up as. They do. They do. You just, you know. They just do. And things will happen as they should happen, which, yes, in timing. So there was just one layoff, too many that said I took my opportunity through the layoff. I had been introduced to Gail Stephanelli, Stephanelli who had the Gramby Stretch yoga. Really? Yes. So in 2008 I met her and it started doing yoga with her in her studio as I was working in part-time at the Golds. And then when she decided that it was time for her to move south and she wanted to move on, we had, she asked me if I thought that I would like to take a chance and make it my own and open the studio. So at that point I was just group fitness and Pilates trained. It was a big jump, though. It was a huge jump. Right. But if I hadn't taken the chance, I would have always thought back. You know, what if, could if. Right. Right. So you don't know until you try. Right. And you had a passion for all this. I did. I loved it. So it just all came about very organically. Yeah. And the yoga is, what type of yoga, there's so many different types of yoga out there. So we, our training was hatha yoga, which is kind of traditional. So it's asana, it's poses. Meditation, brah, pranayama and that was our, our 200 hour was just learning, you know, the basics. Right. The training anatomy. Right. Huge anatomy and the history and all of that. And then woven into that, then I've continued on. So. Yeah. So you have other certifications. Yeah. A lot of certifications.  It's been crazy. Yeah. So after our 200 hour, then I had the opportunity went to Kripalo. Yes. And it was wonderful. And I did the training with Jennifer Reese for the divine sleep. Yoga. Yoga nidra. Yoga nidra. Yoga nidra. Not yoga. Nidra. Well, you kind of feel like a yoga nidra because you can take on the world after you've kind of let everything else go. Yes. And you know, and I thought I was under the misconception about that type of yoga. I thought it was more of, you know, something that you wanted to do at the end of the day and just relax, which it can be. Can be. But. You can do it anytime. Anytime. Well, it's kind of like estimated about 20 minutes of yoga nidra is equivalent to two to three hours of good restful sleep. So, I mean, at any point in time, if you've, you know, just need to kind of unplug and just let go for a little bit and recharge, you know, like the whole world of think naps. So it's rejuvenated. It's very rejuvenated. Yes. It's energizing. It kind of just takes the weight of the world like off of you and it allows your body to heal and our bodies hold amazing healing abilities if we can get our hands out of the way and allow them to. That's true. I teach it in the evening because I do like, and it's Thursday evenings here. Right. I incorporated it into a restorative yoga class using props and kind of winding down from the week. Yes. End of the week. End of the week. Yummy to just to get in there and just relax a little bit. Yeah. Yeah. Yeah. So it's a guided relaxation. It's a guided meditation. They actually the there's amazing health benefits to it. So it's a very holistic practice. Yes. And it is, they use it in most all of the military hospitals to help, you know, with the PTSD. I love that. I love that. And there's, yeah, the other thing we talked about was one of the oncologists from Cornell University. Yes. And it's used to be able because of the chronic pain associated with the QML and radiation. Yes. So if we can just, you know, just kind of like desensitize and allow the body to just come into a kind of a restful, peaceful place, we can heal. That's the mind and the body.   It kind of helps you get back to, you know, being in your body and feeling and taking control over that, right? So you're providing all these other things to the people that are going through that too. It's been wonderful. We've been doing that since 2015. So this is five years. That's quite a long time. Five years we've been doing that. Nice. Yeah. And then two years ago, knowing I wanted to just take, continue and take it to the next level, I started my training with Patty Townsend and Yoga Center of Amherst and doing her embody yoga. That's a beautiful, beautiful place. Yes. It's amazing. Just to take it, even the yoga, you know, that whole connection, the cellular take it. So it's not so much what a post looks like, but how you feel. So that's what embodiment yoga is. Yeah. Is it a little bit like what we're used to as traditional? Yeah. It's a, you know, it's healthy yoga, tantric philosophy, woven together through teachings and training from the mind body centering and body main bridge, Cohen, and her trainings. So it's, yeah, it is amazing. And we, yeah, we finished and graduated in December last year, 2009. Yeah, 2019. Oh my God, we're in 2020 now. It's crazy. And so then I've actually put in to be one of the teacher training assistants. Wonderful. That's starting their 200 hour program starting in May. Wow. That's wonderful. So you're going to be helping the trained, the new teachers coming in. Yeah. I'm hopeful. Yeah. Yeah. Looking forward to it. Continuing, continuing my association and just my learning with the embody yoga. It's important, especially when you're providing these services to the public that you're always seeking out more, you know, ways and knowledge of doing these things because it's constantly changing. And you can never stop learning. No. Never. No. Through the practice. So, and I'm just renewing my personal trainer certification. Yeah. So that was two years ago too. It's all interconnected. Yeah. So the training, the training of the mind, body and movement and just how we, how we move, how we can move with ease too. That's very important, isn't it? It is. Especially as we age. Yeah. Yeah. You want to be able to, you know, keep the joints healthy and the body healthy and balanced. Balance is huge. It's huge for everyone. It is. Especially as we age, right? Yeah. Yeah. So can you tell me a little bit about the BOSU I see over here? Sure. The BOSU is a balanced trainer. I actually got first introduced to the BOSU when I was working at Golds as a group fitness instructor and have trained with Elizabeth Linnart who is a master trainer for BOSU and Balaton and Bar. We teach a, we teach so hard. Well, that's been around for a while. It's, and the BOSU is actually 20 years old. Oh. Okay. The BOSU on a balanced trainer. So it, the gentleman who developed the and created the BOSU David Weck, he actually went to school in Williams College and there's quite the history and there is, I mean, it's used for all ages. It's accessible. It's, I mean, we kneel on it, we use it for Pilates, we stand on it and it just gives that bio kind of that feedback to our bodies where it's low impact because you don't want to pound. No. And we don't pound in here. We can use it for yoga and just get the feedback so that you feel the move. And that's not easy to do. A yoga pose on a BOSU. No, that's it. It can be. Sometimes it can make an accessible because you can have your knees on it. So if anybody has a knee issue. True. You can make it all the way to the floor. See, there you go. You know, this is all these certifications that you're. That's it. Yeah. And you keep learning how you can make, I mean, we, I, you can make anything accessible to anybody. Right. So make adaptable props adaptable to people. Yeah. Yes. And that's what you provide when you're with your students. Yeah. Yeah. Everyone is a little bit different. Everybody's different. Everybody has, you know, some, some issue of something and we work with it. And the, you know, the instructors that I have here that the training that they've been through, you know, Lisa, who comes with me, she's done all of the BOSU trainings with me. She's also a track and field official. She comes with a long history of knowledge to and ballad tone and bar. That's important. Yeah. People that are very knowledgeable in what they're doing, especially if they're here to help you with this stuff. What is ballad tone? Ballad tone. Yeah. Ballad, ballad tone. Actually, again, Elizabeth Lenard is the master trainer for ballad tone. And so ballad tone is a fusion between ballet, fitness, standing pilates.  So it gets us to go back to our ballerina days that, you know, but it's fluid. It's movement and it's balanced, strengthening. And it just gives you the feel good to be able to flow, to be able to move. Right. Right. Does the fluidity. Yep. Just the movement. Yes. So we're going to do a video because we will move for about 45 minutes nonstop, but keep it, you know, without going anaerobic into it. It's just a nice, heart healthy because you're going to be pumping oxygen through those bodies. And you will get a good sweat on, you know, because I know a lot of people think that they're not working out unless they're sweating. Right. Yeah. I know. Yeah, I know. So you will. You will. Balance is hard. Yes. Sometimes balance and being. Balancing in life is hard. Balancing in life. Balance and interweaving. Anabosa. Interweaving grace. Through all of us. Grace. Yes. Yes. The grace. So when you're focused and balanced. Yeah. And being patient and being okay with how you, you know, how we look. Absolutely. Absolutely. Yeah. And I started with the ballad tone back in 2009. So we're 11 years of teaching ballad tone. Right. 11 years of teaching pile. Wow. Yeah. And I just love it. Yeah. More every year. Right. So. Now I'm looking at this beautiful football. I know you love that ball. I love that. I just love it. So can you tell me a little about that? I can. So we, we have all ages in here. Yes. What do we talk about? We have yoga. This is children's yoga. Well, it's children's but a lot of my, it's a problem. Yeah. All my adults look at this too because of the colors. So from ages five to 85. Yes. This is a breathing ball. We have, we've been doing the children's yoga classes again since 2015. That's wonderful. There's not enough children's yoga classes. And we have ages five to 12. Right. This breathing ball, especially where the children now have, you know, they're so. They're in their face. They're in their face and technology. Even when they're doing homework, they have the computers and yeah. Yeah. Everything. Right. So to take time to just say breathe and to learn how to breathe and to call.  Right. Definitely important. You want me to do it? Yeah, I do. I want you to do it. So this breathing is how we would take it and we would, you know, introduce that, that kind of mechanics of just taking in the inhale and seeing the visualization of how you inhale to expand. And then. That's so cool. To exhale. I love that. To let it go. Yeah. And to breathe. And it just slows things down to be able to use that breath and you can visually see. Well, just the prop alone is going to slow them down, right? Yeah. And focusing on that. Yeah. Yeah. Now you said it's children's yoga. It is. Yeah. Is there any tween yoga or is that something that like a 13, 14 would be able to go into an adult class or? We have 14 with like with a parent or guardian. Yes. Yes. And now that we've been kind of talking about it, you know, that, that 13, the poor 13 year old is kind of like in between. So it could be an awkward age. It's an awkward age. So, you know, while we go forward and we expand and we learn, you know, that children's yoga, maybe it is that we do from ages five to 13 and then 14 is that graduation into an adult class. Yeah.  And so they want to be with the older, you know, crowd. Yeah. And so I think that would be a beautiful thing. Yeah. It's been interesting. We've had one young girl that started with us when she was five and she's still with us.  So we, it's almost like letting them step into kind of like a training role, which has been amazing. I'm giving them some confidence to know and feel like they can help. Yeah. It's beautiful. So it's been good. Yoga instructor Abby Dorgas, she did her training up at Kripalo for Children's Yoga. She went through the yoga ed program and then did her 200 hour and comes with a background of about 12 years in the public school. Oh, well that helps, doesn't it? Yes. And she works with, you know, from free school to the kindergarten first in that history. Perfect. So that would be, that's a beautiful transition for that. It's been, it's been amazing. It's been wonderful. Yes. Yes. So you also offer a nutritional piece. We do. We do. You know, we created and started to have, you know, this as the fitness because that was my, my comfort level as the fitness. And I am, I'm not a nutritionist, but I knew that nutrition was, you know, fitness is only one, one part of the equation. Oh yes. Nutrition is huge. It is really important. It is really important. Yes. So I wanted to make this a whole health and wellness facility in here and bring nutrition in and just bring the whole, you know, full circle into how we fuel our bodies and, you know, the mindset about nutrition and, you know, for health and longevity. It's just a huge piece that we're missing. And I know myself included in that is, it was difficult for me.  But, you know, it's, it's a mindset and not to beat yourself up and then you can just get back and it's not it. And it's just a healthy eating plan. It is. Right. It is. Taking time to prepare it for yourself. That was like, that's huge. That's huge. It is. Yeah. We do that. And the way that I brought it in is because of my association, you know, first with PIO as one of the fitness programs. So it was kind of a natural just partnership because PIO, what it is a, is a team Beachbody fitness program. It's one of the at home fitness programs that you can do. And I loved, you know, I love PIO and I love what it stood for. And so I did the research into, you know, becoming a team Beachbody coach. And so they have a nutrition. I mean, they have amazing nutrition programs. So, you know, their baseline is their Shakeology, which is a just a one, one, one-day nutritional shake. And I mean, I could talk a full hour on Shakeology. I will do that. You were telling me about your mom and how she was. Yes. Yes. So I started, well, I did it for myself first before I ever introduced it to the studio. Absolutely. Yeah. And that was the one piece that I was missing. You know, I thought that I was working out. I could eat anything I wanted to. Well, you know, when you're 20, it's a different one. Well, yeah. But I still think I can. Unfortunately. But it was, I mean, I was 49, I was just turning 50 when I started. So I, and when I started, I started to drink the Shakeology. I did it for myself and I did it for about a month and I felt amazing. And I lost 10 pounds, which now I've maintained. So, but it was just, you know, I used it to get all my vitamins, all of my minerals, probiotics, prebiotics. Well, that can be confusing. Everything. So it was, it was done for me because I can't cook. It's the healthiest meal. I'm getting better. Yeah. But it's my healthiest meal.  And when she first started it and following the, you know, the portion fix and the nutrition program that we had to went along with Shakeology, which probably killed me, but she lost 18 pounds. But, and she's, you know, she's stayed with it, the Shakeology.  And she just, she's got. Someone powering that is out for her. She feels energized. She feels good. Nice. So that gives her the energy to do everything that she wants to do and keep going. So that, you know, it just makes me happy that I can, you know, share, share all of that. Absolutely. And it's important for people to know that they're going to be coming to the studio. That I just, I tried this. And this is not something that I even, you even approached me about or asked me about. So this is not something that's going to be forced upon anybody. And you said before that maybe it's not right for everybody. Right. Either. So. Yeah. There's, I mean, it's a, it's an additional service that we provide. You know, someone might be missing. Yeah. Yeah. You know, some people may come in here and they're just looking for the fitness. They've got something already, which is wonderful. We have a community here. So you can, it's almost like you build whatever you need for your body, for your life. You can choose your pieces. We build it to make it the most, you know, the best possible. So, you know, total body yoga pilates, we've been shortening it to TBYP. Right. That's your, your anagram. Yeah. Yes. And it also stands. It's on your shirt. It's on my shirt. Yes. The team TBYP. It also stands for the best you possible. I love that. So it's just, you know, what's going to be, everybody's an individual. What is, you know, is it the mindset piece? Is it just nutrition and not the fitness and the support? Because we also offer accountability groups. So I've taken, you know, the fitness, the nutrition, and although, you know, the four walls of the studio are amazing, but we've kind of like expanded out. You do a lot of community services and allow, just not allow, but your customers, your clients can also be part of all that. Can you tell me a little bit about those services? I can. I can? You can do it. We had, you know, we do like a community yoga class. My passion is, you know, food, nutrition. So I thought it was natural that we would, you know, do a community yoga class for the food pantry. Nice. It's wonderful. So, you know, canned goods we bring in. So we have really, you know, like over the last, again, five years supported and love helping the local food pantry, neighbors helping neighbors. We've also done, connected up with, did Earth Day Yoga, which is connected up with Protect Your Brass. Oh. Was another one. Nice. Okay. One of my colleagues from Embody Yoga. Oh, beautiful. So we did that with her. It was the period project. Yes. Which is another one. Yeah. Through Santa International. That's wonderful. We've been doing that for about at least the three or four years. One of my members is part of that. Yeah. There's just. I know. What was the other? The more years. We've done the, was it the veterans? Veterans. Yes. Yes. That we've, yeah. We do a lot. We do people, you know, it's just, it's, how do we expand the health benefits of yoga, fitness, nutrition? Well, it comes full circle, isn't it? It's, it is all of those things. And when you're really living it, then you're really, you're giving it out to the community. It just doesn't stop within the studio here. It doesn't. It doesn't. It doesn't. And you know, not only like the community service and the different things we do, but I've had, you know, so many people, either they've been here and they've moved away there. They're able to stay connected. Oh, that's true. You know. Nice. Through our new, you know, the nutrition and fitness program. Yes. Yes. Which we've been running since 2016. So four years now. Or 15. I know. Where's the time? Where's the time gone? I have no idea. It's been amazing. Yeah. I'm excited to see where it will go from here. Yes. Yeah. Well, your studio is amazing. It's just so beautiful. And I remember when you first came in, you had a vision. I did. You did. And it has a lot of just really cool butterflies. And you've accumulated quite a few. I have. And can you tell me a little bit about the butterflies? Yeah. Butterflies actually have had a life of their own. And honestly, that's not where I was going. When I first opened this, I was going for a wave, a fluid theme. It came, the wave of the lights and stuff. And actually you and I had talked to him. I first put up the lights, but the butterflies were on a, it was a silk thing that I had. And I was hoping, I forgot to bring it, but anyhow. There was three little butterflies at the bottom. And it was like the blue butterfly transformation. It had a, you know, just this whole energy of its own. Beautiful meaning. Yes. I never brought anything in here. All of these have been like gifts or donated or, it's the members or it's the people that come through the studio doors that have just brought their energy, their life into this. It's just gorgeous. Yeah. It just shows the support that you have and the appreciation that they have for you. Yeah. It's absolutely beautiful. And it will take a little scan. A little score in the scan. Yeah.  It is Heart Healthy Month. So one of our, you know, we run the themes and we talk about, you know, how all of this comes in for heart health and nutrition. So next month, March is National Nutrition Month. Yes. And we, What are you going to put up then? I don't know. We might just stay with the hearts for a little while. Yeah. Or just, Yeah. We meet here too as, you know, nutrition and just the doors are pretty much always open. Yeah. It's just a beautiful energy. It's a beautiful space. Thank you. And it has such a great history and it shows that what a passion you have for bringing this to the public. Yeah. It's just, it's perfect. It's very good. Yeah. Yeah. I think, you know, I would love for people to come in and check out your space. And at the, at the end of the show or on the credits, we'll have contact information for Heidi where you can look at her schedule and her times. Yeah. And all the, all the energy for all the instructors that come in here and there. Yeah. Everything. Yeah. Feels wonderful. It's, it's been good. So yeah. I love you. Thank you so much. I love you too. It's been wonderful. Yes. So remember, get inspired, get healthy and have some fun along the way. Thank you.


If you like good baseball tonight is a fun night to play some MLB DFS because we have a lot of what I would call Electric pitchers on tonight's slate. It's not just Joe. Hey, Ohtani Ohtani Obviously number one from a an intrigue perspective from an interest perspective as he should be But it's also Aaron Nola who was just off this Disgusting start last week least Garcia facing Baltimore. I like Joe Musgrove a lot I find it to be pretty electric Dylan sees is fun to watch So from a baseball watching perspective tonight is going to be a lot of fun But that also does translate to DFS because I love slates where I've got choices that pitcher. I've got that for today I've got some good stacks I want to use both in the high salary range and the low salary range, so it's gonna be a fun night Let's dive on in and get you set welcome on into the solo shot That's right here on the fan dual podcast network in number fire.com. My name is Jim Sonnis I am a senior writer and analyst for number fire.com here to break down Wednesday's nine game main slate with lock set for 705 four to night. There are a couple of weather notes here Several of them are rain related. Unfortunately that Cleveland rain out last night was maddening Uh, thankfully that came down on the main slate for today But we do have wind blowing out in New York for the Yankees and the angels. It's at a 10 miles per hour Temperature there is 92 degrees So really good hitting conditions upgrade hitters for the Yankees and the angels Which is unfortunate because Shohei Otani is pitching Although he does benefit as a hitter too. So I guess it's a some give and take there for sure We have similar conditions in philadelphia so upgrade hitters for the marlins and the fillies There is a chance of rain in buffalo for the blue jays and the mariners. It looks like the rain Should be out of there by first pitch So check back on that later, but I'd expect they're good to go and boston rain is present during the game Check back on that one later too to make sure it's not too heavy for the red sox and the royals And finally rain is possible in Cincinnati for the pod rays in the reds If I were ranking these games in terms of concern right now I would say Cincinnati is number one and then boston to Buffalo three as far as which cities may have the most annoying weather from a uh from a dfs perspective So check back with kevin roth of rotor grinders this afternoon to see what he says about them But at least based on my initial read here. It looks like Cincinnati is the one that's most concerning followed by boston and buffalo Hey soccer fans this season fan duel and captain morgan are teaming up to give you a one of the con soccer contest Introducing captain morgan's soccer pick them a weekly fantasy contest that is entirely free to play The contest is simple. All you have to do is make quick predictions for saturday games this soccer season You'll earn points for each correct pick and compete for a chance to win up to three thousand dollars in prizes every single week Head over to fan duel and enter the captain morgan's soccer pick them today must be 21 plus to participate For more details as a fan duel dot com or download the fan duel fantasy app Eligibility restrictions apply and don't forget to make your game day more delicious and sub in the captain Pitching preview for this wednesday main slate Aaron nola is the highest salary pitcher on fan duel checking in at 11 000 dollars followed by louis garcia at 10 5 chris bassett is 90 hundred dollars show hey otani is 9500 dollars and we have joe musgrove steven mats coming off the covet iow dylan sees and max freed as the others eight thousand dollars are higher for today and Nola and garcia the two highest salary guys in this slate I'm gonna pull them above otani I will say that otani at 9500 dollars is enticing The reason I wind up being lower on him is because both nola and garcia are in tremendous matchups at home Whereas otani isn't a tough matchup on the road So I will rank those two higher But I would say otani to me deserves to be number three for tonight and worthy of exposure Despite the fact it is a really rough spot. Nola number one for me. He was absolutely Disgusting last time out. He faced his 22 batters But got 12 strikeouts if it had been like a full nine inning game, you know pitch count would have been high Maybe we're talking like a a really special game there But now nola is back at home and facing the marlins And I think we need nola at the top of our list for tonight The reason that start last week was interesting is because it came on the road typically erin nola Has struggled there if we look at him since the start of last year on the road His era is 4.90 with a 27 strike area The strike area is still very high But it's not quite as high as the 34 mark. Yes at home with a 2.49 era that is A big gap and it's big in the areas we care about specifically strikeout rates strikeouts can deviate home versus road We see that with nola So there aren't a ton of pitchers who I actively bump up a lot when they're at home Bump down on the road Nola is one of those guys and that big met start last week did come on the road Which bodes well for him tonight as he goes back home He also does have a plus match up here facing the marlins a 91 WRC plus versus righties with a 25 strikeout rate and an 8 walk rate All three of those numbers really good for the upside of opposing pitchers And nola has upside to begin with again He had nine or 12 strikeouts last week against the mets other games this year He had at least nine against the yankees red sox brewers and cardinals And all four of those came at home, which is where this one will be for today I have not always been into nola so far this year. I love him long term He's tremendous fun guy to root for the strikeout rate this year has been down from last year But it's a peach spot. He's at home good matchup not the worst salary by all means So I do want to be high on air and nola as a result for tonight He will be my number one pitcher on fan dual for today Now garcia is also at home in a plus spot. He's facing the orioles He is a guy whose movement has decreased since the sticky stuff discussion began So that's always noteworthy And garcia despite that has still been effective Now you also put him like nola in a plus spot at home So I think garcia despite being 10 5 deserves to be number two for tonight In those four stars that decreased movement garcia has a 3.84 skill interactive r.a With a 26 strikeout rate He has still gone six plus innings in three out of those four stars And that's even with three of the four matchups being pretty tough ones He faced the blue jays twins and the white sox the white sox game was at home And in that game garcia allowed just one run across seven innings He had eight strikeouts and the white sox despite being better against lefties Above average versus righties as well now garcia back at home good match up here against baltimore They have an 84 wrc plus versus righties with a 25 strikeout rate and 8 walk rates They're pretty similar to miami across the board both in the strikeout and the walk departments But they're a big boost to opposing pitchers once you combine everything that they bring to the table together Garcia good this whole year We've seen him still be good despite the change enforcement of the rules And I think that will continue for tonight as he finally gets a plus match up here So garcia today a very good play to me. It's nola one garcia two otani three If I had to pick a top value that guy would be dillon cease With that said he's well behind those three guys. Uh, and if I don't get to cease for tonight, it's not going to bother me It's not the same as gsclifani a couple nights ago where I was like, I'm not going to use this guy With cease I might Uh, just because I do want to stack the astras. I do want to stack the blue jays And that's not very easy with those guys So I might get to cease but Not actively seeking him out Which is worth noting here for sure cease is at least deserving of consideration He's facing the twins and as we saw with lucas g elito last night The twins can make some noise. They have a 104 w rc plus against righties with still a lot of power The good thing is that cease is getting strikeouts recently The spin rate is down for him and the movement has decreased over his past five starts But he still has a 3.53 skill interactive era in that time His strikeout rate is 27 with a 5 walk rate. So the peripherals on cease are really good It is worth noting. He's had two rough starts in that time Those rough starts came against houston cleveland. The two good offensive he has faced The good starts he has had have come against pittsburgh and then two against Detroit The twins are not houston, but they're also not pittsburgh and detroit in the negative sense They're very much in the middle ground there and that's why I can't get myself to rank cease above The higher salaried options despite the fact that I do want to stack some higher salary teams for today But I also do think that there is a case to be made in his favor for today. So $8,200 I'm not opposed to it at times But I what I want to do is make sure my exposure is moderate with cease keep it limited make sure I'm exposing myself more to otani to nola to garcia and making cease more of a Potential rotation piece and again if I don't get there, that's fine I think that it really is about those top three guys for today, but cease still pretty fun and someone I am open to use it So let's talk about the stacks and it does come down to some high salary teams Now if you're using nola, it might be tough to get to the studs on these teams But with that said, I think that there are enough value plays here where if you pair The jays or the answers of the second lower salaried stack you can make it work So we'll start here with the highest salary teams and then go through some potential value plays later on The jays absolute force against lefties at least I think they will be like their numbers don't necessarily bear this out But I think long term they will Show them to be a disgusting team against lefties a lot of powerful righties in this lineup And it's weirdly kind of like the old school blue jays with josh donalds and joseph attista edwin and carnazione They're kind of like that once again. They're facing a left today in just as sheffield So the jays the number one stack for me sheffield has seen this movement go down recently And he was starting to struggle before that too The decreased movement has not helped reverse that trend because over his past four starts sheffield has a 4.64 skill interactive ERA, that's not a terrible number But the hard hit rate is up to 52 percent. It is 43 percent for the full season So even if it does come down a bit It'll still likely be higher than the league average the fly ball rate for sheffield has gone up in this time as well It's still below average still better than average But it's gone up the results first sheffield have been rough He has a 5.69 ERA for the full season He let up seven runs the twins in this time He let up four to the tigers as well and the blue jays at least in my eyes are better than both those teams against lefties So I think we need to be high on them here And bank on the fact that we can expect this team to be a force against lefties long term And I think that the big appeal of the blue jays is that Facing a lefty boosts up the peripheral guys like we can use vlad Beshet send me in against anyone But it boosts up the non studs in this lineup lourdes goriel his iso goes up to 169 versus lefties Which means that there is much more upside for him There than versus righties his iso is actually like 140 versus righties, but like It just feels like there's more upside there against lefties I would also give upside boost to randall gritchick tailscar. Hernandez I would not be shocked if we see george springer start to Awaken a bit once they start to face lefties. I'm still not like actively seeking out springer because I do worry about the nature of the injuries that he had that Landed him on the injury list, but you know, he's he's been Fine since coming back. So to me I think you get goriel you get gritchick start there with the value plays and see Which of the studs you can get to while using nola or Garcia for today. I think that can work. I want to try it But both those guys do get boosted up versus lefties and that makes me feel better about this stack as a whole I regret to inform you that the astros are in play once again This is like the 82nd time the past two weeks that they have then featured in stacks but and yeah, it's gonna be tough to get to them with nola and garcia, but We might be able to get there with otani and I think there are some value plays here for the astro We can talk about as well So let's run through them here and then we'll get some value in our next stack They're facing that harvey. So, you know the desire here should be fairly obvious harvey Hasn't really changed much much during the spin rate discussion His peripherals have stayed rough the most relevant sample on harvey will be as past eight starts with more curve balls In that time harvey has a 4.92 skill interactive er a his hard hit rate allowed is up to 44 percent The fly ball right now is right around average of 36 percent And he's letting up or getting a strike out just 17 percent of the time The peripherals for harvey are bad But the results have actually been worse. His er is 11.30 He has let up less than three runs just once and he's let up five plus runs five times in an eight start sample The only positive that harvey has in his favor for today is the park They're likely gonna have the closed roof for today in houston, which means it's cooler than a lot of other spots out east Part of that's wide ranked the jay's higher the jay's scheme is also not super warm But it's humid which is good and it's warm enough for me to bump them Bump them into first and put the astra second on the list for today The one guy here outside of abraham toro is kind of like some salary relief is mild straw He's $2,600 and I very much was not into straw at the beginning part of the stretch I talked him out of the q&a was not into him actively poo pooed him I'm softening on that because over the past two weeks straws hard hit rates up to 39 percent Whereas a season long marcus 26 percent. He does have some stolen base juice as well So I'm open to it. I was not previously I think that straw and toro could help us stack them with nola It will not be an easy task still, but I think it's worthwhile I am open to both those guys now whereas at least the straw. I was not previously so Coming around a mild straw, which does make it easier to stack the the astros, but It'll still require some creativity with your second stack So let's talk about a creative route for stacking the astros and the jays And the talk about the royals here as our third ranked stack They're facing martin pares and it seems like pares has been impacted by the rules enforcement We've got five starts on him with less movement on his fast ball and pares has a 5.68 skill interactive era With a 13 strikeout rate The hard hit rate i does up to 43 percent Which used to be kind of like the calling card for pares back in the day was limiting hard contact That's not working in his favor anymore. His era hasn't blown up. It's it's 5.49 across five starts It's not a big sample. I don't want to look at era, but i'm saying You know the results have not been the worst But I do think that they could inflate here because pares is facing the royals for the second time in his past three starts He was good against in the first time. He allowed just one run on three hits over five innings. That's very good But now the royals have seen him recently We saw a similar situation for pares versus the astros earlier in the stretch I will say the astros and the royals not equivalent But in the first start against houston pares had seven and two thirds shut out innings The second time they chased him after just two innings with six runs allowed So no the royals are not a slam dunk because we did just see him shut them down two weeks ago and That's worth noting if they were a slam dunk. We just take the value and rank them first in the slate But I do think they have upside despite the risk So I want to be high on them here when looking for salary savings The key name to watch with the royals is immanuel rivero. He just got called up from triple a he had great power numbers there But he left last night's game with some risk soreness massive massive buzzkill that means that he might not play today I would be upset if if the lineup comes out in the q&a show today I might sob on air if he does not play Because he's 2100 dollars with likely bad sixth has some power facing a lefty If he plays I'll be all all about rivero If not We can still get some value here via hunter doger and michael taylor I would just be very sad so Send the good vibes the prayer circles out to immanuel rivero get him in there for today And hopefully we can utilize him at 2100 dollars. I'll still go to taylor and doger if not, but I really really want a piece of rivero there for 2100 dollars Let's finish up with things to watch for today Not finish up got dinger calls too. Don't forget. I do not fret did not forget for today Things to watch uh chris bassett was pitching well earlier in the year We talked about him as being like a stud here on the solo shot He is in good pitching weather. He has a good matchup today. I will not be going there though It seems like he is negatively impacted by the sticky stuff discussion over his path three starts bass It has a 4.83 skill interactive eray with a 20 strikeout rate and a 10 walk rate Those are more stack worthy numbers than uses geyser pitch I'm not going to stack the rangers because the weather is so bad for hitting But i'm also not going to use bassett. So he's off the map for me It is nola garcia notani with sprinkles of seas when I want to stack the blue jays and the astros together The philly's salaries have come down. So I could see stacking them tonight actually pretty solid they're facing jordan holloway Holloway is coming back up from triple a he had a 22 strikeout right there So he's not overpowering that is similar to what we saw in the big leagues earlier this year Holloway was doing a good job of suppressing hard contact. So again, philly's not a slam dunk But they're low salaried good enough spots good weather for today for hitting So I would if our ranking out value stacks, it would be The royals followed by the phillies and that does mean if we get some bad weather In the boston game We do still have value outlets via the phillies versus holloway for today. Finally if you're looking for one more stack I would check out the padres Again check back on weather with this one too because this is the riskiest weather game on the slate But they're facing vladimir gutierrez. He is still suppressing hard contact to an extent but Starting to let up some dingers The padres scored four runs against gutierrez two starts ago and now that game is in sincenady So they have some value here and I think that they do have some lower salar guys will mires tommy fans pretty low I also like transgression as well despite the fact he did not come through on our home run call last night So between the royals the phillies and the padres There should be enough value to get up to nola for today. And again, we also have straw toro Gouriel gritchick all those guys work out well So we should have enough value to get to the highest salary pictures for today without limiting themselves When it comes to the stacks. All right, let's do dinger picks for today As always one boring pick the chalk one and one fun pick The boring pick will be your don alvarez lefty facing matt harvey not the best Dinger conditions, but still think that alvarez is good enough to overcome that So your don alvarez the boring pick for today. The fun pick will be salar pares It's the pares versus pares matchup as he's facing martin pares. So I'll go salar pares or pares Should we do a double don call? Sure, why not over over one and a half home runs for salar pares for today against martin pares? We'll see if he's in there Hopefully he is obviously with a catcher yet You never know for sure If he's not in there we'll give an update Later on today in the q&a show for who will take his place in the dinger call It'd probably be randall gritchick if I can't go pares So if there's no pares, we'll go gritchick as the home run call for today But as mentioned we can talk more dingers today on the the q&a show That is on the fandall youtube twitch facebook and twitter pages at 4 p.m Make sure you are subscribed there. Make sure you stick around at 4 30 erin dolin will swing by and break down tonight's mba game Should be a pretty fun one three two series there So she'll break that down at 4 30. I am on air with the mlb dfs q&a at 4 p.m Today make sure you are subscribed on your platform of choice search for fandall on youtube twitch facebook or twitter Hit subscribe there and get your questions in later on today Also, make sure to subscribe to the number fire daily fantasy podcast feed wherever you get your podcast because our pga breakdown For this week is already posted with myself and brandon gadulla Talking about the rocket mortgage classic talk about whether bryce and can repeat uh for this week at detroit golf club roster construction good good amount of value plays this week and more find that by searching for the number fire Daily fantasy podcast feed on apple podcast spotify stitcher google podcast or wherever you get your podcasts If you have questions for me. I am on twitter at gymsonus j i m s a n n e s You can also follow the fan dual podcast network at fan dual podcast big. Thank you to everyone for tuning in for today Good luck to you tonight. We'll talk to you once again tomorrow. This has been the solo shot right here on the fan dual podcast network


A multiple unit trained or simply multiple unit mute is a self-propelled train composed of one or more carriages joined together, which when coupled to another multiple unit can be controlled by a single driver. Although most multiple units consist of several carriages, single self-propelled carriages also called rail cars, rail motor coaches or rail buses are multiple units if they are capable of operating with others. Multiple units are classified by their power source and are of two main types, electric multiple unit mute or diesel multiple unit DMU. Diesel powered units may be further classified by their transmission type, diesel electric DMU diesel mechanical DMMU or diesel hydraulic DHMU. The term multiple unit does not denote locomotives using multiple unit train control.


The article discusses the challenges faced by young people with severe mental disabilities when it comes to choosing a career path. These challenges include both external factors such as societal stigma and discrimination as well as internal factors related to the lack of resources available to help them make informed decisions about their future. However, there have been recent developments in the field of career guidance which aim to address these issues and provide young people with the necessary tools to make informed choices. This article was authored by N.A. Karpova.


I am super excited to share with you guys on how to cast out demons This is my number one most requested topic all the messages I get I'm almost all of people requesting stuff to speak on It's always please talk about how to cast out demons. Please talk about the demonic realm Okay, so Everybody it seems like is having some sort of deliverance ministry I mean deliverance ministries are just popping up people are casting out demons all over the place and and Doing all sorts of things and it's got me wondering is it possible that I've been wrong is it possible that maybe I just Been too rigid Too cold in my assessment that maybe I'm not letting the spirit move, right? We are told in the scriptures that we wore not against flesh and blood We are told that we wrestle not against flesh and blood, but against principalities Against powers against the darkness of the world and it says against spiritual wickedness in high places And then we are told that the weapons of our warfare are not carnal And so this fight that we're having that we're in is a spiritual fight and it's not just the things that are between us and other people But against demonic forces sometimes So maybe they have a point now Jesus did say in reading from what Isaiah said as well That the spirit of the Lord is upon me because he has anointed me to proclaim the good news to the poor He has sent me to proclaim liberty to the captives and recovery of sight to the blind To set at liberty those who are oppressed to proclaim the year of our Lord's favor And so when it says to set The captives free or to set at liberty those who are oppressed.  Let me just think about that passage that these guys are always quoting in Mark 16 You know where it says in verse 17 it says and these signs shall follow those that believe in they shall cast out demons Hmm Is it possible? See I've seen the guy who I said I'm not gonna mention his name I've seen him even play a recording of I guess he was casting out a demon And then you've got this guy Pagani who is I guess pulling a demon out of someone's back That seems to kind of be in style now, huh pulling demons out of backs And then this guy Salavar this guy's so good.  I mean is there someplace we can go to to actually learn How to cast demons out maybe ought to be a school someone that teaches how to cast demons out Watching my video Now the Bible does say that who the Sun says free this person is free Indeed right and so maybe there is something to this You know what? They might be on to something. I think I've got it. I think I've figured out matter of fact. I'm on their side now. I Know how to cast out demons. I figure this out Just took a little bit of time it clicked Just by thinking about and reflecting on the scriptures It came to me How you cast demons out? You ready? Well, James says submit yourself to God Resist the devil and he will flee but shouldn't it be more to it? Shouldn't it be some sort of way to? Cast out demons. I guess the person does have a demon What's a good way and you know what? Maybe it's not casting out demons But how do you deliver someone? What is a true deliverance ministry? How do you set captives free? I'll tell you how Here is the surefire way to deliver someone from any sort of oppression Here is a surefire 100% way that if a person is being oppressed or Influenced by a demon here's a surefire way to remove that to cast that demon away so to speak Guaranteed ready. Here it is If you confess with your mouth that Jesus is Lord and believe in your heart that God has raised him from the dead You shall be saved Just that simple Because where the Spirit of the Lord is There is liberty there cannot be the two in the same vessel There will not be the occupancy of the Spirit of the Lord at the same time of any sort of demonic influence Because what does the Bible tell us greater is he? God that is in me then he any other influence demonic influence or otherwise That is in the world Amen