All right, everybody. And welcome to another Monday morning OpenShift Commons briefing. As we like to do on Mondays, is talk about upstream projects and how they interact with things like OpenShift. And today I'm really pleased to have Hugo Guerrero with me from Red Hat. And he is going to walk us through tuning Kafka to speak with almost everything. I like that one title. And talk about the camel connector for Apache Kafka. And I'm going to let Hugo introduce himself and do his demos. Please ask questions in the chat. And we will relate them to him and save some time at the end for live Q&A. All right, take it away, Hugo. Awesome, thank you very much for hosting me. I'm really excited to be able to share with you how we've been working with these two amazing Apache projects to be able to get a better ecosystem. So a little bit about me for people who doesn't know me. It's Hugo, I'm a Mexican currently based in West Virginia in the Massachusetts area in the U.S. And I'm a specialist in APIs and even driven architectures from Red Hat. I'm currently working as a developer advocate for Red Hat integration. And today we're gonna expand the next couple of minutes talking about three, four specific topics. First we're gonna be doing a quick recap on what it's Apache Kafka, what are the challenges and a little bit on the way to do integration using Apache Kafka. And then we're gonna be shifting into Apache Camel. So we will be talking about Apache Kafka. We're gonna be talking about Camel and we're gonna be talking about the Camel sub-projects that allows us to extend the Kafka ecosystem to other systems. So we will be talking about the Kafka connector and the new Camelettes that are coming as part of Camel K. So let's do a quick recap on what it's Apache Kafka and what is so important. So Apache Kafka is a project that was created by LinkedIn around 2010. And it was mainly focused to be tracking the website activity within the LinkedIn portal, you know, all the cliques who you are checking and what jobs they're looking for and so on. But they noticed that their Michigan system were not handling enough the transactions that they were having in the site. So they decided to refactor and rethink outside the box the way to handle events that are happening in a web system. So that's how they created Apache Kafka. And this has been now many uses now. It's been mainly focused as a published subscribe messaging system, but also it's also a data streaming platform because now has a ground with some APIs. But in the core, it is a distributed commit log. So it's a very well-tuned broker that delegates most of the intelligence or the activities into the producer and consumer clients and it specialized only in receiving events and then persisting those events. However, it now has outgrown from the Apache project and there's different components around that that has created a broader ecosystem. So we do have components for doing a replication like New York Maker. We have the Kafka Nego, we'll be talking about that. We have the APIs and also third party toolings like HTTP bridges and so on. And the thing important here, the Apache Kafka is that Apache by itself, it's not the goal. So you are not alone. So it's not just Kafka by itself. You won't really get any benefit by just having Kafka and being able to deploy. You need to go beyond that. So you cannot be just one single Jedi trying to fight and defeat the galaxy. You need some help for that. So let's talk about how can we get a little bit of help as Jedi. So the first thing that I was mentioning, it's about Kafka Connect. So Kafka Connect was this first attempt from the Apache community to be able to increase the scope and being able to simplify the way to connect to Apache Kafka and then bring data from data and events and messages from other systems and also being able to take those messages away. So it basically start to wrap around the producer and consumer APIs because that was the original way to connect to Kafka.  So the idea was to create this framework that can be reused to easily manage the most traditional type of approach of Kafka integration, like data conversion, having some connectors to be able to plug into other systems. And they defined a very well structured API that defines when you do have a sync, so place where you're dumping data and a source where you are connecting to that faucet and being able to get your events. And the problem with this was that, yeah, they have the framework, you have the APIs and so on, but you didn't have people actually coding. And even within the Kafka ecosystem and the Apache project, there was only just the file sync and the file source, like the reference of the connector. So people had to start to deploy and develop their own plugins, their own connectors to be able to use this service. And then when you are already deployed, you are able to get all the benefits from this framework and being able to run as a standalone service or the benefit is that you can also create a Kafka Connect cluster that is able to manage then the life cycle of those connectors.  So that's a very good use case. And this is mainly because Kafka Connect, if you remember Apache Kafka was created in the 2010 and it was mainly focused and heavily on virtual machines and servers and Burr Metal and so on. So let's check how can we move them into a Kubernetes space for that. So remember, you're a Jedi, you're not alone, you need to talk to other Jedi, so you are now able to get into the galaxy, gather some friends and you certainly realize that you are able to gather a team but they are from different species, you need to talk different languages. So that's where it comes the title of this session, right? So how can we tune Kafka to be able to speak these languages? So if you remember this movie Star Wars, there's one way everybody can use to communicate with others and that's through a specialized device, like for example, TPO that helps you to be fluent in over six million forms of communication. So that's why you're able to then communicate whatever you require. So this is what, for example, Apache Camel will become. This adaptive that helps us to speak with all the different systems either as a sync or as a source to our Apache Kafka cluster. So let's get a little bit deeper on what it's Apache Camel. So Apache Camel is this project that has been developed since the beginning to implement enterprise integration patterns. So it has also several years as part of the Apache Foundation and it has grown over the years to now be considered the Swiss Knife framework for integration because it has a really good amount of components that allows you to do integrations to systems. They have more than 350 different connectors for different systems that go from Slack to Telegram to Twitter to AWS services and so on. And it also allows you to handle some different types of data formats and protocols like JSON, ABRA if you want to serialize, allows you to handle WebSocket, HTTP and so on. So that's why it's almost everything. If you have a man doing the unit doing integration with the one system, it certainly has been addressed by Camel or if not, it's under works because that's something that anyone who's doing integration has been facing in the past. So most of them are coming to the Apache Camel. And it's an open source project that allows you to also be able to contribute to those connectors. So it's a growing ecosystem all the time. And you have the connector, you have the data formats, the protocols, you can then implement enterprise integration patterns. So for the regular framework, you can do complex things like content enrichment, Twitter, aggregators and so on. It's a very, very active project and community. That's one of the most committed projects in the Apache Foundation. So it's a very live project. And it basically takes these connectors and now Camel is able to run on different environments. So you can run on the traditional VM and it has now an integration with Kubernetes, OpenSheep, of course. And now more recently with K&AD for doing this kind of surplus integration. And the idea is to have these pipelines or flows or browsers, as we call them in Apache Camel, that allows us to do from one place to different destinations. So for example, from a Kafka topic to a ERPC endpoint. And we can have different ways to implement those routes. You have what they call the domain-specific languages or DSLs that allows you to implement these kind of flows or routes using, for example, the Java DSL. It's very simple. It's a Java code that you can define. Or if you don't want to go that way, you can use the XML DSL. Or now more recently we can even support things like the YAML DSL where you can define your flows using the YAML language. Going a little bit in-depth on the camera architecture and please don't just care about this slide. It's like, you know, looking at C3PO without the shell. There are different companies, the context, the routes, the filters and the processors. But the important thing here is really the lower part where you have all the components. And these components are the ones that will allow us to plug into, you know, all these systems, Slack, Telegram, either as a sync or source. And then the rest of the engineering on the camel framework then do the processing and the communication. However, we won't be really going that deep. It is for like people that is deploying their connectors or creating this integration. So most of the times are, you know, the camel team, but you can also do the exact same thing. So if you feel brave enough and you think that will benefit the community, you can go in-depth and then start working with the internals. But for avoiding that, going too deep into the details, what the camel team did is to create these sub-projects that specialize the camel framework into more reusable components. So today we will be covering two of those components. So they're more than six projects, but the ones that we are really targeting with this integration with camel are two sub-projects. The first one is the camel Kafka connector project. And the other one is the camel K and the camel X1. That allows us to have two different visions of how to connect to Kafka using Apache camel and get the most of this framework for doing your integration. So what Kafka connector and camel K did, it's basically take the content of all the frameworks and all the toolings and all the components and then optimize them to be easier to use without any really Java coding experience and being able to add these layers on top of the camel framework and being able to then tune it to really make it smooth to work with Apache Kafka. So let's get started with the first one. So the camel Kafka connector sub-project. So this sub-project was mainly focused on how to run using the same Kafka Connect APIs on the way that we most of the times address connectivity to Kafka within the VMs and bare metal type of deployments where you can get all the benefits of running the Kafka Connect cluster and then delegate all the lifecycle of your connector to the Kafka Connect cluster. So for this, the camel Kafka Connect project created spool of Kafka connectors that are built on top of the Apache Camel framework and basically tries to reuse in a very simple way those camel components as Kafka sync and Kafka sources to be deployed on top of Kafka Connect. So basically they have this tiny layer to make it easy to plug in and deploy and being able to manage by a Kafka Connect cluster. So there's a list of all the connectors so the 40 type of connectors available if you want to go later and at the end I will share some of these links with you and it's a project from the Apache Camel project. So this looks very simple if you can see perhaps it will be tiny on the slides but it's reusing the exact same type of configuration that usually you find in the Kafka Connect ecosystem. So in this way you need to define the name of your connector then you need to obviously have already downloaded those connectors so you need to download the jar file you deploy that in your Kafka Connect cluster and then start configuring this. So you can either deploy as a standalone configuration using this kind of approach or you can reuse the REST API when you're deploying on a distributed mode for the Kafka Connect cluster. So then you can define your serializer and your key and value converters sorry not serializer converters to handle the different type of serialization for your data. And then you can configure all the specifics of the component so you can do the topics that you're gonna be reading from or writing to and then you can configure specifics of each one of the components like for example for Amazon S3 you need to configure the access key, the secret key what's the region that you're gonna be using and the same for other Amazon services and for Timer or for other components you will need to check the documentation what are the different options that you are able to configure. So the good thing about this is that as you can see here with just defining the configuration we can start using all these kind of components with no code and just simple configuration. And this is very useful when you just need to get on-brand reuse very well tested connectors within your new Kafka ecosystem. And this works very well because it really leverages the benefits of the Kafka Connect cluster and APIs. So if you are running your Kafka Connect cluster then this is gonna be really really easy. However, when we are moving into a more cloud native or Kubernetes native type of deployments having the Kafka Connect cluster as well as the Kubernetes API makes it a little bit redundant. Like you have two abstractions for deploying connectors. So what the Camel team figure out was that it was easier to remove the Kafka Connect layer and then delegate the management of the connectors to obviously Kubernetes and to the Camel K operator. So that's why we are gonna be talking about a Camel K and now the more recently added features called Camelettes. So let's get a little bit on how this Camel K and Camelettes are making a Camel cool for Kafka. So a little bit of Camel K, as we mentioned, Camel K has this umbrella project that has different sub projects handling different specific things. So the core is obviously focusing on the framework by itself. We talk about the Camel Kafka Connectors that focus on how to make these connectors to work with the Kafka Connect. And Camel K is the platform that's specialized on running Camel integrations on all pages and Kubernetes in general. So basically it's taking this declarative approach that Kubernetes offers us to be able to define these components, these connectors, these integrations, these transformations as custom resources. So it's obviously backed by the Camel K operator. And even though the main use case was first targeting the serverless workloads, serverless integrations with K-native and then open-shoot serverless, we realize that there's also other kind of approaches, like for example now doing Kafka to simplify the kind of integrations that we want. So it's also part of the community. It's also a sub project and it started around three years ago. So it's now on the latest versions 1.4. So it's already maturing. And the idea is that Camel K uses the operator pattern to be able to manage integrations. And the interesting thing about Camel K is that it has different capabilities, like from taking during integrations, define as custom resource to be able to support the creation of functions using the Camel K routes and so on. It's very versatile. That's why we mostly have been focusing on the concept of Camelettes. So the idea of the Camelettes or basically it's the contraction of Camel route snippets, Camelettes, or Camelettes as somebody called them, is that now you can take a Camel K to be able to handle a pre-configure and pre-build connectors as well as transformations. The exact same way as Kafka Connect has been in charge of handling the connectors, the lifecycle, exposing our REST API to be able to start them, stop them and configure them, Camel K takes the same approach with the Camelettes to have the exact same responsibilities of how to start a connector, how to create a connector, how to deploy those connectors, where to get them from and being able to deploy those source and syncs within the OpenShift cluster. The interesting thing here is that now, obviously you can either go all the way into the Camel core and create your own deployments and just let Camel K run them, or you can reuse some already created integration connectors available as Camelettes and then tell Camel K to be able to deploy those connectors into your OpenShift environment. And obviously the interesting thing here is that those connectors are then being managed by the OpenShift and the Camel K operators and they can be restarted, you can check what is the status and you can also be able to query the Kubernetes API to get access to other Kubernetes, other, sorry, custom resources available in that exact same cluster. So as we were gonna be seeing in demo, we have a little bit of time, you are able to reference then other components that are available in your cluster. So for example, we're gonna be seeing that if you are running Kafka on Kubernetes using StreamC for example, StreamC also uses the declarative approach to define your Kafka resources. You can define your Kafka cluster as custom resource and your Kafka topics as custom resources. So the benefit of having, for example, the definition of a Kafka topic as a custom resource definition is that then Camel K can reference that resource and being able to link all the information attached to that resource, read the status, the specification of that resource and then reuse it within the context of the component or the connector to then use that information to deploy and to configure these integrations and these routes. So it's very, very interesting. And for that, as I was mentioning, the important thing about the Camelettes is that now we have a Camelette catalog that allows us to have all these components or connectors available. As you can see that we have some of the components that we were mentioning from the Camel Kafka connector and also available as Camelettes in the Camelette catalog where you can get all these connectors and then just reuse them within your cluster to be able to install them and then being able to start using those. So the Apache Camel site in the web has this catalog where you can sort and search for the different connectors. You have connectors, you also have some transformations and we will be adding as part of the project more and more connectors and more and more transformations so you're able to reuse most of them. So for example, when you are using Kafka Connect, you have not only the connectors but also you are able to leverage some of the transformations, like for example, if I want to add a field or extract some value from the payload or being able to change the key of my record, my Kafka record or so on. Some of the things that you can do as part of the single best of transformations that I was mentioning at the beginning. So those are the kind of things that you can also find in the Camelette catalog, those transformations are also available there. And then, so how do Camelettes look like? So most of the times you will see, you will be really working with is the Camelette Bidens. So as I mentioned, you can create your own Camelettes if you want to code and to work with the workflow but most of the times you will be using already Camelettes that have been created as part of the catalog or created by your integration team, for example. If you're part of the Kafka users, you will be most of the times using the Camelette Binding that allows you to then take a Camelette and configure it to deploy your connector or your integration. So in this case, in this Camelette Binding example, what we are taking it's the Camelette Timer Source that is referenced as part of the source. And then, as I was mentioning before, you can then use a reference to an already existing OpenShift resource like in this case, for example, an in-memory channel from Knative for your serverless integrations and then the name of the channel. So with this information, you just need to tell that you are gonna be taking from the timer and then you will be delivering your event or your record into that specific channel. There, you can also replace that not just with Knative channels but also you can use, for example, Kafka topics or you can use other Camelettes as the destination for your binding. So you can then start to build your own data pipelines using this type of Camelette Bindings, reusing some of the Camelettes already available to create more complex flows. In this case, it's very simple. We are just having a timer that is producing those events but you can then have something more, let's say more focus on more complex integrations. So that's what I wanted to show you now. So let's see a demo and some more information about this. So I was mentioning, this is how a Camelette Binding looks like. So I'm using a BS code just to show you the YAML file that you can define as something that it's declarative using YAML, the information about the Camel Binding, the name of the Camel Binding, the source. So it's also a reference to a Camelette that has already been deployed on my cluster with this name, in this case, TimeSource. And the properties for this is gonna be just a hello world. And for the sync, so the source and sync, it's taking the same approaches as Kafka uses now. It's gonna be a Kafka topic that it's called Camel. And if you can see, I'm using StreamC in my cluster to define this specific resource. Or you can just define directly the destination. But most of the times you're already running and leveraging all the benefits of operation, I would recommend to have this exact same approach. Now, as I was mentioning, so we do have Camelettes. So this is a Camelette example, for a transformation. And this is the components that are part of the Camelette catalog.  You just need to follow the Camelette development conventions, where you need to define what is the specification. So you need to check what is the title, the description, what are the required fields that you need to configure to this integration to work. So most of the times you don't want to hard code information there. So you most of the times receive those as part of the arguments of the call to your Camelette and then some dependencies. And then you can define your flow. In this case, we're using the YAML DSL for this flow, where we are taking the source that it's coming into this Camelette and then do simple transformations depending on the configuration, setting the properties and then doing some object processing to change the, in this case, for the hoist field for the information that it's part of the payload. And like this, there are different type of Camelettes. Another example for it's the telegram thing. So if you want to send Kafka messages into a Camelette, then you are able to check the description of this one, the different properties that you require like the authorization token from a telegram, the chat ID where you want to deliver those messages and then the different flows. And here we're using this YAML approach because it makes it very easy. So if you can see, you can just reusing the DSL, no need to code anything, it's mostly configuration and the quality of approach. But as you can see, this is a little bit more complex. So that's the benefit that you can get with the Camel, with the Camel framework is that you can go from something very easy to something really, really complex if you really need to or you need to implement your own specific processes. For example, to do something very, very specific, but most of the times you will find most of them already available. So then how you look at those when you are binding them, for example, the telegram one, how you can use it is, yeah, we already see the Camelette and now we are using the Camelette binding, then we are referencing for example, the Kafka topic that we're gonna be taking those messages and then this example shows how to build these pipelines that I was mentioning in the past, right? So you can have different steps or different phases of your data pipeline. The first one is just extract some information that you can apply the host field action and then you can do some patterns like for example, calling an API that is doing the enrichment until you get to the end and then you have your sync or your final target system or destination or you can then send the information at the end. So this is how the different objects can be related. And then how you deal with them is if we go to the terminal, we get here, we are also in the same process. So what we recommend to use is the Camel CLI, the Camel command line tooling helps you to deal and easily manage your Camel resources. So in this case, we only have some Camel bindings already with this. There's a one timer that is already working, but also we can add more Camel it so we can see, as you are seeing, I'm using Casey, it's the Cubicle command for occurring the OpenShift API. So we are able to get all these custom resources as part of the OpenShift ecosystem. So Casey, get Camelettes. So you see that there's no Camelettes here, but we can then fly, then Camelettes. And these will install all the different Camelettes. So in this case, I have these Camelettes here, local in my machine, but you can also use the ones that are already available in the site. So if you are going to the Camelette side, you will be able to find them. So if you can see here, we have the Camelette catalog that I was showing you in the slides. And there are here all the different connectors that are available. And the one that I will be using here is the TimerSource. And so you can see here what is the information about the configuration. So you need the message. That's the field that you, the property that you need to boot. And then there's all the information, like the context type, the period, and so on. But these are optional. The only one mandatory is the message. And there are some examples, like the one that I shared with you. If you want to avoid to copying them manually, you can just reference them directly from the site. So you can go to the GitHub repo, where you can see the different Camelettes and the TimerSource Camelettes, for example. It's here. And if you want to install this one, you can just go to the raw file and just apply this one into your server. So you're able to install those directly. So what the service is doing when running this component is, if you can see now my OpenShift cluster, is that I have a project called Kafka. So in this Kafka project, I just have the StreamC operator installed that it's managing my Kafka resources. Let's wait for these loads. So in the install operators, I do have the MQStreams operator, that is the version of the StreamC operator and also the CamelK operator with the version of 1.4. And if I was mentioning, you can also use serverless or Knative. You want to get all the extensions for the scale to zero and then the serverless components. And as was mentioned in this project, I do have a Kafka cluster called demo. And remember, because we are using the operator, we are defining everything as a custom resource. So this is a simple Kafka cluster that has the Kafka brokers, three of them and three suitkeepers, and it's exposing just internal endpoints and a route for accessing from the outside. And also, as I was mentioning, we also can define the other resources like Kafka Bridge or, in my case, it was looking for the Kafka topic. Yeah, Kafka topic, so the way here. So in my case, as I was mentioning, we need to create the Camel Kafka topic and because we create that as a custom resource that we are able to reuse them in the example that I was showing. So this, when we create this, what we see is that we have the parts running on my three Kafka brokers, my three suitkeepers, and the operator is already available here. And then I have this pod already running with the information on the integration. And this is created because the integration is already running, but I can delete that one, as I was mentioning. So, KC delete it, Camel Binding, Timer to Kafka, this will delete that integration or that pod that it's running, the actual integration within the Timer and my Kafka cluster, and it removes that pod. If I do apply again the Timer to Kafka, the AMO file, the CamelK operator takes that definition that was created as a custom resource and then deploys my pod and starts them to run within the connection. So if you notice, I didn't have to configure my Kafka Bootstrap server. I just add the reference to the Kafka topic that it's obviously linked to a Kafka cluster where it was being created using the StreamC operator. In the case of the CamelK, I just make the reference to the Kafka topic and then it automatically wired all the information to connect to my Kafka cluster. So that's one of the interesting things about using Camelettes and CamelK. You don't need to configure everything, so it's able to easily connect and plug into this cluster. So obviously it creates the configuration and then it starts to run my integration, my Camelette, and it starts to send events to the Kafka cluster. But if everything goes correctly, we should be able to see the integration running here. So let's check if this is running. So in my case, I'm just going to run the console consumer shell script from Kafka that is available within one of my Kafka cluster brokers. And let's check if we are able to get some information here from the topic. If everything works, then we should be able to see, yeah, our hello world message being received every one second as we configure in our information and our integration. If I want to update this message, it's very straightforward. I just go to my timer to Kafka configuration. So instead of saying hello world, we are going to be putting hello open shift. Save that one. And then let's apply this again. Okay, this should be updating our pod. Yeah, we see that now the old pod is being terminated and then the new pod with the new configuration is coming up. And yeah, here we have hello open shift. Very easy, very straightforward. We can get from something simple or complicated depending on what it's your integration.  So the good thing about this is that you don't need Kafka Connect anymore. So you can rely on all the benefits of the distributed Kubernetes API to handle the lifecycle of your posts. Starting, scaling, and so on. So it's very interesting to have this. Okay, let's get back to the slides after we saw a little bit of this demo. And let's do a close up for this. So I was mentioning we have these camel connectors for Kafka. They're part of the sub projects of the camel umbrella project. It allows you to combine the power of all these big projects like Kafka and camel to work together and then broader the ecosystem and simplify the way to build your data pipelines using Kafka. So you can experience the maturity of the camel project with all these enterprise integration patterns with all these connectors. And you can also get all the benefits of simplicity from Kafka Connect if you're deploying an IBM or leverage all the different benefits from the operator pattern using your OpenShift cluster or your Kubernetes cluster. So in this way, if you're a Kafka user, then you can get now all these big set of components and transformations available up to you. You are able to then create your own without having to code at all. No javas as you can see in the examples. You can just define your flows, how your information is going to be handled, how your transformations are going to be managed, take decisions, choice, implement your patterns without coding and getting your custom integrations. And for the existing camel users, you can easily reuse all your skills that you have as a camel developer or as a camel user and then get into the Kafka world very easily reusing this information without having to relearn APIs or the way to connect using the Kafka component. So that's a very easy way to train your skills. So there's some useful links if you want to check more about this. Some of the ones that I showed you, you can go to the GitHub repo for the camel Kafka connectors. You can also go to camel case subprojects so you can read the documentation. You can check the developer guide for creating camelettes. You can also please join the camel sleep chat so you are able to join the community, share with us what you think about camel case. And obviously you can also follow them on Twitter. You can also start the GitHub repos. I encourage you to do that so you are able to participate and give us your feedback. And I think that's all on my side. I don't know if there's any questions, comments, something that you want to go over. Thank you so much for walking through all of this and I'm really intrigued actually personally by the camelettes and the catalog. If you could go back and show us what's in there for besides the one that you demoed, I'd be really interested in getting your perspective on what's in there, what's coming there, and if someone wanted to create a custom camelette, how would they go about doing that or is there in the documentation maybe there's a little bit around that if you want to create your own because I can imagine people wanting to write their own enterprise specific camelette that's behind their firewall or whatever and that seems to be one of the cool bits of this whole process. Greg, yeah, so as I was mentioning you can go, if you navigate directly to the camel site somehow it's, yeah, wait a second. It just froze as you would expect for this kind of thing. You go through the whole demo and nothing breaks and then you try to do the documentation and it poses up, oh well. Yeah, there we go. And let me check if I can open another. I think, yeah, it just broke. Yeah, so, yeah, in the documentation there's a link to the developer guide so you can check the information on how to develop your own components and as I was mentioning at the beginning you can either reuse the ones that are in the community or if you develop locally as I did show you with the ones that I had in my own local file system that I add them to my cluster those are the ways to go. So you can have your own repo where you can have them private or you can go over them. So if you go to the camel catalog you have this list on the left side you can see we have a lot of four AWS services, Azure services. So those are the ones that the community has sort of been created for you and they're available for free. You can just go to the repo and then just reuse them. If you want to write your own then there's the camel developer guide. This is the information on the basics. So what it stores, what is the sync, what is the single jambal file that you need to work on creating a simple camel. So you can go over this guide and it helps you to define how to create different components that you need to create for having your own camelettes. And now that you have the final jambal file you can then either install that in your cluster or if you want and please do that if it's possible, share it with the camel community so we are able to publish them into the camel catalog. But basically most of the information is right here. Yeah, awesome. So I'm looking forward to an explosion of camelettes in the community so hopefully people will find this topic interesting and figure out different aspects of leveraging the camelettes and share them with the community and come to the community Slack. If you're looking for that, a way to connect. Do you have community meetings, Hugo, for the camel K community? There are. I don't have the schedule on hand but certainly we can share with that with your audience later. We'll definitely dig up that because I think the Slack channel that the Apache camel one is probably a really good place to go to ask questions and stuff like that and find it out but also interested in joining the community this would be a great time and a great way to get started I think and easy to join. Yeah, I mean you can join to the camel GitHub if you have issues and so on. You can follow the discussions there but I think most of the activity really happens in the CELIP channel and that's where you will find certainly everyone and that's where the agendas and the meetings are being published. It's a very vibrant community so I do recommend you to reach them over there and then you will get certainly pointers on how to work with them. Awesome. I'm going to have to check out Zulup and see if I can find that as an alternative to Slack. I think I'm getting burnt out on Slack because of the Kubernetes stuff that we're doing. Yeah. The CNCF is that but it would be nice to have some alternatives here so I'll have to check it out. Yeah, there are a couple and the community decided to use the CELIP as part of that. I know they're doing good with that and yeah, it's killed by Slack channels. It's some of the more recent things that I see developers with. Yeah. The Slack channels and CNCF and for Kubernetes and for OpenShift Commons are pretty active. We monitor to them as well but it's also, I'm always looking for a good new one so that has better archiving of threads and things but I suspect anything's got to be better than Slack for archiving conversations but yeah, so thank you very much Hugo for coming and I'm going to get Hugo to share his slide deck with me and I'm going to post this up in YouTube later today with a link to the slides. I am loving that you kicked off the Monday with so many Star Wars references. It just makes my week anything you missed was a baby Yoda reference so I don't know maybe that's what the Camelettes are lots of baby Yoda's out there. Yeah, they're just a bulb it's the new Canon let's see how it gets. It's a very interesting thing let's leave it to develop. There you go. All right, well Hugo thank you very much again we'll put this all together in a blog post on OpenShift.com or in Red Hat Developers.com very shortly and get it out there and circulate it and you can always reach Hugo on Twitter and hanging around in that Zulu channel I'm sure. So thank you again and thanks to our producer Chris Short for hanging in there with us today and making this happen so take care all. Thank you everyone.


Welcome folks, this is Tom O'Brien of TFNN. We got five days a week, we got seven hours a day, we go 24 hours a day on the internet at tfnn.com. Always remember folks, what if you think about, you bring about whatever you focus on grows. Hope everyone's having a great day, safe day. Let's make a great night folks. Don't take anything personally. Your truth is personal to you. Your own opinions and point of view reflect your own agreements and are personal to you. It's no one's truth, but your own. Not good wise, let's take a look at it out here. We have the Dow Industries trading up 725. Nasdaq's up 325, S&P's up 100. Gold, gold contract trading up $31.90. 17.34 an ounce. We have Silver up 52 cents, $21.11 an ounce. Light sweet crude up 283. Trading out at a price point 86.45, notes and bonds. You get the 10-year note, up nine ticks right now, trading at a price point of 113.15, the 30-year up 11 at 128.21. The 10-year folks is yielding 3.617 in Kingdala. Kingdala down a 1,554 ticks, trading 110, 187. The euro is at 99. The yen is out here at a price point of 144 and the British pound is at 114 to one US dollar. Our phone number is<PHONE_NUMBER>. Give us a call folks. I want to know what's going on in your world and the world of the S&P's. Let's take a look at them. What do you have? Well, first let's bring up, we'll bring up the E-minis first. So we bring up the E-minis. You've only got one retracement all day. It's been an upmarket in a big way. Bump, we take a look at this. What you're going to see however, is that when we came down, that's going to be a high volume low. So my take is coming into the close. We're going to go after this high volume low again, which is the 37.66, which is only 30 points down the S&P. Which is not a big deal on a volatile day. We take a look at this. Now that's the future. So if we go into the spy, what you're looking at in the spy, is that you've got a great day going. No doubt. $9.72. You're coming into the downdraft of the 21st. Now that's 106 million shares. So bottom line, we're not going to do 106 million shares. That's the real bottom line. The question's going to be, what do you do? And it's the NDX that actually has given us more information. The reason I'm saying that is this. See, we don't have a swing here. We have the lows of the downdraft. Now it has come into the lows of the downdraft. The real question is, if that's going to fail here, you'd have to really back off two or three points on the spy. We'll see where that shakes out. That being said, my take is that you're going to see that failure come in the queues. The queues are totally different, man. It's a different setup also. And what it is, is that the setup on the queues, see, is that we got over the high that was generated just last week. That high was 281.25. We made it to 282.85. We have 79 million shares there. Now we're at 50. So you could do 79 million. I will see if that shakes out. But if you close under that, that is saying it's a one-day wonder on your hands here. So if we don't close under it, it will basically go up to ICE. ICE is 285.62. And if I bring this back again for a second, you can see how this is set up. I think I'll do the futures first, so you can see the futures. The futures are right at a 0.38. Well, it went up to a 0.382. I'll do it this way. There we go. So if you take this, just a last leg down, I'll open this up for you. But you can see it's a beauty, man. Well, actually, with the 3807, look at this, the 3807 is the 0.618. It went to 3802. Now, and this is where you can tell that the futures and the NDX100 still are weaker. This has been like a classic example of markets and weakness inside markets. And you can see that on the NQs, 11702 is the number. And we only made 11,675. So this is going to be pretty cool watching this whole thing shake out. Gold. We went to the gold contract. We have with the gold contract, bottom line. It has price. It has volume. Inside the gold contract right now, we've done 193,000 contracts. Let's see what we're coming into here. OK, so that's interesting. We need more volume there, too. Well, we're down to 228. So I still want more volume there. We're going to close it. Well, we should close it over on price. The 1696 is the number. And we're way over that. We're over that by $35 right now. And Kingdoll. So if we go to Kingdoll and take a look at Kingdoll, it looks to me, Kingdoll, bottom line coming down hard and fast. You get two different things. As we broke topside, we broke topside at 110,132. We hit 110.055, 110.218. And the highs of one of the big signs of strength, which was generated out here when we rejected lower price on the 13th, is 110.011. So we went to 105. I suspect you're going to get a little sign of support here. This is a hard move down, though. There's no doubt about that. In the dollar, hard move down. Given the market some time to breathe, we'll see where the whole thing shakes out as we get into the close. If we take a look at the strength inside the NDX100, you have alumina is up 9%. You got Lucent up 8.3. You got ASML up 6.7. Only one's negative in the NDX100, Netflix and dollar store. Inside the Dow Industrial. Strength versus the weakness inside the Dow. We take a look at that. And I suspect, look at this. Coca-Cola's the only one that's negative. Putting strength into a Goldman, 89 positive points, Caterpillar 53, Microsoft 48, Boeing 39. So the bottom line is that how we close is bottom line will say that, OK, are you going to continue higher? Because if we look at the, I believe, what we're going to see is, let me see if it can have a contraction. Yesterday, we did 1.1, it's close. We're at 655. We can do 1.1. And on the Composite 4.3, we'll do an expansion of volume today. That's what it looks like right now. Dow, Dow Industrial's up 681. Nasdaq is up 310. S&P's up 96. They're right there, folks. Come right back.


Number one, what needs to happen going into tomorrow's session, we need to reclaim 275, right? If we can reclaim 275, I do believe there's a shot back at 278, and at 278, if you are a bull trader, you better hope they reclaim that 278 level. Welcome to Access to Trader, the number one community for those who are committed to taking control of their trading in order to achieve success, profitability, and longevity. Thank you for joining us. Here's Dan Shapiro to help you find your edge, master your process, and own your future. Hey, guys. Good evening, everybody. Welcome to another edition of TheAx is a Trader.com, a nightly wrap-up show. Hope everybody is doing well, right? We got three days left till Santa Claus comes. The question is, have you been naughty? Have you been nice? Are you getting Christmas presents? Or are you getting cold? And for the bulls and the bears, this is still to be determined. We'll get to that in a second. As always, guys, welcome aboard. For all you new folks, please like to continue to support the channel. And if you are new, please subscribe so you can get notified when we are uploaded. So other than that, hope everybody is having a great time to their great start to their festive season. Hopefully it spills over good fortune, good health into 2023. So let's talk about it. Number one, yesterday, my son had a game. There was no video last night. My son had a game like an hour, hour and 15 away. It's away. The game went a little longer than I got caught in traffic. By the time I got home, it was so late, I couldn't even put a sentence together. So I apologize. There was no video yesterday. But if you go back to pretty much not a Vendee yesterday, anyway, but if you go back to the weekend video, we talked about, you know, NASDAQ down, you know, six, seven sessions in a row, right? No matter how you slice it, the worst markets, the best markets, the market when it's strong doesn't go straight up, the market when it's weak, it doesn't go straight down. And eventually, if you watch the video over the weekend, we kind of said, look, Monday and Tuesday, Monday and Tuesday, we'll probably get a dead cab balance. They attempted the dead cab balance yesterday. They didn't quite make it.  So let's kind of review from the technical point of view of what recently happened, what happened today, and what I think is going to happen in the next couple of days. So let's talk about it, right? So we all know the importance of this 50 day moving average that we, you know, pretty much broke, dipped below and started building below this 50 day moving average of this 278 level. We covered that 278 level pretty much in nausea prior to that 278 area of concentration, right? So we had another four days down, tired sellers got, you know, just kind of got winded, right? It's the best way of saying it. Again, nothing goes straight down.  So when you look at the final tally today, you got all the major benchmarks pretty much up about give or take about 1.5%, you know, 1.5% on the positive side, which is fine, which is absolutely fine. Here's where we, you know, here's where we look at the market from a common sense point of view instead of from the emotional point of view. We all know just like any other, you know, any other, you know, any other entity, for example, when a stock breaks out, let's, let's, let's use this as an example, right? When a stock breaks out and breaks out above $50 a share, and it goes on a two, three day run, and it goes to 53 bucks, right? There's usually some profit taking and there's a good chance that there should be at least one retest, right? Retest where the stock has broken out. Again, this is not exclusive information to the PS60 theory. This is just bare bones, technical analysis and how any of you guys trade, you probably have realized that over the years, stocks break out, retest those levels of the breakout they hold and they go back again. Well, the same thing happens on the downside as well, right? So here is the breakdown here below 278. We went all the way down to 267, right? There's a high probability if we do get one more day of, you know, dead cat bounce and that's what it is, right? Until we get above the 278 area, all this is a dead cat bounce. And again, whatever you want to call it, potato, potato, it doesn't make a difference. It is what it is, right? So today, give a credit to the bulls, they traded, they reclaimed, and I mean the Qs, they reclaimed the five day moving average. If there is another day up tomorrow, right? The Qs have to get above 275, right? That's today's upper channel. If the Qs can start building above this 275 level today, then I do think there's a shot, right? There's a shot between today and Friday. We can retest back, right? To where this whole breakdown started, this 278 level. What I think is going to happen if that is the case, right? If we start rallying the next couple of days, if that is the case, I do believe the bears will defend that 278 initially. If you guys remember, well, that's usually what happens when you lose a major area, a major support, they're going to try to retest it and they're probably going to be unsuccessful the first time. If there is going to be a success and we're having this conversation at more meaningful prices, then that's going to need to kind of need to build a base below that 278 a little bit and then finally get through. I personally don't think it's going to happen very, very quickly. But again, hopefully I'm wrong and hopefully we're having this conversation a lot higher. But from the intermediate, short-term conversation, number one, what needs to happen going into tomorrow's session, we need to reclaim 275, right? If we can reclaim 275, I do believe there's a shot back at 278.  If you are the believer that this is strictly just a replacement, retracement off of technical damage that occurred below the 278 level, then if you are a bear, you're going to probably want to initiate a short position off that around that 278 area. So that's kind of both sides. It's not a biased statement. It's not something that I want or need to happen. Again, for me, it doesn't make a difference. I trade both sides of the market long, short, and doesn't make a difference. The trickiest part about a dead cat bounce, like we always talk about, it's dead. That's the whole point. It's dead. You could have a gap up on the dead cat bounce. That's exactly what we had today. And then you'll have stocks trying to go up another dollar or so, not named Apple, not named Meta. That was actually very strong. And speaking of Apple, you can see it, right? Here's kind of my point of view on Apple. You could turn around today and say, wow, Apple is strong. Apple's not strong. Apple had a dead cat bounce. The stock just went in the last five days from 146 to 132. How can you call a stock strong being back at 135? It did fine today, right? It did absolutely fine today. It reclaimed back the five-day moving average. Is it possible if Apple starts building above today's highs tomorrow, can it get back to this 140 level, 140 level when the stock broke down, the same case as the Qs? Absolutely. But again, let's kind of redefine, right? Let's kind of reclassify what the word strong is, okay? Stop going from 150 to 132 in a week and then going up $3, very, very tough to use the word strong. Let's find something else, constructive, productive, one day at a time, baby steps. These are all cool things to kind of use, but it's very, very tough to say, wow, Apple ripped today. Okay, right? Potato-potato. But any case, again, for it to rally at least one more day, it's going to need to confirm this whole channel here that it lost three days ago and start building back into this 40, 41 area. Again, the same case as the Qs, if the Qs broke down at 178 and you want to, you know, you want to initial, take an initial stab at the short side into that 178 push on the Qs, that's valid. If you want to take one more, assuming it gets there, of course, if you want to take a push into this 141 level where Apple broke down this 40, 41 level, that's valid as well. So the bulls, the bulls definitely got a little bit of work to do and if you go through charts, you'll see that on a lot of names, right? Again, the hardest days to trade are countertrend days. They're just the hardest because you already know that the trend in the overall market now, since we're below the 50-day moving average is down, because as we say all the time, just because we're below the 50-day moving average doesn't mean the market's going to go hell in a handbasket. Hell, you can just see it right here, right? Here's the breakdown of the 50-day.  You kind of get the point. So we're not going to go straight down. We're not going to go straight up and as long as the bulls keep on getting rejected back underneath the 50-day moving average, again, the trend continues to be to the downside, at least the value continues to be to the downside. What the bulls do not want to happen more than anything, right? Anything tomorrow is start losing today's lows, right? We don't want that, right? If you're a bull, we don't want that. So it needs to reclaim 275 to the upside for a measured potential back to the 50-day content point or rejection point, or if the bears start losing, if the bear stays start taking control of today's lows at 269, 70s level, then again, we already know what's going to happen next. It's pretty basic stuff. The good part about it is we're winding down the end of the year. I'm just basically in like scalp mode today. I just like did a couple of rejections. You know, they worked a little bit for a little bit. Ironically, if you guys remember, the biggest move of the day came from IQ.  This thing finally broke out. They were coming for short-term expiration for 50s, even $5 calls in January. This is actually ironically the biggest move of the day.   Again, stocks need structure, stocks need wind in at their back.  I'm not talking to you. We're not having a conversation. Well, I think Amazon's going to be a 220 in the next six to eight years. Okay, great. We're talking about tomorrow, right? We're talking about tomorrow and it doesn't make a difference what you think is going to happen tomorrow, where I think it's going to happen tomorrow. We're either going to literally take out the top of the range here and start confirming back today's channels and take a stab back at the 2.78 level or we're going to lose today's lows and start going back to the previous lows. The one stock, again, the one stock that's just not rallying, it just continues to just sit there, man. You can just see, man, it feels like forced liquidation. I feel like we're having the same conversation literally every single day. It cannot get above water. Again, it tried today a couple of times. The NASDAQ at one point today was over about 200 points. It tried. It's several times. It tried. Again, it's just like a drowning victim. It's like, they push it right back down. And that's exactly what's happening to Tesla. We did see some 130 puts coming in for the end of the week. So Tesla's going to need some work to do. Just like Apple, is there a chance this thing dead cow bounces? Yeah, there's a range that I'm watching to the upside that I'm prepared for just like Apple. Because Apple went down like a billion days in a row and then finally decided that selling got a little bit numb. It could happen to Tesla as well. So I'm definitely keeping an eye on potential bounce in the next couple of days on Tesla. But again, I've been saying that pretty much, hey, be careful since like here, right? Since here. This was what about five, six days ago. So it just continues to go lower. So that's it, guys. That's pretty much it. We're winding down 2022. A lot of good things happen in 2022. We matured. We got better or as like to say, you know, there's no such thing as a great trader. Okay, so stop trying to inspire yourself to be a great trader. Be a great human being, but more important, right? More important, be nice, right? Be nice. It doesn't cost you to be nice. It's free. And I'm telling you, life tastes and smells and feels a lot better when people are actually on your side and not fighting for your throat. Guys, God bless, stay blessed, and I will see you guys tomorrow. Take care.


We continue with chapter 22. The branching of the road. When you come to the place where the branch in the road is quite apparent, you cannot go ahead. You must go either one way or the other.  The whole purpose of coming this far was to decide which branch you will take now. The way you came no longer matters. It can no longer serve. No one who reaches this far can make the wrong decision, although he can delay. And there is no part of the journey that seems more hopeless and futile than standing where the road branches and not deciding on which way to go. It is but the first few steps along the right way that seem hard. For you have chosen, although you may still think you can go back and make the other choice. This is not so. A choice made with the power of heaven to uphold it cannot be undone. Your way is decided. There will be nothing you will not be told if you acknowledge this. And so you and your brothers stand here in this holy place before the veil of sin that hangs between you and the face of Christ. Let it be lifted. Raise it together, for it is but a veil that stands between you. Either you alone will either see it as a solid block nor realize how thin the drapery that separates you now. Yet it is almost over in your awareness and peace has reached you even here before the veil. Think what will happen after the love of Christ will light your faces and shine from them into a darkened world that needs the light. And from this holy place you will return with you, not leaving yet nor you. You will become His messengers returning Him unto Himself. Think of the loveliness that you will see who walk with Him. And think how beautiful each of you look to the other. How happy you will be to be together after such a long and lonely journey where you walked alone. The gates of heaven open now for you. Will you now open to the sorrowful and none who looks upon the Christ in you but will rejoice. How beautiful the sight you saw beyond the veil which you will bring to light the tired eyes of those as weary now as once you were. How thankful will they be to see you come among them offering Christ forgiveness to dispel their faith and sin. Every mistake you make, your brother will gently have corrected for you. For in His sight your loveliness is His salvation which He would protect from harm. And each will be the other's strong protector from everything that seems to rise between you both. So shall you walk the world with me whose message has not yet been given everyone. For you are here to let it be received. God's offer still is open yet it waits acceptance. From you who have accepted it is it received. Into your joined hands is it safely given for you who share it have become its willing guardian and protector. To all who share the love of God the grace is given to the givers of what they have received. And so they learn that it is theirs forever. All barriers disappear before their coming as every obstacle was finally surmounted that seemed to rise and block their way before. This veil you lift together opens the way to truth to more than you. Those who would let illusions be lifted from their minds are this world's saviors walking the world with their redeemer and carrying his message of hope and freedom and release from suffering to everyone who needs a miracle to save him. How easy it is to offer this miracle to everyone. No one who has received it for himself could find it difficult. For by receiving it he learned it was not given him alone such as the function of a holy relationship to receive together and give as you received. Standing before the veil it still seems difficult. But hold out your joined hands and touch this heavy seeming block and you will learn how easily your finger slipped through its nothingness. It is no solid wall. And only an illusion stands between you and the holy self you share together. And from the workbook, lesson 177 God is but love and therefore so am I. There is no death. The son of God is free. God is but love and therefore so am I. Now are we one with him who is our source. God is but love and therefore so am I. Amen.


Hello, welcome to episode 10. Welcome back to the Happy Hearts. It's Tightwad Dad podcast. I'm Joe. I'm Neil. Thanks for clicking on this. And it's very special. We've got into Double Figures. Episode 10. I never thought we'd get to episode 10. This is where I find out that I'm recorded. You had an idea for something we could... Yeah, we're gonna stop for a week and we're gonna let you decide in the comments if you... I'm gonna say that you decide what you would want us to talk about. So do you have any questions? And is that it? Is that all we're gonna say in this episode? No, we're gonna have to do more because that was only about a minute. Let's talk about the latest games. What are the latest games? The consoles we've got are really out of date. PlayStation 3, Xbox, DS Lite, DSi XL, PlayStation 1, the brand that gave us. Oh yeah. But we've got like Minecraft. That's still a hit.  I had just the right amount. I had to beat... I was just lucky. I had just the right amount. It's true. So that's our tip, isn't it? To use old consoles to save money. Yeah, because if you have old consoles, look it up. Look up how much Minecraft is on PS4 or Xbox and it would be quite a lot. Unless you have a PlayStation 3 or don't you be 15 pounds? So what consoles do you use? That's what we're gonna ask. Yeah, in the comments. Leave us a comment. If you've got any console money-saving tips, because we think buying games for 50p a disc is pretty good, but if you've got any better ideas... No, a pound. I think we get a pound. That's the cheapest we've got. One pound. We have 150p. If you've got this far into the video, thanks for watching and give us a thumbs up. If you just let us know that somebody made it this far. Like I said at the start, we want you to put down in the comments what you would like us to talk about. Yeah, we're going to read down a comment this could go horribly wrong. We're going to read down some comments. I'm going to read them first. So thanks for watching and we'll see you on the next Tightwad Dad podcast. Bye. Can you please help my daddy get 1000 subscribers? Just click on his face. Thanks. Bye.


An international tribunal is launched against Russia. Kremlin refuses to recognize International Criminal Court. The International Criminal Court is planning to open two war crimes cases tied to the Russian invasion of Ukraine and issue arrest warrants against several people according to the New York Times, citing current and former officials with knowledge of the decision who were not authorized to speak publicly. It is said the cases would represent the first international charges to be brought since the start of Russia's war and come after months of work by special International Criminal Court investigation teams. The first case the International Criminal Court is set to open is about Russia's alleged abduction of Ukrainian children. The second is on Russia's unrelentingly targeting civilian infrastructure, including water supplies and gas tanks. Moscow does not recognize the jurisdiction of the International Criminal Court, the Kremlin says, after reports suggested the court was seeking arrest warrants for Russians connected to the war. Russia does not recognize the International Criminal Court, ICC, in The Hague. Kremlin spokesman Dmitry Peskov said, we don't recognize this court and we don't recognize the court's jurisdiction. This is how we feel about it. He said when asked how the Kremlin felt about reports of the court, potentially hearing two cases against Russia over the situation in Ukraine. According to the Russian presidential spokesman, Moscow keeps pointing out that over the years neither international judicial institutions, even those that we don't recognize, nor other members of the international community, have bothered to pay attention to the destruction of civilian infrastructure and civilian killings committed by Ukrainian nationalists in Donbas.


Hard to believe three months ago, I never thought I'd be standing up here delivering the executive program budget. So thank you mayor, thank you council, thank you department heads. So you should have already received our executive program budget in brief and you should have received the the letter from myself to to the members of the council and mayor of Anderstein. So there should be plenty of information for you guys to review and if you have questions please let us know. So moving forward our city's mission statement as you guys know it well has not changed and our and our vision statement has also not changed. Our city's values though I'd really like to review those with everybody. Accountability, fiscal responsibility, innovation, respect, service and teamwork. These are six values that I believe that we need to focus stronger on in the future and it really I'd like to see us add communication also. These are things that really make us what we are today and we use them daily. Moving to the next one. State and city restraints. As you can see this we have our state laws, our tax levy, our budget parameters, our expenditure restraint program, tax rate CPI or lower, minimum fund balance and our target of 25 percent which we've continuously performed better. So I just want to be reminding everybody about our limitations. It's a balancing act which I found very interesting obviously in the last couple of months. We're looking to a better plan for our TID closures. We're looking to map out a strategic plan for the future of each TID closure so that we can look at growth and projects in the future. Obviously this limits what we can can raise tax levies also with our restraints. Next, I'm sorry go back one. Okay perfect. No you're good. Tax levy limits I just wanted to touch on that. The state law restricts the percentage of increase of our city's tax levy based on several areas. Previous tax levy year, our net new construction which technically we had a 2.89 percent or an 84 million 255,500 for 2020. Our TID closures as you all know TID 11 closed and that gave us 99,148 or 45 sorry and then TID subtractions. Next. So when we talk about our expenditure restraint program obviously that allows us to increase the general fund expenditures by 60 percent of the percent increase of the city's net new construction and the allowable CPI. We also have the 2021 the city is estimating a 3.1 allowed increase in expenditures. Please understand that our constraint growth and development is better than a spike so what I mean by that is year over year if we were to have continuously have development within the city would actually affect us better on our on our taxes than a spike like we had last year. So if you remember back in 2019 we had a little bit of a problem with with our some some of our development not carrying over by the IRS so we kind of penalized because this last year we actually had a large growth. Next. Equalized tax rate and CPI or lower estimated consumer price index is 1.4 and 2021 executive budget recommends an equalized tax rate of negative 7.98. Next. So when we look at our assess tax rate our 2020 is estimated due to timing 2021 we had a we're looking to have a 15 cent or a 1.49 and you can find that in your budget fax sheet in 2020 just to review we had a 13 cent or a 1.33 percent and in 2019 we actually had a 19 cent per thousand or a 1.194 percent. Next. Our fund balance this is quite unique the city's goal is to maintain a fund balance 25% of the year of the next year's budgeted general fund expenditures that's our target and we do a very very good job of that. We're also fiscally responsible and we use that as our safety net consistent with our Moody's credit services recommendations on the calls that I've been on this has been a very good thing for us to help us maintain our double a 2. Our 2021 executive budget fund balance is approximately 41% so remember our goal is 25% we're at 41% last year we were at 39% and if you remember we actually I believe it was back in 2018 we actually used $5 million to help the remodel out of our fund balance so again we've already replaced it and we're already at 41% for 2021. We have to be cautious on spending and expenditures due to COVID but the additional we are looking to have some additional training and munis upgrades to get us off the AS 400 so a lot of these are going to be looking at to come out of the our fund balance in the future. Next so as you can see in this graph our uncommitted fund balance you can see how how we've been increasing our executive our target we shoot to be is at 9,995,259 that's the 41% and if you look at where we are we're at the 16,280,752 our actual fund balance next so on here you can see our 2020 budget facts so if you guys can't sleep tonight or the game is not looking so good you can look this over oh we'll be fine next this is our favorite page property tax levy just because it's so colorful you can see that it's consistently split we've had an increase in our property tax levy by 50,667 we increased that for the meet public library levy portion that'll give them a 2% for their wages we had a decrease of 40,716 dollars in the levy for transit so we reduced what we were our contribution there our debt service we did increase 299,043 dollars and our capital improvements we decreased by 80,025 dollars to 812,000 so by doing that it allowed us to have these increases in the meet public library and our debt service next our 2021 personal personnel changes our first one was on FTE program coordinator senior services that is actually net neutral to the budget the friends group for the senior center is actually funding that through the city the second one is an FTE page supervisor that was requested by the meet public library that will have to be reviewed by the public library board of trustees for final approval we were not able to provide them with additional funding for that we're trying to obviously maintain the budget and keep it net neutral the third one is the transfer of one FTE in public works streets and sanitation and that was actually planned in the 2020 budget and it's just kind of happening now next in this one you can see our general fund revenues you can see how it all how breaks out with all of the different departments next the details are here for the general fund revenues next the 2021 general fund expenditures again this is basically the breakdown from all from you know public works public safety a general government all of our transfers we're very consistent we've had we have a flat budget so the team did a great job looking at under every rock to be able to see what we what do we need and what do we have to still maintain next here are the details that you can see from 2020 to 2021 next special revenue special revenue funds expenditure this is basically changes in our in these areas are minimal as you can see just looking through it you can see the general government the public safety public works very minimal overall next special revenue funds notables basically this is where we have the urban forestry management plan a contribution of 110,000 neighborhood revitalization this is the second year of tit 11 increment the south 10th street reconstruction 88 infrastructure this is also from which is 72,000 this is also coming from the tit 11 increment the stonebrook crossing subdivision grading this is being brought to us through the park impact fees so that'll be 15 $50,000 out of there and then the increase in tax levy contribution for the meet public library that is the the funds that were provided for the of 50,667 that that'll be used by the meet public library for wage increases for the year next oh sorry special revenue fund notables this is really where everybody kind of asks how how are we doing so tourism room tax revenue uh due to pandemic has a decrease of negative 546,000 estimated the harbour center marina we're looking at estimated 225,000 negative and we're continuing to transfer we are moving things uh as far as receipts in that we're looking at 26,000 is anticipated and we're also looking at the marina rentable storage units of 25,000 so they're one of the things that I did want to bring up is that there is a lot of use in the area due to the local businesses so when we talk about the hotels and things like that they're actually doing better than estimated and a lot of that I can tell you is from my past life because there's there are businesses in the local area like in shabuigan falls that actually had to bring in like 60 plus employees to temporarily live in shabuigan in shabuigan falls because of the pandemic so that obviously brought in quite a bit of revenue that's not a norm next so the debt service fund uh this is quite interesting so basically in the 2020 and 2021 is deceiving so part of this that we want you guys to remember is when we did the 18 to 19 and 19 into 20 if you remember we were moving a lot of dollars in the in the uh general obligation because of the the borrowing for south point and for the for the remodel of of uh city hall the same thing is going to happen basically in 2021 and that's why you see an uptick of 36.01 percent the reason that's actually showing is the nans that we did for for our past obligation did not show up in our debt so now they're going to become geodebt which will actually show up so now we're borrowing this in 2020 but we're actually expensing it or spending it in 2021 so this will the reason we're doing this is we wanted to get away from the the nans we needed to extend it into the geodebt but i also wanted to remind you that the the actual interest rates are much better much more pleasant and that's another reason why we're doing it next so the debt service fund notables um as you can see property tax levy increases of two hundred ninety nine thousand forty three dollars we stole our maintaining our moody's uh double a two and it's been very favorable for us uh late 2020 refunding of the ten and a half million nan so the timing difference in the expenditure offset as i explained before the 2021 plan geodebt issue of four million two hundred fifty four thousand thirty eight dollars to fund the approved uh 2021 capital improvements fund and that was approved in june of 2021 2020 sorry next capital projects just to kind of review those real quick um so we have the traffic flow improvement of 14th and taylor and eerie and kohler avenue kohler memorial sorry uh that's a million nine hundred forty three 800 we have the geely avenue um so north third third street to calument drive that's a million dollars the four police squad and and the computer upgrades of 243 000 we have this boots and sports complex of 190 000 we have the sidewalk improvements um city wide which is our typical 100 000 we have the led uh street street lighting upgrade uh city wide of 60 000 the one thing i did want to bring to the council is that the senior center is not included in this in this funding we're looking to come back to you and ask to use fund balance we'll also be applying for a HUD 108 loan so there'll be some information coming to you guys in the future next tid related capital projects uh tid 19 north commerce street in construction that's two and a half million tid 17 south pier street expansion is a million tid 17 indiana avenue trail project phase one is uh 875 000 tid 17 indiana avenue streetscape improvements 750 000 and then tid 20 our newest tid is south business drive georgia avenue intersection improvements of 700 000 and that's the oscar project just to remind you next proprietary funds expenditures as you can see above they includes uh water utility for projects and increases next so on this page basically it outlines the water utility um so you have the south lake shore sewer interceptor of upwards of 10 million dollars dollars sewer line reconstruction relining of a million dollars and that's a that's a project that is continuously happening throughout the city aeration uh blower number two replacement that's 350 000 and again that's an ongoing plant maintenance upgrade so you're going to see increased billing costs uh to the water utility of 125 000 also due to that is the chemical treatment cost of 37 430 and the estimated increase will be a 4 percent which is approved so the water utility board of water commissioners approves their increase and the wastewater increases are approved by the public state commissioners and they approve it every one to two years by the dnr so proprietary funds notables employee health insurance premiums increase five percent employee hsa contribution reinstated 375 200 transit maximizing cares act funding so transit uh facility maintenance upgrades is 200 000 and then paratransit vehicles is 260 000 one of the things i did want to outline and talk a little bit about is the it six percent and the motor vehicle two and a half percent maintenance fee increase um continuation this is a this is a process that the city's been undertaking the last few years so we're charging each department so if it's it related they get charged six percent and then if it's a vehicle related then they they get hit with a two and a half percent maintenance fee this is basically to allow the city to not have to borrow so much so by internally charging it to each department then we're able to build a fund so that we're able to replace our fleet on a strategic plan so this is a really good way to actually manage and not have to borrow for funds in the future so it's to help us support and be self-sufficient in the future next so bringing all good things to an end and trying to keep you guys awake our budget information as you can see is here at the city hall meet public library and it's also on our website and again i just want to have a shout out to the city staff and Carrie for everybody that's had to work on this and the countless hours especially in the finance department with with marty and his team budget time is very difficult we're trying to find ways to streamline it but and i think we will get there year over year we're making strides to make sure that the information is much easier to to get and that it's obviously accurate and efficient for us to get this information to you guys so that that's my presentation thank you


Alright, do you need to apply eyeshadow every single time that you do your makeup, or can you skip it and still get a really polished, pretty look? We're going to do this look today on camera, and you can decide for yourself whether or not I need eyeshadow anyway. So for this tutorial, I wanted it to be so much about pretty skin. So obviously I'm going to start out with a color corrector and those places are under my eyes. I have a couple blemishes right now from breakouts with the heat, and then I have a couple of age spots that are pretty darn bad. And of course I forgot primer before I did my corrector. I'm going to do it anyway. This is the Flower Beauty. This is the Whip Supernova Celestial. So I just put a bit of this on. It comes out a lot because basically it is a mousse type product. It feels really good on the skin, and it's really beautiful because it has that purple brightening effect to it. I like it a lot because it feels very hydrating. It feels very, very light, which is nice in the summertime. You can see how that's kind of making my skin a little bit glowy, so I really like that. I also wanted to show you a brightening powder. This is the point when I go ahead and I put my powder on during my foundation routine. Again, if you haven't seen that, I'll link that video below. It is a different order than probably what you're used to. If you haven't seen me do this, this can make powder. This is a purple lavender powder, which is so pretty, and I love it, and it's very inexpensive. So if you're in another country and you can find it, go ahead and try and grab it. I did find it on YesStyle. It is just the refill, which you can put in a Z-Palette if you want to. But this is the one that I'm going to use on part of my face. It is really, really pretty, and I like it a lot for brightening. I just think it does the trick so well. I wanted for exactly what I wanted to, which is kind of setting down my primer, my color corrector. Now, if you can't get your hands on that and you're okay with spending just a little bit more, because honestly, this one is from Fenty. This is the mini size, and this is her lavender powder, which I find is really, really close to the same thing. It might be a little bit lighter in the shade than it can make, but it is really a fine powder. I have that one, too, in the mini, costs like $18. Now, for my foundation today, I'm using the Good Apple Balm Foundation. I really like this. I think that Angie from Hot & Flash, you did a review on it. She liked it. I have two colors. This one is Light 18, and this one is Medium 48, I think. I'll make sure I list those down below. All my makeup, I always do that. The reason that I have these two is because one is a little bit too light, one is a little bit too dark. They're great undertones, though. So basically, I just kind of just dot into each of them. That's all I do to begin with. And then I'm going to just buff these in. This is such a beautiful foundation, and I love the way it sits on my mature skin. I also love this foundation for summer because it sets down to a pretty powder look almost. It's so beautiful. And the coverage, the wear time doesn't settle into my fine lines and wrinkles. I think you use a ton less than you do if you're using liquid, and it's so perfecting. And then I'm going to dip into the lighter one, and I'm going to do my under eyes. And that is another video that I recently have out where I do not use concealer at this point. I might go back to some if I can find some that work really well, but between my corrector and my foundation, I've just found that this works so well and no concealer needed, which means for me, one less thing that I have to put under my eyes and boy, is it working so good for me. I love this technique. I'll make sure I link that video if you haven't seen it in this tutorial since I'm not doing any sort of eyeshadow. I'm going to use the P. Louise eyeshadow base, and that is only so that I can lighten up my eyelids, excuse me, because they are very, very dark. I find that that darkness can be a little bit distracting, especially when you're trying to do a bright look and you have no extra shadow on. I had a couple of you ask me about the new Elf Putty bronzers. I have tried these like, I think, two or three times. They're not as good as the blushes, I don't think. It's a little bit lighter in color. I'm using tan lines, which is kind of a medium color, and I'm using Beach Please, which is really dark, and these are okay. They're very, very balmy, so it's kind of got a lot of a slip to it, and I kind of went to the darker one because I wasn't getting enough color out of the lighter one, but it isn't the lightest. It's actually the medium one. I got sent these by Elf, by the way. They sent me this beautiful care package, which I was just overjoyed about that I even got noticed by Elf. How fun is that? Anyway, I kind of am just dipping down into both of these. I have a little bit of a hard time with my regular brush, which is this big Kabuki fan brush, which I'll link for you guys. I can't seem to get enough on this brush, so I might have to just switch over to a different brush. I basically use this to go into contour and then just sculpting the jawline down the chin and way in the forehead where I have such a high, high forehead. Everybody says, oh, you don't have a forehead. You have a five-head because that means you can put five fingers in between your eyebrows and your hairline. So yeah, I have a five-head. This blends out gorgeous, and as you can see, it's doing a really good job of giving me that pretty contour. There is the dark one and there's the medium one. I like them. I like them a lot. I think they're really good. I do feel like you have to kind of work with them to build them up, which is okay too, because then you won't get streaky looking or patchy or muddy looking. And yeah, I kind of like that about them as well. This is a highlight that I haven't talked about very much on my channel either. This is Skin Lights from Revlon. I love the embossing that they did on this. Hopefully you guys are going to be able to see that. It's really pretty. This one is in 201 Daybreak Glimmer. I tried, I think, when I bought this because I bought it quite a while ago. I tried to get the lightest one they had.  I find that this one isn't quite the beaming highlight that you get from so many. And I really like that a lot about it. I'm also going to take it. And since I'm not wearing any sort of eyeshadow on my eyes, I'm just going to brighten up my inner corner. And that is all of the eyeshadow that I'm going to put on. I don't want it to look dull at all. That's why I put the base on there. But that part, just that little bit of brightening, is going to keep your eyes looking sparkly and bright all day long. The other thing that I do, if I'm going to do this all the time, is I make sure that I go into the waterline with something bright, like this eyeliner that is the cream color. This one is from Flower Beauty. And I think it is called Brightening Pencil. I'm going to do my eyebrows now.  But the one that I chose today to use, I haven't used it in a long time. I tried really hard to shop my stash and do as much as possible that I haven't used for a while. This is the Wet and Wild Retractable Brow Pencil. Let me see if I can find a color for you guys. It says Ash Brown on it. I always try to look for an Ash Brown color. This is kind of, you're not going to be able to see that, but it's a triangle shape on that tip. So it gives a little bit more control in how you do your brows. So I'm going to, I'll start these on camera a little bit, but I probably will go off camera to do the majority of them just because it's time consuming. And my hands go a little bit berserk when I do these. I feel like eyebrows are so important no matter what look you're doing. Take a look at the difference in the two eyes. It not only frames your eyes, but it gives your face a lot of dimension, kind of.  I think eyebrows are so essential. I do really like this eyebrow pencil because for me, it's pretty darn easy to use. I don't have to spend a ton of time using it because it is a little bit fatter. I love a microbrow pencil. I think they're fantastic for doing precision work, but when you're in a hurry and you just want to get an eyebrow done, this is a great way to just get through it quickly because it puts them down really fast. And then to set I'm going to use the NYX Brow Glue. I think I talked about this in my favorites at the Drugstore, not favorites. Beauty Brand Superstars at the drugstore. And I love this. It sets your eyebrows and your eyebrows are not going to move all day because I have a few random brows that through the day they'll just trail down and then they'll poke straight down. And I'll look in the mirror a little bit later and go, oh, well, that's a nice look. It's just looking straight down at me. But and it's right here. So this brow gel will just glue them in place, just like the name says. You're gonna have those suckers stuck all day long and they'll look great at the end of the day too. Let's do a little pretty cream blush. This is the Pixie on the Glow blush and I can't read that fine print. So this says Tinted Moisture Stick and this one is in Floor or Flower, I guess it is. Use on your cheeks or your lips. I don't use this on my lips. But it's a great color. I will show it to you. They sent me this as well. I'm kind of trying out stuff that I got sent and kind of enjoying myself with that a little bit. I'm picking that up on a stipple brush because that does work quite a bit better for me and just gonna stipple in that blush. Now I'm gonna put a little bit more blush on than I normally would. I'm gonna go in with a powder after this because I wanna show you another powder blush I got. But this blush right here, it does give just a very soft wash of color. This is from Moira and this is their Signature Ombre Blush and this one is in, I hate it when I can't see even if the print's bigger. This one's in Bella Pink 03. This has such a beautiful embossed look to it. It's an ombre blush and it's bright and pretty and they have a ton of colors. I got one that I got for a fall and then I got this one and I just, I love them both. I think they're so pretty. They're beautiful powders and they really hug the cheeks. I really like them. And just fun packaging with the embossing just makes you feel special when you're using your blush. And also, since I am not going to be putting any eyeshadow on, my lips can be brighter and bolder and prettier and I'm gonna use For Lip Products. Yeah, that's excessive, but I get to because it's fun. And so I'm gonna start out with this Kokey Liner in plum. I believe it's in plum and plum purple. There it is. So I'm gonna outline my lips. If you've never tried Kokey lip liners before, they're one of my favorite formula. They're extremely creamy. It's a gel-like formula and they really blend well. They're really, really pretty. I'm using Dahlia Desire from the Petal Pelt Lipsticks from Flower Beauty. So pretty. I don't normally wear this bridal lip, but I can go for it when I'm not doing eyes. Then I'm gonna take my Urban Decay Native. This is a very, almost a nude color, not quite a nude color. It's kind of a pinky nude color, I guess. So I'm gonna put this in the middle to give an ombre effect. And then I'm going to take my Maybelline Lifter Gloss and I'll make sure this is linked below. I don't know what color this is. Right in the middle. Give it juicy pout there. Love that. Taking my super fluffy brush and I am gonna set my under eyes because of the weather and how hot it is. I'm gonna try that purple. I haven't tried this on my under eyes because I'm kind of in love with the Becca. But if it's a brightening one, I kind of want that. But you know, it's kind of weird because when you talk about purple, you don't think about dark circles under your eyes. But I think this might be really good because it's just a little bit and it has those light reflecting properties. And I'm just gonna set down whatever's left on my brush and I'm just gonna set down the rest of my makeup. If you're not gonna wear any sort of eyeshadow, take your bronzer brush and just go across these eyelids completely. And whatever's on there is gonna kind of give your eyes just a pretty shadow look anyway.  Gonna give each eyelash here a little bit of a curl. And I am trying out a new mascara from MAC. I saw this when I was in Ulta and I don't normally buy high-end mascaras because I think the other ones are just as good, but I thought that maybe you guys might be interested in this. This isn't gonna be a complete wear test, but I will make sure that down in the description box. I give you my thoughts about how it wore during the day. This one is called Magic Extension 5mm Fiber Mascara, whatever that means. Ditch your falsies. 90% said lashes achieve over the top exaggerated volume. 94% said lashes looked fuller and lifted. So we will find out as I go ahead and do this. I am going to line the top lashes with my ELF liner. And I work one eye at a time. If you haven't seen that before, I'll make sure that I list my mascara routine so you can see that as well. And also the serum that I use, which I fell in love with years and years ago. Usually when I'm wearing my eyeshadow, I won't bring my liner all the way down on my eye. I'll leave some of this out because it makes it look just a little bit to pull down on my mature eyes. I am going to fill it in just a tiny bit. I'm going to do really light flicks in there. And what I'm gonna do is I'm going to make it come up just a little bit. And so I'm kind of almost making a fake eye shape right there. And then your mascara will help to fill everything in and make it look more voluminous. So the mascara, it's got just a regular wand and it looks like it's just kind of the evergreen tree or the Christmas tree that goes up and doesn't look like anything much different than what I normally use. I don't see any little fibers in there yet. Maybe they will come as I work with it. I don't know. I am liking how it's building up for me. Hopefully that mirror wasn't in your way the whole thing entire time. Okay, that's one coat. What do I think? I don't see any fibers. I don't know what they're talking about about that. Maybe I just haven't gotten into the tube enough yet. But I don't see any fibers, but I do like that this is not a clumpy formula. There's not a ton on the brush when you pull it out. That to me is so important because you can look like your eyelashes are just getting super clumped together. And even though my eyelashes are a little bit longer, I don't have a lot of them. So it's nice to get each individual lash just a little bit defined. So I do like that. This is my second coat. I am working, there's a fan on above me. So I'm working like that a little bit. So I don't know if you can see that or not, but I do like it. Sorry about the barking in the background. When you're working with your mascara, I know that so many makeup artists and people on YouTube say, put your mascara down in there at the base and wiggle it. I'm a person that works more with the tip of my wand because I don't have a lot of control over my hands as most of you know. And so using the tip to go down in there instead of the whole entire wand just suits me so good because I don't have to worry about am I gonna get mascara on where I don't want it? Am I gonna smudge? That kind of thing. Okay, so I've done one coat on this side now. I'm gonna have to go back and do the other coat, but great length on them, great separation. I loved the wand on it. It coated everything. It's really giving me a lot of length. I really do like it. I will not, because this does not say that it's waterproof, I will not put this on my bottom lashes. I'm gonna use a waterproof on my bottom lashes. I'm using the Doll 10 from NYX. This is the waterproof formula. And I'm gonna put that on my bottom lashes and I'm probably not going to do much more than the outside right here. All right, lastly, I'm gonna go in with my Bella Jade setting spray. This does exactly what the Urban Decay All Nighter does, but it does it without alcohol, which I think is fabulous. I put this on a brush and then I'm going to set my makeup because of these hot, hot days. The nice thing about this is it's green tea and I love that it doesn't contain any alcohol. I think it's fabulous. And because it's so warm, this is really going to help me not have any break apart under my eyes or in my tea zone right here by my nose and my chin. That is the finished look. What do you guys think? Do you think we need eyeshadow every time we do our makeup in order to get a glam look? I like this so much. I love this look. I've been doing this a lot because my husband and I, we've been moving, we've been on the go. And I kind of have been having fun not worrying about eyeshadow, just putting on the other makeup. And when I do that, it seems like my makeup takes like probably 15 to 20 minutes less because of all the blending that you do on your eyeshadow. So let me know in the comment section if you're somebody that likes to skip eyeshadow quite often and let me know what you think of this look. I would really appreciate it. I love you so very much and I'll catch you in my next video. Bye, my friends.