Welcome to the last session of EuroCrypt. So the first talk is Automated Unbounded Analysis of Cryptographic Constructions in the generic group model by Miguel Ombronage, Hilbert, and Benedict Schmidt. And Miguel will give the talk. Hi. Thank you for the introduction. OK, I would like to start by talking about our goal. We are interested in building a tool that on input a cryptographic construction and a security notion, automatically performs an analysis and outputs either the scheme is secure, and in this case, we also want a proof of security, or the scheme is insecure. Of course, we cannot hope to solve crypto and build a perfect tool that can work for every scheme. And we will focus on a particular framework that I'm going to talk about in a moment. But first, let's talk about the motivation. In my opinion, there are two reasons to build automatic tools. The first one is that pen and paper proofs are tedious, are really hard to write, are difficult to review, and in fact, they can contain errors. And in practice, there are some examples of published papers with invalid proofs. So here, I give a reference to this paper, because in this one, you can find invalid proof in the generic group model. The second reason is what we call synthesis. With automatic tools, we can generate hundreds of schemes and analyze them automatically. And then for those that are secure, we can select the best ones in terms of simplicity or efficiency. So in this work, we are going to focus on computational experiments instead of decision-like experiments. So in particular, there is an adversary that has to compute some value. And for that, he will have access to an oracle that makes some hard computation for him. And the main contribution of this work is that we can prove security, even if this interaction with the oracle can be done an unbounded number of times. We also are going to focus on constructions defined by linear groups. And the proofs will be in the generic group model. So if we look at related work, there are tools to do a similar analysis, like the generic group analyzer that allows you to prove the security of assumptions. And also, it's an extension where they also can deal with interactive assumptions and constructions. And in fact, they do synthesis on structured preserving signatures. But these tools have limitations. The first one cannot deal with adaptive adversaries. And this is not a problem in the second tool. But the second tool can only produce proofs for a fixed number of queries. So the interaction with the oracle has to be bounded. And in fact, in practice, if you want the algorithm to terminate, this number has to be small. So depending on the scheme, it can be between two and five queries. So of course, this is far from real security. In practice, we want to reach unbounded security. So our contributions are methods to reach both to can deal with adaptive adversaries and also to produce proofs for an arbitrary number of queries. For this, we develop methods to automatically do this. And we also implement them. And you can find them in GitHub. It's open source. Now let's talk a bit about bilinear groups. A bilinear group consists of three groups of prime order. The first two are called the source groups. And this one here is called the target group. And we also have a map, a bilinear map, with this property here that roughly speaking allows us to compute a multiplication in the exponent with the limitation that we are given an element in GT. And this is useful, for example, to build signature schemes where the scheme is defined over G1 and G2. And then the map is used to check the verification equation that is done in GT. I also want to talk a bit about the generic model. This is an idealized model where the adversary is supposed to not be able to exploit the representation of the group. And this is done in this way so he has access to handles instead of group elements. I'm going to show you an example. On the left side, we have the adversary. On the right side, we have an oracle that implements a group. And the adversary may ask questions like, OK, give me a generator. The oracle will compute a point in this group that is a generator. And we'll create a handle pointing to this group element. And the adversary will only be given this handle. Now he can still ask questions like, OK, give me the handle one times itself. The oracle will see that handle one points to G. It will compute G2 squared. It will create a new handle to this point. And it will return the handle. So in this way, he can still compute more things, but only using handles. And we also allow quality checking. So for example, if two handles point to the same element, quality checking should be successful. OK, so this is not the standard model, but still there are some reasons to work on the generic group model. One of them is that it gives minimal requirements for security. Everything should be secure in the generic group model. Otherwise, there exists an algebraic attack, and you should not use that construction. Another reason is that for some groups like elliptic cures, the best known algorithms are generic. And also because in the generic group model, we can prove lower bounds and build optimal constructions. And this is something that is not that easy to do in the standard model. I'm going to talk only a bit about this. So the idea in automated proofs in the generic group model is that we start from, so the security experiment is translated into algebraic conditions. And these conditions can be checked automatically. And the important thing is that we can really derive security by analyzing these conditions. And we don't need to rely on additional assumptions like in the standard model. So in fact, in the generic group model, you can directly prove security by analyzing these conditions. So as I was saying, the adversaries strategy can be seen as the election of some parameters. And if these parameters verify a system of polynomial equations, then the scheme is insecure. There exists an attack. On the other hand, if no election of parameters can satisfy all the equations, the system is secure. So just to compare previous work with our work in previous work, the number of queries was fixed. So they had a fixed size system of equations, but an exponential blow up in the size of the system. And they could analyze the system using S&T solvers and computer algebra systems. With our approach, we want to reach unbounded security. And for this, we need a different approach. And we have a grammar that includes these big ops, like summations for all quantification and existential quantifications. And to deal with this, we need to define our own rules to simplify the system. I just want to give an example of a scheme that can be analyzed with our tool. And I'm going to show also the security experiment. So let's assume we have a valiant map. We sample two group elements. In set B, it is going to be the secret key. And we feed the adversary with the public key. Now, the adversary has access to a sign in Oracle that an input and message is going to compute a signature. And this is done in this way. So the Oracle samples some randomness and returns three group elements corresponding to the signature. This step can be done several times, in fact, an unbounded number of times. And then the adversary has to come up with a forgery. And a forgery is a message and a signature that consists of three elements. So now, the adversary wins if this forgery satisfies the verification equations. And we also require this thing here. That is, of course, the message. The forgery message has to be different to those sent to the Oracle. So now, this is the security experiment. And as I said, we can translate it into algebraic conditions. So I just want to give the intuition of how this can be done. So first, we need to look at the elements that the adversary knows in G1, those in yellow. And the elements that the adversary knows in G2 in green. So he can use elements in G1 to produce, for example, this element in the forgery, because this one has to be in G1. And he can use the green elements to produce the other three. And this is done as a linear combination of the elements, where he can choose these alpha parameters here. And the same for the other elements in the signature, this time only using elements in G2. So now, as I said, this forgery, to be a forgery, it needs to verify some verification equations, and in particular, this one here. So this is only anomaly expressed in the same thing with deluxe. And this equation can be translated into this equation here. I just want to point out that we have parameters that the adversary can choose. We have variables. And this equality must hold for every value of the variables. And then we have a special term here, which is not a parameter, but it's also not a variable. And because the adversary is adaptive, this is, in fact, a polynomial. But the shape of this polynomial depends on the adversary's strategy. So this will be a problem later, I'll show you later. So the idea is that from the security experiment, we go into winning constraints. And we have a theorem that says that if the winning constraints cannot be satisfied, then the security experiment is hard and the scheme is secure. So now, what we do is we build methods to automatically analyze these winning constraints. This is the grammar that we are using. I am only showing it to show that we need the big ops, like the summation, the forward quantification, and the existential quantification. And I'm going to talk a bit about the constraint solving rules. The idea is that we start from a system of equations and we apply a rule that is going to split our system into smaller systems. And we want the rule to be sound. This means if this system here has a solution, then we want that at least one of those have a solution. I also want to point out that these rules may not split in several cases, may go from one system into another. And we also consider the case where they go to the empty set. And for us, this is a contradiction. This is our goal. We want to start from a system of equations and go to the empty set. So the idea is that the proof will start from a system of constraints. And it will consist of a proof tree where we split every constraint into smaller constraints until we can find contradictions. And contradictions for us are one of these two equations, 0 equals 1 or 0 equals 0. And the idea is that if we can find a contradiction for every leaf node, we know that the original system has no solution. And this is a proof of security. So now I will explain a bit the most important rules in our work. So we have equivalences between equations. And this is only to simplify every system into our normal form. And then we have this Gromner-Basey simplification, which is really important. And the idea is that it allows us to simplify systems of equations using the relation between the equations. But as you can see, we cannot apply Gromner-Baseys to this thing here because we have these big ops. So for doing this, we make an abstraction and we do it in several steps. I'm going to show you just the intuition of how we can do this. The first step would be to make a common for all quantification and also to permute some of the indices. For example, this equation here has been permuted. And we also have this one here. Now we create a translation into new variables. And after this translation, we already have a system of equations that can be analyzed with our Gromner-Baseys algorithm. And reducing it into a simpler system. And now we can undo all these steps, going back to a system that is equivalent to the original one. But it's simpler because we have simplified things. In practice, this Gromner-Basey simplification is more complicated because we also have to simplify inside some equations. But this is just an intuition of how it works. We also have the coefficient abstraction. This rule is also really useful. It allows us to derive new equations. So for example, it's as if we have an equation like this one, which is a polynomial on the pink variables. We know that the coefficient of every monomial in the left-hand side has to be equal to the coefficient of every monomial in the right-hand side. So for example, the coefficient of 1 in the right-hand side is alpha 0 has to be equal to the coefficient of 1 in the right-hand side, which is beta 0. So thanks to this rule, we can add new equations. And we can do this for more coefficients. But I'm lying a bit here because there is this term that, as I said before, this is not a variable. It's not a parameter. This is a polynomial. And in fact, the shape of this polynomial is unknown. So in fact, if this polynomial has one of the monomials is 1 over v, then we will have a cancellation here. And in fact, the right-hand side will have an additional term for the monomial 1. So now the nice equations that we had before is not that nice because we have this ugly thing here that we don't know how to quantify. But in fact, there is something we can do which is to prove that this monomial 1 over v cannot appear in the polynomial Mi. This can be done by solving an integer linear system. And this step is done with S and T solvers. And if we can do this, then this term disappears. And we have, again, the nice equation that can be combined with the Engravener basis simplification to simplify the system more. The last rule I want to talk about is the case distinction. This is done on parameters. Let's assume we have a constraint system dependent on this parameter rho i. And we split it into two cases where every case has a new equation. In this one here, the new equation is for all indexes, this parameter equals 0. And in the other case, we want the negation because we want to be exhaustive. So by doing this now, we have two simpler systems. And this is, of course, simpler because now this parameter is going to disappear everywhere. And this is also simpler because now we can divide by rho i star since it's not 0. To conclude, I want to give some details about the implementation. So our algorithm takes an input file that looks like this. I just want to show that with only a few lines, we can describe the security experiment and the scheme that I showed you before. And our algorithm is going to perform a proof search, applying the rules in a smart way. So the idea is that there is a lot of freedom on how to apply the rules. And what we do is to define a heuristic algorithm that is going to do things like, for example, whenever we want to make a case distinction, it's going to do the case distinction in the parameter that appears more in the system with the hope that we can simplify the system more. So the output of our algorithm would be something like this, where we can talk about three parts. So we have an initial goal that, after being simplified a bit, was split into two cases with a case distinction in this parameter. And the new two cases could be simplified into a contradiction. So this is a proof of security for the scheme that I showed you before. We evaluated our tool in real examples. Here, you can see the scheme that we are analyzing, the security notion, and the time to prove security. And I want to say that the first set of schemes are assumptions. And this can be already analyzed with previous tools. But for message authentication codes and signature schemes, our tool is the first one that can analyze them automatically and prove unwanted security. And we also did synthesis, so based on the previous synthesis in the generic group analyzer. And we compare our algorithm, which is in this column, with the previous algorithm proving two times security. So this is the number of schemes that are proven secure, two times secure with the previous tool. And this is the number of algorithms that are proven secure with our tool. Of course, this notion of security is stronger. But as you can see, we cannot prove security for all of them. And we don't know if this is because, OK, it may be because some of them are two times secure, but not three times secure or more. And it also be because we are solving a computationally hard problem. And in fact, we have a timeout. So our algorithm had to stop, and it could not prove the security. So just to summarize, we developed methods to automatically prove constructions, security of constructions in the generic group model. These methods are open source, and you can find them in this link. And we also evaluated the performance in real constructions and synthesis schemes. Thank you very much. Any questions? Is it the case that if the solver terminates and says it's insecure, that it actually reveals an attack as well? Sorry. So sometimes you couldn't prove things because your tool didn't terminate. But if it terminated saying it's insecure, does that also reveal an attack because it's a solution to the equations? It depends on the scheme. So for some schemes where we cannot really apply any of our rules, that can mean an attack. But for the other schemes where the timeout was stop the algorithm, we don't know. So yes, you can derive attacks, but this has to be done manually. We don't have support for deriving attacks. I mean, if the algorithm does not terminate, you can check it manually and look for an attack. But our tool is not going to give you the explicit attack. Any other question? So your tool currently does computational problems. Do you have any idea if you can extend this to decisional problems as well? Sorry, it has computational problems. But are you planning on, do you have any idea if you can extend this to decisional problems so that you can do things like encryption schemes? That's a nice question. So I don't know. It seems that we need a different approach because I don't know how you can. So you need to find a way of translating a decisional assumption into a winning constraints problem. And otherwise, you need to use a completely different approach. So I don't know. That could be the next step. Thank you. So any other question? No questions, so let's thank the speaker again. Thank you.


Instagram is basically the perfect gateway to creating positive touch points. Touch points are interactions that your customers have with your brand. The better and the more positive touch points that people have, the more likely they're going to buy from you. The more likely they're going to turn it into loyal fans. For example, with Starbucks. When you see someone holding a cup of Starbucks with a smiley face, then this gives a great touch point. Another example would be when you hear about that new flavor from your friend, tagging this new pumpkin spice latte. That's another great touch point. Or if you see a new campaign that Starbucks is doing, which is very creative, that's another great touch point. And all of these touch points, they add to the willingness of you taking out your dollars to spend with Starbucks.


Hello and welcome to the lecture on dynamic host configuration protocol packet format learning outcome of the session by the end of the session student will be able to describe packet format of dynamic host configuration protocol used in computer networks during last lecture we have seen what is DHCP normally which kind of information is needed by the host to communicate over a computer network how DHCP work when client and server are on the same network and how DHCP works when client and server are on the different network and with the help of relay agent we have also seen what was the need of DHCP and one point to remember is the DHCP request message is generated by the client to the server and DHCP server respond to the DHCP message received with DHCP reply to start off with a packet format in figure one you can see the DHCP packet format the DHCP packet has different different 15 fields all together it has a maximum length of 300 bytes we will discuss each field in detail the first field is opcode or operation code field this is a 8-bit field this field defines the general category of the message the message could be a request message or reply message if this field contains a value 1 then the message is DHCP request generated by client and if this field contains value 2 then the message is reply from server to the client the next field is hardware type this field is also 8-bit field this field defines the type of physical network different physical networks are there like Ethernet, ArcNet and ATM this field contains value 1 if the hardware type is Ethernet the next field is hardware length this is also 8-bit field which defines the length of physical address in bytes for example if the network is Ethernet then as we know the hardware address of Ethernet network is of 48-bit means 6 bytes so this field will contain 6 the next field is hope count this is also 8-bit field this field defines the maximum number of hopes the packet can travel in the network the max count is set and as the packet travel from network to network this count is decremented by once once this count reaches 0 or becomes 0 the packet is discarded the next field is transaction ID this field is of 4 byte length this field carries an integer value this field is used to match a DHCP reply with respective DHCP request the server returns the save value in its reply it could be a case that DHCP client may generate multiple request messages this transaction ID field is used to identify or match the respective reply received to the respective DHCP request the next field in the packet is the number of seconds this is a 16-bit field this field indicates the number of seconds elapsed since the time client started to boot the next field is flag field this is a 2 byte or 16-bit field out of 16 bits only the leftmost bit with pink color shown in the figure number 2 is used and the rest of the 15 bits are set to 0 if this first leftmost bit is 1 then the message is forced broadcast from server to the client which is a forced reply if this field has value 0 then the message is a unicast reply from server to the client if the reply has to be unicast then the destination IP address field in the IP packet should be the address IP address of the respective client but as the client do not know its own IP address it may discard the packet however if we broadcast the IP datagram then every client will receive and process the packet the next field in the packet is client IP address as its name implies it contains the client IP address and this is 4 byte long field if client does not have this information means if client do not know its IP address this field has the value of 0 the next field is your IP address this is also 4 byte long field this field contains the client's IP address this field is always filled by the server only in the reply messages the next field is server IP address this is also 4 byte field this field contains the IP address of the DHCP server this field is also present only in the reply messages and filled by the server only the next field is gateway IP address this is also 4 byte field this field contains the IP address of a default router this field is also present only in reply messages and filled by the server only the next field is client hardware address this field contains the physical address of the client this physical hardware address of the client is explicitly supplied by the client in the request messages itself the next field is server name field this is a 64 byte long field this field is optionally filled by the server in the reply packets this field contains the domain name of the server with a null terminated string if server do not want to fill this field then this field must be filled with all the zeros the next field is boot file name this is a 128 byte long field this is also optionally filled by the server only in reply packets this field contains the full path name of the boot file terminated with null string this field is used by the client to retrieve the other booting information if the server does not want to fill this information in the field then the server must fill this field with all the zeros the next field is option this is a 64 byte long field this field is only present in reply messages this is not present in request messages once the client finishes reading the information then it looks for a magic cookie magic cookie is nothing but a number which is represented in dotted decimal format just like an IP address the magic cookie has a value 99 dot 130 dot 83 dot 99 if this magic cookie is present in the reply message then the next 60 bytes are options this option field is composed of three subfields the first field is tag field second is length field these two tag field and length field are one byte long each the next field is value field it has variable length the length field with a yellow color represented in figure number three defines the length of the value field it does not indicates the length of this whole message we have tabulated some tags and length and the value field options suppose if we have tag of zero then this zero tag is used for padding purpose which is used for alignment and which is just one byte long the tag 255 indicates the end of option field the vendor may use tag from 128 up to 254 supplies specific information of the vendor and the rest of the tags from 1 to 53 are used for different different purposes these are the references thank you


Welcome again. Here is the last talk of today from the analysis testing and automation track. It is called Up Your Game with OpenShift and it is presented by Manuel de Voel. It's yours. Yeah, thank you. Thank you for that introduction and welcome everybody to the last session of today. I hope it will be at least a bit fun, but if not there is a game in it, so probably that game will be at least fun. So you will see. My name is Manuel. I'm working as an SRE at Red Hat in the OpenShift dedicated team. We are running basically OpenShift clusters for our customers, both Red Hat internal customers, but also external customers. And in addition, why I got in touch with that topic at all is I'm writing a book about that operating OpenShift and for that, I was digging into the different possibilities that there are to build and run software in OpenShift. So if you end up liking the game and you would like to see how we deployed it in all the strange ways you can think of, that book might be something for you. You can take a look at my Twitter. So you want Mr. Lee State if you want. On this slide, I have all image sources so you can scroll back to this slide if you're interested in where I got those images from. And now let's get right into it. So first let's set a bit the scope of this talk. Do I expect you to be a proficient game developer? For sure not. But should you expect me to be a proficient game developer? Also probably not. As I said, I built this game mostly out of curiosity for how game development works and because it was a great example for something that you can build from scratch and you can deploy to an OpenShift cluster. You can build multiple services for it and deploy them. And it's very fun to create a game using open source technology. And games are not something that you typically find deployed to an OpenShift cluster. There are more like business applications, small web services deployed. And so it's something pretty unusual to deploy to an OpenShift cluster.  The game I built doesn't require such a crazy gaming machine and it may look a bit familiar. It's actually running on one of those OpenShift dedicated clusters and it should be able to run on your phone. So that should have enough compute power for that. So while I was working on that, I wondered how do people nowadays even create browser games like some game that is running in the browser in the end? How does the workflow of game development look like? And I don't know how the gaming industry actually works, but I know how I would solve this problem. And I would solve it in a similar way that I solve other software deployments and that is with a CI pipeline with a continuous integration and deployment pipeline. It turned out that there are a handful gaming engines and I chose one gaming engine which seems to be a bit familiar, seems to be a bit more famous in the open source gaming community. And that's the Godot game engine. The Godot engine allows you to build games with what you see is what you get, scene editor and you can create 2D scenes and 3D scenes and so you can design your UI and then you can write the actual logic of the game using the Godot scripting language or even other languages that are available. And then when you build that game, you have only to build it once and then you can compile it to Linux, Windows and Mac binaries also to mobile apps and you can also make web apps out of them which are then running using WebAssembly and WebGL. And that's what I did for the small game. So now let's see what it means to change that game and to deploy that game to an OpenShift cluster. So we'll actually do a change now live to that game while I am deployed to the cluster. So during the talk you should see the UI change a bit. For that I'll switch to the Godot interface here. I hope you can see that. And here is the interface and the change that we are doing is we will make that snake that's currently just red and we are hunting like blue apples. We want to make that a bit more DEF CON themed. So we'll change the color of the snake from red to purple and the target we will change from that blue bubble to a DEF CON themed target that we want to collect for that. There is already everything prepared. We just need to change in that script here the tiles we want to use. That should be an easy change. Please don't judge me by the amount of global variables we have here. It's really the first game I ever built with Godot. Okay so now you can see it has the DEF CON theme and now we want to deploy that continuing the talk to OpenShift. For that let's first see how that change actually looks like from a Git perspective. So that game is a Git repository and we can see that so far we only changed that script and if we now use Godot and export the game to HTML5 we can do that. We can export the project here to HTML5 and then it will create an index.html file alongside some web assembly files that we can then put on a web server. So we can do that export here and when we then go back to Git we will see that there is the export here. But now everything on OpenShift is running in a container so how would we get those changes into a container? Of course we could create the container and copy everything just into the container but that's not how I imagine a good deployment pipeline for a game that a developer would need to commit the compiled game basically. That's the binary game to the Git repository so we can then build a container out of it. Instead we would want to commit only the source code, the script that we changed and the CI should build the game and deploy that new game to OpenShift. How do we do that? The first thing we need is we need something that can build the game without running that Godot game UI and luckily Godot has a headless version available where you can just run a command to export the game to whichever target you want and that's what this command here does in that docker file. There is even a container image available which we can use which contains everything we need to do that export. In this two-stage docker file here in the first stage we're compiling the game and in the second stage which is derived from Nginx a web server we can just copy the exported game from the first stage to the second stage and have the game available in the outcome container image. That means Godot doesn't need to be available in the game container that we built but just in the compilation container which makes it smaller and doesn't have so much overhead things that we don't need in it. Okay so let's do that. We can go back to the terminal and you can see that there is this docker file here and we can use that docker file now to build a container. So we use podman here to build a container and also to run it. That container is running so we should now be able to see the game in the browser and there we go. There is the new game with the new defcon theme. Great. But still we wouldn't expect developers to do that right. We don't want them to build the container on their machine and then deploy that to OpenShift or commit it to a registry and then something else would deploy to OpenShift where are my slides. What we want is some CI should do that run that docker build for us and that's the icon be running on OpenShift as well. There is built-in infrastructure in OpenShift that you can use to build such containers. But we want to go one step further now. We don't want our go.developers to even think about building a docker file. We want OpenShift to create only from the source code of the game the game container image and that's possible using the so-called source to image feature that's included in OpenShift. With source to image, OpenShift is even able to detect from a Git repository or a folder which kind of programming language is used and get the right builder to compile and run the application that we're building. So for example if you have a Git repository with a go.mod file OpenShift will detect that this is a program written in go and will use a builder image for building go applications. Source to image supports a variety of languages like Ruby, Node.js, .NET, Go, Python, Java and PUL. I couldn't find out if I can use the Java logo so I ended up using that cup emoji. Sorry for that. But there is one programming language missing here and probably you have already guessed which one it is. It's go.of course source to image out of the box doesn't support go.dot. So let's see what it means to create a builder for source to image for go.dot. The builder itself is a container image, the so-called builder image. So that's what we need to build now. It's an and the game container that source to image will build as output is then based on that builder image. So how do we build that now? That's a different Docker file and that's what you see on screen now. In that Docker file we have again a web server which can then run the game. So that's what we install here, the go.engine and then up sorry that's the go.engine that we need to compile the game and up here is the web server that we need to run it. So there you can already see the difference between the two-stage Docker image. For this builder image we need everything to build but also to run the game. And in addition we need to provide scripts which are then used by source to image to build the container image by telling it which script should be used to run the game and which script should be used to build the game. And this is how the scripts look like. They roughly compare to the two stages in the Docker image. The left one is the assembled script which is used to build the game and the right one is the script which will be the entry point of the container. So that will run the game. Okay, so that's what we'll do next. We use that Docker image, that Docker file and build a builder file for go.games. So let's stop that here. Okay, so first of all we're connected to the cluster and we'll create a new project here so I don't interrupt your gaming experience. I see already some high scores popping up here. And in that new project that I just created we will now create a new build and now I need to go to the right directory. So there is the Docker file for the builder. Again, this is we will now build that image and I can do that right now but this is not building the game. It's only building an image that will be used to build the game and this can be distributed independent of the game. We can provide that image once and then game developers could build games using Godot, commit them and OpenShift could figure out how to build that. We won't wait until this is finished because this takes too long but instead we will now use one that is already available and that is in the namespace that you're currently using to play the game. So let's switch to that project here where the game is deployed and here you can see a build config for the game that we use and as you can see this is based on our builder image. So this is build using the S2I builder image that we provided here. What you can see as well here is a Wepo URL that I use in GitHub to automate the deployment of the game later on. So what we will do now is commit the changes to the script to the good repository and then watch them being deployed to the OpenShift cluster. For that, of course, I need to go back to the game directory and now I want to commit only the script and we push that to the Defconn branch. Okay, those changes are in now and now we should be able to see when we take a look at the builds, a new build which is now running, compiling the new version of the game that it just deployed to the good repository. And this build finishes. You can follow the log so we see when that's done the rollout of the new game should start. So here we already add the pushing state so the container image will be written to the cluster internal registry or not. Okay, it was a pull state, not a push. Now it's pushed to the registry so what we should see now is when we take a look at the deployments we should see that there is for the game which is called S3E, there is currently the rollout happening of the new version of the game. So if we now go to the browser, this is the old version and when we refresh here now we should see that the deployment has happened and we are now using the Defconn theme here. Okay, so let me switch back to my slides. Now that has happened but probably it's not all that you need for your game, probably you have a need for a more sophisticated pipeline and luckily OpenShift also comes with a full flash pipeline system which you can use to run all arbitrary kinds of pipelines like including running unit tests, running integration tests, the build, the deployment, deployment to different targets and you can even use the pipelines to verify PRs on GitHub for example before they are actually merged in. So this is all included with OpenShift. You can install Tecton by installing the OpenShift Pipelines operator from operator hub on your OpenShift cluster and then you will get a fresh Tecton deployment. The pipeline definition in Tecton is based on custom resources. So Kubernetes resources are leveraged here for everything in a Tecton pipeline. That's the pipeline definition itself. That's a single instance of the pipeline which is called a pipeline run. What makes up the pipeline, so different tasks in the pipeline, the event listeners that are triggered from GitHub for example and also triggers are custom resources. So you will end up when you write a pipeline in Tecton you will end up writing a lot of YAML and a lot of different resources but in the end you have also some declarative configuration that you can deploy to the cluster as you would deploy for example the deployment. So the last thing I want to just quickly show you the user interface of Tecton in the OpenShift console. So this is how the pipelines look like and as you can see there has been as well a build triggered from GitHub when we pushed to the central repository and that pipeline run was green and you can see the name of the custom resource of the invocation of the pipeline and you can see the pipeline itself and when we click on that pipeline run you get an overview here and you can even dig into the locks of that pipeline run. There's also a CLI tool for Tecton but I think as an overview of what you can do with it this is like the solution if you want a full-fledged CI. Okay so summing this all up when you have a simple use case like you have a simple application that's supported by SCI or a similar use case, SCI or source to image may be the right choice. However Dockerfiles provide some level of abstraction for building and running an application so you can use them with your container engine to run your application or your game locally and then you can use the same file to deploy it to a cluster and also they allow the two-stage builds which is a bit more complicated when you use source to image and in the end if you need a more sophisticated pipeline including the build test and deployment and probably to different environments or tests before merge probably Tecton is what you need to build your full-fledged pipeline. I hope that this allows you to like decide which way to go but the good thing is all this is already included with OpenShift. Okay so I see there are some people have played the game so let's take a quick look at the high scores here and okay I see a lot of scores and a lot of people have outperformed me. Dan doesn't count he's a colleague of mine so congrats I hope you enjoyed the talk or at least enjoyed playing the game. Thank you Manuel. I originally wanted to party over the weekend but it seems that I will spend time with Dockerfiles and OpenShift dedicated and I will have Pierre at home. This is very inspiring actually you know as of now we do not have any questions. I can I can say that I can maintain one game and when the deployment was meant to happen it I first need to pray you know make sure that everything works perfectly then I spent few hours and then it worked and this is this looks like a breeze so that's this is this is the future. So I don't know how like deployment of games actually works I hope they have something that makes sure no bugs go to production but who knows. Yeah all right do we have any questions oh yeah there to find a link to the game because it was only on one slide so maybe you can put it to the chat. Sure I can put the link to the chat again I will also turn down that cluster today your latest tomorrow so if you want to play do it now or you can also I can also share the link to GitHub so you can get it from there. Seems there are no questions so thank you a lot for the presentation Manuel and yeah enjoy your day and this was the last session of today or I believe for the conference so we will see each other tomorrow. Yeah see you tomorrow enjoy evening. See ya. Bye bye. Bye.


Our mission is to create a solar system model to scale, and we're going to be doing that using scratch. It's going to be a digital one. In the last video in this series, we went over to NASA and grabbed their planetary fact sheet. We imported some of that data into scratch, so we're going to get ready to use that. Specifically, we're going to blow up and travel down our planet so they're all in a relative size to each other, and we'll display that on the screen. And if you're a teacher or homeschooling parent looking for some solar system printable worksheets, then I've got you covered. Go check the description for a link to those. But let's get ready to scale up our planets in just a sec. Hello world, it's The Serving Scratchy here, teacher, server programmer, and I help curious learners just like you along on your learning journey. This video is part of a series on creating a solar system model in scratch. In the last video, we went and imported some data values from a NASA fact sheet into a list. Go check the description or the card in the top right hand corner for a link to that one. In this video, we're going to be creating some variables and some sprites that represent our planet. So I'm going to be using this diameter data. So let's get stuck into it. The first thing you notice with our diameters list here, we've got one, two, three, four, five, six, seven, eight, nine. We don't really know what these mean. So what I reckon we should go ahead and do is create a new list with the planet names. Before we create the list, I'm going to do a step before that that you're probably going to hate me for, but it's going to be great down the track when we're organizing this file and to reduce our debugging. So what I'm going to do is create a variable for each of the planet names. What do I mean by that? All right, well, let's just right click on this variable. We'll rename it. We're going to go all caps because it's going to be a constant. Then what I'm going to go ahead and do is go up to the backdrops. And when the green flag is clicked, we're going to set Mercury to Mercury. Now this text value, it doesn't really matter what you want it to be. It could be that nice capitalization there of Mercury or it can be all caps, whatever. We're going to go ahead and do that for each of the planets. Okay. So I've gone ahead and magic all these variables and map them to their names. You can just refer to the fact sheet to get the order. But here's how I like to remember it. So I like to start with Earth because that's where we're on. And I know the planet before Earth closest to the sun is Venus. And the one after it is Mars. I know the first planet closest to the sun is Mercury. I can just memorize that. And I know the last one all the way out there is Pluto. So to remember the stuff in between, which I personally find the hardest, is to think about MJ. So I know Jupiter comes after Mars. And I know MJ, that can be Michael Jackson or Michael Jordan, or some other memory device that you can use to remember MJ. And then I know what does MJ, Michael Jackson do? Well, Michael Jackson would sing. So I've got the S there for Saturn. And then I always get confused with Uranus. Yes, it's Uranus as well. But yes, I'm going to call it Uranus in these videos. And Neptune, I get these like mixed around. So I use Saturn here to help me out.  So that will give me the order of Uranus and Neptune. Now, obviously know that Pluto, our dwarf planet, that the end of this queue. But hang on, weren't we creating a list of all the planet names? Well, that's what we'll go ahead and do now. So I'm going to create a block for this. And I'm going to call it generate planet names. I'm going to generate planet names after we've set them all when the green flag is clicked. Give ourselves some space here. And yeah, look, this is a little bit painful, but we are going to go ahead and do it. So I promise you that this will significantly reduce the chance for errors in our project if we use variable names over string or text. So what are we going to add it to diameters? Well, we're not going to add anything to diameters. We're going to create a new list here. We'll call it planet names. So we want to name things to reflect what they actually hold. Good practice to just do the order here. Mercury to planet names. Let's duplicate. Cool thing is you can just right click on these. You know that Venus comes next. Let's duplicate them. Right click on Venus. Change it to Earth. Let's just duplicate those three blocks. After Earth comes Mars and Michael. Then we have Jupiter for Jackson. Do you know what comes next? It's S for Saturn. Okay, I'm just going to duplicate these three blocks. This is Uranus for the U in Saturn. And then we have Neptune. And lastly, we have Pluto. All right. I'm just going to blow this back up. Give ourselves some space here. The last thing I want to do before we add planet names is we want to delete all the values first. So we're just basically creating a new copy. Because if we don't do this, we'll keep adding to this list over time. So let's click the green flag. And boom, we've got all of our planet names in there beautifully. And now that we know all of our diameter values here and any other data that we import will be mapped one to one to our planet names. The indexes or the indices, they mean the same. Now we have our names. We have our data. It's time to create some planet sprites. Now you could just create one planet sprite and use clones. That's going to be a fairly complicated solution for what we're doing down the track. So we're just going to create a single sprite for every planet. Yeah, there's going to be some duplicate code in that. But that's just the trade off of simplicity. Okay. So let's go ahead and create our first planet. I'm not going to select now for this one. We want to make sure we're on vector. And I'm going to zoom right in. Getting it nice and close here.  And the planet that we're going to create is the planet with the smallest diameter. Do you know which one that is? It's our last little planet there. And it's called Pluto. Cool. So I'm just going to draw a really small circle and put it smack bang in the center. This is going to be our reference sprite. We're creating it this small because this is when size is 100%. And for the other planets, we're going to be changing the size of this sprite by the attribute of it. So let's rename it to Pluto. You can change the color. I'm just going to leave it purple for now. I'm just going to hide our lists there. And let's get Pluto in the center. And I don't know if you can see this. I'll zoom in, but there is a tiny little dot there. That is probably too tiny. I reckon I can blow this up a little bit bigger. I'm just going to hold the Alt key down on the keyboard to make it resize from all edges. And that dot is going to be great for our purposes. You can sort of see it and it'll give us enough room to move for our biggest planet, which is Jupiter. Okay. Now that we're back over here in Scratch, we're just going to go when the green flag is clicked, let's create a new block, call it set size. And let's just call set size as soon as the green flag is clicked. And what set size is going to do, it's going to blow up the size of the planet, not the planet, but the size of the planet to the relative value. And we're using Pluto as our standard, as like the number one. What we'll need to know for this, it's just some basic percentages and ratios. I'm just going to jump across to Sketchbook to explain that a little bit more in depth. Okay. So over here in Sketchbook, I've just got our name Pluto and I've just represented Pluto here by this dot. And we're saying that Pluto is going to be equal to the number one. So let's just say that Pluto's diameter was 80. Okay. We're going to use Pluto as the baseline. So what does that mean? Well, if we want to create the number one, all we need to do is divide 80 by 80. Okay. What this looks like essentially is we're taking Pluto and we're dividing Pluto by Pluto. And now it looks like a division symbol. So this is the size of Pluto and we're just dividing it by the size of Pluto. And that's going to give us a result of the number one. This might be looking a little bit funky. Okay. Let's get another planet in here to understand what we're talking about. Okay. So now we've got our largest planet, Jupiter. And I'm just going to draw a nice round at Jupiter there. Fantastic. So Jupiter is the largest planet in our solar system. And what we want to do is we want to find out how many Pluto's would fit inside Jupiter. So what is the relative size of Jupiter to Pluto? The way that we can do that is dividing Jupiter by Pluto. Okay. So we're taking the size of Jupiter and we're dividing it by Pluto. And what this is saying is, okay, how many Pluto's go inside of Jupiter? So our number values, they might look something like this. Remember, we're just saying 80 as a base value. We know that Jupiter is a lot bigger. So let's just pretend this is like 9,000. So we're saying how many Pluto's go inside this 9,000 number here. Now if these numbers are too big, let's just reduce them to make it nice and simple. Okay. If we've got the number two and we divide that by the number one, we're saying how many ones go inside of two? We know that is equal to two. Okay. Because two over one, that's just two. Any number over one is just going to be that number on top. Now you're going to use a calculator to figure this one out. Essentially, this comes to 112.5. Well, this is saying we can fit 112.5 Pluto's into Jupiter. And that's if these values were correct. And we could represent that visually if we would go ahead and fit in 112 Pluto's and then we would need a half one in there. But essentially, this is our formula and we can abstract that out to something like this. We're going to take the planet diameter and we're going to divide that by Pluto's diameter. And that's going to tell us how many times bigger this planet is relative to Pluto. And with this in mind, we can use the size attribute in Scratch. So let's jump over to Scratch and implement this. So now that we're back over here in Scratch, we can use our lists to help us out with the maths that we need. So remember, we want to end up at a division where we've got the diameter size going over Pluto. So we need to get the diameter of Pluto. And this might seem a little bit confusing at first but this is how I'm going to go about it. And head over to the variables category. I'm getting the item number of a thing in planet names, okay? The thing that I want to get is Pluto. So now you can see I'm using the variables that we've created here as opposed to trying to find this direct text. So this is going to give us a value of nine. With that in mind, we can reference this number and use it to extract the value of the ninth place here. So we can get the item of Pluto in our diameters. And if I click this, we should get 2370. Boom, and that's what we have got. If this is a little bit confusing, just rewatch it because we're going to be using this throughout the project. I know that this refers to Pluto. If I duplicate this and I right click and I want to get Jupiter, that's all I need to do. I just need to change the variable name. And there we go. We've got the diameter of Jupiter. So the last thing I need to do is just put these blocks into place where they need to go. Give ourselves some space there. And when I click this whole block, it's going to tell me how many times bigger Jupiter is than Pluto. So Jupiter is around 60 times bigger than Pluto.  But I'm getting ahead of myself because we're still in the Pluto sprite here. So let's just change this back to Pluto and we'll get the value of one here. Because remember Pluto divided by Pluto is just equal to one. Now we want to set the size of the sprite. So to do that, we're going to go ahead over to the looks category and we're going to set size. If I just make this a little bit bigger, we're saying that this is our standard here. So this size of the planet is equal to 100. This is our number one. So we're going to get a multiplication operator and just put in 100 there because that is our base value. We're saying that this code block multiplied by 100 is how much bigger the other planets are going to be. Now this is currently equal to one. So when I put this whole block into our set size, it's just going to multiply 100 by one. And that's just going to end up at 100. Now for Jupiter, it's going to multiply 100 by 60. So do you know what the size is going to be? We'll check that out later in the video. But let's click the green flag and you haven't seen anything because we're still at 100. But let's just change this now to 200 and you can see that our planet got a little bit bigger here. We'll click the green flag and it's gone back down to 100. Okay, what I'm going to go ahead and do now is just duplicate this sprite for Jupiter and modify these code blocks and then I'll leave it up to you to do the rest of the planets. I won't do that in this tutorial. So let's duplicate Pluto, rename the sprite to Jupiter. You can see that we've just inherited the code blocks that were in Pluto. You can go into the costumes if you want and if you sort of want to zoom in and make this planet a little like Jupiter. So I think Jupiter's kind of a little bit more orange like and you think even Jupiter has that little spot on it too, doesn't it? So you could even like create a little spot that's going to get heaps bigger. Okay, let's jump back over to the code and the only thing different that we need to do now is instead of setting the numerator to Pluto, we're going to set the numerator to Jupiter.  I don't even think I can click and drag that because it is that small. Oh, look, I got it. That's cool. I'm going to drag Jupiter down the bottom there, press the stop sign, press the green flag and boom, you can see how much bigger Jupiter is relative to the size of Pluto. It is huge. Now, remember, this is just a model. It's just giving you some indication of the sizes here. It's not perfect. It's just a model based on these values. And you can check down here in the size that our size has blown up to 6033. So what I'd encourage you to go ahead and do now is duplicate this Pluto sprite because this is our base sprite, our like template and do the same thing for the rest of the planets and you can feel free to go into the costumes and change the colors and even put some rings around satin if you want. But that might mess around with the sizes of it too. Let's see how you go. In the next video, we're going to make a digital model of the distances between all these planets, which is a little hard to do on our small stage here and scratch. So we're going to be using Google Earth to help us out. Okay, just before I leave you, I just want to show you that I've gone ahead and duplicated all these sprites and changed the variable names. And I've also just put a dark gray, nearly black background here on the backdrops. I've gone ahead and played around with all these. Now I put rings around all the planets that have rings based on the fact sheet. Bear in mind that that the larger your rings are, the more walked your planet might become. For instance, if I go back into satin and I just change the rings, you can see how it kind of looks a little bit funky. So you just have to play around with something that looks visually okay. There you have it. These are the relative sizes of all the planets in our digital solar system. As you can see, all the distances aren't what they should be. And we'll do that in the next video.


The Honorable Richard V. Spencer, Secretary of the Navy, arriving. Seventh Fleet, arriving. On S. McCain, arriving. Guests and visitors, please take your seats. John S. McCain, crew, at ease. Ladies and gentlemen, the commanding officer of USS John S. McCain, Commander Micah Murphy. Good morning. Secretary Spencer, Vice Admiral Sawyer, distinguished guests, officers and crew of the USS John S. McCain. Thank you for being here this morning to mark this historic and unprecedented ship rededication. July 12th has a special connection with ships named USS John S. McCain and the McCain family. On July 12th, 1952, Mrs. Roberta McCain, the ship's sponsor, bashed a bottle of champagne across the bow of the first USS John S. McCain named after her father-in-law, Admiral John Sidney McCain Sr., as it was launched into the warm summer water in Bathmane. Among the many distinguished attendees that day was the 16-year-old son of the ship's sponsor and grandson of the man for whom that ship was named. Almost exactly 42 years later, on July 2nd, 1994, this great ship was commissioned, also in Bathmane. President again was a long list of distinguished guests and members of the now well-known renowned military family, the McCain's. This time, the namesake of the USS John S. McCain also officially included Admiral John S. McCain Jr. in recognition of his significant contributions to the Navy, our country, and his impact on the Pacific region. At this commissioning ceremony, that 16-year-old at the first event, in his own right, an accomplished retired naval aviator, prisoner of war survivor, senator from the great state of Arizona, and an emerging leader on the world stage. Now, to my knowledge, Senator McCain has visited the ship a handful of times. At the christening and commissioning, here in Yacuzka in 2009 on a codel, when, according to Captain Kim, he nonchalantly grabbed a copy of his book, Faith of Our Fathers, from the Wardroom Shelf, and walked over and inscribed, to the officers of USS John S. McCain, with every good wish and smooth sailing, John McCain. And then most recently, and probably appropriately, when he visited the ship in Cameron Bay last June. Now, today, exactly 64 years since the first ship was christened USS John S. McCain, we are gathered to officially include Senator John Sidney McCain III as part of the ship's namesake, and rededicate the ship, and in doing so, ourselves, to fight for the ideas and principles each of these men championed. Senator McCain described these principles in his book Faith of Our Fathers, when he wrote, The glory belongs to the act of being constant to something greater than yourself, to a cause, to your principles. No misfortune, no injury, no humiliation can destroy it. This is the faith that my commander has affirmed, that my brothers and arms encouraged my allegiance to, it was my father and grandfather's faith. Through a life of national service, Senator McCain has proven that even the most difficult challenges can become sources of great strength. Many people, including Senator McCain, Secretary Spencer, Admiral Richardson, and Vice Admiral Sawyer, have been very supportive in our crews and repair teams' efforts to get this warship back to sea, better and stronger than ever, and we are grateful for the support we continue to receive from them and so many others. I had the unique opportunity and privilege to work for Senator McCain as his legislative fellow. I'm blessed to have had this once-in-a-lifetime chance to work for an American hero behind the scenes' look at how he fervently and selflessly serves his country, loves his family, and supports the men and women in our armed forces. At the commissioning ceremony in 1994, Senator McCain introduced President George H.W. Bush as the guest speaker. President Bush closed by saying, someday, not so very long from now, this superb destroyer will indeed be sailing in dangerous waters and she will sail safe because of the three things we have talked about this beautiful summer morning, family, country, and Navy, the three pillars in the life of USS John S. McCain. President Bush's words ring just as true today. After Secretary Spencer finishes his remarks, we will be observing colors. The flag that we fly today, as well as the commissioning pendant that flew during the Senator's visit in Vietnam, will be given to him to commemorate the ceremony and the Secretary's historic announcement. And now, ladies and gentlemen, I'd like to introduce you to this morning's guest of honor. It is my distinct privilege to introduce you to the honorable Richard Spencer. Richard V. Spencer was sworn in as the 76th Secretary of the Navy on August 3rd, 2017. Secretary Spencer graduated from Rollins College in 1976 with a Bachelor of Arts in Economics. Upon graduation, he joined the United States Marine Corps where he served as an H-46 pilot until 1981 before departing active duty to enter the private finance sector. Secretary Spencer worked on Wall Street for 16 years with responsibilities that centered on investment banking services in a particular focus on strategic advisory services and capital market underwriting. Prior to his nomination, he served on the Defense Business Board and the Chief of Naval Operations Executive Panel. Ladies and gentlemen, please welcome Secretary Richard Spencer. I want to thank you all for being here today, Admiral, Captain. It's a very meaningful day for our Navy family. Because here today, I want to honor one of the great names in American history across the board, John S. McCain. It's a name in three parts and a name that has three stories. Today, we add the name and the story of Senator John McCain, the spirit of the mighty vessel which always carries the legacy of his father and grandfather. As a warrior and a statesman, he always put country first. Senator John McCain never asked for this honor, nor would he never seek it. But we would be remiss if we did not etch his name alongside his illustrious forebearers. Because this country would not be the same if it were not for the courageous services of all three of these great men. It's hard to believe it, but the name McCain was once synonymous with the Army. From Washington to Pershing, there was always a McCain standing by to fight on land. But the first namesake of this vessel took his name to see when Senator John S. McCain Sr., Sidney, bypassed the great gray of West Point to Don Navy and Gold. I get part blue and gold, Navy blue and gold. After his career took him from coal-powered battleships of Teddy Roosevelt's great white fleet to the flight training he completed in his fifties, Sidney embraced innovation and change at every turn. And it was his combined background on the surface and in the skies that helped inform his historic decision to turn his ships into the wind at Leyte Gulf and launch from well beyond normal range. This daring maneuver, as some of you well know, provided critical air cover for the landing and likely hastened the end to World War II, paving the way for a new era of peaceful partnership exemplified by the presence of this ship in the yard today. Unfortunately, Sidney did not live to enjoy that peace. But he did get to shake the hand of his son Jack on board a submarine tender in Tokyo Harbor days after the armistice was signed. Like his father, John S. McCain Jr. excelled in a new era of naval warfare. But while his father took to wave and air, Jack went below, commanding three submarines through intense action before the war was over. Jack continued to push the spirit of innovation through many more commands at sea before assuming command of naval forces Europe. As a renowned speaker, leader, and teacher, he inspired a whole generation of great Navy leaders. He was fond of saying the 20-year-old blue jacket is the backbone of the United States Navy, a constant that remains true to this day. He knew where the true strength of the Navy resided and continued to reside. It is in our people. He then carried that conviction and distinguished tour as commander-in-chief of the Pacific Fleet at the height of the Vietnam War. He cared deeply about every sailor and marine under his command. But it's safe to assume that an extra measure of pride was reserved for a young aviator who shared his name. And it's hard to imagine the measure of pain that his father shouldered when that young aviator was captured, tortured, and imprisoned for five years. Perhaps it was the character of his family or a drive all his own. But it was the third John McCain who carried the family name through his greatest test and its greatest triumph. From the Naval Academy to Flight School and throughout his time as prisoner of war in Vietnam, John S. McCain III displayed unfailing honor and duty to country. It was at the end of his service he would still be renowned as a hero. But his desire to serve did not stop when his uniform came off. Oh, no. He continued to serve first as representative and to this day as a senator from the great state of Arizona. At every turn, through every test, John McCain put his country first. And for any of you who have testified before or have been confirmed through John S. McCain and you survived, you know that he's ensuring that national security comes first over all else. President Ronald Reagan knew John when they worked at opposite ends of Pennsylvania Avenue. And he could have been talking about John and his father and his grandfather when he made the statement that freedom is never more than one generation away from extinction. We do not pass it along to our children in our bloodstream. It must be fought for, protected, and handed on to them to do the same. The McCain family has always stepped forward to assume that sacred responsibility. On 9 May 1989, my good friend, and at that time secretary of the Navy, Will Ball, named the ship after the first two McCain's. And now I'm proud to add a third because three of a kind is the way to go into battle. Sydney, Jack, and John. Three distinguished officers. Three truly remarkable Americans. They sail along every man and women on this ship. Their legacy lives on in all of you and in the enduring spirit of the John S. McCain. With that, I want to thank you all. Department of the Navy, Office of the Secretary, SecNAV notice 5030 from Secretary of the Navy. Subject, name added to ship currently in the fleet. Purpose, to advise addresses of the approved name expansion for the guided missile destroyer, USS John S. McCain, DDG 56 to include Senator John S. McCain, the third. Name, source. Expanding the name of USS John S. McCain to include Senator McCain, properly honors three generations of dedicated service to our Navy and nation. Admiral John S. McCain served as a distinguished carrier task force commander of World War II. Admiral John S. McCain, Jr. served as the former Commander-in-Chief, U.S. Pacific Command. Senator John S. McCain, the third, continued the legacy of service as a naval aviator during the Vietnam War. As a prisoner of war, McCain represented our nation with dignity and returned with honor. Signed, Richard V. Spencer. Ladies and gentlemen, please stand for the execution of morning colors. Distinguished guests in uniform, please salute at the sound of the whistle. Commander Murphy will salute for the crew. John S. McCain, Warderman, Chief's Mess, turn and face the ensign.


Hi everyone, Joe for Jaspy's Case Breaks.com coming at you with a fun one here, 2022-23 Hit Parade basketball, autographed, limited edition, Series 20 right here. Dual case break, 20 total boxes. Big thanks to this group for making it happen. I think we were planning on two fillers, but we ended up only doing one, which was awesome. So big thanks to everybody who bought their spot straight up, congrats to the people who won their spot in that filler break, the Donnerous Pack number 28, and all 30 teams are in. Let's roll it. Let's randomize names and teams six and a four, ten times for names and teams. One, two, three, four, five, six, seven, eight, nine, and tenth and final time. After ten, we got sunny down to sunny. Six and a four, ten times for the teams. One, two, three, four, five, six, seven, eight, nine, and tenth and Orlando down at Denver. All right, sunny with the Orlando Magic, remember when they got sunny at the Causeway. Nathan with the Suns, James with the Cavs, Nick with the Kings, Donald with the Pelicans, Greg with the Warriors, James with the Raptors, Matthew with the Heat.  All right, we're going to pause the video just for a little bit. When we come back, we're going to see if there's any trades, and then we'll have that dual case break. So stick around. We'll see you on the other side. All right. Welcome back, everyone. I got it all printed out on a Sunday, the 25th. Thanks for spending a bit of your Sunday night with me. I appreciate it. This is a pretty quick break. It will be a lot of fun. There's another quick break that's about to be full as well. Are people buying spots there? I was kind of dragging my feet a little bit to see who anyone is. Maybe we'll fill it after this break. Quick spots left in that quick hit baseball mixer filler. Did Kathy Griffin really get canceled? There's Alperin Sengoon, Rookie Auto for the Rockets, Matthew with that one last spot, Mojo. No, Roseanne didn't really get canceled. Yeah, she's touring. She's doing fine. And she'll always be doing fine. She's hilarious. Kathy Griffin reminds me of what pro athletes say sometimes, where they're just like, well, I didn't actually retire. People just stopped calling me to play on their team. Here's Deandre 8, 31 out of 99 for the Phoenix Suns. I think that's for Nathan. That reminds me of those click baity YouTube videos. 15 reasons why so-and-so hasn't been working in Hollywood anymore. You won't believe number 13. Here's fast break autograph Zach Levine for the Bulls. That's going to be for Matthew Wood. They're going to trade Zach Levine? His teammate, why am I blanking on his name? Lamello's brother, former Laker, I think he's going to be out for this season. That's crazy. I don't know if it's too crazy. He may never play again. Rookie Otto Walker Kessler. Rookie Otto for the Jazz, Nathan. Lonzo, why did I blank on his name? Lonzo, I was going to say LeVarbe, that's their dad. I was going to say LeAngelo, but that's their other brother. I had everybody except for Lonzo. Wild. Got his ankle issues, I think.  Pretty good. Next up is Paul Pierce. Eight out of 15 Corey with the Cs. I like that pulsar look in the background. Looks pretty sharp. 10 reasons why Brennan Frazier hasn't been hired in Hollywood. Oh, we've got two in here. We've got sometimes they pop these cool sketches in here by this artist. You can learn more about the artist by pointing your phone to that QR code. But it's a one-of-one Jamal Murray for Denver. Sunny. Out of 5's and under, get the train whistle. All aboard the Big Hit Express. Woo-hoo. Nice. Loose here. Let's put it in here. And the hit here, double hit, is Josh Green, 24 out of 99, three-color patch and auto-RPA. Dallas. It's for Joseph. I don't know, Jack. I think if you look for it, it's just the way we watch television is so different now. Maybe network comedies will never be as risky like that. But I feel like there's still shows out there that tackle issues like that. There's Chris Paul. Nice. 189 out of 649. Do you know what there's some kind of sneaker boxes? Yeah. Like actual breaks? I don't know. It's for a giveaway. Don't worry. I'll love this one. No. Nice. Is that rookie Chris Paul? I don't know. I don't know when Chris Paul was... No, he was drafted in 05. This is 07. That's actually 09. Top's basketball. But that'll go to New Orleans. That'll be for Donald. Chris Paul on the... Is he officially a warrior now? Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Wikipedia says he's still a wizard. Chris Paul is at the Dodgers game today. Maybe that trade-on official isn't Jordan Poole going to the Wizards. Are we thinking maybe... Maybe Draymond was right. I don't know. Maybe he shouldn't be... Maybe he shouldn't punch a co-worker. But here's a Lamello ball. Nice. 24 out of 99. Got a six-way relic, his autograph. That's going to go to Charlotte. That will be for Tristan. When I go on a long vacation, Rex is going to make a YouTube video. The real top ten reasons Joe Jaspy has been breaking for a few weeks. He was canceled. Top ten reasons why Joe Jaspy was canceled. Number one, he was too handsome for the hobby. Number two, he was a smart-ass know-it-all. Number three, just too G.D. handsome. There's Bam out of bio. Rookie out of Bam out of bio. Number five, his voice was too good. Is that Lamello on the cell sheet? It is. Nice. Wait, is that Rookie Lamello? 2020, 2021. We were talking about his brother and then all of a sudden Lamello appears. Coincidence? Number six, sorcery. All right, tenth one is Carmelo Anthony. New York Knicks. That's going to be for Ryan in the Knicks. Yeah, number four, his singing voice is so good that he gets copyright infringements on the YouTube live stream. Number eight, ladies won't stop watching Joe Jaspy making their husbands and boyfriends jealous. I mean, that video just writes itself, right Rex? I think CP3 will probably be like... Listen, CP3 can still contribute something if he's your fourth or fifth option. Right? He's like another coach on the floor. And I think that's probably a good thing for the Warriors. Got some good depth there. Nice Rookie Auto, Josh Giddy. He's going to make James Giddy. He's got OKC. Somebody wake up Joe. All right, next up is Fast Break the Worm. Dennis Rodman. No, Draymond's not going to punch Chris Paul. I mean, I think kind of looking back, everyone was probably aghast at what Draymond did. Again, punching a co-worker, probably not a good idea. You know, now the rumblings are... Did Jordan Pool have it coming? And then they traded him. So I mean, I think if you kind of read between the lines a little bit, that's the speculation anyway. We don't really know. All right, there's Damien Lillard. Where's he going to go? Is he going to get traded or not? If I'm Portland, I don't want to trade him. Unless he asks. And I'll do him the favor of that. That's going to go to Portland. That's going to go to Sonny. But, you know, chance is no, no trade for Damien. I do have to say, yeah, the majority of us punched a co-worker. We'd be fired to me, absolutely. I mean, unless that co-worker deserved it, right Rex? There's Michael Porter Jr. Obsidian Autograph. That's for Denver. The World Champs, Sonny. He wants to stay with Portland. Good. Because I think with like Shaden Sharp, Scoot Henderson, right? And then Damien Lillard is pretty nice. They can lure a couple other people to get there. I like Damien Lillard a lot. I mean, I feel like he's... I was going to say he's like a Mike Trout, but like Mike Trout, you know, he's winning a lot more MVP's than Damien, right? But I kind of get that feeling is because like you want to see a player like him in the playoffs. Like going deep into the playoffs and kind of putting that on this resume. All right, next guy is rookie Jersey and Otto. That's SGA, Shay Gilgis Alexander. Clippers edition 25 out of 2.99. Nice one here for Taylor and the Clippers. Yeah, but you know, Rex, the rules are different for us mere mortals in normal jobs versus, you know, professional athletes. Because you know, in that highly competitive atmosphere, stuff like that happens. If it wasn't caught on video, I don't think it would have been a thing. Like many things in life. But like you don't think fights happen in basketball practice at all time? Any practice? Any sport? There's Franz Wagner, 13 out of 99 for the Orlando Magic that's going to go to Sunny. You can't punch anyone because you work from home. You could punch like your computer screen. You could punch yourself. Gilo. Maybe you have an evil twin at work. Low G instead of Gilo.  Oh, graded card. It's a 9-5-10. It's a 9-5-10, D'Angelo Russell, rookie Otto. Nice. I think the slab itself has seen better days, but the card inside still protects. It's a 9-5-10. Centering, edges, corners, surface, all a 9-5 and the autograph at 10. Will the Lakers re-sign him? I don't know. 188 out of 1, depending on the price. I wouldn't mind him back. That rough series against Denver, but the rest of the playoffs he was pretty solid and contributed pretty well. You know, a lot of energy. You know, it was really good with the fans. You know, it just kind of provided that extra energy. You know, a little bit of a hype man in there. And you got Michael Bridges, signature series. That's going to be for Nathan and the Suns. Imagine if I was on a Zoom call and I get mad and punch the screen, then the person on the Zoom call sues me for punching them? Could that happen? Possibly, actually. In this litigious society that we live in, I suppose you could probably Zoom. You could probably Zoom for the threat of punching. Sometimes the threat alone. Sometimes the threat alone could be more punchable than actually carrying out the threat. You saw an article that said LeBron wants to retire with the Golden State Warriors. You saw a good old, that's what we call a good old-fashioned clickbait article. We got Alan Iverson, the answer. Sensational signatures. Is it numbered? No, not numbered, but still a cool one for Eric Houston and the Sixers. Nice. One of my favorite non-Lakers. AI. Yeah, it's amazing what... It's amazing what the kind of influence LeBron carries and the Lakers too. You just mentioned him in an article along with the Lakers, especially if it's regarding trades or free agents and then clicks. That's right, Alan Iverson's the original AI. You think AI is investing in AI companies? If I was AI, I would. I mean, that's a no-brainer, right? And last one, Jalen Brunson, New York Knicks edition. $55 out of $75. And there you go, ladies and gentlemen. That's Hit Parade Basketball Autograph Limited Edition Series 20 Dual Case Break Number One from jaspyscasebreaks.com. I'm Joe. I'll see you next time for the next one. Bye-bye.


Hello, and welcome to the SCP Versus series. Today, I thought I'd do something a little different than what I've been doing, and pit two groups of interest against each other, with a well-known SCP in the middle. I had a couple of ideas kicking around in my head for this, and I kind of put them all together into one story. Hopefully it works out for you. So let's get started with Marshall Carter and Dark versus the SCP Foundation. I've been afraid of flying since I was 8 years old, and it's never been a huge deal. If you don't want to fly, you don't have to. I drive, I take a train for long trips, and one time I took a bus, but I'm never doing that again. The SCP Foundation is flexible when it comes to travel, so my job never really made me move all that much anyway. It works out. Point is, I can avoid it, but when I was 8 years old, the idea of flying really hadn't even occurred to me. I was sitting up in my room playing Runescape, and my mom and dad were arguing again, and they were very, very loud. You get used to it after a while, but sometimes you're just in a mood, and you can't take it anymore, and I got into one of those moods, so I climbed out my window and sat on the roof to look up at the stars. I could still hear them, muffled a little, but it wasn't as bad as it was inside. And out there, looking up, that was my safe space. Out there, the world just kind of slowed down and let me catch up. I could see out into the street and watch the cars go by, see people laughing, other kids playing, but eventually, I did have to go back inside because it was getting too cold and too late, so I stood up and I slipped. One foot flew off the roof, and then so did I in a weird end-over-end tumble. That was my first experience with flying. I landed on my back in the front yard, looking up at the sky. It knocked the air out of me, and it left me dazed. I remember laying there for a few minutes before my dad came out and found me. The whole world felt like it was spinning the entire time, it just wouldn't stop. They took me to the hospital, and it went away. It was fine, just a little bruised. But then they took me to a psychiatrist. I told them it was an accident, that I wasn't trying to kill myself, but they insisted on a few drugs to help keep my emotions in check. Kind of stuff that makes you fuzzy, makes it difficult for you to remember what you're supposed to do. My parents made me take them at first. I don't know if it was the drugs or the accident, but every time I laid down and tried to sleep, I felt like the whole world was spinning all over again. School was rough, especially once everyone started thinking I was a suicide risk, made it hard to make friends. In high school, they called me Crash, which, let's be real here, there are worse nicknames to have, but the origin of it always bugged me. No one ever believed me when I said it wasn't a suicide attempt, but I also never went out on the roof again. They wouldn't have let me anyway, but I never got to have that safety and calm that I was so used to. Right after I graduated, my parents told me they were getting a divorce. I wasn't happy, but who would be when hearing that? The worst part is, I think they stayed together just for me, and once I'd moved out they realized there wasn't a point anymore. They didn't even stay friends, they went to opposite ends of the country just so they wouldn't have to see each other. They hated each other, but they stayed together for me. Makes holidays kind of rough, especially since I don't fly. When I got out of college, I started to work for the SCP Foundation. My job was to examine dangerous ideas, which I know makes it sound like there's a fascist state involved, but I mean legitimately dangerous ideas, like physically dangerous. One info hazard I helped classify and contain actually makes you vomit up your appendix if you just think about it. Working for the Foundation, you learn that the power of thought is essentially unlimited. And I met my wife working here. She was a receptionist for my boss and she was beautiful and smart and funny and everything I'm not, but she loved me anyway. When I was growing up, I always said I'd never have a marriage like my parents. I'd never wanted to end up hating the person I love. And for a while, that was true. But about a year ago, she saw some papers she wasn't supposed to see. I mean, these kind of slip-ups do happen from time to time. We try to keep it to a minimum, but sometimes things happen. Out of courtesy, they told me about the amnestics. They didn't have to, but they wanted me to watch for any side effects because sometimes people have adverse reactions. And for a few days, she couldn't form any new memories. And for one of those, she didn't recognize me at all. That was crushing, looking at her like that. I mean, she was still the same sunny, vibrant person, but it was like we'd never met. I didn't want to live in that kind of a world, you know? Then it slowly came back to her little things at first. And then one day, I woke up to her kissing me and I knew she was back, or well, I thought she was back. See, amnestics aren't an exact science. And it's impossible to target just one memory and delete it. And she was never quite the same after that. Maybe it was in my mind. I mean, most people wouldn't have noticed the things that I saw, but I did notice. She'd forget her keys sometimes. She'd lose things. Sometimes she'd talk about things that never happened. It was never enough to mean anything important, but I knew she wasn't the same woman I married. And I started to hate her for that. This is the part where you can probably start to hate me reasonably, because it's not her fault, I know. She can't control your ideas. And I knew that one day what happened to her was going to happen to me. And really, that bothered me more. I mean, read the wrong paper and suddenly I'm not me anymore. I'm just a copy that mostly matches the original. I mean, I asked about retirement, but the same answer came back every time. You couldn't get out without a full course of amnestics. More serious treatment, by the way, than what my wife had gotten. And I definitely wasn't ready for that. So I hatched a plan instead. I contacted Marshall, Carter, and Dark. They're always up for a trade. And I offered my knowledge in exchange for a way out. And they came to me with a deal that gave me everything I wanted. So I accepted it. Why wouldn't I? And that is how we ended up in a Cessna, 12,000 feet in the air. I couldn't control how it felt. The fear of flying was real. But my beautiful, kind, wonderful wife, who I no longer really loved, maybe, tried to call me down anyway. And she still cared. And it kind of made me care, too. According to the official record, we ended up in an Iowa cornfield. And there were no survivors. As far as the foundation is concerned, we're buried in a plot on the grounds of Site 88. I went to the funeral myself. Not a single person looked directly at me, or, by the way, the completely empty casket. Of course, it's never that simple. See, I went to my own funeral to find her. The mask that Marshall, Carter, and Dark had put on us had worked. I mean, no foundation employees could see us, but we were both foundation employees, too. So she's gone. I'll never see her again. I made a mistake. It was a silly mistake. I tried to shield her from all this. I bet if I'd have told her about it, she'd have noticed the flaw in my plan. But I didn't. So she didn't. I thought for a while I could live with it. I thought maybe I could just start a new life. But it was at that point I realized living without someone you care about is harder than living with someone you hate just a little. I mean, what was she doing? Did she find someone else? I'm never going to know. She could be dying right now. She might have lost her keys one morning, never left her house ever again. So I went back, and I asked them to fix it. And Marshall, Carter, and Dark said, sure, but there was a catch. There's always a catch with them. I had to go to site 19 and snoop around in their files. And once I found a good SCP I could steal, that they could market, I was supposed to give it to them.  It's not like the foundation can see me. They couldn't even comprehend me. And they definitely would never remember me. So I waited. I scouted the building. And yesterday I broke in. I went straight to this room because I knew what was here. And I knew it would be perfect for resale. And I got locked in. I think most of the problems in my life come from me not being as smart as I think I am. They can't remember me, of course, but they sure as hell can remember to close the door I left open.   But if you can find this and you can read it, I'm here. In SCP-055's containment chamber. Just unlock the door. Please, bang. I don't wanna die alone. And that's that. If you like the video, please scroll down and hit the subscribe button and then hit the notification bell next to that so you're notified when I upload new videos. As for the rest of you, if you wanna support this kind of content, go over to my Patreon at patreon.com forward slash de-samarian and pledge at any level, like everybody on the screen here has. Thank you very much for watching and thank you for letting me know I'm not alone out here. I'll see you again on Tuesday.


Pow, what's up everybody once again it's Frank and Sean and I got a very special guest for you guys. It is Gens the Guru. He is a digital marketing guru. You probably know him from Instagram. He has a lot of advice that he's giving in marketing, it's particularly for musicians. Now this conversation though is a snippet from an interview that I have upcoming with him on diverse music, diverse musicians and he has a take that I really think you guys should listen to. They might just be a new artist so like no situation I don't need no money I just might happen to see you we're out somewhere or whatever not kind of guide them or check in some of their campaign data and I'm like yo man you might want to reconsider some things. I like I haven't even heard your music yet necessarily. This response you might want to think about it or at least go back in the lab a little bit anyway. It's the thing about artists is they take their process very very personal and yo you have the easiest job in the world.  So it don't matter if somebody says this song is garbage.  So create, create, create, get better you know what I'm saying and don't take nothing you hear personal that's just what the marketplace is telling you you know what I'm saying and they're going to tell you what they like from you it's just will you be willing to listen whatever. And another thing to you guys too when you have something that's working for you right don't decide to do something different yo you know what I'm saying lots of times artists will see success in somewhere whatever and instead of staying here and doing it consistently to build momentum they'll go oh that was great I like that feeling right there but let me do something completely different you know what I'm saying complete opposite of what I did here you know what I'm saying. That's the biggest problem I have right now talking to people who are so hell bent on this whole diversity train like oh I'm diverse first of all I have to clear that noise most people aren't really as diverse as they say when the artist was successful and but two like if you're starting from ground zero that diversity isn't going to allow you to build a foundation. Man it's a lie right it's a super lie at the end of the day and I got a few videos I talked about this on the grand right you're only talking to a select group of people yo you know what I mean so identify who exactly your message is tell it for whatever and once you do that everything will be easy for you it's going to be like certain artists you notice that yo like it's very easy for them to come up with bars verses whatever freestyles whatever because they know exactly what they're talking to whatever you know what I mean a lot of you guys out here still in the park where you know you're amateur in this thing so you're imitating what you're seeing out there you feel like you got to talk about this you got to do that no find out exactly who you are and who your message is telling her to whatever and everything will be easy for you guys you're not diverse no one who's successful in this thing had is talking to everybody they're talking to a select group of people and in those select group of people are going out into the world and telling other people check this guy out whatever you know I'm saying you got to have your core fan base man you know what I mean you got to have that you can be diverse and different might be multi-talented be able to touch on different things but in terms of what you did and this is part of things you have to take with that group and I always say if you have trouble coming up with new content ideas then you probably don't have a good handle on what your brand and voice is in the first place you know I just made a video about that the other day brand identity yeah yeah it's a like if you're because I was having conversations with my new like if you're wishy-washy because you have no brand identity yeah it's so true you know man yeah you don't know you're talking about so yo that's how you see certain artists where one a week they sound like a little way and next week they sound like little pump next week they sound like you know saying they sound like Takashi next week they sound like the blue face whatever blue faces came out we're about to have blue face cones whatever because all they doing is what they see out here moving because they have no brand identity don't know who they're speaking to you know saying they just riding away yeah all right again that's a snippet from an interview that will be dropping pretty soon I'll put the link to that full interview in the description below so if you're watching this after the full interview ends up dropping that link will then become active but other than that let's really think about this whole diverse music thing I've said it again and again and typically I advise against it just think about it this way right if somebody is a fan of this style of music but then you also have a song that's this style of music and then you have another song that is this style of music so you have these three different songs and the all maybe some form of hitting their own respective category but what if I'm a fan of this and I hate these two right then now in my mind you're a one-hit wonder it doesn't matter if these are hits in their own categories they're a one hit one you're a one-hit wonder to those particular fans so therefore you don't necessarily have fans of your music you good I'm saying you have a fan of individual songs you're splitting this up particularly when you're coming from ground zero you need to be focused on giving value to the fans it needs to be more our focus and giving them value so they have time to convert for to a fan versus saying I'm so awesome I can do these all these things you're supposed to love me because being a music person or I'm a being an artist really when it comes to being in the entertainment industry means you're of service you have to serve fans for them to then become fans of you now another thing to think about is this a lot of these artists that get called diverse are less diverse when we talk about really different types of music and more so stylistically diverse in one category yes hip-hop R&B maybe a trap soul sound a rap pretty good like even Tory Lane's isn't greatly diverse in a wide spectrum all of his music might be diverse in terms of he can sing he can rap and he can do you know slight slightly different styles and everything and it's not that he can't do other stuff but the type of stuff he puts out into the marketplace is still stuff where if you like this you probably like that too maybe not as much but you're still already pretty warmed up and it's a higher likelihood it's a lot of overlap and that's when you can kind of be successful and be a sense of a diverse artist versus being truly diverse when you're touching on things that don't have any fan overlap now of course I always would like to know what you guys think in the comment section below now I mean maybe there's an artist that you think really pushes against this idea and maybe they did find success but maybe you haven't realized that at the end of the day these people are still very few and far between and did they have a situation behind them like marketing resources and things like that because coming from ground zero especially as an indie artist is difficult and you need to use your resources wisely versus spreading them then across a lot of different fan bases as always if you liked this video go ahead and like button if you like it might as well share it and if you're not subscribed you know what to do hit that subscribe