For us to see, complex chemical and electrical reactions must take place in the proper sequences. Biologists tell us that the human eye's photochemistry is so fast that the first reaction takes place in one five billionth of a second. Discover more fascinating features of the visual system which defy Darwin's theory of random natural processes. Coming up on today's edition of Origins, Behold His Beauty with Dr. Randy Galloosa. Welcome to Origins. I'm Ray Hypal. It's an honor to be your host today. During this program we showcase interesting guests who present evidence from science along with other important facts validating the truth of creation and the accuracy of the Bible. Today's guest, Dr. Randy Galloosa has undergraduate degrees in engineering and theology. He has earned an MD and also a master of public health from Harvard University. Dr. Galloosa is a registered professional engineer. In 2008 he retired as Lieutenant Colonel from the U.S. Air Force. Now he's the president for the Institute for Creation Research in Dallas. Welcome to the program, Dr. Galloosa. Thank you so very much, Ray. It's a pleasure to be here. I'm fascinated by this title Behold His Beauty. What do we mean by that? Well, we're going to be talking about the eye today and we're going to be talking about things that we see are beautiful. But in this case we're going to be able to look at creation and see the beauty of the Lord Jesus Christ in another aspect in that thing which He has made and which we all love, the human eye. So everything that God has made should point back to Him as its maker. Well, when we think about the eye, the thing by which we see, we don't often really think about, well, God made that eye and therefore the eye should say something to us about who God is. It does. It does. It really says a lot about His genius. It says a lot about His wisdom as well. In fact, I even have a hypothesis right here that worship should be the normal response to, not just great preaching and not great music, but worship should be the normal response to science, something that we don't normally think of. And I'm sure you're familiar with that verse right there. It says, I am fearfully and wonderfully made. And I know you've said it and I've said it and all of us have talked about how wonderfully made we are. But, you know, we never say the whole verse because when we put the whole verse together, it actually begins with this. I will praise you because I am fearfully and wonderfully made and my soul knows this greatly. So science whereby we get knowledge should lead to worship. When we start to learn and understand how we're made, that should cause us to fall down on our knees and pray for our maker and say, wow. That's right. It's right because it is so just mind-boggling complex and it is just absolutely astounding to see as we even look at when we just get right into the human eye. So I'm going to make a prediction that at the end of our show here that people should be saying inside their heart, praise the Lord just by looking at the human eye and all those things. And just tell them in here that we have on the screen, all of us who have gone to medical school have seen his pictures. His name is Dr. Netter and I'm going to use some of his pictures today. That's actually a painting by the way. That's not a photograph. That's a wonderful painting of a cross-section through the human eye and I wanted to make sure he got the credit for some of the pictures that I gave. His name is Dr. Frank Netter and we're going to be looking at several of his paintings today that I actually studied when I was in medical school. So it all begins with, as you can tell, light. Light. And so a lot of people wonder what in the world are we even talking about when we talk about light? And nobody knows exactly what light is. Is it a wave? Is it a particle? But we do know it's energy. It's pure energy and obviously it moves at the highest speed in the universe which is the speed of light and it's vibrations there and it's how that light reflects off different features and the different wavelengths is what enables us to see these wonderful colors or in black and white along those lines. And it all begins with the eye and the eye is there to collect the light but the ultimate goal, the ultimate goal of what we're really after is information. When you're looking at me you're actually collecting a lot of information and I'm collecting the same from you. How is all of that happening? It doesn't happen in the eye.  So what we're going to get to by the end of this program is the collection of information. So we start with this data, this light that's coming in through these receptors but that's just data. That's not information. We don't have any way to process that, right? Exactly, exactly. And these receptors as you call them are really in many ways. They're really a sensor. They're a high-tech sensor, much, much better than anything any humans have made to detect her and they begin developing. Right about the time a woman would recognize that she is pregnant and about that time little embryo, as you can see on the screen right there, has already started to form its little eye in what's called an optic cup. That's in the drawing there on the left-hand side which actually makes it a little easier to see there but over on the right-hand side is a picture of a real human embryo at about that right time and right where it says on the picture there, lens placode is where the eye is beginning to develop and you can see other things there, heart and it even calls it a tail on that and that's because these pictures are drawn by evolutionists and we're going to talk about that in just a second. It's not really a tail. It's not even close to a tail.  It starts as a single cell and there's a program in there and there's information in there and it begins to build itself. Can you imagine how much engineering it takes to make a self-constructing entity that starts off of a single cell and slowly and gradually builds it up and then the cells change into just the right cells for a heart or for your kidneys and some of these are going to change into your eye and there's three layers of tissue that are being built up and as you can see there on the right-hand side of the screen that eye is actually going to self-construct by some of that tissue unfolding up on itself and making a cup and then another layer of completely different tissue as you can see there is going to be pulled into that cup and it's going to break off and it's going to become the lens and then the lens is going to send signals out to other tissue and it's all going to start to self-grow into an eye and what's cool is you see down there on the lower left you see those blood vessels that are holding that lens in place you know what those are acting like? Just like scaffolding in the construction of a building and like here's that tall tail right here this picture was taken from the book on biological science and it said this, for example the human embryo has a well-developed tail and also a series of gill pouches in the pharyngeal region those little folds of skin you know they were never gills they never have gill tissue and what about that other thing? It says human and fish embryos resemble each other because human beings and fish are a common ancestor we like that tail and the body grows into that backbone it's never a tail they still say this they do they still teach this and as you said it's totally absurd but fortunately baby develops and by birth believe it or not eyes are at 75% of their adult size and by the end of the first year they're 90% of their adult size and that's because baby is going to use that data that's being brought in by those eyes in order to develop on all those things so the eye needs to be developed very quickly because everything else is dependent upon that data that eventually we're going to say turns into information somehow Ray you are absolutely right there is a lot more to seeing than just the eyeball in fact eyelids don't even get a lot of recognition but without them we would all be blind as you can see they protect the eye very very well but they also have a lot of different structures in there that produce oils that lubricate your eye every time you're blinking right now you would like that lubrication they're producing tears to help you also see and smooth out your cornea so there are a lot of structures in fact if we were to look inside of an eyelid as you can see here right on the screen this is an artist rendition and it's blown up there's tiny muscles inside of there there's dense connective tissue which give it the shape that we all like and inside of that there's even a gland which produces that oily compound which is excreted right through a tiny little pore right here on the end of the eyelid so eyelids are absolutely essential and I like to see them get some credit because the Lord made them and besides they're kind of beautiful to look at in time at all of those things you know that's true and as we think about the eye and the eye is incredibly complex and comparatively speaking the eyelid is much less and yet just looking at the eyelid that's enough to make you want to praise the Lord and again both of these things having to develop together work together all this by random chance right exactly that's it and so when the Lord makes things he makes them functional but he also makes them quite beautiful as well and we can even blow that up a little bit more and this is what this is actually a piece of human tissue from someone who had a piece of their eyelid removed and now we can look inside of it you see the outer skin on the outside and then even inside that's the tiny little muscle tissue that we talked about this is the gland and as you can see there there's little oil droplets that oil be secreted right here right through this little pore on the end of it and in fact we can even look at this and we can realize that this is probably an eyelid of a woman because they can put make up on them and decorate them and adorn them and we just like looking at all the things that the Lord has made you know it's interesting because the proverbs talk about warning a young man not to be beguiled by the woman with her eyes right isn't that interesting that there's something in us that is attracted to looking at someone else's eyes but here's something that is quite as beautiful but as necessary as those eyelids and that is the tear production so this is one of those pictures by Frank Netter and it's like a cutaway view inside looking at the lacrimal gland right up there on the bony part of your eye that produces your watery tears that are going to go through tiny pores and they're going to float over your eye but in addition to that they're going to be absorbed through this little tiny gland right here this duct and that's going to collect all those tears and it's going to recycle them down the back of your throat so what in the world do these tears do for us well they help lubricate the eye as we are blinking they contain mucus they contain enzymes they contain antibodies they help protect your eye from infections from viruses or bacteria along those lines in addition to that humans shed emotional tears where in fact we're the only creature that sheds emotional tears are there any function to them like do they do any cleaning or is it just an emotional well they do have a function in fact the Lord provided us something that these emotional tears and it's only the tears that are shed when we're upset not the tears that you might shed if you cut an onion which are a little bit different chemical compound but the tears that you shed when you're upset they contain a compound called enkephalins which are like natural opiates they're absorbed systemically and they give you a feeling of relief so crying or weeping actually will help you to get back to not grieving anymore that's right and that's why a lot of people after they cry they get that feeling of I feel better that's quite amazing that is we have an amazing God we have an amazing, amazing creator on all those things and here's another beautiful structure just that cornea itself that's the round clear part of your eye and you can see it in this wonderful picture it's shining and it's bright the colored part behind it is your iris right there but this cornea in addition to protecting your eye it focuses most of the light it has a lot of pain fibers on it which are absolutely necessary because just a wood chip in your eye you are forced to stop I know it hurts really bad and take care of it this is one of the most sensitive parts on your entire body and the Lord put those in there for a good reason and that is so that you will stop what you're doing and take care of your eye when you need to how important the eye is for everything that we do so God is helping us by having this system that you're going to automatically protect that because without the eye we can't even see to find the food to put in our mouths exactly so that is just a wonderful wonderful feature of that in fact it's got better clarity as this picture shows here than even optical grade glass in this hard contact lens it's a wonderful clear thing and there's just so much we can even talk about that in terms of the design on those kinds of things and of the eye in and of itself but the cornea is completely devoid of blood vessels because it gets all of its nutrients from a fluid that is made in the backside of the eye this is a wonderful picture on the side here and if someone were to look really close they could see those tiny little oil droplets which are made by the mybomian glands of the eyelid itself and we're going to look actually at this junction right there where that color part of the eye meets the white part we're going to look inside of the eye and we're going to see where that fluid is actually made it's made in a structure right there called the ciliary body and that is going to filter your blood into a crystal clear ultrafiltrate it's going to carry nutrients and oxygen all around in this area behind the eye and it's going to carry nutrients in this area behind the cornea it's going to provide nutrition for the cornea and for the lens and then it's going to be absorbed through thousands of tiny little holes at just the right rate and just the right amount just absolutely incredible and all of that is so that the back part of your eye which is your retina can collect those light those little particles of energy and it's going to act just like the back of a photographic camera and something that nobody can actually see but they can see a part of an eye once it's been cut open and this is a person who dedicated their head to science you can see this black part of the eye this black pigment which is going to act just like the back part of an old time camera which we used to use which is there to absorb the light so none of it gets reflected and scattered around and light is going to hit one tiny little cell this is a micrograph and it's been expanded and all those little blue dots this has been stained are the nucleus of all little nerves carrying light from one of these photo sensors at the back part of your eye and there's about 250 million of them in each of your eye and we all remember those special light sensing cell which was just basically discovered in research within about the last 15 years it's called a Mueller cell and it helps carry light from the front part of the photo of sensors all the way to the back all the way to the area without any distraction and distortion of it and one researcher was describing these Mueller cells these funnel shaped cells said the increasing refractive index shape at nearly constant light guiding capacity make them ingeniously designed like collectors with the back of the eye but the ones that we are always familiar with are not just the Mueller cells but the ones that we learned about in high school which are the cones and the rods and right here is a picture of some of those cones and they can absorb three different colors blues, reds and greens and they enable you to see really really fine details on that and then the other one which we learned about were the rods and this is a picture of what they look like when they are magnified and this is a picture here that was taken in the 50's when people used a lot of black and white they enable you to see light and dark they enable you to see large gross movements as well and they are kind of around the periphery of the eye and this is a representation to light and this is what they look like when they are blown up really really big this is an artist's rendition of them and I want to point out this one structure this fine membrane which has been folded up on top of itself that is covered with a light sensitive molecule that is so sensitive it can actually detect a single photon of light wow that's fascinating just an incredible picture right here of an electron micrograph just a tiny section of that cell and that black folded membrane is what is detecting all of the light I'm going to have to stop you right there Randy we have to take a break you are going to want to stay with us and see what we have next we hope you are enjoying Origins TV it all started at Cornerstone Television in Pittsburgh Pennsylvania we've been producing new episodes for over 37 years now we praise God for the success of the program and are excited to introduce you to Origins and to us if you are interested in watching more episodes of Origins you can find them on our YouTube page simply go to YouTube and search Cornerstone Television Network click the like and subscribe buttons then you'll find the best episodes of Origins in our playlist you can also visit our website at ctvn.org slash Origins one more way you can stay connected with us is to subscribe to our free monthly Hope Today newsletter which you can do from our website and if you have any questions call us here at Cornerstone Television at<PHONE_NUMBER> we'd love to connect with you thank you for watching welcome back to Origins we're talking to Dr. Randy Galuzza who's been showing us some fascinating things about the human eye Randy we've been talking about the eye seeing and getting information and light but we haven't gotten to information yet we've gotten to sort of data how do we get from all of that stuff out there that okay my eye picks up on and puts it in there but where do I get to the point where that becomes something that I know that's exactly right we haven't even got close to actual information yet sensors that we're talking about here are actually just collecting the data but I want to give you an idea of actually how much data is being collected this is an older quote but it gives us an idea it's just a tremendous quote right here from this computer scientist who said to simulate 10 milliseconds of the complete processing of even a single nerve from the retina will require the solution of about 500 simultaneous non-linear differential equations 100 times and would take at least several minutes of processing time on a Cray supercomputer keeping in mind that there are 10 million or more such cells interacting with each other in complex ways it would take a minimum of 100 years of Cray time to simulate what takes place in your eye several times a second so our most intelligent scientist developing our most sophisticated computer would take 100 years to do what these same people says happens completely by chance exactly and totally by chance and the people who really mock the design of the eye they're not really the people who really work with the eyes this biophysicist right here from New York he gives us an idea he says for all these apparent flaws and that is apparent flaws the basic building blocks of human eyesight turn out to be practically perfect scientists have learned that the fundamental units of vision the photoreceptor are not just good or great or fabulous at their job they are not merely exceptionally impressive by the standards of biology photoreceptors operate at the outermost boundary allowed by the laws of physics which means they are as good as they can get period that should put a slam duck on all those people really really criticizing the eye but you asked me earlier about optic nerves and things and this is actually a picture on the left hand side of someone who donated their head to science and the optic nerves are kind of cut right there but it shows the bottom part where information it's actually data at this point I almost misspoke there it's really just data at this point is carried to the back part of your head so if you put your hand way back here this is actually you're seeing me right now in the picture on the right hand side of the screen shows that data is carried in a highly organized way but it gets flipped from side to side and upside down by the time it gets back to your brain but your brain makes sense of it how does that work? how does all that happen? well data comes in and that information is sent off to various parts of your brain it associates it with memories memories that you've built up over your lifetime and when the data pattern coming in matches the data you have in your memories you actually see something so here's a real quick test how fast do you see this? immediately you've processed all that it's incredible it's always astounded me that you can see so much like the horizon so far away and all of that information immediately we have it in our brains exactly and it processes and you match that information how about this picture right here? I see it all but I don't know what I'm seeing that's because your brain is trying to make sense of that by matching memory patterns here that's actually a turtle with fake eyes on the back of its head you can see it now and that's how data as soon as you recognize this pattern then suddenly that data becomes my nose exactly what the data is what it is so we're here and I told you at the end of this talk that we are going to behold his beauty and I ask everybody who's listening how many of you are going to feel like saying praise the Lord? I feel like saying it right now praise the Lord the eye is just marvelous it's astounding it's a wonder it is well Randy we're going to have to stop right there fascinating information I hope you'll join us again sometime I will I'd love to we began this program with the well-known scripture I am fearfully and wonderfully made but as we saw that's just part of the verse the whole passage reads I will praise you for I am fearfully and wonderfully made and when we consider the human eye in its complexity its functionality its design its beauty it should cause us to bow down and worship the God who made them it's just one more example that we know what the Bible says is true and the proof it's all around you if you enjoy Origins we sure could use your help to keep this creation television program on the air your support both prayerfully and financially make a big impact so let's work together to reveal how awesome our creator truly is thank you for watching this edition of Origins for a DVD of this series you can order online or send a $12 donation to cover shipping and handling and write to Origins program number 2301 Cornerstone Network Wall, Pennsylvania 15148 this presentation was made possible by the faithful prayers and financial support of you our Cornerstone family


I am a professor at Drexel and as a professor I like to think about really big questions and really big things So I'm gonna start with one which is what great things could a computationally literate society do What I mean by that is what if every single person or almost every person you knew could program and use Programming to express themselves personally to engage in in civic action. What would that be like? We don't know Because that's not the case and in fact before people could read and write We didn't know what a computer what a you know literate society could do and it turns out really great things So in my research group we try to develop tools that help spread computation So where do we start? Traditional literacy starts when you're very young you're surrounded by books stories words that are built universes that are built with words and images and This starts at a very young age today. We have something an Analogy to this that is computationally based The web is a new kind of universe of Stories and it's not just built with words and images There are data and videos and visualizations and all kinds of rich computational underpinnings here That we're not usually exposed to we don't usually pull back the covers and see those things All right, so my my research group wanted to enable people to build beautiful things and Expose them to somehow that works and that's what I'm going to tell you about today So our goals for this new tool were actually to target storytelling and digital journalism We wanted to enable people to make immersive interactive bespoke content And we wanted this tool to be an on ramp for computational skills So so when you encounter programming later, maybe you'd be a little bit better prepared So our design principles were to make code make sense We want to expose people to a little bit of HTML a little bit of CSS We don't want to get in the way, so we want to embed tools in existing workflows and ecosystems And we wanted you know to support composition help people make beautiful things on the web Not just computational things So our our inspiration here was if you remember the snowfall article in the New York Times in 2012 a Lot of people noticed that because it was gorgeous. And so You can see this is the sort of the the The splash with the blowing snow and it immediately engages you in this world of Where this avalanche happened this news story and if you look at the whole article This isn't actually the whole article. It's kind of condensed a little bit, but you can see that You can't see it so well in a static image But as you were scrolling through these images were responsive the videos were responsive And you can imagine that this is a very complex kind of article to put together For someone who's a beginner or who hasn't got a whole lot of background in in web development But when you pull it apart you can see that actually what we've got here is a bunch of building blocks that taken one by one are not that overwhelming and So what we did was created a tool that would help people take this step-by-step Building block approach to building complex content and that's where snowball comes in and so I'm going to show you a fairly brief Illustration like 90 seconds or something like that of just a couple of things that snowball can do and Of course, please do go and try it out on your own So this is your standard WordPress installation. You'll see that on the left. It has is my video going. Let's see. Ah There we go. Okay, so it's not working on my screen. That's why so here I've created a new post Welcome to Saturday morning and by the way Congratulations on being here So we scroll down we see we've got all these building blocks that we can use these are our basic ones. There are also Social media we've got some different kinds of data that can visualizations that can be about it I can't see very well, so I'm not sure what I'm thinking over there, but we've got a splash screen We added a splash block It's pre-populated with the name of the of the post. I'm selecting the background image I'm sorry. Yeah, I am selecting a background image my text no longer can show up So I turn it white and so you can see that there are some very basic kinds of Design features that you can use as you are building here's a text block You're going to be able to dive into that code the underlying code the CSS Window down there. I'm typing in to turn the text a different color. I've turned it teal I can also go back and you know turn it red and I immediately see the feedback So if the tool doesn't give you the ability to express something the way you want to you can go in there and start Monkeying with it But you can also do something straight out of the box So the hope is that this gives people the right hooks to start developing more computationally intensive posts Okay, so here is a nice little data presentation a chloro chloropleth This is the Pikachu population Everyone knows that Pennsylvania hunted Pikachu nearly to extinction So we lower that and you'll see up in the map that Pennsylvania now the population is Represented by a lighter color so you can kind of play with these data visualizations integrate them into your posts This is what we just created, you know, it's it's fairly fairly rough But you can imagine that you can create very complex and engaging posts with a tool like this So that is the basics for snowball With this is an ongoing project. We're actually collaborating with Mozilla foundation They have some similar kinds of projects that are seeking to engage people in building the web And in doing so create a population that is able to express themselves computationally and with more sophistication increasingly more sophistication as more and more people move online and we're conducting studies to measure computational skills and understanding that go with creating content like this and becoming better able to to engage with the Possibilities of expression on the web so When you give people the right tools to think with they can think in new ways And I just want to encourage everyone in this room because I think we're all designers and technologists as we develop the platforms That enable people to connect and communicate We're building the platforms on which they are doing really important human things So we were developing for journalists, but you're out there developing for whoever you're developing for and Designing for students and whoever that might be So think about the fact that your tools are enabling them to think in new in different ways And it brings a new perspective to the kind of work that you're already doing I can I can almost guarantee it so So that's only eight minutes But I'm going to leave you for at least a moment with the contact information for my research group and give specific call out to Tom Park who's sitting right up here. He's the developer of snowball and the project lead And we had some wonderful Drexel students secret and Brian who also worked on this So please feel free to contact us in the future if you have any questions and And I'm going to go ahead and switch this over for our next presenter


Hello, what's up? We are on twitch. We are not live, but you can leave a like comment subscribe turn it up post notification bells Let's continue to grow the family from Chicago to the UK Right behind me. You notice the Spotify playlist Located in the description below. You got to be rated a seven or better to be considered for this list What does that mean? We're doing music reactions. We got arty are dead 12 a.m. At home You know, there's Drake vibes You know, like one a.m. Virginia Beach or whatever like drink be naming and stuff like that No more games Let me make it apparent. Well, I've ever wanted I got it.  I feel like I love with a game It ain't like the start the scene don't love in the same which country I blame the label gave me a check Way over double they made chart and then when I came in fuck it or take it first of all wrote straight it But you must have it all over twisted. I am the British rapper.  I don't need ID made a mill when I was a E yeah, I am the puppet maker big piss taker tough from the park and a big bank breaker the carpenter I'm gonna be 100% honest with you coming in it is I Think I thought already was about to give us something me it I Really did Bro said he broke up with his ex from that moment on I knew what time it was I Know what time it is now. We're back focused. We're back grinding You said you fell a lot out of love with the music That's fine. Some of us do fall out of love with our craft But as long as we you know I'm saying stay in the realm of it We can refine that love and that passion And I salute you coming back around after you leave your ex to get to get crazy like this This this is this is appreciated Still go pop I don't need the idea made a mill when I was a E yeah, I am the puppet maker big piss taker tough from the park and a big bank breaker the carpenter So they give good wood not flowers and even the radio way up I grew up on grab leaving outside of London a dumping lot since it's skip class never let a dungeon But they love trash it so they want to come with any violations are wrong with to make it see my cheat My feelings so I'm traveling the world quick used to proving it not a new to this verse That's all wait before I knew the kid keep all the comments coming. I love it It's good for the interaction now.  I'm not on it.   I feel you, bro I'm already fan. I Want y'all to go back around and spin the block and see I was a fan. I Seen that he lost his pal in this palace Passion though it wasn't hitting the same. I ain't feel it no more now. I feel it again pause I Salute this am I adding it to my playlist? Absolutely What do I rate this on a on a scale of one to ten one stop rapping ten being the best thing I ever heard five being mid This is a silent 8.4 Salute already welcome back man


Learning that's that must be really frustrating. You want to do a move. Oh, okay I'm sorry. What we need a few good taters. Oh sneaky sneaky Again, you get ready to do something and then the mob does something that wait that didn't hit him again What is he enraged? No, that noise is so obnoxious.  What are you doing here? Are you doing here? All right?  I tried to equip it. Oh, come on game He won't equip it chat.  I think I'm out of I think I'm out of heels. I don't know why it wouldn't let me equip it There we go. That was my last one. Oh, come on. I should have hit it Yeah, I need to eat and reset and everything I'm kind of glad you did that All right turn that having health Health bus 20 that's not as good but whatever. Would you please stop make people trying to sleep man? I Don't know how many times I got to tell him chat. He's just Watching the Goonies. It is not that funny really not that funny Flies I can't see his face.  All right. I saw the Goonies It's not that funny man. It's funny, but golly Trying to sleep. All right, we're going all in Bonania Whoops for Oslo for Gandalf ankles ankles neck abdomen It hurts lightning bolt Yes, Palico with the check the paralyzed he can't paralyze elder dragons chat. He can All right. I gotta get her. I'm trying to get out. I know they can be stunned sleep in poison I didn't know the Palico could do it with his little ladybug skill That I was unsure of I know I can do it. I've done it all the time But yeah, you know Yeah, lightning bolt in the neck Wow, he jumped way back. That's bad. We're dead Good try. All right. Let's do it again. I Got a better idea how to fight him now and they gave me something for your troubles. I guess I'll just Are you guys still in the session? Yeah, you're still in the session. I'll try to do it again and let me know if you can join the group Wait, let me do this first. Oh, you can't join the session at all No, he can't join the session like there's people in the session Because squads are pretty much too much work for what you can accomplish with a session This game is probably the most convoluted multiplayer system I've ever seen in my life Yeah, they just got steam groups and it pretty much is a waste of time to set up all right session is up as much quicker to just join on session and Do it that way All right, let's try it again. I'll wait for you to join before I start it Now PC you just copy paste so it's really easy. There's lots of hackers on PC. Whoa The only thing I've heard about with hacking this game is a save file editor for ps4.  I don't know how I Won't harp on it Not saying you're wrong. I just don't know what people would hack. It's weird. Thanks game Unlimited shock traps Why The game will get boring after like a week if you do that I guess people have to keep it fun after so much time I don't know All right boys we got this Rester will disconnect so that when that happens we just have to tough it out So we gotta get as much damage in as we can before rest or disconnects That's the plan burst damage in the beginning then when he disconnects we just have a little bit more to go It works every time 200 percent of time 50 percent of time. All right, there he is Don't touch me. I'm trying to do stuff over here, man. The first thing he does is turn around Lightning bolt lightning bolt that poison. No, it's just stuff. Okay Drink it. I'm constantly healing in this like like always that's all I'm doing this healing I don't know what just happened there. That's too far away for that. I got credit for that Got a hundred twenty damage on it.  I might have to turn it off because I I get turned around so much man Well, that's bad and the big hit miss. I lost all my frames here. I'm at 36 right now It even made me miss that shot. Actually, I tried to adjust it at the last minute and Nope frame stop. What is he doing? I've no idea what's going on.  I got the tail on that. I think I don't know what those gunshots are You can't go through that. What am I doing all this time? I could have been crafting life powder. I Got it now. Oh What? Oh, sorry.  Hey, man, they're raised up and muster on the world It's very very


Welcome everybody. My name is Doug Davis, work at IBM. I'm going to talk about the open service broker API, but I'm not going to talk about the actual API itself because I'm assuming you guys probably already know that. This talk is more about what we're doing in the working group itself in terms of changes to the spec. So if you don't know the open service broker API, whoops. Yeah, so if you don't know the open service broker API, this isn't a talk for you. I do have one slide that briefly summarizes it, but I'm not going to talk to it. Instead, I'm going to talk about the goals of the working group, the changes that have gone into the spec since we started, where we're going with it in terms of futuristic things, and then some things beyond the spec itself that may be of interest to you guys. And as I said, I'm not going to talk about the API itself is. Other than here to say is that the point of this is to expand the open service broker API because it originally started out as a Cloud Foundry service broker API. Now we're making the open service broker API because we want it to be used by other platforms other than just Cloud Foundry, in particular this case, mainly Kubernetes for the most part. So as I mentioned, the goals here are to involve it into a community spec. That means, obviously, more than just Cloud Foundry. That means removing the CF isms. So anything you've seen the spec that's specific to Cloud Foundry, we try to extract. Now they're not completely gone. There was someplace else. I'll talk about where they went, but from the core spec itself, obviously if you're going to use it on Kubernetes, you can't have CF specific stuff in there. So that's one of the key things we had to do with the spec in terms of goals. The other key goal is we did not want to break existing service brokers. One of the reasons we're doing this is because we want the entire community or ecosystem of brokers that are out there to be able to be used with other platforms like Kubernetes. If you end up breaking them in the process, that defeats the purpose. So that is a very key goal for us. Finally, once you get all that stuff in place, then we can start looking at new features we want to add to the spec. And that's where some of the cool stuff comes into play. So in terms of releases, we actually started back in 2016, November. The first release was pretty much just a no-op for the most part. It was just we transferred things over to the new PMC or whatever the Cloud Foundry Foundation terminology is for our working group. And then we put out a release as a baseline. But you can see since then we've had three releases. And that's two years, right? Three releases, two years, that's not a whole lot. And I actually think that's a good thing, because that means we're not really changing a whole lot in the spec, which I think is good because we don't want to. As I said, we don't want to break existing things. And what that means is we're going very slow when we do add new things to the spec, because we want to be very careful about it, because even if we don't think we're breaking something, you never know. So we've got to go really slow with that. And as a picture implies, we are now up to 2.14. All right, so let's talk about the actual changes in the spec itself. This first set is what I call sort of spec hygiene type things. I already mentioned the high level concept here, remove the CF-isms. So these are things like when you see API calls that have Oregon space in them, they've now been removed from the core spec. The concept of those have been moved into what we call a profile. So there's a file called profile.md, which contains all the platform or environmental specific things that go in there. So you'll see cloud foundry specific stuff in there that talks about how you reference Oregon spaces. On the Kubernetes side of things, you'll say, oh, for Kubernetes users, it's the ring called namespaces. Same high level concept, and they may go into the same spot when you actually see the API. But because they're different platforms, you have to have different properties to be used. That's what the profile spec is for. To say, here's the sort of cloud foundry specific way of using OSB API, and here's the Kubernetes way of using it. And we also decided to put what I call sort of popular extensions into there, meaning things that aren't necessarily part of the core spec, but seem to be used by a lot of people. And we wanted some place to put them to sort of encourage their use. And maybe one day we'll move them into the core spec so it could be kind of viewed as a testing ground for these things. But those are the other kind of things you'll see in the profile that MD doc. Now the other thing we wanted to do was turn the document into a real spec, or the API into a real spec. And that I mean, use RC 2119 keywords, you know, must, shoulds, what's required, what's optional stuff like that. The old document, I would say kind of implied what was actually required. It would use phrases like the platform will do this. Well, that's not really formalized enough, right? It doesn't really mean, you don't know for sure what that means. It can do it, it may do it, it must do it. It was a little bit fuzzy because you're not using well defined terminology that most specs actually use. So that was another key thing we did out of the RC 2119 keywords. Hopefully in that process we didn't actually change any of the semantics.  Hopefully nothing broke there. The other thing we did is we basically made sure that everything that Cloud Foundry was doing is actually put into the spec. In the past when Cloud Foundry was the only implementation of the spec, they didn't have to put everything in there because no one else bothered to really care much about some of the back end details or the hidden details. All they really cared about was what the brokers saw. But there were some specific things that the platform itself, I mean, Cloud Foundry, needed or did that weren't in the spec already and we needed to put those in there because Kubernetes needed to match them. So as an example, the names for say service plans and, I'm sorry, for services and service plans. The spec originally said things like, oh, it has to be a CLI friendly name. Only letters, characters, and those spaces, stuff like that because that's what the spec kind of hinted at. And it wasn't until recently that we realized that Cloud Foundry actually didn't do that. It actually allows any string you want, including spaces. So we ought to make sure that's actually in the spec because otherwise Kubernetes was going to be more strict than actually Cloud Foundry. So we needed to make sure that the platforms implemented the exact same set of requirements. And we needed to do that, got to put them into the spec. HTTP status codes. This is another big one. The originally PI document was not necessarily, shall we say, consistent with how it used HTTP codes. And now we're getting closer to the point where we're pretty consistent, where if a broker returns anything in the 400 range, you can assume it's a user error and the resources on the broker side are still unchanged. Anything in the 500 range, it's something went wrong in the back end of the broker and the platform needs to assume that that resource is basically dead. And it needs to do what we call orphan mitigation on it. In other words, turn it on and delete it. We weren't necessarily consistent in the API document before. This is an attempt to try to make it very consistent so that everybody understands what's going on, whether you're talking from a Kubernetes platform or a Kubernetes versus Cloud Foundry platform kind of thing. And the last big one from a hygiene perspective are extensions. It wasn't actually clear in the spec where you could put other bits of data into the JSON. It may seem obvious from a programmer point of view. It's like anywhere. JSON allows it anywhere. Sure. But not everybody necessarily expected it and since the spec didn't actually come right out and say it, we made it very clear. Basically extensions can go anywhere. Might a little thing but very important if for people who are actually trying to implement this stuff and trying to be very, very precise relative to the spec itself. Okay. So the service broker point of view, when it returns the catalog metadata, one of the key things we recently added, which was actually just asked for by one of the colleagues yesterday, was parameter schema. So the platform may want to know what are the actual parameters that this service instance is expecting or allows. And so we allow the schema to be in there. This is actually kind of cool because now the platform can take that information and produce a really nice user interface to their users and say, oh, don't just give me a chunk of JSON or some random parameters that I may not know about when you go to create an instance. It can actually give nice UI with drop-downs, do some validation checking on the input string, stuff like that. So you can actually produce a better UI experience around that. And you specify the schema in JSON draft version four. The other thing we actually added was, I'm sorry, we codified into the spec what I'm calling common service metadata. Things like display name, image URL. These are the bits of metadata that seem to be very popular but aren't part of the core spec itself. Those are now actually defined some place as I mentioned or put in that profile doc. Another key thing people wanted was, I don't know why, but some people don't seem to think basic auth is actually good enough in the real world. Imagine that. So the spec used to be very precise before. It said you must use basic auth. We actually loosened that a little and said you don't have to. However, if there is no outside or out of band communication between the platforms and the broker, then basic auth is the default requirement because that gives you the baseline interoperability. But if the brokers and the platform do talk to each other out of bands and they agree on OAuth or something else, that's fine. So the spec was loosened a little but still kept that base level of interoperability. Concurrency updates. So the spec never actually said much in the past about whether you could have, say, two operations coming in at the same time, maybe creating two instances of the same service or maybe two bindings of the same time against the same instance. It was basically silent on that. We basically made it so that you can support that if you want to from a broker perspective. The platform doesn't have to send concurrent updates. In fact, I believe Cloud Foundry will not. Kubernetes, I think, may, I'm not 100% sure. It may actually do concurrent requests going in. I'm not 100% sure. But either way, the broker is free to allow it or not. And we defined a well-known error to come back so the platform knows, oh, it failed not because something happened in the back end. It was just a concurrency update. So it's a 400 type of error. So we can retry later once the first request is actually finished. From the platform point of view, excuse me, we added another header. I guess it is a header. It's an ASP header to request messages from the platform to the brokers. And this one's called originating identity header. This actually contains the user ID of the person who originated this request. So in the CF world, if you do a CF create service, this header is now going to include your user ID. Now, why is this interesting? This is to allow the service brokers to actually do additional checks or operations with that information. So, for example, let's say you have a very complicated policy in place on the service broker that says maybe Morgan is allowed to create the service, but Swetha cannot delete it, right? Those kind of things, right? Without this information, the broker has no idea who's actually initiating the request and able to do these additional checks. Or maybe you just want it for auditing purposes. Who knows? You can use it for whatever you want from the broker, but without that information, you just can't do it. So we added that in there. It is required for the broker to send it, I'm sorry, required for the platform to send, but it's optional for the broker to do anything with it. It's just FYI kind of stuff, if they want to use it. Context object. Now, earlier I talked about how we're removing the CF-isms from the spec and putting it, or in the core spec, moving it to the profile. Those properties are still there. However, what we did is we moved it into a new object in the JSON payload called context. And all it is is a wrapper called context around Oregon space and in Cloud Foundry and around namespace inside Kubernetes. That's all it is. Same information just in a well-defined spot. That way when another platform comes along, it's not sprinkling its information about things like Oregon space or it's equivalent. Just randomly throughout the payload, it's all in this one little spot. And the profile document explicitly says for Cloud Foundry object, I'm sorry, for Cloud Foundry, the context has to have Oregon space for certain operations and for Kubernetes it has to have namespace, those kind of things. So it's same information just moved to a well-known location. Async bindings. Now for a while, obviously the API has had async create, for instances. But really, this is just provide symmetry because in some brokers, creating bindings actually could take quite a while, very long while. And so we've realized we actually had a sort of missing piece in the spec, so we added the support for async bindings. Nothing too exciting, but it provides that optional flexibility for people. Get. So you can actually now, from the platform, do an HP get to a binding or an instance? Which is actually kind of interesting to think about it because if you read the spec, it says the platform is the source of truth for this information. So why on earth would you need to do a get against these things? A couple of reasons. The biggest one in my mind is because if you think about whatever their information is returned when you create an instance, one of the bits of information is dashboard URL. That implies that someone could hit that URL, get a browser, and not just look at the instances and bindings for what's going on. They actually may be able to change things to that dashboard. Platform is completely unaware of what's going on. The get now allows for the platform to sync up its view of the world with the broker if the broker supports these get operations. So it allows just for the synchronization to happen in case things do get out of whack. That's really why it's there. It's not required for the broker to support it. You can still be completely stateless if you want to, but it is there and you can advertise that he supports it and that way the platform could take advantage of it if it wants to. Now, what's interesting is the get on a binding. Because binding creates, I'm sorry, contains sensitive information, the credentials, you may not necessarily want to return that information. You may want to turn other mindless things that aren't really sensitive. And in that particular case, you don't have to return the credentials, you can just return the non-sensitive information. But we do make it very clear that in the spec, if you're going to be doing things like async binding creates, which relies on get of the binding to get the credentials back, you have to at least return those sensitive bits of data at least once. After that, you're free to mask them out or drop them entirely from the response. So that's it for the basically core set of changes that go into the spec. Lots of other little things and clean up things, but to me, these are sort of the big ticket items in there. Now, beyond the core specification itself, we've also produced a swagger or open API version 2.0 definition of the API. If you're if you have tooling that you want to use to generate your brokers or another platform, you can now use that to generate if you really want to. We have a starting getting started page, which has links to sample brokers and stuff just to help people get up to speed if they want to write their own broker. And we have the OSB API checker. This is a side project that's that was designed primarily by Microsoft, like they donated to the group to allow you to basically test your service broker to see if it's compliant with the spec. It's relatively new out there. If you guys have brokers, we really encourage you to use this because we find that not a whole lot of people are using it yet, so we need more people in there to make it feel like it actually is doing its job properly beyond the one or two people that are actually using it. So we would be grateful if you guys could play with that. The other thing, and this may seem like a weird thing to mention, because it's just a web page with a list of key topics or key changes per release. But I actually really like this one because a lot of people don't necessarily pay attention to things as often as we do in terms of what's going on in the spec. And having one page here that highlights sort of the key changes per release, especially if you're a service broker author, and knowing which platform actually supports which one, because not all platforms support everything, most of the stuff is optional, is really, really useful. Just sort of get a balance for what's out there. Not huge, but I think it's actually kind of cool. And the file is compatibility.md. All right. So finally, actually not finally next, let's talk about the futuristic things that we're thinking about adding to the service broker or within the group itself. So v3. We have been on v2 for a while now. A lot of people keep talking about are we going to do a v3. And for the most part when we talk about v3, it's mainly because people aren't really happy with the spec. It's not very restful. It feels like it was sort of put together in kind of a hodge podge kind of a way. And we would really, really like to clean it up, make it look like it is designed in a proper restful way and just pretty, put it that way. No other real reason. The problem is if we do that and we make the REST API really the way we want it to look and stuff like that, that's going to go back and violate one of our key tenants, which is don't break existing brokers, right? So we've been really resistant to do that. We've talked about it many, many times but we're probably not going to do it unless we have a really, really compelling reason. So if you guys are broker authors or you want to add another platform to the mix besides just Cloud Foundry Kubernetes and you think that there's something that's missing, very fundamental to the spec but it's a just a major change. You don't think it's going to get in because it's going to require a v3. Bring it because to be honest there's a lot of us that are actually looking for a reason to go to v3. But until we have a really good reason to break existing brokers, we're not going to go there because that's our key tenant or one of our key tenants. Generic broker action. So a lot of people ask about, okay, great, you've got the CRUD operations on instances and bindings and that's all well and good. What about other types of operations that may want to be invoked from the platform? For example, let's say you have a database, right? What about backing up databases? Why can't the platform do that for me, right? On some kind of cron bases or other types of those operations? Well, we want to add that ability optionally and that's what this generic broker action thing is. It's going to allow for you to include a swagger or open API doc as part of the catalog data that comes back so that the broker can advertise to the platform and says, hey, I support these other operations and you can actually call them if you want. Here's the definition of them. You can now expose them to your users. Do whatever you want to do with them. They're there. That's going to allow people to extend the API basically in new and cool ways and they're not going to be beholden on us as spec authors to actually put them into the spec to make them real. And it also is possible that if some of these extensions become really, really popular, maybe we'll add to the spec, right? Maybe we'll find that we actually do need a common backup API because it actually is used by most service brokers. Don't know. It's another playpen type of area. So that's another thing that we're thinking about adding. It's not there yet. If you have ideas on any of these things, please speak up. We're looking for feedback on them. Networking metadata. So as part of setting up the connection between your application and the binding, in some cases it may need more than just credentials, you know, user ID and password. You may actually need to set up networking things for people running Istio. Maybe you need to do some Istio configurations to set things up or punch holes in firewalls, that kind of stuff. We're talking about adding metadata to the information that's returned so that the platform can negotiate and set those things up. It's still in a sort of an investigatory stage right now. But if you get involved in that, because you think that's been a blocker for you in terms of some of your environments, please join that conversation. That's going to be a really important one. It's kind of a big one. And so we want to make sure we get that one right because that could be really good. OSB Checker. Now I mentioned this one already. However, I want to reiterate we really need feedback on it because, as I said, it's not getting a whole lot of love. So if you guys have brokers, please download the Checker, use it, see if you think it actually is useful to you. That would be wonderful feedback to us. Because to be honest, if we find out that maybe only one or two people are using it, we may not keep it around. And I think that'd be real shame because the concept of a compliance Checker for brokers I think is really, really useful in concept. But in practice, if no one cares about it, we're not going to maintain it. So we need some feedback on that. OK. So that's talking about the spec itself and sort of what the main working group is doing. What I'd like to very quickly talk about are things that are sort of outside of the Open Service Broker API. Now Florian sitting over here from SAP, you probably saw him in the keynotes the other day talking about his service manager stuff and he had a talk yesterday on it. This is another thing that several members of the working group are talking about. It's not from a project within the working group per se. But this is another key thing.  Go look at Florian's video to get more information about it. But in my dumbed down version, it's basically putting a proxy between your platform and your brokers to allow for a single point of management of both sides. Brokers only have to register with one spot now. That one thing now manages all the registrations to all the platforms. It can control what each platform actually sees. You don't have to go to each platform and manage it. Lots of real benefits here. Not to mention the fact that you can now, if you listen to his talk, talk about instant sharing. So you can share instances across the platforms because the service manager manages that all for you. Not going to go into the details, but if this kind of functionality is important to you, join the project. Now, this then, however, leads into the project that has no name. This one is even more interesting because the service manager project is cool unto itself. But as Florian mentioned in his talk, one of the key tenants of the service manager project is he didn't want to have to change Cloud Foundry or Kubernetes or the brokers. That's why it sits in the middle. No spec changes on either side. That's great for existing platforms and brokers. However, when you start talking about things like instant sharing, it becomes a real headache because both Cloud Foundry and Kubernetes or whatever platforms you have, both think they own the instance that's created because the spec even says they are the source of truth. So when you start sharing an instance across two platforms and one platform tries to change something like change the plan, what do you do with this other guy over here? He thinks it's still on the old plan. Do you try to synchronize the two? Do you give dummy names for the plan over here, which the service manager does, calls it a reference plan I think or something like that? So then you get this weird situation. Well, a user over here doesn't see the real plan name unless there's an additional parameter that you add to it. But then you get this weird state where application over here wants to see the plan name, looks at one property, over here they have to go to different properties to see the real plan name. It gets really kind of not necessarily ugly but feels a little bit hacky and unnatural. What this project tries to do is says, okay, if you think about what's going on, all of the management of the app of the service broker stuff from the platform's perspective, it's just managing metadata, right? When you create an instance, all you're doing is keeping metadata around the platform. When you do a binding, it's just extra metadata. The only thing that application actually needs are those credentials and that's it. So why not move everything else outside the platform? And that's what this service provisioner thing is, right? If you take that logic in Cloud Foundry World, it's taking the Cloud Control logic from the service broker, moving it outside. In the Kubernetes world, it's taking the service catalog stuff, moving it outside into a separate unit that can then do pretty much nothing but push credentials into the various platforms. And it now owns everything. So you're down to a single platform managing the world, meaning managing multiple platforms under the covers and just pushing credentials back and forth. We think this actually may be a nicer way to manage things in this sort of multi-platform world where you're doing things like instant sharing. But of course, in order to do this, it's gonna require changes to both Cloud Foundry and Kubernetes, which we're not sure yet can happen, but we're exploring this. So this project sounds interesting to you, but personally I think this is gonna be really, really cool if we do this. Again, come and join the project. We talk about a little in the open source broker API, but technically all the work is done in a separate phone call, but if you join our main call, you'll find out about it and you get more information. Anyway, that's it in terms of the spec, the working group, things in the future, and I'm pretty much on time, believe it or not. In terms of interested, joining us, there's a URL to the GitHub repo. We have weekly calls Tuesdays, 11.30 Eastern time. Anybody's free to join. You don't have to technically part of the working group per se minute you join the call. You're part of the group. You can't escape. And that's about it. Have any questions? Actually, I'm sorry, I should have put it here. There's a mailing list. You can join that. Go to the main read me on the repo for that. Questions and answer. Yes. Yes. So if you think about what say Kubernetes or Cloud Foundry does, ignoring the injection of the environment variable, the cap services, if you ignore that last bit, right? The registration of service brokers that will be done into the provisioner, not into CF or Kubernetes anymore. The service create, service delete, that will be done by the provisioner talking to the platform. Binding, same thing. The binding operation will originate, or the binding operation to the brokers will originate from the service provisioner. It will be the source of truth for everything from the platform side. Now, that's not to say that, do I have it? Is it working? Oh, it does. So that's not to say that a CF user now has to talk to the provisioner directly. It may be it can, and maybe it wants to, for resources or services that aren't necessarily tied to Cloud Foundry or Kubernetes. Maybe they're outside of any real platform. But for a normal CF user, they'll still be able to do a CF create service down here, but then CF will act as a proxy, basically, and send the request up to the service provisioner who will then do the real request to the broker. So it's just moving all that logic of managing the metadata about instances and bindings up a level. Does that help? Would he be stateful? Maybe, okay, if we kept this spec the way it is right now, yes. Because right now, service brokers can be state less. Therefore, the platform is the source of truth. If we kept that model, then yes. The service provisioner would still, would be stateful and be the source of truth. When we talk about v3, one of the things we really wonder about is do we really want to keep the notion of stateless brokers? Because it is really, really odd that this thing over here owns the instances, but that thing over there is the source of truth about it. That's really a bizarre model. So we may drop that at some point, but it's still up in the air, we don't know. Right. Yeah, that's one of the main reasons, yes. It also actually allows for, in my mind, a little more consistency because you have the Cloud Controller in CF, you have the service catalog in Kubernetes. Both do the exact same thing for the most part, except at the very end, one injects an environment variable, the other creates a secret. It's a real shame we have duplicate code. So this allows us to share code at that point. It's just this one is maybe deployed into CF, one may be deployed in Cloud Foundry, one may be deployed outside of both. You have your choice at that point. A lot of questions. Yeah. Well, if who talks to the broker? Well, no. In this model, we still expect everybody to talk to the broker through the provisioner. No one should talk to the brokers directly. That's the whole point, right? Because there's authentication involved, you don't want that shared with everybody. Now the reason I show app over there is because you may need an application that wants to provision a service that isn't gonna be used inside of Cloud Foundry or Kubernetes. Okay, sorry if I misspoke, I apologize. All right, we have two minutes left. Any other questions? Yes. Boop, boop, boop, boop, boop, boop, boop, boop, boop. This one? That's an excellent question. I guess I should be repeating these for the video. The question is, with the context object, can you now, basically dynamically, from the service broker side, change what you do based upon the platform? Yes, exactly. And in fact, while the profile specifically calls out, actually it should be a little more explicit here. Inside the context object, it's not just Oregon space or namespace. There's also a field called, I think it's called platform, which is either Cloud Foundry or Kubernetes. Makes sense. But you can technically put any string you want in there. So for example, in the blue, in the IBM Cloud world, we actually put blue mix in there. Because our broker will know, oh, if it's talking to blue mix, it can do special magic stuff. So yeah, you can exactly do exactly that. So yes. I agree, it is cool. All right, yes, sir. Yes. Let's double check the table. Yes, apparently it does support it. So, okay, I may need to lean on the Cloud Foundry folks here a little because these, okay, the answer I'm hearing is no. But the get does not, see the way I want to answer it is the get, or the presence of the get operation does not change whether bindings are immutable or not. So if a broker before through the dashboard URL has something that twittled a binding, that could still happen and it could still break. The get is not explicitly for right now, a credential rotation. It's not explicitly for that. It's more for syncing up if needed. Now we may leverage it at some point to say, oh, let's add a new operation to rotate the credentials and then yes, you use get to get it back. But it is not explicitly added for rotation of things. There'll be a whole bunch of problems involved in that, yes. Yes. And then be very clear, the tiki does not mean it's exposed to the user. The tiki just means Cloud Foundry can do a get. I'd have to ask the Cloud Foundry guy, when does Cloud Foundry ever do a get? Is it ever initiated by a user? I apologize, Matt or Sam. Yeah, we'll get the next one if there is another one. Technical or over time, but I don't think there's anything after this. So we can keep going if you want. Any other questions? There you think.  Yeah. So basically, is the service provisioner thing just a thought experiment or is something that there's a POC out there or some code, some experiments? Right now it is a thought experiment and I wanted to mention it just because I think it's really, really cool. And if you guys also think it's really, really cool, come join the fun. Because I think this will be a game changer per se, but it'll make life so much easier because as cool as the service manager is, the constraints they had to live under, not changing the broker, not changing the platform, it's not as pretty as it could be. And I really think that this could be a way to fix that. And at least for us, and I know SAP's in the same boat, instant sharing is a very big deal for us because we have, for example, in IBM Cloud, we have Cloud Foundry, Bluemix, Docker, and you can create instances and bind them to applications running in all three. And you can share the exact same credentials and they all talk to the same instance database, whatever, and it makes things really harder when you don't have something as elegant as this. All right, any other questions?  So we have another user case where different services, they have different requirement from Azure. So for us, the SQL is really, really complicated. Customer always have additional request like can you do backup restore? Can you do failover? Or like the complicated network requirement? So we have to write a lot of parameters and implement all services. But on the other hand, there are some service very straightforward. So I was wondering whether just from the design point of view, you can also distinguish like some of the advanced features like I only exposed for this service. And instead of if I add one extension and have to apply it for every services that's complicated everyone's other people. Yeah, right now in the catalog metadata, there's nothing in there that allows the service broker to say this service is only available for Kubernetes or Azure or whatever other platform thing. And right now the service catalog is basically still, it assumes it's generic. Now there may be some other things that you can do like for example in the service manager, it may be smart enough to do that kind of stuff. But from a pure spec perspective, there's nothing there to help that. All right, I think with that we're done. Thank you guys very much.