So, hello everyone, it's good to see you all here and I'm very excited to be here. So, as Bill said, I'm going to present today a slightly different topic. It's actually out of comfort zone for ABPF. Small introduction by myself. I'm Val from Tel Aviv, Israel. Staff engineer at Datadog. Before that, I've been a CTO and a co-founder of my own startup called Secret. And before that, I was doing some security research, so when you think about low level, I'm gonna begin to zest about it. At Datadog, I'm working on a USM product which stands for Universal Service Monitoring. And USM provides visibility into your service health metrics universally across your entire stack. But this talk is not about the product, but more about the underlying technology, ABPF. And I will try to show you in the next 25 minutes some blind spots of ABPF. And so, unfortunately, I won't be able to delve into all details of every subject of the presentation because each one of them can be a separate presentation on its own, but instead I'll try to show you a full picture and at the end show the solution that I ended up implementing to solve the problem of capturing encrypted TLS traffic of Java applications. And please don't throw rotten tomatoes at me for exposing the blind spots of ABPF. So let's begin from a 30,000 foot view and talk a bit very, very briefly about the general scope of cloud application monitoring. The goal here is to track performance health and availability of the applications running in the cloud environments. And one popular approach which is widely adopted called RedMethod was invented by Tom Wilkie while working at Google. So Red is abbreviation which stands for R for requests, R for errors and D for duration. So basically we are measuring the number of requests that your service is handling. The portion of those requests that are errors allows you to know how your service is functioning and whether it's within your SLO. And then finally the duration of time it takes for each request to be handled by your service gives you an insight in the overall user experience of your application. So here we have a short diagram taken from a data platform that illustrates the red metrics. So now let's begin gradually zooming in and to understand the actual problem before we are talking about any solutions. So this time we will talk a bit about ABPF positioning and cloud application monitoring. And heads up I'm not going to give any basic introduction about ABPF, I'm assuming the audience here is familiar with it. So ABPF has rapidly become a cornerstone in the ecosystem of cloud application monitoring products and it's marked by its versatility, minimal invasiveness and negligible performance impact. So this positions ABPF as a comprehensive solution for modern cloud application monitoring offering a unified approach for diverse monitoring needs deployment that seamlessly integrates without disrupting existing operations what I call zero touch and only marginal effect on the application performance ensuring efficiency. At DataDoc we are utilizing ABPF in multiple products. One of them is USM that I mentioned before. That's the one that I'm working on this poll. So now we are narrowing the scope even further and let's have a very crash course about Java and JVM. So Java being a high level language known as write once run anywhere, Vora. That allows for a developer to code without worrying about any specific operating system. The magic happens because of the Java code is being compiled into intermediate bytecode which is a universal format and then the Java virtual machine which is the JVM which presents on most system translates this bytecode into the native code that is being executed in your environment. JVM offers a few key features. One of them is just in time compilation to speed up and optimize the performance of the application. Finally, JVM also performs automatic memory management which is also known as garbage collection to free up and use memory making development smoother and prone to nasty memory corruption bugs. So let's focus for a second on a few important aspects that we will see in the following slides that will be crucial and impact our straightforward approach with the VPF to handle Java applications. The highlighted properties of JVM will become a major blocker for the straightforward solution, as I said. So first of all is the optimization mechanism used by JIT and the fact that the final native code is dynamically created and modified during the lifetime of the application. And to add on top of that, there is also a built in memory management of JVM that controls the memory layer target application, which adds a dynamic property to it. Okay, now we have enough background and we can start assembling the pieces of the puzzle to understand that the problem exists. So let's start with a very simpler use case than the problem we will be talking soon. Let's start with the plain traffic coming from a Java application. And this is the area where VPF is actually excels because we can utilize K-probs that are agnostic to the target application programming language. And we are hooking the traffic from the kernel side and we are able to capture those payloads. Small disclaimer, in the USM we are using socket filters, but for the sake of this presentation, it doesn't really matter whether K-probs or socket filters. Actually in the reality, this approach works pretty well in customer environments because a lot of times the TLS of loading is happening at the load balancer on the gateway level and the inter cluster communication between the microservices is actually plain traffic. So now let's look on a slightly different use case. Here we are talking about TLS communication but from a Python application. So the inclusion of Python is not by mistake. It's actually to emphasize the real problem of Java and the uniqueness of this use case. So let's start, yeah, there are a lot of arrows so I'll try to break down this diagram. Let's start with the previous approach. If you are trying to use K-probs, those will not work because the TLS traffic is already encrypted on the kernel side. Fortunately for us, Python is using a native library, OpenSSL to encrypt and decrypt the traffic. And the EBPF deals with it relatively easy using the Uprobs mechanism, which basically user mode hooks on exported symbols. I mentioned relatively because it's also a bit devious from the approach one solution to rule them all since we need to support each one of those user mode libraries independently. For example, OpenSSL, GNU TLS, BoringSSL and et cetera, et cetera. But again, this is also not a scope for this presentation. So now we are moving to the actual problem. So now we are facing TLS traffic originating from Java application. And here EBPF is actually powerless when we are taking the straightforward approach. So let's understand why. As mentioned, there is the Python case. K-probs won't help us here. The traffic is encrypted. Unfortunately, we cannot set up the Uprobs because the aspects of JVM and the fact that the bytecode being dynamically translated into the native code, which prevents us from having exported symbols and fixed offsets to set up the Uprobs in the beginning. So now we have also the problem. And we are trying just to clarify the problem. We are trying to get the red metrics that I mentioned before from a Java application that are using TLS encrypted traffic as a communication. And to add on top of that problem, let's add a few more requirements that we want to match when we are trying to develop a solution. So similar to general requirements of the USM product, we want to be non-destructive and have a zero touch deployment. So basically we don't want our customers to ask making any changes to their application or redeploy them. Obviously, we want to support different flavors of different HTTP libraries written in Java and also different Java versions. And lastly, we want to be able to run non-containerized and non-containerized environments and hopefully also have a minimal resource usage overhead. So to begin with, I'll present here a slide that will show a pseudo code for the full solution. And then I'll dive into each one of the steps in the following slides. So full solution will contain four different steps. The first step will be detection that we want to detect the target application, Java application that we need to capture its TLS traffic. Then we will have the injection phase and in this phase we will inject the Java agent which we will talk in a few minutes about it that will allow us to capture the traffic. How we are going to do that by using instrumentation technique which is a mechanism that is built in in Java in order to instrument the target classes and capture the plain payload just before the encryption of the ingress traffic and just after the decryption of the ingress. And finally, once we have this payload in our hands inside the target Java application we would want to extract it somehow into our existing pipeline to the USM product for further processing. All parts of the solution are fully open sourced. In the next slides I left some links for code in our GitHub so you can see. So let's start with the first step which is detection. I will not dive too much into the details. Basically we have an existing component in the USM called process watcher that allows us to detect processes based on some attributes. We are reusing this component for our solution here but we are also using it for other use cases. For example to detect Go applications and deploy Uprobs and Go TLS. Once the target application is detected now we want to do the injection phase. So the injection phase is actually a unique phase for Java TLS problem. For other languages or other like plain traffic we could reuse Kprobs or Uprobs as I mentioned before. But here we need to implement an injector and that injector is part of our product. And once we have the injector we also need some payload that we want to inject so naturally we need to embed some Java agent, a Java file inside of our Datalog agent. For the payload and I will explain in a bit details later we are going to reuse our own DD Java Tracer which is also open sourced and we are going to extend it a little bit for with the functionality that we need to capture TLS traffic. So let's talk a little bit about injection. Java has a built-in mechanism allowing injection of the agent into a running Java application. This is called dynamic attach. And it allows among other options to inject a package jar into a running Java application. So those Java agents can be actually dynamically attached or statically attached upon target application startup via a special command flag. And dynamic attach basically how it works. There is a listener's thread in the target JVM and we triggered this thread by creating a special file with a specific name, data touch underscore PID and the PID of our process. And then we send the secret signal to the target application. On the JVM side we have a handler for this signal that captures the signal and then establish a communication channel on Linux, it happens over a unique socket. And then over that socket we have a proprietary protocol to perform different operations from our injector to that target application. There's an open source utility called Jattach that implements a simple injector which supports also containerized environments that does like namespace switching. It's written in C, so what we did in our solution is we actually ported the solution to go since our agent and the user space is written in go. And fortunately this functionality of dynamic injection is allowed by default for Java applications with a small asterisk, so it's true until Java version 21. And then from Java version 21 the flag was flipped and it's disabled now by default. Once our agent is injected, now we can start instrumenting the target application, classes and modify their behavior in runtime. So in the next two slides we will go over the basics of Java instrumentation and dive a bit into the particular targets that we want to instrument for our use case. Reminder, we're trying to capture TLS traffic here. So let's do a crash course in the Java instrumentation. Any Java agent must have a special two entry points, pre-main and agent main. So pre-main is used for static injection and startup and agent main is used via dynamic injection. That's our use case here. In our case we want to capture playing buffers. As I said just before those requests are encrypted and just after the response is received and decrypted. So in order to perform this instrumentation there are a few options. Like there's a built-in option in JDK and there's a library called ASM which operates on the bytecode level and allows us to do instrumentation of Java classes that already compiled into bytecode. This is too low level Java for us. So instead of that we are using another open source framework called bytebody which is basically a high level wrapper that allows us to operate on the Java source code level and under the hood it is using USM. And bytebody in a very brief contains like three major components. So there are matchers. Matchers are meant to find the target Java classes that we want to instrument. There are advices. Those are the snippets that we write in Java and this is the code that we want to execute once the target classes are instrumented to execute our custom behavior. And there are transformers. Those are in charge of transforming the target class to include our advices. And bytebody also provides a rich annotation capabilities that allow us to execute this advices in different times of the target application execution. For example, on method enter or on method exit plus it gives us a direct access to different variables and arguments of the target function like a return value or this pointer which is the current class pointer in Java and more. So now let's talk a little bit about what do we want to actually instrument. So on the Java side there are a lot of different implementations for different HTTP web frameworks and network frameworks. Just taken from our own documentation, this is just a sub list of different frameworks that today trace your supports. And but as I mentioned before, one of our goals is try to minimize the solution and have sort of like one hook to rule them all. So instead of targeting the application layer, we want to go on the networks stack a bit down and go for a session and presentation layer. And here I have a small diagram just to illustrate the solution. So there are different frameworks like Apache client, OK HTTP and a few others but they are all using the same libraries under the hood. So they basically class into two different groups. They are synchronous communication and asynchronous communication. For the simplicity in this demonstration I will be talking about synchronous present communication and in this case all those frameworks are using SSL socket which is part of the JDK Java base module. But the asynchronous case can be handled in a similar manner with just a few extra cavies of asynchronous programs. This one. So now let's show some example of the advice like what is the instrumentation? How does it look like? As we saw in the previous slide, we want to target the SSL socket but SSL socket is actually an abstract class and there are different implementations of this class. So our matcher will look something like that. We are targeting SSL socket and derives which are concrete classes. And then our transformer will look like that that we want to target specific methods of this target class. So in this case the SSL socket implements some stream interface in order to read and write into the socket and there's also a closed method in order to close the socket and determine the connection. So we want to instrument those in order to apply our proxy and capture the traffic which while it's still playing. So lastly, that's how our advice will look like. So for example, here we are instrumenting the get output stream function of the SSL socket class and we are replacing the return value. Again, like take a look on the annotations provided by the body. We are replacing it with our own implementations or basically installing a proxy in the middle. And finally, once we managed to capture the traffic so we want to extract this traffic into our pipeline which is in a separate process or a separate container depends on the environment. So in order to do that we need to implement a sort of inter-process communication protocol. And for that we have our own implementation what we call ERPC. ERPC is like for inter-process communication over ABPF. Actually the solution is very simple but that's what makes this also very elegant. Basically we have a handler on the, in our ABPF site that we are setting up a K-PROP on the Yocto Cisco and we are filtering out only the Yoctos with a specific code. And then on the target application site, in our cases the target Java, we are just firing this Yocto with the payloads. And that actually works in any environment whether containers or nodes since our agent is running on that host in a privileged container. So now it's a live demo time. Start with running an agent. This is our USM product. And let me show here the agent and we're going to execute a Java client that will just send a HTTPS get commands to HTTP.org slash UUID every second. And for some reason that doesn't work. Let's try it again. So for this case I have a pre-recorded demo. I'm going to do the same thing but just now I'm just talking and not typing anything. So we are running an agent here with a config flag enabled for Java TLS monitoring as I highlight here. Then what we are going to do, we are going to do a serial to some debug Unix socket to see the payloads that we capture. Now we didn't see anything. Now we're going to run the client which will send a request to HTTP slash UUID every second. And now we are going to send serial again to that socket and we will see the payloads. I think that will be it. So any questions? So we have time for one question. If anybody has it, has one. Do you have a plan for after Java 21, I think it was? Yes and there's no. So we do have some plans that we want to explore but we don't have a solution that will for sure work. Our main plan is actually to integrate our work with another product of Datadoc called APM that are working now on doing also sort of dynamic injection support for Java applications. We have a bit different method but it's like for a long-term roadmap. Thanks. Great, thank you, Val. Thank you.


I want everyone to put down your large electronic devices, look up from your cell phones. We have some special emergency announcements up here. And we know from this week that it's very important to pay attention to these. Just wanted to point that out.  All right, we're here to talk about dispatch, which is a serverless framework. It's something that we started at VMware about a year ago. And what we wanted to do was think about what would an enterprise class FAS look like. And we really thought about it and went, there's a lot of open source FASs out there. And one of the things that we focused on was not re-implementing a FAS, but look how we can take existing technologies and wrap that and work around that, embrace and extend open source. So first off, we're going to talk about why it functions, why serverless, et cetera, very quickly. Go over that. Berent is going to be talking more about what is dispatch, and then go through a demo integrating into open service broker, which is very exciting. So why functions? As you look at where we've gone through our journey of compute, we've gone from bare metal servers, VMware helped revolutionize the virtualization market. We've seen that occur with public cloud using virtualization as well. And then a couple of years ago, containers hit the market, became the latest hot thing. And now functions are starting to appear. We saw AWS Lambda appear on the public clouds. There's functions in public clouds and a lot of open source projects around FAS solutions. So why are we doing this? Because it makes it a little bit easier for developers to not have to think about the infrastructure. As you look through the continuum here, you are spending more time on your business logic than on the infrastructure itself. So it makes a lot of sense to, you know, get more value out of the code that you're writing and the time you're spending on it. Now, do I think that it's going to be the end all? No, I think that every cloud native architecture is going to have a combination of VMs, instances, containers, functions, and services, and be able to then build out your applications like that. But it is a very important piece of what we want to do as cloud native architectures. And why is that? Well, these functions are event driven. So, you know, depending on the number of events that are coming in, which you can't always predict, you won't now be able to react to those. You, the functions are inherently stateless. So you tend to do something very quickly, they're short duration, and then send the state off to back end stores, give a response back to, if it's an HTTP endpoint. I mean, there's a lot of good uses for this. And the very best thing about it is that it's inherently auto-scaled. As the events come in, we all of a sudden will expand the number of functions running, and we can handle the demand coming in. Now, lower cost is more of a public cloud. I don't know. What's that? Property. So, you know, when we're looking at it from a VMware point of view, we think about, okay, how can you run stuff on-prem? You don't necessarily get the cost benefits of no cost at idle. But I think it's still very important to have on-prem and public cloud having the same type of functions being able to run. Some of the use cases run the gamut. A lot of what we've been seeing is not necessarily people implementing applications with functions as a service, but more looking at it in terms of DevOps, ITOps, automation. And I think in terms of the IoT space, looking at edge computing and how to best handle some of these burst loads coming from IoT devices will be very important. I think serverless could handle any of these, but we're just seeing that as people are starting to embrace it, they're focused on certain attributes of this. If you wanna find out more about just what is happening within serverless and the serverless landscape, we had a CNCF serverless working group where we created both a white paper and landscape around what is currently happening in serverless land. We then, after we shipped that as a 1.0, went on to start talking about thing called cloud events, which today we just released a 0.1 specification. This is where we're looking at the commonality of, looking at how event sources can have more commonality, be able to specify what they look like such that we can transit events between services. So very important work going on there. And without, I'm gonna let Barron take over. All right, so I guess, yeah, seems to be working. So I'm gonna talk about what is dispatch, so what have we built? So Mark alluded to earlier that we are not building the actual FAS, we're not building the function executor and scheduler, but rather we're building a stack of services around the FAS that we think makes it more appropriate for enterprise production deployments. And so what are those services? So one of the things that Mark just alluded to was this cloud events thing. So FAS's functions are event-driven and in order for you to drive these functions, you need events. The public cloud has it easy because like AWS has a whole suite of services, they run on a common event bus. Public cloud or the private cloud doesn't have that same thing. We don't have a common event bus and we have a very disparate set of services. So dispatch includes what we call an event manager with an event driver interface, which allows you to very easily sort of build drivers, which are just small processes, which can import events from effectively any service, translate that into a cloud event, and then push that onto the dispatch event bus, which effectively makes it a trigger for any event that you want to subscribe to that particular, or any function that you want to subscribe to that event. Currently we have an event driver for vCenter and we're working on event drivers for public cloud so you can ingest public cloud events. Secondly, current open source FAS is effectively a single user one role experience. And we think in the enterprise that doesn't make a lot of sense. You need roles for developers and you need roles for administrators. And so we added IAM or Identity and Access Management on top of the FAS, all managed by dispatch. Also we alluded to we are not building a FAS, so we have an adapter interface to the underlying FAS. So this allows us to work with either open FAS or RIF today, and in the future, we will be able to run functions on the public cloud as well, and it might not just be an or, it could be an and, so you can schedule functions in the environment that is most appropriate for that function, or for instance, burst to the public cloud. And lastly, functions, 80% of functions in Lambda, I heard the stat recently, are triggered from an API gateway, namely the Amazon API gateway. We want that, and so I think that's sort of a common thing across functions, very easy way to interface with them. But current FAS doesn't ship with a real API gateway, generally speaking. And so we've wrapped Kong in dispatch, which Kong is an open source API gateway that's pretty widely adopted and has a lot of plugins. And we've also, we talked to Edith Levine from SoloIO today, and she's got a project called Glue, which might also be appropriate in this space. So this is a pretty simplified view of what dispatch actually looks like architecturally. The big fat bar, the control plane, it's actually a whole suite of microservices that do the various management pieces. We've got our IAM that connects to your existing, like OIDC or OAuth2 compatible identity provider. We've got an image registry, currently we just kind of use the internal Docker registry, but this could be let's say Harbor, which is a VMware open source product. It could be any Docker compatible registry. We store our state in Postgres, we store secrets and Kubernetes secrets. All of this is managed by dispatch. And then we've got the API gateway. What I haven't talked about yet is the pieces to the right, which are the new pieces. This is our integration with the open service broker API, and it allows us to bind functions to services such as databases, which effectively allows you now to build applications as opposed to just stateless functions. So this is effectively what our integration with the open service broker is. So through dispatch you're gonna be able to list the available services and I'll show you. We're gonna create a DB instance and create a binding, which is then stored in dispatch via secrets. We're gonna create a function which uses this binding and then we'll execute it and we'll do a little bit more too. Anyways, so let's actually do the demo. All right, so let's start off. So I should say, the first thing we're gonna actually do is do that a little bigger. First thing we're gonna do is create a runtime image. So a function, this is all gonna be done in Python, but a function needs a runtime in order to do anything. Dispatch itself has a notion of base images and images. So the base images contain effectively your OS and the runtime. What dispatch allows you to do is create images which are effectively an extension of the base image and allows you to layer on, let's say runtime dependencies, which is in fact what we're gonna do.  And it's also a bit different from, let's say OpenFaz or Riff or any of the other open source faz which the developer is managing the Docker container itself. So let's create an image. So first create image, give it the image name, base image name, and then the dependencies. If we wanna look at the dependencies, environments, here's a list of them, right? They're pretty standard Python dependencies, gives us access to Postgres and a little bit more. So we've got an image. Next thing we're gonna do is create a Postgres database, copying, pasting this one because I don't remember at all. If we wanna look at what services we've made available, so dispatch. So the service classes are the types of services that are available. And I've associated dispatch with a Azure service broker, which is why you're seeing a bunch of Azure services. And the one we're interested in right now is the Azure Postgres SQL service. This is gonna provision a Postgres server on Azure and also create a binding which it stores in dispatch as a dispatch secret, which then can be injected into our function without the credentials needing to be checked in or even the developer knowing the credentials. Anyways, so we're gonna create this service instance of one of these service classes. So the command is somewhat straightforward. Service instance, we give it a name, give it the service class itself. We're giving it a plan, which is an open service broker API thing, which, well, not that important.  Parameters, you can discover, there's a schema for the parameters, which is available, but we'll not go into that right now. Anyways, it's created, it's gonna go provision, it's actually gonna do it. It's also gonna take about 10 minutes, so we're just gonna leave it here and we're going to use one that I've already created. So get service instances. All right, so we're gonna use this Azure PG-1, which is already ready, already bound, and ready for us to use. Anyways, so what I'm gonna do first is create a little echo function. And the reason for doing this is so that I can show you exactly what this service binding does. So I've created this echo function, all the echo function does is echo the function context. Context is one of two parameters that make up a function signature, and it's where service bindings, API, context, secrets get injected into the function. So anyways, I've created the function already, so dispatch, get function. Let's make sure it's ready, it's ready. Dispatch, exec, echo PG, wait. All right, so that gave us a whole bunch of output. The important bit right here is the context. So this is one of the two things that gets passed in the function, and more specifically, we've got service bindings, and we've got our Azure PG service binding, which includes the credentials to the database. And I should say, the way this was associated with this function was this flag right here when I created the function. Anyways, so that works fantastic. Oop, gotta get my ordering right. So I guess I forgot to start with what we were building. So what we're gonna build, and this didn't show, scaled wrong, what we're gonna build is a little notes app. And so I've got the front end for the notes app, but as you can see, it's just getting 404s, the back end's missing. So that's what we're creating. We're creating the function, the database, and the API endpoints to back this app. So we've got a function here. Let's, maybe we should look at the function before we create it. So this is the function, all notes. And it handles both creating and getting back notes. Notes are small, effectively rows in a Postgres database. The handle function is the entry point for dispatch. So this is the function signature. It's very simple. We've got the context, which we just showed what it contains, and the payload, the payload's gonna be any of the input parameters, query parameters to that function. First thing we call is setup. Setup takes the context. It extracts the service bindings, creates the database connection, and the table. The table is this object right here. I'm using a small ORM called Peewe because I didn't wanna write raw SQL. Thought it'd be a little bit nicer to look at. And then I'm looking at the HTTP context. So the HTTP context is injected via the API gateway. And we can use this to determine whether or not the request is a post or a get. And based on that, call the appropriate function. So if it's a post, we're gonna call this add note, which is gonna create a note into our database. If it's a get, get notes, so we're just gonna list back all the notes. Pretty simple function, pretty simple service. So here we go. Here we're gonna create this, or no, that's not the function we just created that one. Let's create the right one. That's the API, don't need that yet. Let's create the function. So we just created it, same story. Create function, we give it the image name. So this is our image that contains our Postgres dependencies. All notes is the name of the function we just created and a path to the function file, and then we're associating it with the Azure PG service. Let's see if it's ready. Dispatch, get function, now we can just list them all. And there it is, all notes, it's ready. Perfect. We can even call it now. So dispatch, exec, or don't need that. All notes, wait. First time it runs takes a little longer because it's instantiating everything. The next few times it'll be faster. Output, empty list, we have nothing in the database, so that's not a surprise. Everything works though, great. All right, next thing we're gonna do is create an API endpoint. So that's this command. Again, pretty simple, so create API. All notes is the name of the API. All notes is also the name of the function we're binding to this API. We're not doing any auth, so public. We're associating it with both the get and post method. We're assigning it to this path slash note and we're adding cores so that the browser's happy. Cool, dispatch. And that's ready too, so can we check that out? Let's do it, so it's a curl, looks a little better when we pipe to JQ. But again, it's empty still because we don't have anything in our database. But can we create something into our database? So you see how currently we're just getting, we were getting 404s. Now if I reload this, oh, better, no 404. So let's create a title to this. Hello CFSummit, boot dispatch, let's create that note. Hello CFSummit, welcome to dispatch. If anyone wants, they could even go to this. It's cfsummit2018.dispatchframework.io. And that's the demo. So I guess, all right. So anyways, we just added the service integration to dispatch. We're still a pretty early stage product or project I should say. We just released our 0.1.11 release which doesn't really mean anything but we are releasing weekly. We're adding features pretty regularly but we can always use help. Currently we have event sources from the API Gateway and vCenter and soon we'll have public cloud. We have language support for JavaScript, Python 3, PowerShell and as of maybe today I just saw a poll request come in for Java and I think Clojure as well. We support OpenFaz and RIF. That list might expand as well. We've got IAM support with per user policies. We run on effectively any Kubernetes and yeah, you can see us at dispatchframework.io, see us at Twitter, all that good stuff. Go for it. So we would love to have people come and join us in the community, work with us to add some of these features, look for how we can do integrations of dispatch into potentially more of the Cloud Foundry ecosystem where you can bring your expertise, you can leverage us to be able to provide a functions as a service into the Cloud Foundry family. So please come to our GitHub, take a look at it. There's some great docs talking about how to get started in it. They'd love to have all of you to help us out with. Here are some additional links where you can find us on GitHub, documentation. We have of course a Twitter feed. If you go to the VMware Code Slack channel, we have the Slack team, there's a channel that we have there to talk about dispatch. And then we also have a couple of links for some of the technologies that we're using, OpenFaz, RIF, and Kong at this time. So any questions that anyone has, I'll leave the link slide up. So I got one question there. In the demo, I saw you attached your function to a service. Can you attach to several services as well? You can. So that context has a key for each service. And so you can, and that command will take as many services as you want. So as long as you've created that service instance ahead of time, you can go ahead and bind it. It'll be available to the function in the context. Cool, follow up question. If I add a different service afterwards, how can I bind that to my functions afterwards? So I mean, you'd effectively just update the function. So when you update the function, you're creating a new image. And I mean, in this case, you're just creating a new association which dispatch would take care of. So no problem at all. But your code would probably change. Yeah. Perfect, thank you. Yeah. Any other questions? Great. Thank you, everyone.


So, I debated doing a video about this because on one hand, I don't want people to think that I am purposefully trying to feed into leftist infighting for views and clicks. But on the other hand, if I don't talk about this, then it also kind of feels like I'm self-censoring for friends or for access to TYT's platform. So I mean, in the end, there really is no perfect way to handle this situation. But having said that, I do have a lot that I feel as if I need to get off my chest. And I just kind of feel like it's reached the point where I'm now compelled to talk about this, even if it is exhausting and feels like I'm beating a dead horse at this point. So in the event you are unfamiliar with what I'm talking about, here's a really quick rundown of all of the drama that transpired on Twitter. So when Cenk speaks against the far left, I listen. And that's what happened recently. When a well-known progressive stalwart, Anna Kasperian, a co-host of The Young Turks, tweeted, quote, I'm a woman. Please don't ever refer to me as a person with a uterus, birthing person, or person who menstruates. How do people not realize how degrading this is? You can support the transgender community without doing this. And the controversy has only continued to grow. To her credit, Kasperian didn't back down, tweeting this week, LOL, the meltdowns over wanting to be referred to as a woman rather than a birthing person is pretty wild. I'll never apologize for that, especially as a biological woman who's had a lifetime of being told I'm less than, I'm a woman, no apologies. And now the big boss, Uger, has jumped into the fray to defend Kasperian. So we'll come back to that clip in a moment because there's more from it that I want to watch, specifically an interview with Cenk Uger. But basically, Anna had a bad take and leftists reacted to it by trying to respectfully explain the issues with her tweet, myself included. The issue isn't necessarily that she doesn't like the word birthing person. It's that she's inadvertently feeding into this narrative that inclusionary language is an attempt by radical trans activists to erase women. This is what the right has been going on about for a very long time. And regardless if that was her intent or not, I mean there's a difference between intent and impact. And the impact that she had was what I was trying to get her to understand, right? So I genuinely don't believe that she intended to contribute to the rights anti-trans propaganda campaign, but she did. And furthermore, a leftist like myself pointed out that terms like this are really only used in very rare settings, clinical, legal or political settings. So why emphasize something so insignificant when the right is looking for reasons to portray trans people and their allies as unreasonable and overly sensorious? That was basically my point. And by coming out against these inclusionary terms, you kind of tee up this attack against any leftist who dares to politely explain why your take was indeed misguided. For example, I pushed back in what I thought was a respectful good faith way. And regardless of my attempt at a constructive conversation, do you want to know how the right portrayed that? Liberals melt down after far left journalist blasts birthing person language, the Young Turks host called the transinclusive language degrading. And can you guess who they cited in this article here? Yep, that would be me. Despite prefacing my response with quote, I respect you a lot. Fox News still used me as an example of liberal meltdown because that's what they do. First of all, Fox News, I'm not a liberal. And that is a term that I'm offended by when you refer to me that way.  But I mean, we know why they're doing this. This is exactly what they were always going to do, but they weren't alone. The Daily Mail did the exact same thing, citing myself and my co-host, Lance from the Serves, who also responded to Anna at that time. And I mean, I feel like all of us knew that this would happen. It seemed like Anna had unwittingly kind of like handed the right, this huge gift for no apparent reason. And I felt like this wasn't her intention. And there was this disconnect that I wanted to figure out where this was coming from, right? And explain to her why a lot of people found that troubling. So I reached out to Anna privately because I felt like if she just, if she heard me out and tuned out all of the noise on Twitter, she would understand where myself and most leftists are coming from. And I felt like I kind of got her to see my point because I shared a video that she did where she defended inclusionary language just like eight months ago, when Professor Chiara Bridges was talking to Josh Hawley. And he was lambasting her for using people with the capacity for pregnancy in lieu of women. And she even referenced that video that I shared with her on the show that day when this happened. But I understand the importance of inclusive language. I just don't like to be boiled down to a body part. So Mike Figueredo from the Humanist Report reminded me of a video we did a few years ago where we were defending someone who used the phrase people with the capacity for pregnancy in the context of the abortion debate. I believe it was. I'm totally fine with that. I think that's totally fine. If that's what they want to use in a medical setting, great. But for me, my personal preference is I don't like to be referred to even in the context of an abortion debate as a person with a uterus. Person with the capacity for pregnancy, that's great. That's all I'm saying. I think my track record on transgender issues is pretty clear. And I hope you understand that I have no disdain or hatred for the transgender community whatsoever. That's all. And look, I agree that her record speaks for itself. But that's what also really bothered me so much. She knows better, right? You don't have to use that specific term. But why make a mountain out of a molehill when trans people are facing an onslaught of attacks and the threat of genocide? Like, why emphasize this seemingly out of nowhere? Now, I feel like I probably should have tried to engage privately from the get-go.  That's kind of how it goes. We all have brain rot because of Twitter. So I responded publicly, but still I tried to be as charitable as I possibly could be. But unfortunately, I probably added to the pile on. And that's why she still felt defensive. But I just, like, I wanted to make it clear that the pushback was coming from a place of love, which is why I reached out publicly and privately. And knowing that her intention was to never cause any harm. I just wanted to explain why what she did just wasn't a good take. Now, with that being said, I don't know if she actually understood why I shared that video with her. It wasn't to basically float people at the capacity for pregnancy as some sort of an alternative to birthing person. Like, I wanted her to hear a specific argument that she made about inclusive language because it's easy to be defensive when you have a bunch of people on Twitter coming at you. Like, you can kind of get your guard up that way. But if you hear what we're trying to say from yourself, I mean, there really is no better messenger than you. So here's what she said specifically in the video that I shared with her. But in terms of gender, identify differently as a male or non-binary. But they still have the biological capacity, the physical capacity to get pregnant. So that's why the language, the rhetoric is inclusive to include those people. It is not a big deal, but they make it a big deal. They manufacture it into a big deal because that's all Republicans are. That's all they have. This is all they do. Endless bad faith arguments meant to fear monger and direct hatred and fear toward other Americans. Typically powerless Americans. So I shared that video with her privately, not to try to hypocrisy burn her, but to hopefully get her to see that what she was saying right there is where we're all coming from right now. We're saying what she said back then. That was my goal of sharing that video with her, not to float an alternative term that was inclusive. Like, I wanted her to see that she made the same point that we're making. We need inclusive language, and it's not even used that frequently. So it just doesn't feel like this is the most important thing. I'm going to emphasize right now during an international crusade against trans people. So we talked about it also on the leftist mafia in a way that I felt was good faith and respectable, and really that was seemingly it. I hoped that Anna was able to tune out the bad faith actors and listen to good faith criticism from people like myself and longtime friends. And I was hopeful that Cenk would do the same since he also defended Anna Kasperian there after that kerfuffle. But it seemed like nothing we said actually resonated, which is fine. You can't force somebody to agree with you if they simply don't agree. But when you make the exact same argument as we're making currently, and you've been a longtime advocate for trans rights, you've got to understand where we're coming from. It's really frustrating, and it's more frustrating to see them doubled down after we tried so hard to reach out in a way that I thought was respectable. I think that David Dole made an excellent point about this on Twitter. He said something to the effect of they've been the subject of bad faith attacks for years, so it's easy to see why they're so defensive. I mean, myself and many other leftists who reached out. We've also been on the receiving end of a pile on and I can tell you it is not fun. So I get it. I understand the defensive posture that they're taking. But when your allies reach out in good faith, that's when you should at least contemplate whether or not you're in the wrong. But that didn't happen.  This was Emma Viglin, David Dole, myself. Like we tried our best to reach out and Anna seemingly out of nowhere attacked my co-host Ole with this two week old clip. And I shouldn't say attack, but meaning she brought this up in response to Ole as kind of like a gotcha in response to something that Ole said that was completely unrelated. But this is what Anna took issue with. I have to say it. Oh, my God, I have to say it. I like Anna, but I feel a little bit like this is the cuddle, the white lady hour. And you know why? And you know why I thought this even earlier, because before it is, the majority report put out a thing to and everybody else.  Nobody fight.  I've never seen it. I've never seen everybody come out. Now, when you already kind of feel like your backs against the wall, I understand why that clip might make you feel even more defensive. But Ole's point, regardless, was valid, defensive or not. I mean, we were all bending over backwards to be overly kind to Anna. Whereas if this were anyone else, we probably wouldn't have been as charitable. But because we're close with her and we respect her and she's a longtime advocate, you know, we try to reach out in good faith. And that was just one portion of a very long conversation where we talked about what's the best way to hold our allies accountable, especially when we all have very large platforms. But that interaction spurred Phase Two of this drama where Anna doubled down and Cenk really didn't take kindly to good faith criticism from his own allies. And it started with this subtweet, presumably about Ole and the rest of us who took issue with Anna's original tweet. He writes, left wing extremists help the right wing so much. 66 percent of this country is left wing, according to the polling on policy issues. They don't believe in defunding the police or being called Latinx or calling women birthing people or abolishing prisons. Anyone who claims they do is lying. Now, I'll get to the responses here in a minute, but he's kind of just talking past the criticism. None of us are bringing up public opinion polls and I don't base my policy positions on public opinion polls as a public figure if I happen to be on the wrong side of an issue with the American people, I try to use my platform to inform them. So like none of this really matters to me. First of all, Latinx, I don't know why he's bringing that up, because none of us are arguing for that. But like in terms of like defunding the police or getting medical professionals to use inclusive language, like I don't really care that that is unpopular. It's the right thing to do. So I'm going to base my policy positions on morality, not public opinion polls. And there are a number of people who responded trying to make the same point, basically. David Dole responded trying to explain how refusing to fight for unpopular things means we would never have anything. We wouldn't have gay marriage, for example. Latinx tried to explain it, respectively. Again, only for Cenk to claim that we called them fascists, which we did not. Lance did not. Nobody who is an ally who responded claimed that they were fascists or tried to cancel them. Benny, who is a trans activist who's literally part of TYT's network, tried to get Cenk to understand that inclusive language isn't actually that unpopular and it's necessary, but Cenk responded condescendingly, claiming that she's hurting her own cause by insisting on this type of language.  And it came when Cenk responded to Emma, who went out of her way to be gracious, only to be met with this smug response. Quote, good news, we are on the right side, mission accomplished. Now let me talk to you in a patronizing way about all of your opinions I need to correct.  Again, I understand as a public figure how easy it is to become defensive. But the point that we're all making is basically you've got to decenter yourself sometimes. You are not the main character here, okay? You were talking about something. You were talking about a community that you are not a part of. None of us are, but we're trying to explain to you how your actions here are unwittingly leading to this community being demonized by the right. I know that that's not your intention and since we know that that's not your intention and you respect trans people, this is why we're trying to reach out. Like we're not trying to be patronizing. And I don't think anyone came off as patronizing as well, although I can't put myself in Cenk's shoes. But it didn't stop there because on the show that night, they continued to harden their stance further, which is what I was afraid of, which is why I was trying so hard to be as respectful as possible. And Cenk punched left and he called out Lance from the Serps, who again, was nothing but kind. I'll name the name Lance from the Serps. He's on here all the time on the power panel, right?   Correct? No Lance, you're not goddamn correct. Nobody elected you. The polling shows no one agrees with you. You're 12 buddies online. I don't care, okay? And say, yeah, I'm 100%, he's 99.95% correct. I'm going to correct him. No, no, no, no. So don't look, you want to say I don't agree with you? God bless.  Come on brother or sister, I don't know what you're doing. I just don't really care to like collaborate with any other leftist ever again at this point. No, that's where I'm at because they come on the show, they build a name for themselves, and then they build a bigger name for themselves, trashing us as if they don't know who we are. As if they haven't worked with us, they don't know what our actual political values are. So I just, I don't, Jake, I never want to talk about them again. I never want to address them again. It's a waste of time. There's important stuff going on in the country. Our personal drama with a bunch of leftists on Twitter doesn't matter. All right. Okay, first of all, we all acknowledge that there are more important issues going on, which is why overemphasizing, birthing person, which is a term that is rarely used, is a bad thing. Now, why imply that all of these critiques are bad faith and we're only now trying to criticize TYT to grow our audience as if we're comparable to Dave Rubin and Jimmy Dore? Like, I don't think that she's trying to imply that we're bad like them, but like we're not talking about random Twitter leftists online who are trying to cancel. You're talking about your friends, Emma Vicklin, David Dole, Lance, myself, Ole, if all of us who you know are telling you one thing and then you have all of the right, suddenly cheering you on and yasqueening you and retweeting you and telling you to keep up the good fight, maybe for a second just take that as evidence that you are the one being unreasonable and you are on the wrong side of this issue. And again, you don't have to agree with us here, but at least try to hear us out without getting overly defensive. But it's clear that they've tuned out the good faith criticism and at this point it seems like they're not even trying to understand where we're coming from and that's really frustrating because again, we can disagree on this. However, the reason why so many of us try to be kind is because when you are in this position where you kind of feel like the world's against you and you have to defend yourself when you shouldn't have to because you have a record that supposedly speaks for itself, you know what, it leads to you hardening your stance and falling down this rabbit hole even further and that can subconsciously alter your mentality, which is what I didn't want to happen. But I feel like it kind of did happen and they kind of went further down this rabbit hole inadvertently. Like I don't think any of this is intentional but it seems like that's what happened with this particular segment. Now, I'm gonna link to the full thing. We're gonna watch that, but before we watch that I'll show you this tweet that Anna Kasparian liked where someone talked about how the revolt against quote, trans think is growing which is transphobic, full stop. And now getting to this clip, so Riley Gaines who is the person who lost to Leah Thomas, she's made it her mission to demonize trans people and they talked about a bunch of activists at a particular university basically heckling her and she had to be like in a room because the activists wouldn't leave her alone and like we can't get the full context but that's really what you need to know. When it comes to Riley Gaines, I mean she just needs to keep grinding until she levels up and get good scrub.  So this is what TYT said about that and after you watch these clips kind of like mashed together you'll see or I'll explain rather why I think them hardening their stance has kind of led to them going further down this rabbit hole and this path that they're headed on. Her Twitter profile is also I think meant to be somewhat provocative, mentions that she's a spokeswoman with Independent Women's Forum and that there are only two sexes. Now Gaines was in fact accosted by trans rights activists after giving her speech and I wanna be clear, there were trans rights activists or people who disagreed with her in the room as she was doing her talk. And they were incredibly respectful even though they engaged in protest as well. I think they did it right. But what you're about to see is what I think is incredibly counterproductive for anyone who actually gives a damn about transgender rights in this country. Let's watch. Now it's worth noting that there were trans rights activists in the room as she was giving her talk and I wanna show you what I think the productive protest looks like. Let's watch. And so I went to this convention. It was in January, it was in San Antonio. And so I go to the convention obviously not in support because the award was immediately meeting with. So they're holding up signs the whole time showing their support for the transgender community. There was also a Q and A portion where there was disagreement. They exchanged their comments, their disagreement with one another. I think that's productive. But what happened outside of that room? What happened for the three hours following her talk? Not productive. I don't understand how anyone would think that this is gonna win over hearts and minds in any way. That protest got out of hand the minute it felt that it became physically unsafe, right? Do not lose the moral high ground. You had everything right until then, please. The thing that's frustrating about these situations is that these exchanges, if it's done appropriately without devolving into violence or intimidation, it could be productive, it could be persuasive. That's the way that you actually make progress. And I think the biggest mistake that trans rights activists make is just assuming that everyone already knows everything they need to know about transgender people and how they need to have their rights protected. But you gotta understand that for a lot of Americans, these are all new concepts. And so people, it takes time for them to learn these new things, to be accepting of new things.  No, I'm exhausted, it is not my job to educate you. Okay, well understand that if that's your mindset, then you're never gonna win, you're just not. And if you think that you're gonna win by intimidating and bullying people, that's also not gonna work. That actually turns a lot of people off. Yeah, look, if you're an activist or you're in this sphere in any way and you say, well, it's not my job to educate you. Well, no, okay, it's not, but then you gotta go home. So what I hoped would not happen has seemingly happened. It feels like all this drama is kind of getting to them and it's affecting them in a subconscious way. It feels like in that clip right there, they were kind of airing their own grievances against trans activists because they've seen now how unreasonable certain people can be with regard to this issue. So maybe they can kind of put themselves in Riley's shoes. Like that's kind of what it feels. And it further solidifies my belief that they're not listening, like they're talking past us. And maybe they feel as if we're talking past them, I'm trying to understand where they're coming from. But at the same time, they are definitely not understanding where we're coming from. And that clip rubbed me the wrong way because it kind of feels like they were speaking out of turn. I mean, two cis people don't get to tone police trans activists who are facing the threat of genocide. You don't get to tell them that the only appropriate form of protest is when you're sitting quietly in a room with a trans flag, when a bigot who's going on a nationwide tour advocating against your rights is right there. I mean, what do you think Stonewall was?  Do you think that queer people got to where we are today because we were polite and respectful? And we had to ask permission from straight people to protest or what was the appropriate form of protest? Do you think that we waited for public opinion polls to change before we asked for civil rights? Of course we didn't do that.  And so that covered right there to me. It came off as, well, you know, maybe the trans activists are unreasonable here because I've seen it firsthand. And I just have to point out that this is speculation, right? I don't know why they said the thing that they said there. It's not the most problematic thing ever, but it just seems as if their perception is specifically changing as a result of this Twitter drama, which is what I tried to prevent and which is why many of us reached out to try to correct them before their opinion on trans issues got worse, right? We know how the right portrays overly vocal trans activists, which is why we all in good faith tried to say, hey, Bestie, this ain't it. Maybe try to do a little bit better. But they just, they tuned it all out. And again, for the 100th time, I get how it's so difficult to accept criticism, even if it's good faith coming from friends when you feel like you're being dog piled on. But the problem is like, there's no level of introspection at all and it just keeps getting worse.  But here's what he said. Well, the problem with the progressive movement now is folks on social media, from time to time, completely misrepresented. Now, I wanna be clear, what I would call the extreme left, don't have bad intent. I think the right-wing has bad intent. I think it's arguable whether the corporate wings of both parties have bad intent. But the extreme left is not helping our situation. So when you've got two thirds of the country on your side, lean into winning issues. And by the way, trans rights is a winning issue. And we've defended trans rights probably longer than any show in American media history, okay? So now when we say something simple like, we're positive women wanna be called women and they don't wanna be called birthing people or people with uteruses. And by the way, some like Anna are actually offended by that. You're not being inclusive, you're being exclusive and you're choosing to fight on losing ground for no reason. We have all the winning ground in the world. So, and Dan, the other problem here is the right-wing, when you have someone that agrees with them a little bit like Chris Rock will take big potshots at Republican white males, et cetera. But then he'll agree a little bit on cancer culture. And the right-wing will say, that's it, Chris Rock's one of us, right? On the left-wing, we have the exact opposite situation where somebody could fight for you for 200 years in a row. The minute they don't agree with the most extreme thing you've ever said, that's it, we're cutting them off their right-wings, their fascist, their transphobes, et cetera. We gotta win elections so we can protect the LGBTQ community and all of us. Cenk, my brother in Christ, if we thought that you were fascist and we wanted to cancel you, do you think that we would have engaged in the first place? Like again, I understand that you've been doing this for a very long time and you feel as if you are owed the benefit of the doubt more than what you're receiving. I'm sorry if you feel attacked. Like, I've got respect for you. I've watched UIT for more than 10 years. I've been on the network myself for six years. But with all due respect, you are wrong here. And I get that you don't like to back down. And you said this, like I'm not somebody who backs down. But that's not something to be proud of. That's a flaw. That's you letting your ego get in the way of good faith criticism from your friends.  It's a non-issue. So all we're saying is you should know that your emphasis on this lends credence to the rights claim that trans activists are unreasonable and they're trying to erase women and tone police everyone. We're simply asking you to do better and for two seconds understand that you are unwittingly helping the right in their propaganda campaign against trans people.  It comes from a place of love and respect. Again, I wouldn't engage if I had no respect but because I respect you and know your position that's why we're all engaging. And sometimes you get a little bit heated but understand it all comes from a place of love.  And at the end of the day, what I want to emphasize here is that we have to pick and choose our battles and dying on this hill is just dumb. And when it comes to Cenk refusing to budge, understand that he was also in my position currently because last year I did a video where I talked about Wolfpack, right? And Wolfpack activists felt as if I misrepresented the organization because of a specific article that I cited. Cenk reached out to me and he was very polite and he said, Mike, Wolfpack activists think that you kind of messed up here. Maybe you can bring on someone from Wolfpack to talk about this and correct the record. And of course, I was a little bit defensive. I was like, what? How did what I say offend them when I feel like I'm pretty educated on this issue and my history of support for Wolfpack should speak for itself? I was defensive, but ultimately, do you want to know what I did?  Because sometimes you've got to put aside your ego for the greater good of the movement. And that's all that I'm asking Cenk to do here. That's all of us are asking Cenk to do in this particular moment. But with that being said, I still don't want to cancel Cenk or Anna. I just think that once in a while as political commentators with really large platforms, we have to take the L, we have to humble ourselves and again, acknowledge that we're not main characters here. We're trying to be advocates for a movement and sometimes maybe we don't represent the movement in the best way. All we do is correct and do the best that we can and try to do better. Even if you don't agree with us at a minimum, all that I ask is that you realize that our criticism came from a place of love. It was good faith. Ultimately, we're just trying to get you to do better because we know that you're capable of doing better. And I think that there does need to be a conversation that happens offline between all of us where we kind of just talk this out and explain to each other where we're coming from. Because again, as I said, we're kind of just talking past each other at this point and public discourse isn't necessarily going to get us to see each other's positions at this point. But again, I understand the defense of posture. I get it, we're all human beings.  As I said, it comes with a job and it's a necessity for anyone who genuinely wants to make the world a better place. And I believe that Cenk and Anna both want to make the world a better place. I believe that they both care deeply about trans people. But sometimes we get in our own heads and we become incapable of the centering ourselves and listening when that's what we desperately need to do. So it's not about agreeing on 100% of the issues or being overly pure or trying to cancel people. It's about holding each other accountable when we inadvertently cause harm to the movements that we purport to support. And we're only human beings. Sometimes emotions is going to cloud our judgment even if we try to be as logical as we possibly can. But when we have giant platforms, if there's so much at stake, we can't allow our egos to do that. And we have to put that aside for the greater good. So I don't know what else to say about this. I'm sure that we'll talk about this more on the leftist mafia, but that's what I needed to get off my chest. I just feel like I don't want to be perceived as somebody who's trying to cancel them. I don't want to come off as like an attacker who's trying to pile on. I just respect them. And because I respect them, it's inconceivable to me that they would be on the wrong side of this issue and I want them to be on the right side of this issue or at least see our issue, my issue with their take here in particular, but there's nothing left to be said at least from my perspective here. So the best thing that we can do is try to listen to each other and just move on and not give the right a dub here that they don't deserve.


What's going on guys got Kyle here late sports guys were up in 23 first up the line prism It's just three box break number one random team style did a randomized for the break guys. Let me show you the results real quick I had Kyle in with the Panthers down to Christopher I broncos. Good luck here guys. Let's do it Yeah, Jason we sold out on prism before I even went live today. It's a new release today So yeah, I'm very happy about that Yeah, man, I like those jerseys the tutty so far already. Oh, it's 20 to 7 already told you to start them Hmm. All right guys box one Let's see it. Let's see it first off the line. Yeah, that was nice, man Love it. There's still some for the rest of the weekend too guys. We are looking to grab some spots Get them up for the rest of the weekend here. See what we got silver Fred Warner lockdown and First auto is gonna go to the Commanders on the purple power. That's gonna be Chris Rod Regas start their commander C rod on the auto C rod purple power to 49 on the auto and start their commanders We have an Aaron Donald purple to 125 rookie camp Smith and rookie Dorian Thompson for the Browns. Yeah, they're flying man. I love it Got a rent shimmer your first first up the line exclusive got a silver ps2 And red shimmer is gonna be Jamo Jamison Williams there for the Lions first first of the line exclusive to 35 Jamo for the Lions got Tank Bixby and Zach Harrison rookies Say portals that one's gonna be Trevor Lawrence Portals got him at the Clemson and the Jags there Portals and a Joey Porter Jr. Nice one there on the camo For the Steelers that is the 15 I said a low number Joey Porter and Jackson Smith on the base. Are you a number one Roman? I don't have a Roman in here Yeah, I don't have a Roman C in this one number one You'd be under a different name potentially silver Cleo Mack and orange is gonna be AJ to rel for the Falcons That one is to 249 Got Elijah Dotson and Deontay Banks Sean Watson Are watching flacka like what the heck this guy's better than me this guy's better than me. Yeah, he is silver Oh, that's a black shimmer already. Oh boy 101 101 black shimmer already come on Jalen hurts silver Wait is it this way? It is gonna be luxurious need on the 101 for the chiefs Start us off with a black shimmer already Nice one there chiefs hands of city. That'll be Anthony and Getting our first 101 black shimmer Legerious need good corner for the chiefs Get that in a Mac All righty good start there Luke Musgrave and Diaby Yeah, I like those shimmers man. Those are fire. Hey, what's up, Brennan? What's going on It's an emergent silver Ken Walker and blue shimmer is gonna be a Miles Garrett to 199 Will McDonald Derek Henry fireworks and red Luca Van Ness to 149 Zay flowers rookie and a chain he each ain't that's right, Sam What we do Sam? That's what we do. No problem starting there. I'll start with a 101. That's straight There's a red shimmer auto. That's gonna be Kenny pick it Nice one there Steelers On the first up the line exclusive auto second-year Kenny Kenny got red shimmer brine breeze. That's another first with the line to 35 saints There's Bijan Bijan silver rookie Chris Rodriguez and blue shimmer is gonna be a Miles Murphy to 199 Sam La Porta rookie and a weather spoon bet with Sam Should be a bet with Sam. We're gonna win man. There's an aquaco on the hyper that one's to 175 Chase Brown Kendra Miller Here's a blue shimmer and it's gonna be Marvin memes nice one there on the rookie for the broncos when it's the 25 blue shimmer mims Washington There's a hype. I'm in raw. That's a sick one and gold in gold What is it that way? I'm in raw hyper and gold is gonna be dat win Dat win there on the goal for the cowboys one out of 10 a throwback goal Cowboys number to 10. Very nice one there Got a bonaconda and luca van ness All righty guys that'll do it for box one Sean's on uh Sean's on a tear now Everything all right box two Joe flacco is elite. I don't disagree. He is I don't disagree Yeah, him and Elijah more of a nice combo. Let's think about touchdown from Elijah earlier silver touchdown of jaylen petrie or lockdown and a um orange john riggins 249 firing young darnel right Joe flacco, man Silver cleo herbert and blue shimmers mike all-stop fire the cannons that was number to 25 It's one there bucks You need to get flack of that max contract. There's will levis Take it back. I don't know about you man. I'm gonna go this to the 40-year-old guy. Yeah, it's playing better You just throw the ball jamar chase portals and um purple cracked ice ronde mo ronde lmore 225 Tanner mckay silver single terry and red hyper um green and yellow hyper is going to be jack campbell 175 there's jordan adison rookie for the vikings red shimmer coming Silver tana hill and red shimmer is going to be reshawed penny for the eagles the 35 at our first a r Richardson was on fit on How we doing? Boston tied it already. Oh man. God. Detroit man. Detroit. Here's a vijon fireworks on the rookie Purple is emet smith to 125 project jones There's a blue cracked ice sake one to 99 Roshan keon white. Yeah, that was quick. Uh Oh gold shimmer Gold shimmer and it's nice. Justin jefferson. There we go. Uh vikings The best receiver in the league right there. That's gonna be eric. Nice gold shimmer j jadad at a 10 seven out of 10 Fair. Yeah, shawn's a uh, not so happy, uh fantasy owner of him. So I'll cure that there There's a puka a nice one there silver rookie. There we go ramps pukin akua And at 25 we got a blue shimmer auto michael pitman Nice one there a very good receiver for the cults 25 and a 275 tyler smith Nolan smith and there's our first cj cj stroud on the base rookie blue ice them are hamlin that is 299 jaren hall rookie luke schoonmaker Time goes up and red shimmer is going to be darnel right to 35 rookie bears Hey, what's up rich? That's that's not wrong. There is davis I've been finding them recently Wherever they're hiding. Oh, there's a prismatic george kiddo. That's clean-looking like that one prismatic kiddo and no offense on the green scope And it's the 75 There he is Little different All right guys box three here Good luck. This is f o t l um three box number one About six of these tonight, and then we do a divisions. Good luck. Good luck Silver jk dobbins. There is the 275 cow pits Dontevian wicks jackson smith rookie The seahawks that is a one-on-one higley It's a legerious need one-on-one First three boxer. We got one Keep it going First three boxes. We got one Merchant chase. There's a miles Garrett There he is shansboy to 225 Watson daunte banks Yeah, I did notice that higley the uh checklist not out yet Silver jalen petrie and a 35 rookie is giants red um red uh shimmer of air gray 35 luke musgrave uh diaby I don't know. No idea. There's a cj fireworks Texans And light blue on the wave is going to be mike will 199 Mike will made it. Is he a bonaconda? Try and send me trying. I'm trying today Gold It is a lockdown goal max crossby for the raiders Taking down a old ma homie there nice one raiders Max crossby another guy who's built different. He's played every snap I think for the raiders on defense pretty much Gold to 10 or they're like it was like five games or something you played like every snap and They're like no other player in the league has played one game 49 there rookie. Um Deontay banks purple power Yeah, that's why uh, that's why peasant pedon don't like it so much feel that, huh feel that how's that Face it's a blue shimmer Coming up auto this one's going to be Byron young Byron young on the rookie auto there for the raiders again Refractor rookie auto and this will be a joey bosa 49ers to 25 on the blue shimmer photo exclusive Hank bigsby and Zach Harrison I'm on now prismatic Kelsey on the base and brian breece 25 on the rookie blue shimmer brian breece Felix is zama orange almost thought it was gold To five wow for the uh packers. We got a green shimmer auto of breath bar It's not expecting a green shimmer nice one there five of five Old gun slinger Nice one there pack Five of five on the farf you got an orange right behind it will mcdonald for the jets to 249 And there's brice young Jane reed silver rookie is tyreek stevenson bears And purple ice the little color matches curco her cousins to 225 vikings John ski quintin johnson rookie Does that signal for a second New york's that in that trouble Send in for bruce wane. There's a h.a. terrell another red shimmer that one's at 35 First up the line exclusive jaylon carter shawn clifford Malt and yellow hyper There's a throwback uh silver prism that's going to be dan dimes Or the giant's little throwback prism Got a hassan reddick and a 275 that's going to be trey tuckert rookie raiders Overshown at will mcdonald and last pack There's a hype uh refractor that one's going to be our silver of jaylon hurts And purple's going to be swag tuck for the ravens another color match there to 125 Ravens on the tucker. We got a ze flowers and on the back to von a chain Alrighty there guys, that'll do it for the first three boxes You do a quick head recap and then we'll do the second two golds and a one-to-one not too bad for the first three Blue ice we had damar hamlin um seguan barclay almond rock dallas mavericks denis rodman Oh, man There's a no offense That one's not sam. It's 75 chris Deontay banks there to 49 235 jameson williams brian brice eric gray Um brishad penny and darnel right to 25 blue shimmers. We had nick bosa marvin mims brian brice mike all-stop to 15. We had the joey porter camo Gold we had a datwin gold shimmer justin jefferson and a gold lockdown was going to be max crossby All right, it's And we have autos. This is a vibrant young rookie a silver auto Blue shimmer to 25 michael pittman Red shimmer to 35 can you pick it? There's a sea rod to 49 and to five breath far with a pack Then we had a one-on-one for the chiefs. It was legerious need One of one um black shimmer Nice one there chiefs love the black shimmers, man All righty there guys that'll do it for um number one Good luck. Good luck. Give me just some moment guys. We'll get number two going