Welcome everybody, I'm Fred Oliver, I'm here to talk about some of my open-stack experiences and some of what we've done and what we've been able to do with Verizon. I'll just have a few slides here and then we can get it open to questions and feel free to kind of find the right best spot here. This is just Verizon's regulatory slide, where we are, we're large. Me, he's a business engineer, a few things. I was a part of a small startup of PotSwitch in Fired three years ago. And before that, various startup companies and various large companies in fact, mostly the North Universalization Systems Offer in PotSwitch. So, what's our problem? Here, typically our biggest problem is that we are, network growth is growing faster than we can monetize it. The costs are still very high and we can't get revenue to rise as quickly as possible. Return on investments networks are still very expensive and we're deploying more and more high-speed long-haul networks. All of those are very expensive as well and monetized. But we're trying to form another solution for how to make that work. And then kind of our existing problems, and this is probably a career problem and I'm not sure how many of you are aware of career issues. But we tend to divide things in vertical silos and we have lots of single-vendor installations of a lot of the network equipment, and we're trying to get out of the boat of having a stack of equipment that serves a particular single purpose that can't be reduced isn't easily expandable, isn't incrementally expandable. And so one of the solutions we're getting after is, what, how do we go after this? And one of the, so this is our current problem, is that there's tons of equipment, of all single usage, single equipment, single service, and we'd like to turn this into a virtualized function. So there's a group that's started up under Etsy to add virtualization to this environment and see if that will enable the separation of some of the hardware environments and enable software functions to run on that, a more common, less single-purpose environment. And on top of that, in fact, probably the largest gain of all functions is somewhat automation. All of our installation today is kind of in single-purpose, single, and by manual innovation, there is these operation manuals that are large that all of our operating staff follow to provide a particular problem. We need to get somewhat out of that role, enable automation, trust automation, I think that's actually from an organizational problem is the trust aspect of the organization environment. How do we make that work? Benefits of the operators, I just built here. So, again, common hardware platforms, part of our goal is to reduce these special purpose, purpose-built hardware environments. If you look inside these frames, it turns out, we're often our common hardware built by lots of other common hardware vendors, server vendors, but they're built in a specific configuration for a special purpose. And we like to have a more general-purpose environment that we can leverage different software components on that. Again, classic, faster time market and reduced business risks. Our average deployment time is six to nine months. We like to reduce that order magnitude that we can to have a new service. And along with that deployment risk comes along, business risk because the deployment time takes a long time. We can't really deploy a new service very cheaply. Limits our ability to provide new services in this environment because it's just another process involved. And then if something is deployed and we have to make a mistake, we have dead equipment sitting there that actually is consuming electricity making heat. And so we need to get out of this mode that we can reuse equipment, reuse the environment, leverage automation to make this deployment work better, easier, and faster. This graceful software upgrade is kind of an interesting environment today to do the software upgrade. And basically our environment needs to have a complete separate system on which to do the upgrade. And then once that's proven to work, then you can online the existing system. So there's a very large task of deployment. We like to get the mode of incremental add of equipment slowly migrate, perhaps live migrate some of the operations from one set of equipment to another set of equipment and do this without having any service interruption. Again, service interruption is probably our biggest problem that we're trying to address. Whenever a cell tower or anything goes down, this is the first thing we get a call from is something's failed. Any network failure is bad for us. This is where the classic Curio RAID 5.9s and above level of operation when we try to run it. And I can look at it. So there's an organization, European, I don't know if that's the answer. It's a European state of organization, but they have started an effort called NFP, Network Function Recalculation. And there's a goal basically to put a standard model together where a application developers can develop their application independently and deploy that on a common set of hardware and put all the interface points, common interface environments, common control paths so that people can have a unified environment and develop their application once and develop standard interfaces or element management systems. They're classically today done on a single hardware basis or single application basis. That they're the standard interface to this manager environment. So again, develop these things once, run it on many different environments. How does Opensack come in? So I think one of the things that's become apparent both in the NFP community and outside in the application developers is that it's become a de facto implementation in the common deployment environment or existing vendors to port their applications into this environment. And there's a lot of deployment happening in this environment, a lot of different applications and a lot of different infrastructure environments. But there are people specifically targeting whole sets of infrastructure, specific hardware environments, specific orchestration and actually specific limitations of Opensack which I'll talk a little bit about. So my task, my goal was to act at the common platform and this is encompassing both the hardware aspects of this environment to be hardware agnostic but kind of network focused. We have to design all, most of our traffic is north-south internet or just the internet or our internal network. So we don't have to have a large majority of the traffic going between the ends inside our environment. There is a bit in what we call service chains and what's the one part of the next but a lot of the traffic ends up going in and out of the internet or into our network. And then operational service. This is again probably our biggest environment. How do we get five nines or six nines of behavior out of an environment that is probably hardware capable, three, four nines, software capable right now, probably two or three nines. How do we make that reliable and kind of solve the process perfectly after is trying to, within the community, Opensack and some of our partners Red Hat and others to make an environment and push upstream functionality that would make this environment more reliable. Some of the things that, because carriers are not the largest part of the community in Opensack, we end up not having necessarily the largest voice in the community. So some of the capabilities that we're looking for in the environment are getting addressed in the Opensack environment. So we'd like to somehow push that up more as much as possible. And so that's again, leveraging some of our community environments. This is self-service. This is self-service. Again, this is a typical thing. Today we have all these singles, silos back from hardware to our recent environment to catch the application itself. It's typically managed off the bottom by a single operational staff. We'd like to break that into a horizontal environment that there's a platform environment that can address multiple of these applications and have an operational staff that's knowledgeable about the operation, the hardware and the virtualization environment. And I actually want to step back. It doesn't actually need necessarily be completely virtualized. And in fact, I guess it does previously a lot of the functionality is automation and orchestration of the environment. So there may be hardware components in this that need to be orchestrated. In fact, they do bare metal provisioning of some of the operations, some of the virtualized functions which are not Microsoft's instance on this environment. But security, certainly security and isolation are very important for us. I want you to do this. How do you provide non-interference between multiple internal customers, which is multiple running applications in this environment. How do you separate the resource allocation and can you do resource-related reservation on this environment? A couple of little bit later, a lot of the response is clear. So this is my environment. I actually have a couple of environments that I know people have seen. This is one rack of my equipment. Part of my task is a lot of evaluation. I've been talking to just about all the suppliers in this environment. And what I've built up in this environment, this is one rack of equipment. And this is interesting because these are all QSFB cover wires, this 40-digit connections is kind of my high-speed path to test all the environment. But as you can tell, it's not professionally wired. It's all my wiring, which is all the entangled wires. But as part of this environment, I have tested a lot of variations of this. I currently have six open-to-back environments running in this environment. And these are basically four or five simultaneous concepts in this lab. And that's kind of my ongoing process for now and perhaps in the last year, I'm going for probably the next year and a half. But from this, a lot of me have tested a lot of different integrations. I'll talk about that in a minute. I actually have a little bit of description here. But in this environment, are all direct patch storage. So this is SAS and SATA drives in the front of these storage servers. And I'll talk a little bit more about the different tests I've done in this environment. But so shared direct-to-patch storage is probably the best answer to that. These are all the things that I've been in the company consent areas that I've talked to over the last year or so. And tested out the various capabilities of these things.  Initially loaded with operating systems. There's ChefPuppet. Certainly all the environments available from around this kind of old Red Hat all have provisioning environments. And I've dealt with all of them. They're all incomplete. I'll say at this point, they're very maturing, pretty well. So there's something that's coming along pretty well. But there's... And the storage environment, so most of what my path has been using ChefBuster and Elmium. So these are all environments of locally shared drives that are sent out over a shared environment. That was back into my 4GIG environment. I had basically a split plane. I have one 4GIG port for the storage path and another 4GIG port for the communication path. But each one of my commute servers is a storage server as well. I also have been playing around with RDNA, iSCSI, and there are actually... I'm actually starting to be in RDNA with Chef. But that kind of reducing compute load in this environment, again, because I'm sharing the compute server with storage server, I want to reduce the load, compute load of my storage operation as much as possible. And using something like RDNA, iSCSI over RDNA, is one of the... Some of the things that I talked about and this polyallocation function is kind of cool. I was testing in the context of a particular evaluation that I approve a concept that I want to talk about in a few slides. How do you get your volume allocation in a ChefLVM cluster environment to actually allocate your volume for your IPM to run, particularly if you're running in distributed environment? Neutron, again, a lot of our tasks are network-focused. So we're looking at how do we best leverage some of the neutron capabilities. And so I've done a lot of testing of various combinations of standard OBS. There's a couple of nicks that have embedded switches inside them that will take OBS inside the box. There's various commercial overlays, and again, I've tested pretty much all the commercial overlays that are out there. OpenFlow or not, again, it's another interesting thing. L2 or OpenFlow or L3 overlays or it's another interesting issue from what I've seen today seems like the industry and OBSAC and the environment is moving towards a L3 or L2 or L3 topology that doesn't match really well into our core network. So we're trying to figure out whether that's a how do we match that environment or what do we do in our core network to work well with that environment. And the last is some of the policy functions that we'd like to have. Again, because of the network overlay or the network control we want to have in the environment, we really do want to apply policies to sets of VMs, sets of applications, make sure that they path through an environment or a policy gets applied whenever you scale, start, stop an application. So that the network policies will be an important part for us. So I was going to just talk about one proof of concept that we did and this is something we call the distributed pitisites in a CDN kind of distribution network as a use case that we were going through. And again, our issue is how do you reduce the network traffic here? What we have is content somewhere over on the edge at some parent location that we get off somebody and there's all the YouTube Netflix, all those guys are out there on the edge, as well as our internal environment which we'll have somewhere in here we have our own that we deliver out of the environment. How do you reduce this network path so we don't have to have teravits of connectivity between all the points in all network? And put as much of that as we can into, you know, close to the user so they can get the low latency they would want as well as reduce the amount of core network ever using. And our goal basically is we have lots of sites we'd like to deploy this environment in at least sites as much as possible and distribute this work effectively. So our goal is basically to have many sites and manage them as a single cloud but still have multiple sites out there that we can actually know about and then control them for one central location that's a highly available environment. Some operational issues we come up with is high availability of control elements. There's... At the point where we're doing this and this is six to nine months old that we actually did this the HA was pretty lacking and so and the environment we're running and we're an active passive HA for all the control paths there's still some environments that are in the current now of the ice house environment that actually is a pretty reasonable HA environment but this time it was pretty poor. Control elements of the cloud yes and that's again we think this has a single cloud and having lots of different small locations with the central control of this environment. Some of the issues we were facing this is provider networks we're trying to plug into our existing network environment we have Verizon as well as BIOS as well as all the wireless environments so we're deploying a bit of content out to all these environments and so there's lots of different sites lots of existing networks how do we plug into that network environment there was some interesting issues we found allocating large numbers of these networks particularly when we're actually deploying to small sites out into the network and connecting them to the existing networks had a kind of deployed provider network out to each individual site and then a large collection because we're we want to kind of manage the environment while we're running and actually look at the operational model it turns out that the from the control paths things like a lot of collection is a big issue and it takes up a lot of our bandwidth it's kind of like a management path and trying to manage that is an interesting issue. This is the IPART they're just a bunch of different networks they've created for every single site we would have kind of environment our goal was to have orchestration here in the central site and then there's a storage environment also in the central site this is actually where a lot of our internal content is stored and then have kind of these little sites scattered around the environment to do different functions we have a this is a reconfigurable and an optimal address this is our core network stuff and there's 100 gig generally passed through and this is moving up to multiple 100 gigs in the future but a lot of the connectivity comes through there and we're basically managing the connection of these networks into a wavelength going across one of these fibers just a little more open environment so at the end site we were looking to deploy 4 and 8 12 nodes each one of them would have an open flow switch and support a scalable basically this caching server would scale up and down based on different people came on and the rest of the environment would scale up and down a shield cache environment would basically just a local cache department and we could do a predictive push of the data that would be expected that would be loaded and then all the updates that were happening in the department as a request upright system as a system this is so this is the control cluster the origin file server this is kind of where the original content was stored and then this tracker would track which nodes had which segments and the interesting thing in here is that each video and because we're doing adaptive bitrate all these environments is actually chopped up into 18 different versions in this environment and then chopped up into 2-5 second chunks and that's how we would deliver to your clients a little chunks of seconds from that once you have a second in local environment tracker tracks it when a client asks for a request to come into the server authenticates this environment, authorizes and gets built one of the issues is identifying what the user location is and the current environment is kind of mapping an IP address into a location and there isn't a clean particularly on a mobile phone that ends up at a proxy point inside the network that's actually relative to the local environment doesn't actually have a good connection to the locality of that you select one that's relatively close select one of the distributed sites as the points that would serve that data and from that that would be a follow-on catching site a log activation and this is the points of how we aggregate all the logs together this is the each peer at distributed site we're using openflow switch to create all these networks and manage the connectivity and quality service to go back to the server, control server and to every client site that was out there how do we go about this? We deploy an invulated environment in our walk-on app and created this test environment where we can have many hundreds of thousands of clients and and it's interesting that we can actually for fiber schools, I'm not sure if you have seen these things 400 kilometers of fiber schools are actually connecting all these things so we can actually pretend it's a real network in this environment and we leveraged Red Hat because we wanted to actually go through a vendor appointment and Red Hat deployed their open stack platform and at this point it was RISD based and they kind of found this provider network configuration problem and provided us with a patch and also pushed us upstream so this is kind of a part of Red Hat to help us with develop some of the Finstender filter roles because we wanted to have VMs deployed at these remote sites and the volumes that were allocated to those VMs actually be near that site we actually had to use some filtering where the site the volumes were and managed the storage there, lovely and glance images, whenever we wanted to deploy a new version of the hardware we didn't want to have all that glance images which these things are almost 100 gigabytes of image of these servers and trackers pre-deploying these things without what's kind of what we want to do this off hours deploying the glance images into the remote sites and running it from there and then again we deployed an active passive H&J at our central control site and this is the open stack H&J, the open stack environment part of our environment so this was our process we actually went through several iterations here we would track the prediction content that we had to have a production content network we could get logs off of that track what all the requests were all what the hot night environment was and Chris would snatch out of that into our global environment we can again apply with our test equipment, apply the previous days requests and then test how that the system behaved and then we went through and injected fault into this environment and generated so that we could test various scenarios of the environment and understand what the system would be and this is our models of is this CNN a valid use case for this environment that's kind of what we're trying to test lesson learned open stack H&J needs work IceHouse is currently looking better, I have an existing open stack IceHouse H&J environment active active and that just seems to be working pretty well quantum at the time and new kind of handling of network functions still non-existent this is a particular problem we have if we want some of the VMs to see multiple segment IDs segmentation IDs in open stack terms and we'd like to be able to specify that multiple segments end up on a single port and this is in the environment SRIOV doesn't work very well yet I have a problem with a couple of hardware NIC vendors trying to get that and in the existing environment the vendors have a a solution that doesn't fit very easily into the existing public available of the stack environment I think will change slowly it is important and SRIOV has a big impact on our network Linnix and KVM so that this is certainly still ongoing work one gig huge pages just came in the Linnix kernel so we're using 6.4G so we're using 6.4G so we're using 6.5G the X7 is coming along and it has a lot of these things in the environment particularly huge pages and new memory are kind of in the REL7 and after the SSD is a cache all are all in REL7 so REL7 will predict I know they do and I set this up by hand so in the environments I had they were all direct to patch drives and I had a depending on the configuration one or two SSDs and four or five hard drives in each of the server base and then that's actually how we were able to get these old we were able to get the 10 gig streaming out of these boxes and they were not for this environment because this was really completely a caching environment so we lost it we could just get it back from the other caching as long as we could detect it so they wouldn't match it but we were just pretty exact and from SSDs we were actually because of our we could segment the SSD environment our CDN software here's the tie-in fast storage and it would deploy the hot cache environments on that storage but one of the things that I'm looking for would be to actually use SSD as a kind of an automatic cache that wouldn't have to segment that environment necessarily but those were out of frame so I think there's a couple of net apps that have something like scaches there's a couple of things that are possible there and then I think what the other thing to learn is Verizon it doesn't we don't have a lot of experts in go-to-stack environment we need to help in this environment so I think one of the things we definitely learn we need I can do a lot of this stuff in the lab but as you deploy this in a field real field environment to do the leverage and find and fix some of the bugs and then push them upstream that's actually one of the things that happen right now is to push on our desires some of our needs upstream as well as find and fix the bugs and pre-test the environment before we do it and I think that's my future work more a day that's kind of our mantra horizon is how do we make this a reliable environment hundreds of sites if you can imagine all of our cell sites having a component of this how do we make this work geographic storage redundancy that's we didn't need this in this POC but that's another one of those areas we need to focus more time on and get a useful function out of that network policies again and we've got this hypervisor actually I have one of these things running in my lab I have a one over stack environment as KDM and VMware ESXi hypervisors in one pool and it's actually been very useful we have a lot of the existing applications we get from vendors if they've been virtualized they've often been virtualized on VMware ESXi and so that actually is a reasonable for particularly in my lab environment for them to develop and test their environment in VMware in parallel there's a KDM environment they can actually test their new environment and we can compare side to side as to what the behavior is and it actually seems to work I'm able to bring this up easily and manage it as to kind of hypervisors but I'm actually knowing this putting filters on the ESXi just really the only change I had to make and then again today we had to act on some lessons earlier from our dealer trials we're actually going to be deploying some of these into a field in the buying quarter and once we get this we'll have real live traffic you guys probably will be our employees on this environment but Q3 are more intent to be off the field and I believe that's it that's it questions many many how did KDM compare to ESXi in the environment we were running on it was quite a bit slower and we looked at some of the things that KDM KDM was slower and there was some reasons why we had to identify some of the reasons and push some of the things up through some of the things like huge pages and some of the scheduling aspects were some of the reasons so there's several, lots of the projects are in process for making those KDM better the one place where that did change is actually where we specifically had a PDK environment that was tuned for the KDM stack that performed better than the ESXi a large amount of the legacy requirement that's what we have in our network so part of the issue that KDM came out is that the our vendors supplied a hardware of active equipment part of which was probably a switch or a router function and we're trying to decompose that into the all the virtualness functions in order for our operational structure we tended to create VLAN as a customer separation or a function separation because this was a large piece of solution to use the equipment we ended up bringing all those VLANs into one environment the application ended up using that the technology has supported so fitting into that is kind of retrofitting all of that is I think it'll be it's kind of an artificial operational constraint on the environment I think it will be at least for us it's an interesting problem and I think it will be well, yeah I think that's where the in the end it will be on the version of vendors to rewrite their applications to be less acquiring of that functionality but that's correct and that's actually one of the things we're finding that are the first generation of apps that are getting this NFPs or BNFs in technology are really kind of part of the existing application they really take the code that's running on a blade and make that a VM and then you have this large chassis and they actually pretend in the software environment that what they have is a bunch of blades that can control all of it so that's all the kind of legacy that you can place on that we expect that one to be written it's a step on the approach and I think it'll soon come to a point where it's separate than that so we drove this to do that to look at the various switching environments and overlays so some of the things we didn't think were addressed well covered performance was not ideal we're looking for tens of big bits of throughput for this environment at the time we're looking at basic OBS environments we're also looking for how do we deploy our applying our policies to a scale VM or to a newly created VM set service changing is kind of a particular and so this thing and there was no convenient way to do that in native OBS environment and that's what's kind of let us down this path the functionality didn't seem to be there and the performance didn't seem to be there and there were alternatives and openflow was one alternative to kind of directly manage the environment there's several embedded switch things which takes OBS out of the compute path environment and then there's all the overlays that have a lot of integration and I guess I have some MLS environments that do a lot of that integration for you of course they can't give you a resolution or a performance or results from that so this is part of our Verizon problem so our goal is to go into field trial in Q3 Verizon typically will spend six months in field and then go into production one of the things we'd like to change in this model is to break that process instead of six months beyond or a couple weeks but that's not going to happen so I think in this environment we'll probably be in production in the beginning of next year if you have any other questions and we're actually looking at OPEX86 in the arm from a hardware perspective and bare metal Docker PBM and ESXi are all hypervisor Verizon is telling me that I can't tell you the results they both work and they're both out and relatively easy to set up but we work with Canonical as well and I think this was more kind of a relationship than environment we have with Red Hat people are a lot of people out there and I have kind of the most experience in my experience with Red Hat and CentOS and partners have been doing the Red Hat very responsive and good job for us but we've got a conical client I can't Verizon told me I can't thank you all for coming I appreciate it


So, we last time we concluded with Nash's theorem on the existence of a Nash equilibrium. I will just mention a generalization of it which basically follows from the same proof ideas that we have we used for earlier theorem. So, the generalization is essentially the a generalization in the strategy space. So, now suppose I give you a game like this, you have n players, this is your set of players 1 to n. Earlier we were taking that each player has finitely many strategies. So, now I am going to allow for infinitely many strategies for the player. So, the strategy set of player i is a subset now of some Euclidean space RMI and no, this is just I am just continuing from before. So, we are and the utility the cost of player i is a function again from the product of the strategy spaces to R. Now, here now what we have here is that this could importantly this strategy set here could be could actually be infinite. So, in the sense that so, earlier the strategies of players were simply there are just finitely many strategies for each player. So, there were rows or columns of a matrix or something like that. So, but now we are we can allow for infinitely many strategies. So, this could be any subset of RMI. Now, what we can define a Nash equilibrium in the usual sense that so, an x1 star to xn star is a Nash equilibrium if ui of xi star comma x minus i star is less than equal to ui of xi comma x minus i star for all xi in si and for all i in n. This is our definition of a Nash equilibrium. So, the question is when does a Nash equilibrium exist for a game like this. So, here we are talking of a Nash equilibrium in in the space in this strategy space in the set in the space si that means these now are the pure strategies of player i. But the but the player has infinitely many pure strategies. So, he is a continuum of pure strategy. So, question is when does a Nash equilibrium exist. And it turns out that you can actually claim the existence of a Nash equilibrium for this kind of a game or pretty much using the same arguments that we used for a Nash equilibrium in mixed strategies, but with when you had finitely many pure strategies. So, remember the set of mixed strategies is also infinite. So, when we got a Nash equilibrium in the space of mixed strategies, we were again talking of a game where there were infinitely many strategies for the player. So, the interesting thing here is that the pure strategies are infinite and when you have when certain assumptions hold actually a Nash equilibrium exists in pure strategies itself. So, that is that is and that is the theorem that I will I will write out here. Now, so the theorem is this. So, suppose si is convex closed and bounded for each i and n and suppose ui, ui I am going to view ui as a function of xi for each x minus i. So, ui of xi comma x minus i is continuous in xi comma x minus i and strictly convex in xi for each fixed x minus i. So, that means ui is a continuous function of both these variables. For both these variables it is a continuous function and if you view it as a function of only xi, then it is actually a strictly convex function of xi for each value of x minus i. And this is true for all i for every player i. Then there exists a Nash equilibrium for this game. Then there exists a Nash equilibrium for this game. So, you can see what we have done is we assume some things that are similar to what we had earlier. The strategy set is now still convex closed and bounded just like it was when we had looked at the set of mixed strategies. So, the set of mixed strategies was for a game with finitely many pure strategies. The set of mixed strategies was also closed, convex and bounded. When you looked at the expected cost or expected utility of the player that there was linear in the player's own pure strategy. So, now that has been generalized and we are asking that it is continuous in these variables, in all these variables and it is strictly convex in xi for each x minus i. So, the assumptions here are slightly different, but the arguments are that we will need are more or less the same. So, what we need here is actually something like a more specific version of Kakotani, which is actually attributed to, so it is an earlier version attributed to a mathematician called Brauer. So, it is what is called Brauer's fixed point theorem. So, Brauer's fixed point theorem is essentially says this. So, if you have a set S subset of Rn, which is closed, convex and bounded and f which maps S to S is continuous, then there exists an x star, x star in S such that f of x star is equal to x star. So, this you I am sure you have seen this in you know and some earlier part of somewhere earlier in your life you would have seen this. So, you let us look at a very very simple version of this. So, suppose you have a just an interval from 0 to 1 and you have a continuous function that maps this 0 1 to 0 1. The question is can this can you have a continuous function that maps 0 1 to 0 1, but the function misses the 45 degree diagonal. It is just that is just not possible. So, you would have studied this in the you know you have many ways of proving this for in when the interval when the function when the set S is is just the interval 0 1. So, when the set S is the interval 0 1 and you have just some continuous function, you would have probably proved this using Rohl's theorem or intermediate value theorem or something like that. So, a much more general version of the same thing is Broward's fixed point theorem. So, Broward's fixed point theorem is essentially saying that in is generalizing this by saying the set S is now not just 0 1, it is any close convex and bounded set in R n in n dimensions. The function is something that maps the set to itself. So, it maps S to S, but any and the function is continuous. If the function is continuous, the set has this is close convex and bounded, then it will always have a fixed point. So, now what we want to do is we just we will what we will do is we will use this theorem to prove this existence of an ash equilibrium in this setting. It is not very hard. So, we can just quickly go through the argument. So, I will just sketch out the proof for using for the existence of an ash equilibrium. So, as before let us look at the best response. So, the best response of player i when others play x minus i. So, this is so, the player is looking to minimize u i. So, it is those. So, this is going to be those x i's let us say x i stars I will use x i in s i such that playing x i is better than playing x i dash for all x i dash. So, these are the. So, when others are playing x minus i, this is what the player would respond with. Now, when we did Kakotan is when we applied Kakotan is fixed point theorem what was our main observation that we are observation was that this could in general be a set right when when when the others were playing a mixed strategy a player could have multiple pure strategy best responses and therefore therefore the set of mixed strategy responses could in general be could be a set. So, it could be an infinite set there could be infinitely many best responses. So, when we were when we are looking at the Kakotan is fixed point theorem we wrote out a similar set over there the best response and that set was in general you would have more than one element in. So, we say we found that if in fact what the what happens is that the other player's mixed strategies become are chosen in such a way that a player becomes indifferent between several pure strategies of his own. And when he is indifferent between two or more pure strategies any combination of those pure strategies is also a best response any mixed combination of those. So, this so all of so this so the set of best responses then is in for the those kind of games is a set. Now, but if you look at this here we have made some very specific assumptions right we have assumed that ui is continuous and strictly convex in xi for each x minus i right. So, what happens as a result of that so if you as a result of that what you see is see the x what are these xi's these xi's here are those that minimize so this is actually the same as the minimizers of this optimization it is the minimizers of ui of xi with x minus i fixed right. So, when you minimize this over xi the minimizers that you get those are your best responses. Now, what did we assume about ui? We assumed that ui is actually strictly convex in xi for each x minus i right. So, and we assumed also that xi is a closed convex and bounded set right. So, therefore this problem if you just look at this problem here this problem that I have underlined this problem is actually a convex optimization problem right because you are minimizing a convex function for a fixed x minus i you are minimizing a convex function over a convex set. In fact, you are minimizing a strictly convex function.  So, this is the definition of a convex function.  So, which means that the function if you take the convex if you evaluate the function at a convex combination of two points you get a value that is strictly less than the convex combination of the function values itself right. So, a convex function can have a flat bottom like this this kind of a function is also convex, but a strictly convex function cannot so because it has a flat bottom like this what you would have is you could have two points here having you know you take.  So, a strictly convex function will always have something like it will look something like this that there will never be any sort of flat region in that along any direction that you look at. Now, what it means is that once a function is strictly convex and you are minimizing it over a convex set what this the implication of that is that this that kind of a problem a convex optimization problem with a strictly convex objective over a convex set that to optimization problem will have a unique solution. So, this argmin then is going to be actually not a set, but a unique point. So, this here is the argmin is going to be unique. Now, because once this argmin is unique then r r i is not a set valued map, but just a function of x minus i. So, then this becomes a function of x minus i this is clear. So, now what we can do is we can then again as before define r of x as r 1 of x minus 1 on the way till r n of x minus n and this is essentially what you are doing is just taking components of stacking up the these n different functions you have r 1 is one function r 2 is another function etc you just stack them up and what you get now is r which is a function then from s to s where s is simply the product of the strategy spaces. Now, it just like we did for in the in our in our previous proof you can also now show that r. So, earlier in our previous proof we showed that r must have a closed graph the best response set perhaps a closed graph. So, the closed graph in the exact same argument will apply here, but instead of getting a closed graph what you will get is that the function r itself is continuous. So, the graph being closed will basically mean that if you take a if you take a sequence of points if you if you take a sequence of x minus i is converging to a point then r of x minus i will converge to the r of that r i of that point. So, so using the same arguments as before same arguments as before you can show that r is actually continuous. So, so you can you can check that the exact same arguments will continue to apply. So, r it actually shows that r is continuous and when r is continuous what we what we have then is that r is a continuous function. It is a function from s to s and s remember we assumed is is convex closed and bounded which means then by Brouwer's fixed point theorem by Brouwer's fixed point theorem there exists an x star such that x star is equal to r of x star which means that there is a there exists a Nash equilibrium. So, in other words what happened is now we started off with a game in which there were infinitely many pure strategies and we got a Nash equilibrium but with some more structure on the U we had to assume that the strategy space was convex and compact we had to assume that U is continuous continuous and strictly convex and in that case we get that there is a Nash equilibrium in pure strategies. We do not have to move to mixed strategies in this in this domain. So, in the case when the number of strategies was finite there was a problem in and that is why that is where we had to go towards mixed strategies. So, of course there is a notion you might ask of course is there a notion of mixed strategies even when you have infinitely many pure strategies. So, there is such a notion as well. So, you can allow for randomization even when there are infinitely many pure strategies. So, then what you have to what each player is then choosing is a basically a probability distribution again on his pure strategies. So, he is looking he is choosing a basically a PDF probability density function on his space of pure strategies or more generally a measure on his space of pure strategy. But all that is a technical generalization if you but the main thing I wanted you to know is that if you the whether there exists a Nash equilibrium or not is essentially a topological property. It has it is about the shape of this of this function R and how it whether it you know has the right shape to eventually that it has to intersect that 45 degree line in the in that larger space.  So, so this was this is the this is all I had to say about this particular topic.


Almost time for the bell, how many options will you sell? Fire up your platform, get ready to enter But first let's get the mindset centered That's how we get paid, test and trade it Have success, find what works for you and forget the rest Stats and probabilities is what we're up to Miss greed and doubt, focus on the process Not the money and the profits will flow like honey Power our lives, let's start the show Come on trade hackers, get ready to go Zero day options, time to make bank Get locked and loaded, then be ready to plank What's up everyone, welcome back from a long weekend Today's February 20th Well the market did not welcome me back with open arms this morning Like I thought it would I mean you'd think after a long hard, grueling holiday weekend That SPX would welcome us back with open arms But that didn't happen, I got stopped out of my JSP Stopped out of my 1DTE, stopped out of my O2 call calendar Stopped out of my AM ratio I still have my NDX trade on And with this little bounce, it might be coming back into range It did, there was no 15 strikes It ended up taking the 5 wide on the put side Which actually ended up helping with this down move So I got lucky on that, but it's got to get above 25 To get back into range on NDX On my, let's see, on my Re-entries, they haven't done too bad Well I got stopped out of 1 Let me see here So my re-entries Yeah I got stopped out of the first one And then stopped out for profit Stopped out for profit, stopped out for profit And then I'm in one that's up 27% And I'm in another one that just entered So my plan for power out today is A, I just entered the Wuga Which is right here I got in on the 75 calls, 70 puts And then one of my re-entries just fired So I am not going to do a trunch one for power hour I want to double up at this price level We are in a normal day So I use that as kind of I've been doing that kind of discretionary I may look at a trunch two and trunch three Real quick, I know we got some new folks in the house So I just want to give you a quick Do a quick little housekeeping comments Number one, if you go If you look at my screen, I brought discord over If you go to the zero DTE course channel And scroll up a little bit There is a new member zero DTE checklist So make sure you check that out It lists kind of the step by step Kind of what you should do to get started Part of that is In the trade plans channel This is where every month When I update my trade plan To share exactly how I will be trading I post that here And you'll see some other members Trade plans in here as well You can see here's my February plan And here in the next week and a half Or so I'll be putting out my plan for March So I trade things a certain way Chad, who's on here as well Chad, you on here? Yup, afternoon So Chad, you can check out his trade plan In the trade plans channel as well So he's doing things a little bit more Discretionary based on price action Where a lot of my trades are based on Or more back test driven So it's a lot of information So if you're overwhelmed That's normal Just start clicking away On some of the goods There's a lot of gold in here So welcome everyone who's new Chad, how's the TLCs doing today? Yeah, so I had several put on today My AM number one It's completely closed out for 1990 profit My AM number two got stopped Before it was on that first big down move So that was a full loss Minus 3,000, 320 My AM number three Did a 20, 40, 60 and out And a 1980 winner My lunchtime number one I'm out of That's scratch trade I hit it 20% and then it's got stopped So it was minus 75 bucks Apparently a lunchtime number two You're kind of cutting out Chad Your audio just went out Yeah, can you hear me? Yep Can you hear me? Yeah Can you hear me? All right, well Chad's taking care of his audio Let's see what else we got going here I've got some short premium in These are non-zero DTE related But I've got some short premium in natural gas I've got some short premium in corn I put on a new duck in rut today VXX vertical is Slightly in the red Not too far off from where we put it on Let's see what else we got here I've got some short premium in MES That one's up a little bit Another MES that was profitable after adjustments Took off a new time fly today For over 10% Put on a new time fly In the March 8th cycle Pretty close to where we put it on Got a couple of ducks in SPX One of which is in the February 26th cycle Well up the beak One of which is in the March 5th cycle Little ways up the beak My two re-entries that I have on This one's up about 32% And then I've got a 3-2 that I just entered And that's just up a little bit All right, there you go Chad Can you hear me now? Okay, so I'm not sure where I cut off But I'm in my first power hour trade So I just posted that recently here So overall I can stay green here if I can Book a power hour Hey Alex, if you go to the Strangle course It's in the option selling category Go to the strangle course And then I mean you want to go through the whole thing But The updated lesson is Lesson 11 is called short strangle variations And that's More in line with the way that I'm trading them At this point And that's not That relates to whether you're Selling premium commodities Or stocks or indices or whatever So Wuga took us down last Friday So hopefully he can Bring us home today I don't know if Wuga's here with us today So we got S&Ps down 28 NASDAQ down 175 Russell the weakest down 30 Dow down 30 Basically unchanged Gold a little bit higher Silver lower, notes and bonds higher Ten year yield about half percent lower Oil and natty gas down a half percent Grains are green Wheat up almost four percent Euro in the pound green Bitcoin slightly green VIX 15.33 currently VIX got up to Almost 16 earlier Currently trading Getting close to lows of day I guess we opened a little bit lower Also if you're new So this month I've been doing a lot of different Testing and doing some different Discretionary trading Which you'll see in my February trade plan But if you click on the January Tab at the bottom of the sheet For my trade plan you'll see A lot more strategies that I was doing Prior and some of which That I'll be bringing back in March But this was kind of a A little bit of a different month Of trading for me While I was just trying to figure a few things out I was trying to figure out what I wanted to be When I grow up So my re-entries are in good shape My Wuga is in good shape I was kind of hoping we wouldn't get any more push up there It's pushed up far enough Oh I did Make a nice little profit As we came down to the expected move I sold a bunch of puts And caught that move up and got out Pretty much painted the bottom and the top So that helped That actually made me green For the day I sold the 4975 Puts Bought the 4900 So vertical Got in for 1195 Scaled out at 810-710 So that was uh That was good Did some futures trading today ES Cut that move in ES And then I pulled back I tried to get long again Thinking we were going to continue higher Got stopped out on that So basically gave it back And then caught a little winner in oil And a loser in corn So futures down about for 85-ish on the day Just got filled on something Like I got out of half of Something here 20% I'm sorry, I take that back My lunchtime number 2 got filled Lunchtime number 2 I've been Working on this kind of end of day Strategy And I spent I probably spent 12 maybe 15 hours Testing and trading it On thinkorswim On demand Grueling You guys don't like paper trading Talk about trading on demand That's even worse But anyway So for the last 20 minutes today I'm trying to work some things out So for the last 20 minutes Chad's gonna take over and share his screen So I can focus In a live market here And then I'll jump back on Towards the end Just filled again Filled on 20% of my power hour number 1 My Wuga is up about 9% My two re-entries are up 33% and 20% Yeah just kind of I'll be sharing it I wanna If there's a lot to it So I wanna share it with an example But yeah, I'll be sharing it Very soon If it sets up maybe even Today here I did put on a one two DTE double calendar Today That's pretty much Pretty close to where I put it on 6.7 is down a few percent I took off I was up about 10% Which one was it My 4.6 I was having platform issues Tradehawk did a big update And Everything together It reversed So I ended up taking a loss on that one Took a win on the 4.5 A loss on the 4.6 And yeah still have the One two from today And the 6.7 I traded the O2 call calendar This morning it got Closed out for about a 3% loss Just need price to kind of hold Right there You're still holding Cosmo Pretty right? Yeah bullish Yeah on normal days Like today so when it's Not down over half percent Or up over half percent from the open I call that a normal day So in February if you check out my trade plan For February you'll see I'm either not trading it Or I'm trading it on a discretionary Basis so Not trading it today I had a couple orders From my reentry strategy And this 10 wide No stop version come in Right at the same time so I didn't want to load up On the same price level so I'm not trading my typical power hour Today but Yeah you can see it in the trade Trade plan exactly how I trade it There she goes Looks like she's wanting to push up again See if it gets rejected or not God forbid we have a red day Just closed part of my reentry SPX has just been kind of Grinding higher ever since it Bounced off the lows of $49.55 I wouldn't mind it coming back down to about $49.65 My NDX Coming back into play Discount I know you posted your NDX trade what are you Are you back in range yet I think you had maybe a little bit higher strikes Than mine if I remember right Okay yeah so you need another You need another 20 on the NDX So this is the time that I would Start normally entering my power Hour trunch number two And I'd be looking at probably the 80 calls 75 puts And I'm just rolling with One power hour for now because I still have A my lunchtime Iron condor Number two on so I have two current Positions on so that's enough For me right now so news For the week so Tomorrow we get the pleasure Of some fed speakers One is before market one's at noon And then we got the meeting Minutes coming out at 1pm Central which Usually is not a big deal sometimes it Is if they sneak something in there Thursday pre-market Unemployment claims flash Manufacturing PMI flash services PMI And nothing on Friday There you go leechy leechy 101 Wuga is The name of one of our members I think he's here today But he started trading this so we just Call it the Wuga SPX 5000 I'll take the under I I think I've been kind of thinking We're going to have an updated model too Actually yeah I don't like that bet I know you're being generous I hear you but I don't know You can't keep a good SPX down I mean we've had two down days in a row Or Got a little end of day bounce going Feels like A rally tomorrow Big thing to look for tomorrow would be A video earnings Oh is that tomorrow Yeah after the bell tomorrow I'm sure that will have an effect On the market after After tomorrow Yeah sure will 221 after market It's a little 153% Implied volatility in those front week options In Nvidia Yeah I know I saw that today Expected move between Now and the end of Friday is about 78 I bet it moves more than that I don't know which direction But I bet it moves more than that Big K quit trying to take all my money I'm scared to bet you Is that what you want to hear? I'm scared to bet you My wife won't let me Yeah I'll take a I'll take the bounce tomorrow But don't feel obligated I mean I know you feel sorry for me But come on I still owe you two barbecues Alright so my Wuga Is about 20% My re-entries are up 32 and 38% Oh yeah I forgot about the side broth He sucked You snuck that one in at the end That bone broth Will keep you healthy You have to eat a bunch of ribs You just take a little bone broth down and you're good I could go for some barbecue about now Naughty dog I've been on a different bone broth Lately you still have bone broth in it I'm on the kettle fire Kettle and fire is the brand It's not very cheap but it's good I didn't mind those little gelatin Deals But the kettle and fire is much better So the Natty gas market closes 130 Discount Yeah so you really don't want to try to Try to trade those after hours Our number one Hit 40% A lot of 40% booking So you don't have any hanging out there without At least a 20% hit right Nope So you gotta Get your green day locked in Yeah green day is definitely locked in Oh I just hit 40% Yeah Just hit 40% On lunchtime number two So I'm either hitting 60% Or I'm getting stopped out next Always good when you don't have any anxiety Over power hour Or I guess the last 30 minutes of the market Yeah once you get that Once you get that stop reduced And take some chips off the table Different feeling Yeah let us know discount I checked those out I checked those out I checked that out before I even knew about trade steward But never really did much with it Don't they charge on a per They charge on a per bot or per trade It's like a per trade basis isn't it Or something Something kind of weird Per trade yeah Yeah once trade steward comes out with the Ratchet down stop So like once you hit a profit target It ratchets it down to That'll be big for me Trade plans channel bullish Yep in the trade plans channel There's a video and a spreadsheet And on the spreadsheet it has Every single strategy that I trade Yeah you got to have option omega Because that's what all the tests are based on They're all back test driven So Those guys give all of us NT folks 50% off If you just go to navigationtrading.com Slash omega I think that takes you right to the Right to the discounted Page Yeah if you're going to be trading back test driven Strategies you got to have option omega K you didn't get stopped on your one DTE What's your stop I got smoked out of mine I got a $6 stop I got hit That's high enough SPX Yeah Andrew K you got to go beef Chicken I mean it's okay but Beef Beef is what's for dinner I got stopped out of lunchtime number two After booking 40% profit Yeah just barely So my Wuga is up about 15% Now needs a little down move My re-entries are up 37 And 34% So Dick K you were on the Both fives and the 15s 224 million to the sell side So my one DTE I was on the I was on the 49 60 Puts and the 50 15 calls Are you going 7 bucks Are you targeting $7 premium Dick K Good boy SPX good boy Hmm the difference must be Of what you're doing Dick is your Your long legs you're targeting A buck and I think I'm targeting I'm targeting 15 Or 20 cents up to 80 wide So I'm basically 80 wide That's the difference No down move here I just get filled on Stopped out of my Re-entries for profit Sizeable down move wow Where did this come from For 5 cents That blows Holy moly I got stopped out of my Power Hour I'm glad I booked 40% Where this came from I got my puts and see if I've got any Worth anything now That was very rude Is that Schwab Elliott Not excited about that Schwab Transfer Anybody else here on Schwab Have issues like that I've heard Elliott posted Bunch of times So you're seeing stops getting blown through Howdy Well I guess once they get connected to Trade Steward you'll have that Stopped but I guess it's better than Well I don't know if it's better but eTrade Just announced that they are Not even allowing you to put stops On spreads Well the bot algos once it hits that Your stop price it'll send In order to the market right away If they don't honor that That's a different story Well I am pretty much out of everything After that push down Still got my Wuga Sitting on the edge My last reentry Pushed it right back to center so it's good for that one Well way to dig yourself out of a hole Dan B Alright it's about 20 minutes Till Chad do you want to take over the Screen share Get in here I'm going to work on this little end of day deal I'll come back here before the bell And if it sets up I'll share what I did If not I'm going to wait for another example But there we go Alrighty I'll be back So I'm out of everything I do have one trade still on in my second account But my One that I trade and post my fills In the discord there I am out So I don't know that I want to re-enter Anything I'm green for the day So Probably would be smart to just Sit tight Give me a second here I'm pulling out Of my second account so My other account I was I was up like 2k And this push down Stopped out a power hour For a full loss And then stopped out one that I hit 20% On so It kind of pushed me back to scratch which That was a bummer There we go so I can because I can pull this over That's why I usually just keep it on My price action But there we go So this is the only Only trade I got on and this is not one That I have posted in the discord This is my other account So I need a little Down action Really don't want anymore up action now that this Had this big Push down stopped me out So I'm not liking what I'm seeing Out of this now it's going to Bit rebounds here it's going to Make me go into the red for this account This account was up about 20 minutes Goes up a couple grand Goes to show you how fast things Can change And trust me it is real tempting I could probably put on a straddle right now For power hour number two My account here that Take a look at it Man that's tempting That is real tempting So I could do let me see I could do it in this one because that would 970 straddle Look at this Don't really like it honestly But it does have some wiggle room To the upside I do kind of like that Take that one since I'm off centered with my first one 495 Would be my Profit target Again this is not my Account that I post the The trades in What did I do wrong 770 straddle There we go Now this wasn't the price action I was looking for In the last 20 minutes of power hour A big drop down and then a big rebound Immediately Wuga hit 50% nice I closed out some of my puts in that In my account that I post the trades in Got a little bit of money from them on that move down So I can figure out My total profit loss For today in my main account 4395 I'll take that 10 minutes to go Theta is going to better start decaying quick Did 6 trades today Here's my results Where it goes Just back over here where it goes I've developed such a habit of Price movement I look left Trades I look right Wouldn't mind price just to kind of stay right there Actually I'd take a pin at 4970 Where's it going to finish at Out of half my straddle on that account Nice job Michael Todd He's just a little bit of down movement I got these two Trades on in my other account here To get out of half I need just a little bit of down movement And there it is So Getting back in the profits In this account thank goodness A couple late power hour trades Doesn't need to move up though I can tell you that Just got out of 60% of that Straddle 40% of the straddle not 60 40% got two contracts left And I might get a pin here Nice job madam butterfly Come back down there S&P don't need to push up You've pushed up far enough Back down Like to see it settle in about It's going to push up It's going to stop It's going to stop me out of my Got stopped out of Why isn't it stopping me out? It's blown right past it I have a 670 trailing stop On and it has It's at 750 it's blown right Through it 847 unbelievable My trailing stop Did not Wow That is not That's unbelievable I have a 670 trailing stop And it's at 850 9 something now I guess I don't know what else to do though It made me go from Green day To minus 1100 in that account Thanks to that last move Unreal Alright guys Everybody has a great rest of your day I'll see you guys back here tomorrow Alright my friends Not a good setup so I'll share Time Everybody have a good night Take care


Hey everybody, Matt here for late sports cards are up in one box of 2022 top stadium club chrome. This is for Paul T. Good luck, Paul We have Christopher C up after this being team Bryce Harper and Rookie auto green refractor to 99 Nick Plummer. It's a boy him in as Ronald Acumia trophy hunters Tati's Andre Dawson Miranda and Ken Griffey Jr. Dynasty. Oh, I'll to be a refractor being team Aaron judge Without Bruhan and Lou Gehrig green to 99 Illinois auto trophy hunters Marta refractor Jake McCarthy team of the future Sean Murphy Mickey trophy hunters. That is Dylan Bundy blue to 199 Austin Riley team of the future Alec Thomas rookie Last pack team hunter green rookie and And rookie auto Zach short you go to auto box for you there Chanager and that will do it for your box. Thank you Paul appreciate it. We'll get these right out to you


We will continue. I'm Ben Dewkes. I work for a company called Cove Paint but that's not really important for this presentation. I'm going to go through a little bit about some old computer system that I used to have... Yn ymwneud, yw'n gwneud yw'n gweithio'i gwaith ar CC bys A4. Mae'r ysgolwch ac mae'r hyn yn ei ddod yn gweithio'n gweithio'r cyfrifau gyda'r ymddangos yn ei ddod yn ymddangos. Yn ymwneud, yw'n gweithio'r ysgolwch. Rwy'n gweithio'n gweithio'n gweithio, ac mae'n gweithio'n gweithio'n gweithio'n gweithio'n gweithio'n gweithio. Prun fyddwyd... Ika bryd effeithio'n trash unemployed i'r mwyaf mewn llwi ffawr ar cwrwpm dressingol, byddwn i ddilidion a wahanol i'ch cabb ran chi oherwydd yn weithio... Fe foresee'r ysgrif hon... sefydli'n amser hwg gyda chi. Fe wnaeth unig ar y gweithio'n rhaid mewn iawn, i'n s знаком na siwr ein resistance Verse 64. Roedd hyn hyn hefyd ddim yn anggorerrydd ar적io ac ar gyfer mynd i chi. terminellwch. Ychydig wych chi haeth 20 springwch o Ron. 5,5 kg o ram. I've missed out a half on this. That was about $299 when it was released. I think it's about €700-800 nowadays. So it wasn't exactly cheap for selling that thing. In any case one of the first computers I had, obviously I didn't get it new, I've got mine second hand, because I really... Iwn gwaith i'r un o rhai hwn ffordd. Dw i dweud, yn ceisio'n credu weithio gweithiinfod Jeu, oeddwn eich digud yn teithio, a dwi wedi weithio eich sefyll â'r gwrdd. Cywb ceisio'n gwasanaeth Rham 16. Dwi gweithio'r siwr yn ddiwg ddechuno'n gweithio'r ddweud. Rhaid i'r ffordd o hynny o un ffordd i'r rhaid i'r gweithio'r sefyll. I think a free killer bike ram expansion, I really love that because whilst it says five and a half K of ram about three K by three kilobytes that is available to the user for programming by default, the rest is used by the screen and the operating system so there wasn't really much much chance for writing your own code and because of the limitations lot of the games would come on cartridges which would fit in to the slot which was like this edge connector that I'm assuming most people are familiar with. So why does this talk exist? Well I said earlier this was my second ever computer and I was browsing around this board and I came across this upgrade and I was thinking do I have enough information from this to work out how it worked? Because I was actually slightly interested in what was going on. I thought this was actually simple and I'm going to go through some of the technology involved in the next few slides which might explain to people who don't know about the details of the hardware what was going on. There's two types of ram from this sort of era. There's the static and dynamic ram so nowadays there's pretty much now dynamic because that's the stuff that's one but in this space most of the expansions use the static ram and this one from looking at the picture was using dynamic ram. Nice thinking. That circuit looks a bit too simple and I'll go through. So I'll say two types of the ram. So a dynamic ram was a bit faster but it comes with a couple of downsides. The address bus is multiplex so you have to give it address in two parts whereas SRAM just had a standard address bus so you just gave it the address. And I read and write. Dynamic ram requires a refresh so every in this case it's 128 rows requires every single row to be accessed within a 60, sorry, a four millisecond window otherwise the contents of the ram will start decaying. Now the bit here that I think made the DRAM more interesting to manufacturers is it was actually cheaper. Now I haven't got exact prices from this point in time but it's about four or five times cheaper to go with the DRAM and when you're talking about what was about 50 or $60 worth of memory spending that money on making it simpler. But adding extra components around it was worth it. I say this is sort of a state machine of how you go about a DRAM access. I'll explain a bit more about that. But this is obviously this is a bit more complicated than simple logic decode that was used on static ram. So the VIC-20 has a rear expansion port which is where this cartridge plugs in. It's a really simple extension of the 6502 CPU main bus. It brings out the eight data lines and 13 of the 16 address. You get the read and write, there's some pre-decoded chip selects because they'd already done some of the work for you of working out which areas were being accessed. A CPU clock which is running at about one megahertz. It varied slightly depending whether you had a Palo NTSC version because they used the video reference to divide down for the CPU reference clock because they were trying to make a very cheap machine. And there's a few other things like the soft and hard interrupt. Now, unlike the Z80, the 6502 doesn't have an inbuilt refresh. At least with the Z80, there was actually some help for building DRAM based systems where they had a CPU refresh in there. But it's a basic parallel bus in this diagram. This is a simplified timing diagram. You get an address set up during the low cycle of the clock. You get some data roughly in the high cycle and by the time it's ended this, it's expected the data to be valid for read or it's been written for the right. Now, as I say, it's about one megahertz in this. So we're about talking about 1000 nanoseconds for a cycle and going with how the DRAM would work is that you start with the row address of the row you want and that's sampled roughly on the active edge of the RAZ signal. Column address is again on the active edge of the column address. And then at some point pretty soon after you either read or write the data. And again, just below this is a refresh cycle where all you need to do is just give the DRAM the row address. So that's a little bit of an introduction about how DRAM works. Let's go back to what I was thinking when I saw the picture. So I'm thinking actually there's probably enough information from just looking at the picture to tell me roughly what's going on. I say it's all pretty much standard logic gates. We're not talking any sort of FPGA type stuff that wasn't available back then. The best you'd find is programmable logic arrays that were fairly simple. You're talking and or gates probably 14 cells. And we're talking and we thought there's definitely no PLL in this because if you're doing a state machine you often for modern FPGA would require PLL to get your 8 or 16 times clock and there's definitely no room for that. That's just a quick list of what there is there. I'm not going to go through it too much. There is a counter. So I'm thinking that the first point the counter is probably the refresh counter. So I've already got some clues what's going on. And there's some MUX chips that select one of two inputs. So I'm thinking wonderfully drawn diagram. The probably the dress is coming in. The first MUX would probably select whether I'm taking the row or the column. And there's probably another select for what I'm doing for the refresh and that gets presented to the DRAM. Now I'm still not sure how on earth they're actually working out when they can refresh because usually you would hold off and access do your refresh and then let the processor back. So I was reading through the data sheets and I came to realisation. The refresh cycle is only 400 nanoseconds. I have a 500 nanosecond inactive window on the bus cycle because it's not faster. It's not the fastest 602 you could get. You could just refresh when it's not doing access. This would simplify the state machine. The problem with that is that you're going to use a bit more power. But when each of the two DRAM chips that are on the board are drawing 26 milliamps in refresh and a normal VIC-20 is drawing about 16 watts of power anyway, the size is not really caring too much about the power. So I've driven the new state machine so I know I'm now working out that there's a probably clock high for an access, clock low to a refresh. That will simplify my thing. Now I'm just going to skip. I did a drop some schematics thinking this is now a thought experiment for me. So what would I do next? I could just leave this alone. No, I go on eBay. So the first start of this madness is that I actually buy one. I find one on eBay. I spend about 30 euros. Take it out of its cartridge and I'll show you later. I've got it here. And I take photo and this is the first stage or actually a full reverse engineering of this sort of thing. I got a photo of this and I've got a photo of the underside of the board now. So pretty much, unfortunately, you can't really see on this projector, but you've got two DRAM chips, the counter, there's got this state, the two to one muxes for the address and some logic. So I can photo. I can use that to look at the board. I can use a multimeter to check whether a pin is connected to another pin or not. I'm fairly obviously the power pins are all connected. But what do I also see? There's actually, but hidden behind the capacitor that was in the picture here, there's another capacitor. There's actually more capacitors than I thought. Now coming back to the fact of state machines, actually resistors and capacitors make a fairly good delay. If you've done electronics, you can use them to make delays. So I can actually do a state machine by a series delays. So I'm fairly sure that actually this is going to work quite nicely and I've got a really good idea now how this works. I can actually draw a schematic and I can use the tools I have to actually trace out and verify what I've done. So this is the underside of the board. And this is the next part of the technical reverse engineering is that I can draw so I can flip it over. I can draw with Marker on it saying what everything is, the edge connector. I actually work out definitely how it is all connected. So I've actually gone a step further now. So I actually used Eagle for this. I'm very sorry. It's not an open source product. I had a few problems getting my Eagle to key card conversion working that I've been working on. I will actually be moving to this. So I drew it out. I had five boards made and it actually works. I was quite impressed with that. You can very much, if you can just see down there, there is a piece of bodge wire. Somehow I missed the CPU reading right line, which is just fairly blooming obviously. Now I would have brought my VIC-20 along with me, but unfortunately I don't have a power supply for European plugs and I wasn't sure how easy it was to get through customs. So anyway, so I've actually built this and it does work as standard. So I'm quite amazed that something that simple can actually make a very good implementation of a state machine. Now it works very well because the VIC-20 is slower. If it had been faster, you couldn't have got the refresh into the inactive part of the cycle. So I was almost right on my first go. I mean, if I'd had that extra component, I'd have probably got the initial circuit right, but as I say, I've got the refresh. Thank you. I say I'm probably going to actually get through my time slot a little bit faster than I intended because I forgot that my original presentation actually had a demo in it. So, as I might have said, I, going back to a little earlier statement, I know that this board works. Now I ended up actually buying two VIC-20s to go with this. So this little adventure in reverse engineering, which started out as a thought experiment, has ended up actually costing me about 100 euros of money in buying comparts because of course the first one turned up and didn't work. So I got another one to get the other one working. So I've gone through some of the techniques I did use now. I had an actual thought of, which would have actually saved me some time and money in the long term. I could have actually just simulated this. I was actually so intent on actually building a physical implementation that I forgot that simulators exist. Now, back when I started, you'd pay good money for something which would do this, but this is actually a open source directly, but this is circuit.js and you just put your circuit in here and you can put stuff in and it will just show you a waveform. And it's like, yep, that worked. So that was the thought which would save me some time. So going forwards, I might try and optimize the design, but I think it's actually with the amount of components there, it's fairly optimal already. Now, I was thinking that I said earlier that PLLs weren't really around. Now, there were some chips that you could use for a PLL and you could probably actually build a very simple logic-based state machine. Whether that's worth doing or not is another point of, am I wasting my time on this? So, to wrap up this presentation, I'm putting the project files for the PCB, the presentation, the simulation, and the other little things I've used to produce the presentation. I'm going to put those up on a GitHub, which I've put URL I put there. I say there's some very nice stuff like the waveforms I've all been done in Wavedron, which is another way of just taking some text and producing a nice diagram out of it. And at that point, thank you very much all for attending. Now, I think I've got plenty of time for questions for about 10 minutes. The question is about putting a USB logic analyzer on the machine and using that to work out what's going on. Now, I did think about that, but that would have required me to have upfront bought the machine, which I wasn't intending on doing in the first place. This was basically, I found this one evening and I thought, well, that looks simple. How is this working? So, yes, nowadays a simple logic analyzer would have probably given me the same thing. I could have probably got a lot of information out of attaching a logic analyzer to the real thing and actually looking at it. But as soon as you've got that, it's fairly easy with these sort of systems to actually just trace it because it's two layer PCBs. You don't have anything really hidden within the board with a lot of complex modern systems. You might have six, eight, 10 layers and once a signal vanishes into the board, you've lost it. The fixing board is a switchable 16K RAM module. I saw you replace the original switches for the 3K or 8K or 16K RAM with jumpers. Could you please, maybe if we have time enough, elaborate a bit more how is this scheme working and why is the 3K? Okay, so there's a couple of questions here. Firstly about how the module that I've chosen has a certain amount of selection for the memory and where it says it's 16K, there's a 3K module mode. So the first easy bit is I couldn't get the switches, so I just used jump headers to replace them. Now, the memory map of the VIC-20 already has five kilobytes of memory in it. There's two 8K selectable areas and the jumpers just change which of the chip select lines are fed into the logic of the Vixen. So depending on which one you select, you may just end up overlapping an original 8K section. However, some of the original programs you get would assume you'd extend that extra three kilobytes because that's part of what you could get. And some of the really small expansions were simply three 1K SRAMs that would sit there, so that's why there's an option. So basically the 16 kilobytes is two 8K blocks and some of that, depending on which way the switches are selected, could overlap an existing RAM area. So at the back there. No, so the question was, there's a technology between the simple RC and a PLL using a delay line. Now, I didn't actually think about using delay lines because I haven't actually come across those very much in any of the standard computing stuff. So I think delay lines are technology I've not seen used, so I don't know about. But it's a very interesting idea. It's like how there are a number of ways of doing this and which one would have been possible or cost effective. So, OK, so yes. So the comment is that these have been used on a certain PC expansion and motherboards between like the 8595. Now that is about the timeframe we are talking about. I can't remember exactly when this cartridge was first put in. I think the copyright on mine was 82. And I have actually bought something to show people. So here is the original. That's its boxed. And this is what we're looking at. Now, I was trying to get some of the values of the components on here and I've actually destroyed one of the capacitors in doing it. So it's actually got a replacement on there. It turns out that. So it's. So I think that it was that was a two to three hundred three point three nano farad, I think. So. But yeah, these boards are not exactly easy to deal with. Because they're they're not actually very desperately well made. And they certainly don't have any nice features like solder masks. Anyway, that was. I can show people that close up if they want to look at the later. I say this has got a slightly different switch on it. And I say, and this is the one I actually built. I say, I don't know why not find it up with five of them. So. Yes. So I mean the question is why only 16 kilobytes? So I mean I was just recreating this pretty much chip for chip. These are for 16 K by four DRAM chips. So I'd need more chips to get more memory. If I put 32 kilobytes on the expansion, I'd fill the pretty much the entire spare memory map of the victory. Anything more. And I'm looking into having to do memory paging. And that is getting to the point of there's probably even weirder ways that I could build memory expansions at this point. And this this way is getting to the point that is probably not worth my time. Yeah, I'm just curious. You said the victory was your second computer. What was your first? So the question is the victory was my second. So I had a ZX81 as my first. And if anybody remembers the ZX81, that had even worse RAM expansions because those would actually fall off the back of the computer. So the victory at least had a proper case. So, yeah, this, I mean, this is probably spent, I suppose it's been about 10, 12 days of my time from last year on this. I don't know whether this is really a good use of my time. It certainly made an interesting talk, I hope. You've got two VIC-20s out of it. Well, yeah, I've actually repaired. So the comment was I've got two VIC-20s out of this. Now, one VIC-20 was probably one VIC-20 more than I needed. I've actually repaired the second one as well, because I could probably settle that back on. It turned out the VIC chip on it had died, so that's why I wasn't getting anything out of it. But that was another evening of why on earth is this not working? And there was a sidetrack of probing through finding out what was wrong. And the fact that China still sells VIC-20 chips. So, a question is, did I have any problems getting any of the old chips now? It turns out that eBay is a fount of all knowledge or surprise on this. And there are people still selling these DRAM chips. I think it was cost me about three euros for a pack of three euros each for a pack of four. I say there's still people with stocks of these things sitting around. I don't know if they have the same date code. This is an AT4, 45. Do both of them have the same date code? So the question was, do both the DRAM chips have the same date code? And yes, actually they do. They are fake. Probably fake, yeah. Who knows? I mean, who cares if it works? They rub ink out of it and make the same date code. Because those are not making for 20 or 30 years. So there is no way that it is all stock anymore. Well, it could because it is actually, the date code is 84. So that's 19, that's 19. But yeah, the comment was that it could be, the stock could well be fake. Who knows? I think there was a lot in Russia that had big stock money. And they are selling them out. Yeah. So I think the question, I don't know if it's going to be reliable or not, but I think, as I say, AliExpress on China is still selling the video interface chip that's used in the centre of the Vic as a new old stock. And I was quite surprised.  Anyway, well I hope that this was interesting to people. Thank you for attending.