Oh, it does, okay, you guys can hear me in back, right? Very loud. All right, so my name's Doug Davis. I work for IBM. I am the, it's a little loud, I'm the offering manager for Knative Public, part of IBM Cloud. And I'm here obviously gonna be talking about Knative. So let's go ahead and get started. We got a lot to cover. So in order to talk about Knative in terms of, you know, why it's useful and why it was created, it's interesting to understand a little bit of history in terms of how we got to where we are today.  Let's just talk about some of the highlights here.  Why? Not just because it's a cool phrase, but because you get better resource utilization by able to scale just parts of your components. You get, you have your teams focus on individual components as opposed to the entire monolith. And of course, by breaking it up, you're supposed to be able to reduce your costs because then you don't have to scale the entire thing, then all you need to scale one little aspect of it. And you can better resource, utilize, utilize what goes on inside the actual virtual machines or the hardware itself. Now, at the same time though, we had this notion of abstraction of infrastructure, right? So as you look at this chart on the right hand side, I know it's a bit of an art chart, you might not be able to read it, but it goes from bare metal to virtual machines to containers to functions and serverless. So as you move up that chart, right, you get this notion of you're moving further and further away from managing the infrastructure, right? And the things become more abstract for you. So as you move further to the right, away towards bare metal, your developers should hopefully be able to focus more and more on writing code itself and not managing the infrastructure because the infrastructure gets abstracted away from you. And of course, that means your developers can focus on writing code, not infrastructure or managing infrastructure, which gives you faster time to market, which should obviously result in more money for you as a company. But in terms of actually, or in terms of actually using this technology, you have a couple of choices presented to you. There's Platform as a Service, something like Cloud Foundry, obviously very high-level abstract for 12-factor applications. You have Containers as a Service, Docker, Kubernetes, that kind of stuff, right? So exposing the container technology as a native thing to you, whereas Cloud Foundry and Platform as a Service typically would hide that if they use Containers under the covers. And then you have Functions as a Service type of platforms and serverless. It's things like OpenWisk, OpenFast, stuff like that, okay? All of these technically use Containers under the covers, but which one you actually use is kind of up to you and depends on your philosophy in terms of how your application's gonna be deployed, right? If you're thinking, oh my gosh, I'm writing a pass because it's a 12-factor app, I should be looking at Cloud Foundry, or if I need more complexity and I need to be able to manage that low-level infrastructure stuff, maybe I should be looking at Kubernetes, right? You've got these choices put in front of you and it's kind of, in my opinion, almost a false choice, okay? So let's look a little bit more in terms of why it's a false choice. So let's start out with Platform as a Service. So with Platform as a Service, I'm thinking Cloud Foundry here for the most part, you have things like a simplified user experience, right? Very simple command line, they hide most things from you, it's really great. They use Containers under the covers. It's microservice-based, right? Every single application deploy should hopefully be relatively small in nature, right? You're doing microservices. It's supposed to be stateless. These are containers, they're ephemeral.   A lot of these things will actually do build. You provide the service code, they'll build it into a container, deploy it for you, great. If you're in a public cloud, you pay for usage, right? You're not paying for the entire infrastructure if it's not being used. On-demand auto scaling, a lot of these will auto scale as the load goes up so you don't have to think about it, right? And these are all wonderful things. They manage all these wonderful things for you. However, what they do do is they hide the infrastructure from you. So you don't necessarily get access to some of the advanced features, like volumes and networking and stuff like that. Now, Cloud Foundry, I know it kind of does, but it feels a little bit like an add-on. But in most cases, Platform as a Service is meant to hide these things from you, right? Give us your app, we'll deploy it for you. Magic happens under the covers. This is by and by, it's my opinion of you. I know your mileage may vary, but take it for what it is. So let's then compare that with containers as a service and function as a service, starting first with containers as a service. So as you go down the list, what you'll notice is that there are some similarities here. Obviously containers, microservices, stateless, that kind of stuff. But some of the other functionality, things like endpoint load balancing, on-demand infrastructure auto scaling, while they are there in the environment in some way, you have to kind of do it yourself. It's not gonna be a self-managed thing for you, right? This isn't just magically there. And I would definitely not say, at least in the Kubernetes case, that it's a simplified user experience and they definitely don't have build built in. You can add it, but it's not there natively to Kubernetes, okay? So that's containers as a service. Now let's look at functions as a service. What's interesting to me is functions as a service is actually very similar to platform as a service. There's a lot of similarities there, right? They try to make a simplified user experience, microservices will do build for you in most cases, right? You give you a little snippet of code, turns it into a function, deploys it. It's wonderful. And again, they hide the infrastructure from you, which is great. Now platform, I'm sorry, but function as a service also has some other things going for it that you may not initially get from platform as a service. For example, it's meant to be pretty much event-driven, right? It's supposed to be on-demand processing, right? Something happens, you get an event coming into the system of some kind and then you react to it, right? Scale to zero, many functions as a service or service platforms will scale down to zero where platform as a service may not, or at least usually does not. Meaning if you're not actually invoking the service, you don't even have any single instance running so you have zero cost for you in terms of CPU and usage of the infrastructure at that point. Asynchronous invocations, platform as a service doesn't have this, nor does containers as a service by default, right? You have a request going in, processes in the background, you can query its status results later, asynchronous processing. Now what's interesting is when you compare that back with platform as a service and containers as a service, function as a service actually has some restrictions, right? You don't necessarily, you're not necessarily able to run your functions definitely, right? Take platforms like Amazon, OpenWISC and stuff like that, they actually limit the amount of time that you can actually run these functions or these services. Platform as a service, container as a service can run pretty much indefinitely. Likewise, memory usage, right? It's not a free-for-all, right? They limit in what you can do because they're trying to optimize their particular infrastructure to manage this very dynamic notion of running functions in a very quick fashion, right? So you don't have the freedom anymore that you get with platform as a service and container as a service. So when you look at these choices as a developer where you wanna host these things, you have to basically choose which things matter most to you, right? And again, I assert it's a false choice. You shouldn't necessarily have to make this decision and that's where K-Native is gonna fit into the picture. However, before we get there, let's talk a little bit about Kubernetes because Kubernetes is kind of taken over the world in terms of containers as a service, which is great, Kubernetes is wonderful, right? It's the most popular management or container management platform out there.  That sounds wonderful. However, as I talked about earlier, it is not the simplest environment to actually manage, right? You have to almost become an IT expert at that point because here are all the various resources that Kubernetes exposes to you, right? You got pods, containers, replic assess deployment services, endpoint secrets, all that stuff to go along with it. You have to learn, you know, JSON, YAML, spec versus status inside the resources. You gotta start using other tools like Helm, understand the command line, Kube control, possibly bring in other technologies like Istio to manage the networking mesh for you. If you wanna do more complicated things, blue-green deployments, sure, it can do it. You gotta manage yourself, though, right? This is not trivial for somebody, right? Wonderful from a technology perspective, but it's not easy for someone to wrap their head around, especially if they're coming from someplace like Cloud Foundry or even functions as a service, right? So when you think about what we've been promising people in terms of this abstraction, right? As you move closer to the right of that diagram I have over there, right? Closer to the right, you get more abstraction, developers focus on code. I would assert that with Kubernetes, you've actually gone backwards in this, right?  And that's wonderful, but it's a very, very complicated. And all I wanna do is deploy my code as a developer. So let's talk about Knative. So Knative is an opinionated and simplified view of application container management. What that really means is it allows user developer to go back to focusing writing on code, but still allows you to leverage Kubernetes under the covers. So you still have Kubernetes there with all the features, it's just going to expose it in a more user-friendly fashion. However, because Kubernetes is still there under the covers, if you want access to Kubernetes features, they're still there available to you. So the hope here is that the 80 to 90% of the use cases out there are actually covered by Knative natively. And you only need to go around it for that extra 10% of the time to get to the more advanced features. And because of that, what you can also do is you can integrate your Knative applications or services with the rest of your Kubernetes workload. So you're not forced to necessarily choose an only Knative world. You can deploy all your other stuff with Kubernetes that you really need to if you need the advanced features, but they can integrate and talk nicely with Knative applications because it's all running on Kubernetes. So in essence, what you get is the best of both worlds there. Now it's important to point out that for those of you who are old enough to remember when Kubernetes first was presented to us, it was advertised as a platform on which to build platforms. It was not supposed to be the thing that end users interact with. And of course, we know that's not necessarily true. Everybody talks directly to Kubernetes and that's just the way it is. Knative is being advertised in a similar way. It's being advertised as a platform on which to build a serverless or function platform. However, as of right now, people still talk directly to it. So whether that plays out in the future or not, who knows. But it's interesting that Knative became one of those platforms that's supposed to sit on top of Kubernetes. So we are actually seeing a little bit of the truth in advertising come out here. Okay, so with all that introduction, let's talk about what is Knative? So Knative is made up of two components. First is the serving component. Obviously, that's the component that's going to host your application, okay? It's basically gonna use Podge on the covers. As I said, it's still using Kubernetes. And we'll show a demo of this in action. The other component is eventing. Now eventing is basically a set of tools that allow you to manage the eventing infrastructure of your application, right? It gives you tools for subscribing to event producers, how to manage the events when they get delivered into the Knative environment, how they get sent between your various services. Basically, just a whole bunch of tools for you to sort of string these things together in kind of a workflow type of operation. And we'll demo that in a little bit. So let's talk a little bit about Knative serving in a little more detail. Now in serving, your application is called the service. It's a little bit of a poor choice of words because in Kubernetes, you already have the notion of a service. So this is something different. We have yet another notion of service. So don't get this confused with Knative service, or with Kubernetes service. So you deploy your application as a service. Now, every service has revisions. You can think of revisions as just versions of your application, right? As you make changes to your application, whether it's a change to the image itself or a change to the configuration, a new revision will get created each time, okay? So you deploy your application, you get revision number one. When that happens, Knative serving will automatically set up the networking for you, which means it gives you an endpoint that your users can now hit immediately and the incoming requests will get routed to that particular revision. So auto networking management for you.  So it will scale up as more hits come in and it'll scale down to zero if no one's hitting it at all, right? So then if I make a change to my application, I change to the configuration or the image that is point two because I made an update to my code, Knative will spin out a new revision, revision two in this case, and it'll automatically reroute that endpoint to revision two in a rolling upgrade fashion so there's no downtime for your application. Waits for the application's ready, slowly migrates traffic over, okay? All this magic happens for you under the covers. As a user, all I've done is deploy my application and then version two. The rest is magic. Now, with that though, there are some tools available to you. For example, you can do traffic splitting. So earlier I talked about how when revision two gets pushed out, all traffic goes to revision two. That's true. I can tell it though to only send part of the traffic. So in this particular case, I can tell it to route only 10% of the traffic to revision two, 90% to revision one so that I can test out revision two. And then once I feel more comfortable that it's actually stable and works, then I can slowly migrate up to 100% and get 100% going to revision two. The choice is yours as a developer. Finally, you can also have revisions that actually aren't part of that entire networking scheme. So I can actually deploy revision three by making it again a change to my application in some way. Tell it, it doesn't participate in this load balancing stuff, but give it a dedicated tag. In other words, dedicated name. And it will give it a dedicated endpoint that I can hit. So the scenario here is imagine you deploy to revision three, don't know how good or bad it is at all, but I definitely don't want my customers to see it. So I tell them about the top endpoint. I tell my test team about the bottom endpoint. So my test team can hit that revision three all they want to make sure it looks okay. Then once it starts working okay, then I can go to modify by endpoint routing percentages and start routing traffic to revision three and slowly start draining things off to revision two and revision one. So you have all this flexibility available to you inside a Knative by simply specifying what you want in terms of networking and then the magic happens on the covers automatically for you. And the important thing here is Knative manages all of this for you, right? All of this is still running Kubernetes. We've introduced a couple of new resources to the Kubernetes model, but for most part it's still using the core Kubernetes model under the covers. It's just you don't have to worry about all the infrastructure anymore for you. Knative does it all. All right, let's look at a demo because demos are a lot more fun. And I should point out that what I just talked about there is pretty much almost all of Knative's serving. It's actually not a whole lot of infrastructure in terms of concepts, but it's actually quite powerful. So let's go ahead and run this. Now you guys in the back, you guys can see that okay? Okay, cool. Now I'm not gonna be doing typing. It's gonna be typing for me, but this is live. So if it goes haywire or if things go funky with the network, it can go bad, but I just don't wanna do the typing because it's annoying. So what I'm first gonna do is create a service. Now KN is the Knative command line. So I'm gonna do a service create, very obvious. The third parameter there is echo. That's obviously the name of my service. Then I'm gonna pass in the image I'm gonna deploy. So here I'm doing specifying two things and that's it. The name of the service, the Docker image or container image I want deployed and that's it. Two little bits of information and that's all Knative needs to get going. So if you look at the right hand side way over there, what you'll see is sort of what's going on in the system. The top list where it says echo is just the Knative services I have deployed. Right now I have one. Below that you can see the pods in the system, one. So what Knative does by default is it brings up one pod just to make sure it comes up okay as you deploy your service and that's it. Now, so I have one service which has one pod because it has one instance or one instance running and it deployed it and it gave me a URL right there. So if I then turn around to a curl against that URL, I get high from echo, wonderful. Now just for your information purposes, inside the parentheses here, that little revision, that just prints out the revision name and you notice the tfxfw, it matches what you see over there in the beginning. Okay, and the latest ready revision is there. I just print that out because later on as I do the demo, I will actually assign names through these revisions by default to give you random letters but the names will show you that things are actually changing to the covers. But the key thing here is hey, it worked, great. I have an hbmpoint, I can curl it, life is good, my application is up and running and all I did is give it a name, image. Very similar to something like Cloud Foundry or old Docker. So another thing, I can do another curl against it. Notice that I'm doing HTTPS. So in the IBM cloud when you deploy Knative, we'll actually deploy an HTTPS endpoint for you. So you get security built in under the covers. You no longer have to manage this automatically by yourself, it's done for you automatically. Okay, so let's go one step further. In this particular case, what I'm gonna do is I'm gonna update my service and I'm gonna set the container concurrency. What this means is I'm telling Knative to only allow one request per instance of my service at a time. If that guy's busy and another quest comes in, he's supposed to spin up another instance. This allows you to have a sort of a multi-threaded service versus a single-threaded service. And the reason I'm doing this is, one, to show you the flag.  If this thing could support 100 requests coming into it, it makes it very difficult to see scaling in that case in a demo. So, I've deployed it. I'm sorry, I've updated my service. Let's go ahead and generate a load for 10 seconds. I'm gonna do 10 different clients. Let's go. So, each of the clients you can see on the left-hand side is sending requests to it. But look at the right-hand side. Look at all those pods that are coming up there. You should hopefully see about 10 different pods pop up. Because Knative recognized you have all these loads coming in, 10 different requests in parallel. He needs 10 different pods or about 10. And he spun it up because each pod can only handle one request at a time. And I put a little sleep in there to make sure it doesn't process it too quickly. So, demonstrated auto-scaling automatically. Again, I did all this with one command, one single Knative service create. All right, let's update the service again one more time. Two things are going on here. First, set the container concurrency back to zero, which basically means infinite. So, we're gonna have a multi-threaded application server here running and he can have multiple requests. I'm just doing that because I don't wanna see things flooding the system on the right-hand side anymore. Just as we've run through the demo. Other thing, I'm giving it a name, right? That name right there is kind of funky if I ever gonna use it later on, which I'm gonna do as I do my percentage routing. So, I'm gonna actually give it a name to this next revision. I'm gonna call it echo version one, okay? So, I'm gonna update my service, change the configuration of it. And what you should see on the right-hand side, notice up here, it did deploy another instance. I'll notice they went away because they weren't being used, or the other ones. But I'm left with echo v1. So, that's version one is running. Let's go ahead and curl it, just to prove that it's real. So again, same thing, still echo from high, but when you print out the revision name, which gets passed into it as an environment variable, it's echo version one. So great, I have version one of my application there. Wonderful. Let's go ahead and create a version two of my application. This time, what I'm gonna do is in the configuration, notice I'm giving the name v2, I'm gonna set an environment variable, dogs rule, MSG, or MSG equals dogs rule. All that that's doing is changing the high from echo message. So I can pass in a string to change it. So this time, I deploy it. What you should see is version two pop up there, which you do see, version two's ready. So now when I curl it, you see dogs rule echo v2. So now I have two versions of my application into the system, or known to the system. Now, what we're gonna do is play around with that traffic splitting stuff I talked about earlier. So what I'm gonna do here is I'm gonna say, okay, I'm gonna update my echo service, I'm gonna set the traffic, version one is gonna get 50%, version two is gonna get 50%. All I'm doing is twiddling the load balancing aspect of my application by modifying the configuration. So that's done. Let's go ahead and send a load to it. I'm gonna do another load for 10 seconds with 10 different clients. What you should see is hopefully about a 10, 50, 50 split between dogs rule and echo from high. It's not perfect, but it's about 50%. So again, what we did is we have a load balancer in front, does the split between the two, okay? So now the last thing we're gonna do here, we're gonna change a couple of things here. First, gonna give this next version of the application version three. We are going to tag it, in other words, we're gonna ask for a dedicated URL called test just for version three, and we're gonna change the message to test, test, test, test, test, okay? And I need to speed up because we're running out of time.  This is what I meant by it's live. Okay, hold on, let's run this again and see if we can get there quickly. A lot of some of the stuff I'm demoing here in particular these tagging stuff is a relatively new concept, and it's a little bit buggy, so let's get back to it.  Give me a sec. Any questions while we're going through this? Let me just admit it here. In this particular demo, yes, I am using this jail. Oh gosh, darn it. Okay, we're gonna really cheat this time. I'm using canned output now. I apologize for this. I don't know why, it's one of those things where Murphy's Law kicked in. It works every single time until you actually get to a live demo. But we're almost done. I'm gonna show you what's going on here. Yeah, but at least I have canned demo. I could fake it.  I could, because you wouldn't know that this is canned. It looks fairly real. Okay, updated at test, test, test, test, test, generated a load. Now here, I send 10 requests to it, but notice the URL is test-echo instead of just echo, right? To show that all 10 requests go to that test revision I put out there, which means when I turn around and send a load to just the echo service, what you should still see is 10 requests alternating between high and dog's rule because the load balancer doesn't know about that third revision. I excluded it from it. Okay, so now let's go ahead and clean up. Let's go back to the slides. That pretty much, if you think about what I did there, that's actually fairly complicated stuff. Those of you guys who understand K-native, or I'm sorry, Kubernetes, asking a Kubernetes guy to set all that up is non-trivial, right? But look at all the things that we did there with pretty much minimal command line usage in terms of interaction from the user there, right? And I'm sorry, I need to speed up a little because I'm running out of time. But think about what that would take to actually do all that with Kubernetes under the covers. So a couple of things to understand here that I quickly glossed over. Your application must be running an HTTP server by default on port 8080. That's the way K-native routes requests to you. You can change that if you want, but you have to have some sort of HTTP server running inside of there. By default, it is a multi-threaded model, meaning it assumes your HTTP server can handle multiple requests at a time, but it is configurable. So as I showed you in my demo, you could set the container concurrency to one to have a single threaded application if you want. So only one request process at a time, right? But you can also set that. You can set min and max values, which means you can tell it what is the minimum number of instances or the maximum number of instances of your application to have running at a time, including one. And I'll show you that in the next demo. Scaling, you can tell it to scale versus number of requests coming in versus CPU usage. And under the covers, it's a very simplified resource model. For those of you who want to deal with YAML, you really can. Here's a sample of what that YAML would look like if you actually did it using a kubectl command, right? I'm passing in just the echo and the image name. YAML is very simplified. It's not nearly as complicated as the entire pod spec if you're familiar with Kubernetes. So it shows you, like I said, a very simplified user model under the covers. All right, let's talk about eventing. As I said, eventing provides you the core primitives on which to sort of orchestrate the eventing infrastructure of your application. So at the most basic level, what Knative has is the notion of event sources. What an event source does is a couple of things. First is it will basically subscribe to an event producer for you. So it'll basically do the subscribe to say, hey, I want events of this particular type sent to me. It will create what it calls an adapter, which is sort of like the receiver of those events, and it knows where to send those events to, in this particular case, to my service. Now, it does convert those events into what we call a cloud event, and I'll talk about that in a minute, it's a different specification, but it does that to normalize things so it can do some funny stuff or some funky stuff later to it. Now, what you can also have is a broker in the picture. Now, a broker allows you to basically do fan out, right? So instead of a single request coming in, going to a single service, you can route it through a broker, which can obviously have persistence in there if you want, if you want to make sure that you don't lose any messages because your service may be down for a period of time, right? Or at the most basic level, you can just have your services subscribe to it through triggers, where the trigger can not just scale out so you can have multiple subscribers to the broker, but you can also do filtering through the trigger, right? You can say your service only wants certain types of events sent to it, but other types of events going through the broker go to other services. So very basic pub subtype operations you see in many places, but Knative gives this all to you very simply with basic building blocks. Now, if there is a response in the service, that can go back up to the broker and you can tell it where to send those responses. Now that's very interesting because then when you get to more interesting features like sequences, what you can do is you can have events come in to one event sync or service and the results of that go on to another service. So you get to chain services together and sort of a workflow kind of a thing, right? You can also set up choices, right? Basically an if statement or a switch statement where the first one that meets the condition of your filter basically gets the event. The rest of them don't get anything or if it doesn't match any conditions it basically goes to Dev know, okay? Again, basic building blocks in which for you to sort of stream these things together and sort of a workflow type of thing. There's an event registry. Basically this allows you to know what events are supposed to be flowing through the system without having to go query every single event producer. You can just query the registry. It knows what the events are, what the brokers that are gonna receive those events are and it will do the subscribe for you or the trigger management for you to the brokers. Now cloud events I've very briefly mentioned that and I can talk a lot about it but I mentioned the events that come in get transformed into a cloud event. Basically all that means is add a little bit of extra metadata that's standardized. So who sent the event? What type of event is it? That way when you do things like route the event through your various sync, so there's various conditions in the choice, it knows where in that event to look for that common metadata in which to do filtering, right? Because if every event comes from different event producers and they all look different, different formats, different transports, how the heck is that conditional thing supposed to work when everything's different coming into it? By converting it to a cloud event you get that standardization and you can do fun stuff like this under the covers. And if you want more information you can go look at cloudevents.io. All right, second demo in seven minutes. Here we go. Okay, this one is going to use eventing. Oh, I'm sorry. I should have shown you what we're doing first, sorry. All right, in this demo we're gonna do, we're gonna deploy a CI dashboard service. Think of this as your Travis or Jenkins UI. We're then gonna deploy a build service. This build service knows how to take a GitHub repo, build it, push the Docker image to a registry and get the application up and running and send status to the CI dashboard, okay? Knade doesn't help with that but if you build your own service just deploy it as a KNS service you can now play in this game. I'm then gonna create a GitHub event source using the stuff I talked about before to automatically subscribe to GitHub to receive push events. So when the push event comes in it gets received by the event source, pass on to my build service, does the build, sends the results to my CI status webpage. So the user has two different ways to interact with this. One, by doing pushes to GitHub and two, by checking the dashboard, all right? And finally, as the users scale up because I'm gonna set up my build service to be only able to process one build at a time for better resource utilization, you're gonna see the build service scale out as I scale up the pull requests that are happening concurrently, all right? So now let's go ahead and do it. All right, we won't fake it yet on this one. All right, first we're gonna create the CI service. Notice I'm setting Minimax scale to one. Two reasons I'm doing that. One is I was lazy. I didn't want to have to create a persistent store to manage all the states, right? Two, I wanted to show that you can actually deploy services to Knative that do not scale in any way, even down to zero. This thing stays exactly one instance running all the time. If for some reason the system dies, it will bring it back up. The same as a normal Kubernetes operation, right? So you do not have to have a normal serverless scaling application if you don't want to. You can have a singleton out there, just like normal Kubernetes gives you a URL. Now we're gonna deploy the build service. Again, this thing setting container concurrency to one, right? Because I can only do one build at a time per pod. I'm gonna space out the CPU usage. Here I have a GitHub. Now unfortunately, KN doesn't support event sources yet. So we have to drop back to Kube control. Ignore most of the stuff. Basically, what I'm doing is creating GitHub event source. I care about push events. I'm gonna substitute the GitHub repo that I care about and I have some secrets in there to talk to GitHub. But finally, down here, I'm gonna send it to a service called build, which is what I deployed before. So what this thing's gonna do is it's going to talk to GitHub for me, do the subscribe, set up the webhook, and now whenever somebody does a push, it should automatically send that event to me. On the right-hand side, you'll see all the various services that we created. The CI system, the echo service, the build service. Now notice the GitHub events, I mentioned there's a GitHub adapter that receives events. That actually gets manifested as a service. So it's a GitHub service, right? Now there's another section down here. This is basically the output from the CI system. I don't have a fancy UI. You can see it there. There are no builds that have flown through the system yet. So let's go ahead, whoops. Let's go ahead and simulate. 10 different pushes all running in parallel. What you should now see on the right-hand side is over here, the builds should start scaling up to 10.  I think stopped, because I hit the button. This is not going well. There you go. What you should have seen is live, all the builds scaled up, because each can only handle one at a time, but you can see the build results in the CI system are showing the results as it goes, right? So again, we had an automatic scaling system managing the builds for you and processing the events automatically into the covers. All right, let's go ahead and delete it. And what you should see on the right-hand side is everything start going away automatically. All right, yikes, three minutes. All right, so we already talked about all this. All right, so let's go back to this wonderful little eye chart.  My assertion is that when Knative is done, everything in that column on the right-hand side should technically have a check mark. Now in fairness, there are some things that are still a work in progress under discussion, right? Not everybody necessarily agrees. We want to support the full functionality. So for example, asynchronous operations, still up for discussion. IBM definitely wants that, so IBM will definitely have it in our version of Knative, but it's not necessarily part of the community yet. But my assertion is that all the things that you care about across the board here should be supported by Knative, so you shouldn't technically have to choose any longer between which platform you want to deploy your application. Knative should be able to do it all for you. So in summary, you should not have to choose which as you want to deploy your stuff to. With Knative, you get the best of all worlds in my opinion, including the simplified Kubernetes experience. Remember, because remember, it is still Kubernetes under the covers. You don't lose the functionality of Kubernetes. You can still go around Knative if you want to in those rare cases you need it. For you as a developer, you can now go back to writing code and focusing on things about your application that matter. How are you gonna split up the application into various containers? Where are those boundaries? Which things you want to scale when? Those kind of things, right? Forget about the infrastructure. That's the whole point of all this, right? And with that, I have a whole two minutes for questions if you have time. I was asked to put this up there so you can read if you want. If you want to make $185, follow the link, answer some questions for us. No, I don't know nothing about it personally. I don't know back here. Oh, there you go. They're back there. See, I didn't lie. I said I put it in my chair deck. I almost did it. Anyway, there was a question. Yes, sir. So your question is basically, does Knative help with the scaling, with the scaling limitations that you're running into? No. Basically, because Kubernetes, I'm sorry, because Knative is using Kubernetes on the covers, if native Kubernetes has a problem scaling for you because of limitations or something else, I suspect this would have the exact same problem because it does not do anything magical under the cover. It's still using Kubernetes for you. Still does deployments, replica sets, the pods. So I don't think anything there would change. Now you may be running into different issues with your load balancers and stuff like that. So if you have a different load balancer in play between your normal Kubernetes versus Knative, then it may be some difference. But in terms of the other stuff, it's all these exact same stuff, which I think is a benefit. We're not doing anything different here. Time for one last question if you want to. Yes, in the back. On this one, I think I'm running 115. But that's my version. I think it supports as far back as 111, I think. You may actually want to at least stick with 113 though, because there's some bug in, or there's some lack of functionality in 111. I think they've introduced into 113. So if I was going to play with Knative on Kubernetes, I would start with 113. All right, cool. And with that, I apologize. That's some glitches. Otherwise, I'd have time more time for questions. But thank you guys very much for coming. Appreciate it.


Aloha and welcome to At the Crossroads. I'm your host, Keisha King, and today we are here celebrating African American History Month as we conclude the eighth annual African American Film Festival. We have a guest with us today who is going to help us celebrate just a little bit more. But before we get to that, I want to tell you that you can catch me live at five on Wednesdays at the Think Tech Hawaii Facebook page and on ThinkTechHawaii.com and after the show you can catch me on YouTube on the Think Tech Hawaii channel at the Crossroads playlist. Today we are on the heels of the 2019 Oscars award ceremony where Spike Lee won. Finally, we were so excited to see him in his all purple outfit with hat and shoes and glasses to match. We were all so thrilled to see him run and jump into the arms of Samuel L. Jackson and celebrate at the end of the evening with all the greats including Denzel Washington and Will Smith amongst many others including like Wesley Snipes was there. They all paid homage to the Morehouse University alum as he celebrated his first Oscar win. Many people felt like it was well deserved but delayed. Well he not only attended the Oscars and won one of the big ones but he also celebrated with his Morehouse family and his New York University family. So today we decided to have a conversation with another filmmaker director and producer Kiera C. Jones who is visiting with us not too long ago during the eighth annual African American Film Festival where she debuted her film 21 and Done. So welcome with me to the show Kiera C. Jones. Hello Kiera. Aloha. How are you? I'm great. Thank you so much. It is so good to see you again. I just saw you for the first time in person two weeks ago. Tell me how was your visit to lovely Hawaii this time? You know it's interesting. I happened to visit Hawaii in the coldest February in history. I think it was and shockingly I had brought all these wonderful warm weather clothes and then had to stretch out my New York airport wardrobe to make it through my few days but it was still beautiful. The air was wonderful and fresh. I rode my bike. I had an amazing time with the beautiful Honolulu Museum and the African American Film Festival and it was just an amazing experience. Indeed it was equally amazing for us to have you and you are correct. The weather was crisper than it normally is but it was still warmer than where you are in New York right? It was definitely warmer than New York and most definitely warmer than New York today which is a balmy 29 degrees. Oh my goodness. I'm still wearing my beautiful Aloha Sun Kiss Blow so I carried some of it some of the warm Hawaii back with me. Well good good for you and we were so delighted and honored to have you as you brought 21 and done a wonderful wonderful film documentary in fact where we had the pleasure of meeting some new characters that you don't get to see in film and the film went over the experiences and challenges of aging out of the foster care system. So can you talk to us a little bit about that and then we're going to show your trailer for the movie? Well my dear friend and colleague, Jocelyn Scott, brought me this project a few years ago. She had been working in television news and had experienced bands that would go out in the middle of the night and provide just toiletries, food, small items to young people. These bands would pull up and then out of the darkness young people would come and they would come and they would take soap and toothpaste and food and socks and you know just small toiletries things that they can carry and and then they would disappear to the darkness and she said it haunted her to know where these children were coming from and where they were going to and that sort of engaged her mind into this idea about adopted children and foster care and homeless children and all that sort of thing. And so she brought the project to me and we initially thought when we discovered that this aging out situation was a real problem for a very specific community that could be really helped with the right attention because most of the problem is that people don't understand that though the government is willing to take responsibility for young people and children in most states all states have an age at which the government no longer feels responsible for the children. In New York where we live it's 21 and Hawaii where you are it's 18. Neither of those ages are I feel personally old enough for a young person to be out on their own especially considering that these young people don't have the social currency that most young people might have. They don't have extended family necessarily. They don't have long-term relationships built with basketball coaches or teachers or church members of people who will journey with them through their life not only in times of trouble but in times of triumphors as well. So we felt like we really needed to make this film and there was an immediate key to making this film. So we did our film in New York 21 and done and felt this on the plight of children aging out of foster care there. Now I'll tell you our big concern was we initially wanted to go across the nation with this film. We wanted to get a nationwide perspective of what was happening to these young people and how they were being affected by the gaps in the system but unfortunately as independent filmmakers we weren't able to get the funding that we needed to take the story that far. But everywhere that we've shown the film though I've had this concern about it being a New York story and maybe that people wouldn't be able to relate everywhere you've taken the film even in Honolulu people have come and said you could have made this film right here. This is our story too. We understand the plight of these children uniquely and specifically and you know they appreciate the work of the film. So we've done this film and now our goal is to get it out there and to present it to communities so that we can have a better awareness of what's going on with these young people and find new ways to help them. Thank you so much you are exactly right. That story was easily transferable to any state in our country and so thank you so much for producing something and creating something that tells a different story than what we normally see. At this time I want to explain to our viewers that we are having a little bit of a challenge with seeing Kiera so it looks a little bit glitchy when we see your face just so you know so we might want to just stay steady as we can that might help with that. At this time however we're going to show a trailer from the movie 21 and done. Let's listen and watch right here. Confessions of a foster kid. I lived in over 10 foster homes. Can you hear me? And unfortunately in my childhood I had a lot to worry about that I pretty much offended myself. Is this thing on? I don't feel like that the system took you know the responsibility over me. Something's wrong. We feel rejected. We feel abandoned. We feel alone. Every two minutes a child is entered into this system known to make lives or break lives, break lives and take lives. These kids age out the system. There's three places they go. To jail. To the menstrual institutions or they die. This life is built on numbers and numbers make up time. How many kids will age out? 23,400. I'm 21 years old. I'm gonna be 22, 23, 24. What's gonna happen to me down the road? Wow. That was simply amazing. I just watched at the African American Film Festival and I just thought what a heart-wrenching story that happens all around us. And I saw some very familiar faces such as DMC in the movie from the rap group Run DMC. Tell us about how he got pulled into sharing and how he contributes in your efforts or in those efforts. Well you know it's a main thing. Pretty much everyone you know probably knows someone who is in foster care or has an experience with someone who's in foster care or adoption. DMC has a very, Gerald McGuang was a very unique story in that he discovered that he was adopted as an adult. And once he found out he was adopted he questioned well what happens to all the kids who don't get adopted. And then he discovered they end up in foster care and a lot of times they end up without as we were talking about earlier the support that they needed. So he and his partner Sheila founded an organization called Camp Felix. And Camp Felix is a camp, a summer camp for kids who are in foster care. It's a place where they can go annually to explore nature and swim and run and jump and play like kids they're supposed to do in the summertime and sort of be away from that whole foster system. But at the same time have the support they need from people who understand the pains and trials that they might be going through and that can give them the help and attention that they need. So it was interesting the more we told the story and told people that we were doing this story the more that people told shared with them their shared with us their own story.  It's a very slippery slope where the parental cradle can be cracked and a child can end up in a foster care system. It happens in a myriad of ways and it often happens very fast and unexpectedly. So you have to say if you know anyone in your community is supporting a foster child or interested in supporting a foster child this is a community that greatly needs help with support in a lot a lot of ways and there's ways that you can you can get involved without getting in it. Well we are going to get to that thank you for sharing because support is the key word and we want to touch base on how we can support and how we can help those who find themselves in that situation and how we can help others who are helping others. For example one thing that we shared during the discussion and question and answer segment was that sometimes the foster families need support. So there are people who are neighbors of someone who can offer support. So we're going to take a very quick break and come right back and we'll talk about more ways we can support and then we're going to find out about you and how we can find this movie and what other projects you have coming up. Okay we'll be right back at the crossroads after this. Aloha I'm Wendy Lo and I'm coming to you every other Tuesday at two o'clock live from Think Tech Hawaii and on our show we talk about taking your health back and what does that mean? It means mind, body and soul anything you can do that makes your body healthier and happier is what we're going to be talking about whether it's spiritual health, mental health, fascia health, beautiful smile health whatever it means let's take healthy back. Aloha. Hey Stand Energy Man here on Think Tech Hawaii and they won't let me do political commentary so I'm stuck doing energy stuff but I really like energy stuff so I'm going to keep on doing it. So join me every Friday on Stand Energy Man at lunchtime at noon on my lunch hour we're going to talk about everything energy especially if it begins with the word hydrogen we're going to definitely be talking about it. We'll talk about how we can make Hawaii cleaner how we can make the world a better place just basically save the planet even Miss America can't even talk about stuff like that anymore we got it nailed down here so we'll see you on Friday at noon with Stand Energy Man Aloha. Aloha this is Winston Welch I am your host of Out and About where every other week Mondays at three we explore a variety of topics in our city state nation and world and events organizations the people that fuel them it's a really interesting show we welcome you to tune in and we welcome your suggestions for shows you got a lot of them out there and we have an awesome studio here where we can get your ideas out as well so I look forward to you tuning in every other week where we've got some great guests and great topics you're going to learn a lot you're going to come away inspired like I do so I'll see you every other week here at three o'clock on Monday afternoon Aloha and welcome back we are back at the Crossroads I'm your host Keisha King here at Think Tech Hawaii and you can catch me every Wednesday live at five on ThinkTechHawaii.com and on Facebook at Think Tech Hawaii page and then after the show you can find me on YouTube on the Think Tech Hawaii channel today we are here with our guest Kiara C. Jones and she is the filmmaker director and producer her latest film that we are discussing today is 21 and done it talks about the experiences of those who age out of the foster care system the unique challenges and trauma that they faced Kiara welcome back to at the Crossroads thank you again for sharing so before we went on our break you were telling us how we can support others while they are helping those who are coming out of foster care and while they are helping the actual individuals anything else you want to share without about supporting those yeah it's our documentary we tried to make a film that was a film about a triumph that respected the young people who were going through these challenges and that highlighted the people who were closing the gaps where the where there might be holes in the system and everywhere returned we discovered in big ways in small ways there are people in the community that were willing and excited to help out for instance we found bakeries that would be willing to bake cupcakes for your child if you had a foster child we found dance studios that would be willing to get scholarships we found writing programs we found summer camps many many different things so if you are interested in supporting a foster care a foster child or a foster family community no matter where you're watching if you're watching in Hawaii the partners and development foundation there's thrive if you just google foster care that whatever's happening in your community will pop up and those people are always looking for volunteer help you can volunteer for a day you can volunteer for a weekend you can you can offer to support maybe take a few kids to a movie it's small things go a long long way in this community and something like that like taking a couple of kids to a movie get the parents a break a much needed breakfast and help them out you know a meal share you know there's so many things that that could easily be donated that they just need to get the support into the right hand exactly and I find that direct support is most beneficial when you are able to actually help an individual family when you look at your neighbors and you see that they're doing this just simply reach out like you said a movie I like what you did there because it could be one of yours but anyone's movie would be really really good because it's two hours away and it helps the child escape and it also does help the family get that well needed respite that's so deserving so thank you for producing and creating a story that often goes overlooked and easily forgotten thank you for bringing it to the forefront of our consciousness it's so necessary and thank you for bringing the film to Honolulu you know I would love to be invited to the film festival with my previous feature film and they invited me back with this film and I was so excited and so excited to meet the people in your community the that Ohana is that how they say yes Ohana the family here yeah the foster family in Hawaii that's right thank you for that you know I wish I could say you're you're welcome on behalf of all of us but really that was the board of directors there at the Honolulu African-American film festival they bring excellent talent every year this is their eighth year I think we're going to show some pictures from that evening's event where we had wonderful musicians and artists there's a picture of some of the members of the board there with you and myself included and we have other pictures that's you and I doing a quick selfie because you were just glowing that night amazing and just thank you so much for how did you get involved in that you mentioned your first feature film which was Christmas wedding baby Christmas wedding baby so Christmas wedding baby was my first feature film I was the writer director producer editor on that film and we did really well with that film we premiered it at Urban World Film Festival which is a great huge film festival here in New York City and then we were able to license the film to BET so you may have seen it on BET we did I saw it on BET I was like I know her and then we were also able to license it to Netflix so it was on Netflix for a term and when all of that started happening I thought well I guess that's the end of my festival circuit but the festival started reaching out saying hey we'd be interested in bringing this film here and the wonderful folks at the Honolulu African-American film festival called me and said would you like to bring this on the Honolulu absolutely I would love to bring the film and so we we brought the film and it had a wonderful screening almost filled out audience and so that was my first experience with them in Honolulu who even knew Honolulu had an African-American film festival now everyone knows because of you but there are film festivals if you're a filmmaker out there there are film festivals everywhere and there are film festival specifics to doing the thing that you do if you make films about baskets I bet you there's a basket film festival somewhere this is a great festival and I always choose my festivals by communities where I you know I don't know I like to go places and meet new people and introduce the work because in the same kind of period that's how you build the family of people who want to follow you and grow with you and watch your work and grow with your career I'm always trying to go as far as I can when I'm traveling with a film so Honolulu was like yes and thank you that's amazing that's exactly how we feel we always try to reach out to people who are telling really great stories that matter what one thing we say on this show is that we tell stories or we invite guests and we talk about topics that are real and relevant and you don't get any more real than 21 and done it's something that's happening it's going on right here and right now it happens in every city and state across the globe and you can't get away from it and I think bringing that story to life just made a huge difference for so many people I hope you keep telling that story and I'm curious to know what other stories you plan to tell do you have anything new and exciting that's coming up that you want to talk about there's always I have to say though I have to give a shout out to my dear friend wonderful actor and colleague Stephen Hill who was in Christmas wedding baby who is now on Magnum PI which shoots in Honolulu so it's like a very like very round um a world moment that you know we brought this film here a few years ago and now he's here starring in a major network theory um you know not not that I don't know that I had anything to do with that but it felt very serendipitous to see him you know after bringing the film here to see him working here um so I have another film that I've written for him um and uh I'm working on getting that produced which is a whole other story fighting fighting for that I have another film um called be quick that I'm working on about a woman who's a social activist um who gets sort of disenfranchised from the work that she's doing and has to have a conversation with her ancestors to figure out what to do next um I you know I have a I have a lot of projects that are sort of in development well there's one that I'm sorry I was just going to say there's one that I'm waiting to hear about uh that you haven't mentioned and that is I believe a story about what your grandparents your grandmother fair skinned and had the opportunity to pass is that correct is that your story to tell yeah yeah so yeah I'm working on that script as well um it's about my grandmother who had the opportunity she was a very fair skin woman and it could have passed and chose not to and the life that follows her because of those choices um she she chose a very difficult path to live in her truth and I'm happy to celebrate that in a film yeah I'm excited to hear that I'm excited to hear anything else that you're going to do as well listen and you also have a sci-fi television pilot like you know we just we keep creating we own the wealth of we keep creating creating creating and you know we produce a thing that we can afford to produce and we hope that people will help us finance the things that we can't afford to produce yet um and so you know in the meanwhile uh as long as I have a pencil I can write and I can create stories and develop um that doesn't cost me anything so you know we develop we develop we develop and then we produce and then eventually we get to premiere that's right and we get to welcome you back to Hawaii and enjoy all of your stories thank you so much thank you so much indeed it is a pleasure and I want to mention right before we go that your friend Stephen hill was also here so I think it's definitely full circle that he was here now you're here who else will be here we don't know but we're excited about all of the wonderful creatives that come to Hawaii we do our best to welcome you all with welcome arms to let you know that we appreciate you and you have a following here in Hawaii a ohana that absolutely loves you and accepts you as our own and we hope that you keep telling great stories that we all get to watch and enjoy thank you so much and you can always catch up with me at cultivated films if you google cultivated films that's my website it's my gmail it's my facebook it's my instagram so anytime you want to reach out and see what's going on with us just check out cultivated films by com thank you so much we will look you up on cultivated films dot com where we can always keep up with what's happening new with kiera c jones and if you have not seen 21 and done i recommend highly that you go and you find it wherever it may be found you i'm sure you can find out ideas about where you can find it on the website of cultivated films dot com again kiera thank you so much for being on our show today and for everyone else as always thank you for watching us here at the crossroads where you can catch me every wednesday live at five here on think tech hawaii dot com and on facebook on the think tech hawaii channel and then after the show you can catch us on youtube every week we always want to bring you shows that are real and relevant we look forward to talking to you all again next week aloha


Hi everybody, my name is Kevin and welcome to my channel where we learn how to make the web and how to make it look good with weekly tips tricks and tutorials in this video. I'm very excited about it. We're going to be seeing how we can unlock pseudo elements positioning within an entire parent instead of having it relative to the element itself. You can already sort of do this, but it becomes a bit hard to move things around. But if you have a grid setup and you're positioning things on the grid template, it just makes it so much easier. So we're going to be seeing exactly how to do that in this video. It's a lot of fun. It's one of these more creative things you can do with pseudo elements. There's lots of good stuff. Let's jump into it. Alright, so the very first thing that we want to do is come on to my content here and actually give ourselves a grid. So we'll just come here and do a display grid on content. So the content is the white box that we see here. So by doing that, nothing really changes right off the bat. Because well, we have a grid, but nothing is going on. Now I am using Firefox to do this. So what we can do is bring this up and you can see here that I have my grid that I can put on. So I'm just going to leave that on so we can see it while I'm working. And I think I'm going to change the color of it, even though that sometimes bugs out, but something we can see a little bit easier. So with that blue right there, I think that's going to make it just a little bit easier overall when we're working. We can see we have a grid right there. So I'm also going to give this a grid template columns. Let's do repeat. And let's try six columns with one. Yeah, one if our each so we just end up with six columns going all the way across can't really see them yet. But once we place our stuff on there to work a bit better. So here on my title, we can give this a grid column of one over negative one and not negative two negative one. So that should make it stretch the whole way across like that. And then that's just a paragraph now. Normally I'd want that on a class but just because this is a simple demo site, we can do the exact same thing right here. Just so we're on our grid, but we've split that all up now normally I probably wouldn't be doing something like this. But because I want to play with where my suit elements and all of that are that's what this grid is really going to be here for this isn't a grid that I would normally have coming in like this just because it's a little bit of overkill just for a title element. But if I really needed to play with my items here, it could be something that makes sense for me to come in and create a more complicated grid than I really need from, you know, from the original standpoint just because it makes it a little bit easier for me to play around with. So let's come on my title here and we're going to create a suit element so title and we'll do a before and actually we're going to play with both before and after so I might as well set these both up at the beginning because there's whenever using suit elements there's a few things you need to have one of them is content content. If you don't know a lot about suit elements I have a three part mini series two part I don't remember I have a mini series that dives in deep dives into them really. But one thing it's really important is you need content because without that your suit element will never exist. So we have my content there and then let's leave this a position absolute and I'm actually going to leave it just like this for a second and we're going to explore the different things that we can do with this position absolute. So let's give it a background first so we'll be able to see it I'll give it a background of current color just like that we won't be able to see it yet. Current color is going to take the color of the font that is being used in that area so it's not something you see terribly often doesn't have the most use cases especially now that we have CSS variables but suit elements if you want it to the background to match the color of your element it's a really nice use case for it. So current color on there and now let's actually get it to work so I'm going to do a top of zero bottom of zero right of zero left of zero and hit save and it should take over my whole screen just like that there we go. So right now this position absolute it's relative to my body or my viewport because I've never declared any other position anywhere in my document. If I come up here to my content actually what usually when I'm doing pseudo elements I'm doing a position absolute on the pseudo element and then I'm going on to the element itself and I'm doing a position of relative on there. So if I do that you can see it's actually covering exactly the area that my title was in in this case though I don't want to do that. In this case I want my position relative to be up here and position relative here and that's going to cover the entire white box is this top zero left zero all of that it's not looking at the padding it's not looking at anything else it's just going all the way across that content area. Where this gets interesting though when you have the parent so my content here being a grid container is that when it's a grid container we can actually position things absolutely on the grid itself. So let's take a look at that that's on these two actually let's pull all of this off because I don't want them the same for everything. Let's just do my title before the moment. And we'll save it should look the same but now what I'm going to do is say grid column. And let's do just for fun a four over five. And now you can see it's fitting on my grid column of four over five isn't that really cool that's really exciting to me so it's on the grid column of four over five. But do you notice something else it's not fitting completely within the grid because I've only declared a grid column the top and the bottom are still relative to the element itself. So I find that fascinating I find that really interesting and I think you probably do some fun stuff with that. But for the moment what I want to do is I want to position that guy down here in this empty space. So in that I want to start at four but I want to go all the way to the end so with the end can be a negative one. I'm going to go all the way across. Now to really fit this in properly I'm going to make a much more complicated grid that I mentioned before we're making grids that maybe you wouldn't need them to be this complicated from the beginning or in a normal circumstance. But I want to come in here with grid template rows and this time we're going to do a repeat of four so I want four columns but I'm going to do a min content here instead of one FR and my grid disappeared. Of course it's not working did I forget. I might go in now. Oh it is working but you can see it's all getting smushed down there at the end. So to actually get this to work again this is we're getting a little more complicated than maybe normally would my title. I want this to be the grid row of one over three or four that right there we go. So it's going from one to four so it's actually taking up three lines on there so it's taking up three of the four. So I created four columns and this is taking up three of them and a handy and the reason I use min content instead of one FR is one FR is going to make all of these have to be an equal size. So the equal size that well it's not quite that you can see that they're they're much bigger when I do this because they're trying to distribute the empty space they have available. To them whereas min content is going to make sure that things are as small as they possibly can. So in this case there is small as they possibly can this is this has more space on it because there's a margin top and bottom on it. So that's why we have a little bit of extra coming up on those. So with all of that work done I can now come on to this title before and instead of doing I want to keep that but now I can also do a grid row of three over four. And look at that I get this nice little decorative element that squeezes in nicely right there so I think that looks pretty cool just leaving it something like that could be fun. Now you would have to be careful with responsiveness obviously it's not perfect and if I shrink down I think I would get some issues as well you can see there's it's not perfect. So it's not this isn't necessarily an ideal situation but it is one of those ones where you can start getting creative with how you're positioning stuff and maybe something that would be a bit more realistic will be this other one that we're going to set up so that would be my after. So title after once again we already have the content and a position of absolute on here. So that means I can just come in and we'll give us give it a background first background let's go teal it's sort of contrast you with my orange that I have here. And so we have my teal then what else do we need to have on here we want to do a left. Let's start with left of zero right of zero I'm going to play and we'll do top of zero bottom of zero once again and it's going to cover everything. But this time we're going to place it on my grid let's turn that grid back on. And so we can do matters we'll keep it consistent we'll keep it here at the bottom grid column. Actually I'm not going to do a grid column am I no I'm not I'm just going to do a good row so grid row is going to be one over negative one. Because I want it to take up the entire height but I want it I don't want it to include the padding that we had in there I just want it to be the height of the content that's inside. And then instead of having the left to the right what I could do here is I'm going to take my right off actually. And let's just give it a width of like point five m. So it gets much smaller and then my left we could do a negative point five m so it should pull it wrong way I wanted that to be a positive. There we go. I'm going to have it pulled in a little bit and you get this nice type of you know bar thing they could drag all the way down like that. Or this is where if you need to change how it is maybe you don't want it to be going all the way down maybe this could stop at line number four. And you can get a nice little bar like that exact height of the title. Now something like this you could probably pull off without or I know you could pull off because I do decorative elements like this a lot of the time you wouldn't really need grid to be able to do something like that. But you know if then if you wanted to get a little bit more you know something like that that's not the whole height or again where we're going all the way to the bottom with something this could be a little bit harder to achieve. You could definitely do it with the top and the bottom using a calc and bringing in the size of the padding but I do find it really interesting or why don't we push this just a little bit more and maybe going like I don't really like all of these use cases. So just for fun let's move this teal box down over here and do something that maybe you'd like you could see yourself using because as we saw this one on this side can cause a little bit of issue. So what I'm going to do is let's move that down so grid row we're actually going to do a four over five and then we're going to and we're going to put this year back to a left of zero and a right of zero. And then we can also do a grid column of we're going to go with a one over three like that. And here in my paragraph we could actually start this at my line three and now you're going off there a little bit too stuck together it like a little bit more space there when we come all the way back up to where I define my grid and as well keep this with all my grid stuff. We could do a grid or we don't need to say grid anymore we need to say gap so I just want to call them gap. So a column gap of say one am or point five am or something like that gives us that little space in between. And while this one could cause us a little bit of issues I do think I put this into responsive mode we should be able to get a better idea. Yeah that top one as you can see it's causing a little bit more it's not perfect. But here on that bottom one it's really going to adjust really well with how everything set up there. It's going to grow and shrink and this content can sort of adjust automatically. So I do think that that works maybe a little bit better than that other one and you can see here I have some fun old CSS overflowing you make your CSS is awesome jokes right now. So for stuff like that or even you know maybe you want your grid gap maybe you want a gap of one am all the way around. And my paragraphs come down margin zero. There we go and it's starting to fall in line a little bit better. So just a few fun things that you can do here I'm not saying you would probably want to do this all the time I do think that there's times when you probably wouldn't want to push things or go this far with it there's much easier use cases. But this is one of those really fun things with CSS where if you are using a grid or you really need precise positioning of something maybe it's a good idea to use a grid to get that pseudo element to go exactly where you want it to go. So I really hope you like this I hope you learned something fun here I hope you can think of really fun and creative ways to use this and if you did please let me know in the comments down below or if you have already used this I would love to know about it. Thank you very much for watching I really appreciate it if you haven't yet subscribed and you enjoyed this video please do consider subscribing. Thank you to my patrons you guys are amazing thank you very much for your support every single month and of course until next time don't forget to make your corner the Internet just a little bit more awesome.


What's the difference between embarrassed and ashamed from espressoenglish.net? These two words are very similar, but they're actually used in different situations.  For example, you would be embarrassed if you were at work and you discover after lunch that you have spinach stuck in your teeth. It means that other people have seen you with dirty teeth. You would also be embarrassed if you call someone by the wrong name. It's socially uncomfortable, so you would feel embarrassed. Another situation might be if you go to a party and you wear some casual clothes like jeans and a t-shirt, but everyone else at the party has dressed up. They are wearing fancy, nice clothes. You might feel embarrassed that you are not dressed appropriately. Again, you feel uncomfortable because of the social situation. Now, if you feel ashamed, that means you did something bad or wrong, often morally wrong, and now you regret it or feel guilty about it.  So now you feel bad about your behavior. Another example would be if you got drunk with alcohol and behaved badly at a party. Maybe you broke something or you insulted some of the guests bad behavior. So later you feel ashamed. You feel bad about what you did wrong. You might also feel ashamed if you lied to your boyfriend or girlfriend. That's morally wrong and later you would feel ashamed. You would feel bad that you lied. Let's put it into practice. Leave a comment on this video and describe a time when you were embarrassed. Again, you felt uncomfortable because of a social situation where other people might think you are strange. And then describe a time when you were ashamed, meaning you did something bad, you did something wrong, and later you felt bad about it. If you'd like to learn the difference between a lot more confusing words, check out my ebook 600 Plus Confusing English Words Explained. I'll teach you over 600 words that English learners often make mistakes with. Click on the link in the video or in the description for more information and a free sample lesson from this book.


Vermont PBS in cooperation with Orca Media and the Vermont Press Bureau presents Capital Beat, the Week in Review from the Vermont Statehouse. Here's host, Neil Goswami. Welcome everyone, we're very pleased to have you with us for Capital Beat. I'm Neil Goswami with the Vermont Press Bureau. And town meeting has come and gone, the unofficial midway point of the legislative session. Joining us today on this week's program is Governor Phil Scott to talk about the first two months of the session. Governor, welcome. Well, thanks for joining us. Thank you very much for having me, Neil. Yeah, my pleasure. As I noted, two months into the session, I believe we had you on the week after you were sworn in. A lot has transpired since then. That seems like a year ago at this point. It does. You've presented your budget to the legislature and we had a new president, I should say, sworn in. So as we kick off the show today, maybe you can just fill us in a little bit about how you think things are going two months into your tenure and what's working for your administration so far. Well, certainly. This is, I've been through a number of sessions over my years of political service. So 16 years and either 10 with the Senate, five or six as a Lieutenant Governor, this seems fairly typical. There's a lot of back and forth. I believe that we're somewhat on schedule in terms of the budget. The House will be coming out with their proposal fairly soon and debate that on the floor and then send it over to the Senate where they will drastically change the House version and we'll be involved along the way. But I feel good about where we're at at this point. We've got a good administration, a good team that we're developing and we have our opportunities, the highlights, but we're focusing on growing the economy, making Vermont more affordable, taking care of the most vulnerable. And those are the three things that guide us every single day and that's what we're focused on, economic opportunity. And when I get outside the building, I think it still has a lot of merit. People are somewhat, I think there's some optimism with the new administration. I believe that there is a little bit of excitement. We see some opportunity. There's some potential for growth throughout Vermont and across the border as well. And I've traveled to Canada on a couple of different occasions. So I think we have some optimism ahead. All right, we'll get to some specifics about this in a minute, but I wonder how much of an impact has the Trump presidency had on your administration here in Vermont so far? Well, we certainly talk a lot about the administration in Washington, President Trump. And it seems as though every press conference we have or highlight we see in the newspapers revolves around something that we're reacting to out of Washington. So it takes up some time, admittedly, but we're still focused on, again, trying to do whatever we can to help us out of the situation we find ourselves in economically from a budget perspective. And I believe that we have some challenges but opportunities as well ahead. All right, it's no secret at this point your budget plan that you proposed to lawmakers very much centered on some education proposals. You wanted to fund some new investment in early and higher education by moving some things from the general fund to the education fund and by level funding school budgets. Now, the legislature, as we know, declined to move the date out to allow school boards more time to recraft their budgets. On Tuesday, we had Town Meeting Day and we now know that more than 90% of school budgets passed. I think there were 18 that failed and 183 that passed on Town Meeting Day. So the savings from level-funded budgets that you were seeking has essentially evaporated. First of all, give us your thoughts on what transpired on Town Meeting Day and having only 18 school budgets fail. Yeah, I think it was a few more were defeated this year than last year. But again, it's somewhat typical of every year. I don't think that tells us a whole lot about the way people are feeling as somewhat of a disconnect between those who are voting on their school budgets and property taxes for some unknown reason. But we make it complicated in Vermont. There is many communities who have voted down their or level-funded their budgets over the years continue to see a rise in property taxes. So there's a futile effort in some respects and I think that that leads to some of the apathy we see when you only have, I don't know if the numbers are out yet or not, but I would suspect that it may have been around a 25% turnout rate of voters throughout Vermont. I still see opportunities ahead. I believe that there are ways we can save money within education to fund some of my initiatives, early childhood care and learning, and higher ed, which I think are essential as we move forward. What I've said repeatedly is that we have this K-12 budget where we spend $1.6 billion and we're educating 86,000 students, less than 20 years ago. So what we need to do is, which equates to about 19 on average, $19,000 per student, which is one of the highest in the country. So Act 46 is starting to take effect. There were a number of communities that voted in favor of merging and I applaud them for taking that action. It's not easy to take those steps, but that's the situation we find ourselves in. Less students, higher costs, we need to do whatever we can to live within our means. So I think they're taking action in some respects, but it's not happening fast enough. So I believe that there's still opportunities when you consider how much money we're spending there, not to take some of that and put it into early childhood care and learning, which is so essential. The child's brain develops incredibly fast within zero to five years. As well, we need more training to train for the positions that are open right now. So I still believe there's an opportunity to have some of those investments. You asked voters around the state to sort of do the math on their school budgets and I understand you did the math on yours in Berlin and voted against it. It was one of the 18 that failed. Was there not enough checking of the numbers by Vermonters? Well, again, it's difficult. I'm not sure that they were listening to what I had to say. If we have a 25% turnout for a town meeting, it's not the vast majority of voters who are speaking up. And I think that we need to engage people. We need to have more people show up and vote and participate as well. I saw on town meeting day, even in our own community, a number of positions that were either open, nobody running for certain positions or there was no race at all. Those who have done it previous were unopposed. And I say that there seems to be a lack of participation on the local level, state level, and so forth. So I'm just going to continue to advocate for people to take charge. Get active within your community and do the math, as I said, because it's a direct relationship as to what we're spending for education in our property taxes. So we now know that the tens of millions of dollars in savings you were seeking from level-funded school budgets will not transpire at least this year. And yet you are still saying that you believe you can fund the $9 million that you called for in early education and five or six million or so in higher education. Lawmakers are calling for a plan B from you. It sounds like you still believe there are savings. So can you tell us where those savings might come from? Well, I think in health care costs alone, I think V-High has identified about possibly $30 million worth of savings with reduced costs in health care. So there's an area that we could take a look. And again, for those who say plan B, I would say the plan I put out was balanced. It spent within its means. And there was a portion of that that the legislature didn't accept. But the vast majority of the budget that I put forth, they've taken advantage of. They took advantage of some of the cuts and some of the redistribution of funds and so forth that we savings we found within state government. So they took advantage of that. They have accepted some savings. So I wouldn't say that there's a need for plan B. I think we just move on with plan A where we're going to find other savings in other areas. Well, to be fair, the level-funded school budgets was the single biggest chunk of savings that you identified in your budget proposal. And I think we agree that it's no longer feasible for this 2018 fiscal year budget. So to fund those new initiatives, do you have any other... Well, I think as I said, I mean, there's one initiative. We're looking for 15 to 30 million dollars is what we're looking for at this point. But wouldn't those numbers only account for half of the 2018 fiscal year? Well, again, they're saying at a minimum, 30 million, there's 15 right there. And you think you would like to see that applied to your 9 million in early ed and 5 or 6 million in high-red? And I think there are other opportunities that we just have to be creative, think outside the box and be willing to, again, utilize our different approaches, agree on the goal. I believe that most would agree that we should do whatever we can to keep property taxes under control. I believe everyone feels that way, or most people do as well. I think that there are many who agree that we should be spending more on higher education than we do because if we're going to develop a temporary workforce, we need to have proper training in order to do so as well. Early childhood investments, I think are essential if we're going to change the behavior and save us money in the long run and give quality education at that tender young age. So if we can agree on the mission, agree on the goal, we just have to find ways to get there. Public leaders in the legislature say they do like the idea of investing in higher ed and early education. They're just seeking some new ideas of how to fund it from you. And it sounds to me like you're saying there won't be a document that you hand over that says plan B at the top. I think we all have to do our part. And you believe you've done years? Well, I think I'm willing to work with them. We're going to continue to work with them and trying to find those opportunities again at the end of the day, we want to help Vermonters. And I believe that this package that I presented would have helped would have been beneficial for Vermont. But I still believe there's a path to doing so. Okay. As you're aware, the House Appropriations Committee has been working over the last two months to essentially come up with what they call a their own version of the state budget for 2018. They say they've been able to reduce the projected gap from $72 million to $18 million. How much do you like or dislike their work so far? Well, again, I think that most of the reductions have been taken from what I presented to them. So I think most of them I would agree with. I haven't seen too many at this point in time that I disagree with. But it's a long process. You know, this is something that we work through. The House comes up with their proposal. It will go through the House debate. They'll come out with something that they vote on. It'll be sent to the Senate and again be completely reworked. I don't believe there'll be any rubber stamps on any budget proposal, whether it's mine, the House's or the Senate's. And I believe that at the end of the day, at the end of the session, there'll be a conference committee and there'll be the House and the Senate and we'll be continuing to be involved during the whole process to lend what I see as helpful advice along the way without raising taxes and fees. And I think that's essential for Vermonters. They've been taxed enough. They don't have the appetite for any more spending, additional spending, any more taxes and fees. And I believe there's a path to doing that. To get to the 18 million left in the projected gap, the House Appropriations Committee has utilized what they say is, anticipated additional spending in the Children's Health Insurance Program. That was an 18 million dollar whole or some that they plugged in to their budget. They're using about 6.75 million, I believe, from the Medicaid Global Commitment Fund. These are federal funds that we expect to receive from the federal government. Are you concerned, given the uncertainty with how things are in Washington right now and the discussion of federal funds and whether or not they will continue to flow at the way they have been, are you concerned that we're relying too much on perhaps one-time federal funding? Well, we do rely heavily on federal funding. Almost a third to half of our budget is federally funded. So we have to be concerned. When there's any change and what's happening in Washington, it could have a direct effect on Vermont. And we're staying on top of that. We have a great team in place. We're continuing to monitor the situation. We have a good delegation. We're working with our congressional delegation in making sure that Vermont is protected. But there are a lot of steps along the way there as well. They have a house and a Senate and a president as well that they have to deal with and we'll see how the process goes. But for those states who have expanded Medicaid as we have, this is a concern. Any changes will have a dramatic effect on us. But there are other governors throughout the United States that have taken advantage of expansion of Medicaid. Many Republican governors as well. So we'll continue to work together in that regard. And by reducing the gap to $18 million, they have stripped out your new spending initiatives on early and higher ed. Obviously, that's not something you would like to see remain. But if you add those in, that's at least 15, 16 million more on top of the 18 million. And they're already discussing things like the need to make drastic cuts perhaps to the Vermont home and other places. That seems pretty significant. Any concerns that they're going to have to cut deep into programs that Vermonters have come to rely on? Yeah, obviously. We'll work with them. There's a lot of posturing going on. Making draconian cuts is always a threat in some respect. No different than any other year that I've seen in this building. I guess we'll see what they come up with at the end of the day when they finally pass it through the house as to whether they cut things such as the veteran's home. All right, fair enough. Let's return to the Trump presidency and how it's impacting the state of Vermont. You came out very quickly alongside Attorney General TJ Donovan and a tripartisan group of lawmakers to support legislation that would in some ways counteract an executive order or a series of executive orders the president signed dealing with immigration and border security. That, the executive order that you found most offensive was stopped by a federal court order and the president has now issued a revised order. Your office sent out a release saying you were encouraged that it was a more narrowly crafted executive order. Can you explain why you believe it's more narrowly crafted or how it's less offensive at this point? Well, again, from a travel ban perspective it's been narrowed quite drastically. Those who have visas from those countries are going to be able to stay. So there's not as big a concern from that perspective but that wasn't, the issue that I had with the first executive order still exists and that is pertaining to government's overreach and dealing with public law enforcement whether it's local or state and I want to be sure that the governor is in place that I will have a say in whether any of those resources are used and that's my erosion of constitutional rights. The fourth and the tenth amendment I think are in danger of erosion and I think we still have to protect that and as I've said so many times before we can't pick and choose which constitutional rights we want to protect. We have to protect all of them because the next one might be something that you really care about you may not care about the fourth and the tenth at this point in time maybe the second amendment the next time so let's protect all of them. Yeah, the CBC in Canada reported this week that a Canadian born woman with Indian parents tried to cross the border at Highgate Springs here in Vermont to go to a local Vermont spa with two of her friends and was denied entry and was told that she needed a special immigrant visa even though she's a Canadian citizen. This isn't the first instance that we've heard of Canadian citizens with either parents who were immigrants or might be considered a minority group being stopped at the border. How concerned are you with how the border patrol is handling Canadians and others who are legally entitled to visit the United States but not allowed to?  I will say that we've reached out to seek some clarification some guidelines that are associated with that so that we know we can offer to either Canadians or Americans what they can expect when they go to the border we have not heard back at this point but we'd like just to get some clarification on that. If it's widespread it's obviously a concern but I have to say I've traveled across the border back and forth over the last 30 years up through into Quebec through Ontario as well and there are many times that we came through with some on our team and other teams as well that weren't able to get across the Canadian side and were turned away so this is not abnormal that people get turned away but I'd like to know some of the specifics if they can give them to us but I don't want to again second guess what they're doing they have a job to do they're protecting our borders maybe a legitimate concern I just don't know at this point. Okay. President Trump and Republicans in Congress campaigned very heavily on repealing and replacing Obamacare or the Affordable Care Act as it's formally known this week Republicans and Congress introduced a plan to begin doing that I think everyone's still trying to digest the facts and figure out what it will do and how it will impact Vermont but what are your initial thoughts on what the GOP in Washington is looking to do in terms of federal health care policy? Well again at first blush it would appear that any states that took advantage of expanding Medicaid this would have some probably negative overtures to it so we want to look into it we're trying to digest ourselves we have our secretary and commissioners taking a look at this to see what effect it would have but again at first blush I'm not sure that we would be supportive of this but at the same time this has a long ways to go this is an initiative put out by the House Republicans this still has to go through the House and then of course they have a Senate to deal with as well so the Senate has to weigh in and again the President so we're going to offer our thoughts on this to Congress and to at least educate them as to how this might impair Vermont My understanding is it would continue to fund the expansion of Medicaid through 2020 and then transition to a sort of per capita amount on Medicaid which presumably would mean less money to Vermont under such a circumstance could the state continue the Medicaid program as it exists now it's really tough to say because those details do matter when you present it such as that and you're just assuming making assumptions that there's not going to be more money obviously that would impact Medicaid so we want to be careful we're not making those assumptions we're trying to deal with reality as it comes forward and voice our concerns such as that what happens after 2020 because when you have a certain population one third of our population is somehow enrolled in Medicaid and so it's and one third of our budget is impacted by Medicaid as well so this is a big deal for us and so we want to make sure that we protect ourselves Do you believe that Obamacare should be repealed? I've said in the past I believe that what we should have is it needs some changes there are some good parts of it there are some that need some work and I believe that that can be done that may still happen I'm not sure I've heard some talk in other circles of maybe coming up with a plan to actually just make some changes to Obamacare but we'll see it's got a long ways to go Your counterpart Governor John Kasich in Ohio, Republican came out with some pretty strong sentiments against this Republican plan in Washington Do you plan to reach out to other governors around the state to figure out how to work with Congress to make sure that it doesn't impact you too greatly absolutely as I mentioned before there are a number of other states who have taken advantage of expanding Medicaid Ohio being one Massachusetts being another Michigan being another those happen to all be Maryland I believe as well those all happen to be Republican governors as well so we'll be working with any and all in terms of finding areas where we agree coming up with a proposal that could work for our states as well and giving our input having Governor Kasich and Governor Baker who are highly regarded and I respect as well on the same side I think will be beneficial for Vermont Alright, well that is all the time we have for today so Governor thanks so much for being here Well thank you very much and on behalf of Orca Media and Vermont PBS I thank you for joining the program be sure to tune in thanks