On Monday, March 25th, Drake's opened their 25th location in Pikeville after months of preparation. The servers and kitchen staff have all been trained to exhibit Drake's signature hospitality while cooking up some delicious meals. Now that the restaurant is open to the public, many are eager to try something on the menu. So everyone's been excited for months now, knowing that Drake's is coming to town. You know, well-known name and brand across Kentucky, so to have one here in Pikeville and in Eastern Kentucky is just great for the community here and great for the people. You know, it's more than just the Lexington location, they've got 25 stores now. This is their 25th store, 175 people here working in Pikeville. So it's great to have them part of the community, great to have them making this huge investment in Eastern Kentucky, and everyone here is excited.  I got my little slaughter during the ribbon cutting, so I'm really happy about that, but the food's incredible. Everyone's been super satisfied with their food, and it's just wonderful experience here in in Pikeville. Saturday, March 29th and 30th, 7 each night, Appalachian Wireless Arena, Pikeville. It's going to be a crashing good time. Be there. Drake's has also created more jobs in the area, which is always a good boost to the economy. The Drake staff pride themselves on excellent service so they never disappoint. Oh yeah, anytime you have a company like this making an investment in Eastern Kentucky, it's a great for the economy, but these are 175 jobs, and they're not just, you know, your lowest minimum wage jobs. They're pretty decent jobs here in Eastern Kentucky, so we're happy to help have them here. The service is incredible. You know, it's my understanding that the Bluegrass Hospitality Group, all their staff goes through training. So hospitality is a big part of what Drake's does, and so the service today was incredible, and so we're happy to have this type of atmosphere in Eastern Kentucky. Reporting for Mountain Top News, I'm Nick Column.


Okay. Good morning, everybody. How's everyone doing? Good? Good. It's last day. It's about done, right? Great. I'm Somaik Behara. I was one of the founding co-developers on the Quantum Project, which became the Neutron Project. And we did a similar version of this tech about three years ago, saying why we need Neutron. Recently we have had Neutron. It's gone to about quite a few releases. And there's still the question, is it right for me? What does Neutron do for me? Or does it even work? Or when does it work? So this is my attempt of reiterating those first principles and seeing how much, how far have we come. Are we actually meeting those expectations? And when does it work? Who is using it? And then take some questions and hopefully give some clarity on this topic. Great. Let's get started. So if those of you remember the keynote address from the first day, you know, our second actually, Troy from Rackspace said, you know, we in the OpenStack community, we are the Rebel Alliance, right, on the left side over here. It's like we're disparate groups who love to argue together, but argue to come together, and then we align and we move forward. So the reason I show that, and that's the Federation's Droid Army. So for those of you not Star Wars fans out here, the Rebel Alliance fights the Federation. The Federation is stoic, a single model. Everything is, you know, one cookie cutter. They're very robotic, monolithic. And here you have very disparate opinions. You have choice. You know, you have dissent within, but you come together to fight, to fight together. So the reason I bring this is philosophically, you know, as I'm going to present, that's the Nova Network was the Nova Network model. Very rigid. You can do whatever. You can have any flavor up till it is this way. And we're going to talk about those three flavors. You can do anything with networking up till you put them on a flat network. And Neutron was very different. It's like you can do everything you want. You can use any networking vendor you want. You can use open source technology plus some proprietary vendors and create anything you want. And that gives a lot of choice. A lot of power addresses way more use cases than Nova Network. It could be possible in any configuration. But it also brings some challenges. How do all these things work together? How can I lock down, even though I have all the choice, how do I lock down to the models that actually work or which are validated? So that's going to be a theme here. We believe that this model is more powerful at the end. In the short term, there might be dissent. There might be arguments which is the better way. But longer term, you have a lot more choice and the good models will rise up. And we can talk about some of those models in this talk. So that's a rough outline to follow. Nova Network versus Neutron, high level, what is it? What is Nova Network? Why not Nova Network? Or why Nova Network? Neutron. Why Neutron? How does it differ from Nova Network with the open source components? Why would I need some kind of vendor integration? What can I do with Neutron with me mixing and matching all of this with what I couldn't do with Nova Network? And finally, who is using this stuff, right? There's been a lot of talk in the community, oh, I don't want to keep using Nova Network. I like it. I love it. I want to hug it. I've been using it for such a long time and I don't know how to upgrade it. It's generally challenging. So let's see who actually is using it in the field. And I'm an engineer. I think probably most of you here. So we're going to look at some numbers, like the user data around the usage. And I'll let you decide what do you think is right for you, right? So let's talk about the dried army a little bit. What does the dried army give us? The federation's dried army. How is networking done before Neutron was there? So in the beginning, networking was subsumed in Nova or in the compute fabric. And that was how networking has been done for a while, be it any other virtualization platforms in the past, or be it when OpenStack started out, any other cloud management platforms. Networking never had a first class citizen. It was subsumed in an auto-provisioning self-service environment in the compute stack. And that's what Nova network offered. It is still there in that model, but it is integrated, but at the same time, it's very limited from scale feature set, a lot of choice perspective. So it is still available. But the reason we wanted Neutron is, like I was telling you about, you can have anything you want. Any way of doing networking applies to this three ways. First, limited topologies. Only flat. So this is a single flat L2 domain. That was the first supported topology. And you see the router over there? That is actually a virtual appliance or a virtual machine. It's called Nova network. Initially, even firewalling security groups were implemented with IP tables in that box. It was not at the hypervisor level. So all the traffic gets dragged over there. If you know a little bit about networking, this is a single L2 domain. L2 domains have scale limits unless you fill up the switches, scam tables in a cloud, highly dense environment if you have too many VMs. And in a cloud environment, it's very dynamic. VMs are not static. They come up and go down. Every time they do that, you do broadcast on the physical network. And that's what fills up the scam tables on the switches, which means the more dense your environment is, if you use an L2 only kind of model, you have to keep on buying newer hardware and newer gear because your network is going to get stressed. So that was one way of doing it. We have ways to overcome it. I'll talk about it even with Nova network. But it still leaves us with some challenges. Then there was flat DHCP. Same thing. Except we have a DHCP server on it. The reason we had a DHCP server on it is because Windows VM images tooling was not kind of very open and supported. So the way you can allocate IP addresses for Windows VM in an open stack environment was a lot easier to do it with DHCP. This programed the DHCP server with Mac IP binding and it does DHCP discover and gets the IP. Same thing. But now we've gone to a Linux only cloud, to a real cloud, have been able to provision Windows. And then this was called the VLAN mode. That was, it is one of the kind of the preeminent mode for kind of more larger scale, more complex workloads. It's not a single kind of SaaS app, but you know enterprise environment, real cloud, mix and matching tenants. That's what most people adopted, which meant you can have all of these multiple networks here. Let's see. Anyways, you can have all of these multiple networks. You dedicate a VLAN on a pertinent basis. You start, you know, you set up a, in the config file, the start number of all the VLAN ranges you're allocating to the cloud.  They get their own isolated environment. That's a VLAN for them. Great. You know, they're not, these tenants or applications have the isolated space, very, a lot more secure.  We got around it. I'll talk about that. But that, that was the story from a customer use cases. That was pretty powerful. Except once the open stack cloud started becoming bigger and bigger and becoming successful, you know, the two problems which popped up. I don't know if you know about VLANs, for those VLANs, and even you know a cloud environment where VMs can be anywhere in your data center. And VLANs were made for departmental groups. So they were programmed on one VLAN for a certain set of switches, for another set of switches. But in a cloud environment, I can have a tenant which has VM spanning anywhere, which means, first, now to trunk all my VLANs on all my switches. I would touch every physical switch and they can access any VLAN. It stresses all of my network environment. Configuration, this becomes challenging. Troubleshooting becomes challenging. But you can do it. Right. And then VLANs have a theoretical limit of 4096. So if I have more than that many apps or tenants, I'm going to be in trouble. But you're probably going to feel the pain way before that because most modern switches don't go up to that limit. You know, lower end switches, you're going to probably start seeing issues within 100 VLANs, 150 VLANs. And that was a big deal. A lot of these cloud environments needed multi-tenancy, needed their own dedicated kind of networking environments. And this is the only way to do it. And that's just, you know, 100, 150, even 4,000. Not very cloud-scale number. It makes it challenging. I mean, people will argue you can go back to the flat model. And here we have the security groups, firewall things. It becomes manageable, they burden, but I can have a little more room. I can have more tenants. That's what a lot of people are propagating. But challenge again here, no overlapping IP address space, no private networks. So applications have to be re-IPed. So that model didn't work where you can have a lot more tenants. So the flat is great for a single application environment. And VLAN, obviously, like I said, was a challenge. And so we were with the dilemma, how do you go fix it? Or how do we fix it that we don't have this dilemma again?  If you want like, you know, dedicated web DB app tier, all isolated. It was very hard to do. Like, you can't dedicate that much, that many VLANs for a single application. Unless, you know, that application has like, I don't know, a gold-plated app-selling app which can afford it. So that didn't work. Scale, like I was saying, the single L2 domain, that was a challenge. IP address management, not that bad, but it was dependent on a single database, you can externalize it, smaller problem. Security profiles had a scale issue because it was centralized. We solved that. We actually, after Neutron came about, no network when we solved it in Nova Network by removing and putting IP tables in the hypervisor. Not that much of an issue, but for most purposes, we still needed to be on the same L2 domain. I'll talk about something called multi-host after this. But network services, they were limited.  There was no self-service element for L3. Or I need Vips for load balancing. There was no self-service element for load balancing as a service. Not only that, there was no framework to enable that for my tenants. That was a challenge. It was not that it wasn't there. I mean, Neutron doesn't have a lot of things either. But there was no framework. How do we enable the service? If I have developers, and this is really hurting me, as a cloud provider, didn't have a framework to work within and enable it. And that was becoming a big challenge as OpenStack was gaining momentum, right? People wanted to solve a lot more use cases than the traditional, you know, put VMs on the network and get something up and going, kind of use cases. So, yeah, VPN as a service, firewall service, everything comes under that advanced services category. There was no mechanism for that. So, that was a big problem. And when I don't have these services, I think I'm gonna use my existing network services or my vendors who already have it. I'll use OpenStack for what it has. Challenge, but there was no way to integrate anything else. Any other secondary open source project? If it provides, say, you know, there was the Viata routers, or there was some kind of Quagga, or something like some other open source project. How do I integrate it? There was no framework to really easily integrate these third party services. Open source or F5 load balancers, or, you know, I have really highly available applications. I need this, you know, vendor specific appliance, but I want OpenStack to be my cloud management framework. I couldn't do that, right? All of these challenges was where we were trying to solve with Neutron, right? Monitoring troubleshooting integrations were a lot more challenging because there was no single resource point where I can get all network-related information. So you can integrate traditional network management and monitoring tools into it. All those challenges of being networking kind of embedded into the compute layer, right? So why was that? So this is a little deeper dive into the VLAN mode of Nova networking.  We can see why it happens. So here we have, you know, the compute nodes. All of these switches across all your data center in VLAN mode are probably trunked with all of the VLANs that are accessible everywhere. So really at a network level, there's no isolation. All the traffic from all tenences going on the same physical switch, stressing your physical infrastructure. That's one problem you see here. All the compute nodes are connected to the VLANs. There's IP tables in the compute node you see. So we saw the security profile kind of bottom like a little bit, but we still had this thing called the Nova Networking node, which can be co-resident with the compute node, if you want, on the left side. So, sorry. So this Nova Network node is where all the network services ran. So this is where we had Natting. We did floating IPs. We did these IP tables to do that. There was DNS mask. We plugged those in for IP address management. But again, it was only one DNS mask, a HA pair, because it was really one network. So you didn't have that many address spaces. But that could get overloaded sometimes because once this became pretty big, and that was about it. And you can run this in active standby mode. You can use Corosink or DRDB to replicate both of those, and that's it. You'd realize, since it was built by people from the compute heritage, the semantics of a lot of semantics around HA and deployment were at application level. So HA was an issue, and that was application level HA, which is great, so it's an API server, not so great if it's like a false-tolerant network service. And a network HA doesn't mean that you can take outage, right? You essentially will failover it to get outage. So there are a lot of these challenges and this was a choke point, right? All your cloud going through that network node, very challenging. We did create something called multi-host, which take took all of these services, or majority of these services, and put it on the compute, on every compute node. So, you know, all the traffic doesn't have to drag to the network node. But we still have a challenge that all the L2 VLANs have to be trunked everywhere because you're placing the VMs. You want to flexibility to place the VMs anywhere in the data center, if it's really a general-purpose cloud environment. So we could solve everything by the old model, but it was still kind of holding us back, right? There was not a lot, and we couldn't integrate anything externally to solve it or solve a particular pain point. I didn't have a framework, we had to rewrite, refactor. And as part of the rewrite or refactor we thought we would do, we were like, might as well do it in a way that anybody can reuse it. A cloud provider can reuse it and you can plug in something in it. And that's where Neutron comes along. You know, promises everything, even though it was a Rebel Alliance, and it really was the Rebel Alliance. When the Neutron project was founded it was a lot of users or rack space involved. A lot of large vendors, I was at NYSERA back then and there was Cisco, there were some other startups, there was folks from Jinnipur. Like, you can consider the Rebel Alliance. And these people were, you can consider them as Rebels within their organizations to be participating and to be able to create something where all of these kind of disparate elements can work together. And it was, I guess it was like actually a couple of days to finalize this layer of Neutron API. And the motivation is that applications are programming to this API and you have decoupled it from anything underlying. So no matter what we do underneath for networking, how we evolve it, or a cloud service provider changes it, the applications remains unchanged. It's a core turn of virtualization, you decouple first and it makes innovation faster because you can do anything internal, you're not impacting the whole stack. You can pool all your resources. Because of this, all your networking environments can have a single shared capacity. We can do use overlay networking, like software defined networking because all of them is a single, there's a single point of definition for them and the network capacity is pooled. You don't have to trunk every VLAN everywhere, we can overlay a capacity on top of it. And it gives you choice, choice from deployment topologies I'll talk about, kind of self-service, L2 network, self-service, L3 elements, firewall service, very load balancing service, F5 just recently did a demo of how they are very seamlessly integrated into Neutron LBAS. So the tenants can self-serve within the kind of guardrails, the provider kind of specifies and self-service as much as they can, all of the networking services. That was from the back end. And then on the front, oh, that was on the front end. On the back end, you can use the open V-switch plugin which we had developed and then you can use your physical networking, you can use some kind of proprietary vendor solution or you can swap out with something else which we don't know is gonna come in the future, which was very hard when Nova Network was hitting its limit to do. So we provide a framework which provides choice on the provider side and choice on the tenant side. So choice and aligning a different models together was a big deal, right? So why did they use, how did it provide all of those? So it provided the rich topologies I was talking about, the three tier app DB web topologies where these networks, a lot of them, a lot of providers could do it because they integrated network virtualization solution which means not a dedicated L2 VLAN on a per private network in this space in the logical topology. Because you have some of these technologies we integrate in neutron, decoupled the physical network from the virtual network element. You can scale a lot better. You can have tens of thousands. Rackspace is a product called Cloud Networks. Pretty high scale. The way they could do it instead of using plain VLANs is using some of these leading edge technologies for network virtualization which enabled to create a lot of these networks where PayPal was talking about using Neutron. They had scale challenges but they could accomplish their goal and some of these customers are running super high scale as well. And security, security profiles, we redid it. We still use IP table since we had fixed no one network to use at the VNIC level or the VIF level, the filtering. That was a good model, right? The filtering is distributed. We adopted it. We embraced where we could, leveraged what was there and only made changes where we had to, right? The network backend was not very pluggable. We had to change that. That's where it became the Neutron server where there's a plug-in model. There's a plug-in API internally which is independent of the Neutron API. Elbas is a service. Quite a few vendors are offering the Elbas API. It's not core. But the tenant-facing API is hardened. People can start using it. Plug-ins are evolved. There are a few of them. You know, F5 is a big one who demoed their plug-in and there is HAProxy open source kind of implementation plug-in. But from your tenant perspective, they're using this hardened Elbas API and you can swap out which backend plug-in you want based on the application. All of the high-level network services were not possible before. No kind of easy framework to integrate into them without kind of refactoring all of the code. Now, I mean, there's a single point. There's a plug-in-pluggable framework. You don't like something. We can integrate into it. Doesn't scale? Sure, we have taken the first step. Some use cases are probably newer than the more honed use cases. We will have worked together as a community to kind of scale it up. But it just increased the possibilities for an open-stack cloud from kind of three to pretty much like it's N.  It's a probably exponential combinatorial matrix of everything you can do. But that also means being the responsibility as a cloud provider. If you're running a particular combination, you have to validate it and test it. That comes with choice. You have the choice, but you have to put it together that it works for you and it's validated. The Neutron team validates all of this to some of the common topologies that everybody uses in the CI environment, but not every possible combination could be validated. That was a challenge that has come along. We have to figure out how we solve it through maybe a CI, common CI infrastructure where the vendors can put gear as well, which is integration testing. See how it's been on time, cool. So VLAN limitations were removed. I said the default open V-switch plug-in as of some of the more newer network virtualization SDN plugins in Neutron allow you to use overlay tunnels. The default one uses GRE tunnels, so you don't have to trunk every switch with all the VLAN numbers. This can be just, it needs not be a L2 network even. It's just plain L3 connectivity, L3 fabric. All these virtual networks you see on the top right side are essentially created using overlay tunnels. So there's an agent on every hypervisor, creates a tunnel to another hypervisor, and it creates this, essentially it implements the logical topology on the top right side. So you have the stress from your network is kind of uplifted. You don't have all the broadcast going on the physical fabric. So you have 1000, let me give you an example. So you have 1000 tenants, and everyone has 10 VMs, right? 10,000 VMs. So before, you would have about 10,000 VMs came up, 10,000 broadcast went to the physical network. Now, depending on which technology you're using, that 10,000 broadcast can translate into a single one because it's going in the tunnel and tunnel is set up. So, and if your tunneling engine is a lot more intelligent, it can even figure out where the destination is and unicast it so there's no broadcast on the physical fabric. It's just an initial setup infrastructure set up so it can be translated into just a single broadcast. It takes out a lot of load from your physical network, gives you a lot more life out of your physical infrastructure investments. And honestly, right, this infrastructures were not made for the cloud era. They were not designed for it. So, since we created this problem, we say it's only kind of responsible to get a solution to the problem. So waiting for hardware life cycles, which are a lot longer to help solve this problem. And that was only possible in Newton. There's no way you could do that with no one network. There's no framework to integrate basic switching and routing into a different switching and routing model besides VLANs, which were baked in into all the way into the Nova compute hypervisors. Like there's logic assuming VLANs in the compute code, they're so baked in, like talk about, you know, kind of fully locked in. So this talks about, you know, the broadcast, it need not be on the physical fabric. It goes from point to point because of tunneling if you're using the network virtualization provider. And hypervisor to hypervisor, the GRE tunnel can be created on demand when a VM spins up on the second end host. So the second part was, like I was saying, choice. What does it support? On the top, we saw it supports all these tenant facing APIs, networking as a service, logical layer three services, on demand, you know, load balancing VPN, firewall and what have you can, it's a framework, you can even put anything you want. A lot of these APIs go usually to be experimental mode. So the community can use it. And once we see there is enough adoption, it actually becomes core and a supported platform. So a lot of things you see, like VPN as a service, even LBAS, they have not become full core because there's not enough people actually adopted it. There's not a big, good ecosystem. But it is actually, it is there as a playground. It's there, the plugin frameworks there. People can put code up there. You can develop your own plugin for each of these services as a cloud service provider. And you can plug it in. But not only that, we enable choice at the bottom, which you couldn't do before. You can use the open source default plugin. You can use open V-switch and GRE tunneling for switching and routing with the L3 agents. You can use HA proxy for LBAS, right? Or you can use a vendor plugin for a certain thing, which, you know, maybe a certain scale that doesn't work or certain environment, certain application. You can use F5s for load balancing. You can use NSX for switching and routing, software-defined technology. Or anything that comes up in the future you could use in this environment. That was not possible. So I'll go over a little bit on the default OVS plugin architecture, right? We went over a little deeper into the NOVA network architecture with the open V-switch plugin that is there by default in Neutron. That's a default open source plugin that we ship it with, we test the CI environment where you have compute nodes. Now NOVA network has been replaced with this Neutron network node. Key differences, we use something called network namespaces now, which is an isolation, which is a containerization or Linux kernel C-group level isolation, very lightweight isolation mechanism. So we can have all of these networks we saw, you know, with their own DNS mask. It's not a single network, it's a lot of them, but we can create them on-demand. It's software, it's just a software container. So we can pack in about 500,000 on this single network node of these instances. Obviously, how to manage it and figure out a very good way to manage it if you're packing so many of them. You can even spray it out. You can have multiple of these network nodes where you can put these L3 agents and OBS DHCP agents. Obviously, if you're running at scale, you'd probably want to make sure you have the expertise in-house to troubleshoot it. It's not the deployment, it becomes easy. The configuration, once you get it right, it keeps on working. But you need to have the expertise to troubleshoot it or you have to have somebody working with who has the knowledge to see if it increases the choice or if it increases the complexity of things you can do. I mean, the value to customer is great, but at the same time, manageability needs a little more understanding. It's not a simple model, so you need to know what's going on so you can troubleshoot it. But once you know about it, since it's been out two releases and we recommended that Neutron can be used in real kind of test air production environments, there's not enough knowledge out there. So you know, make sure that you have to kind of understand it, put it in a lab environment, work through your topologies and see how it actually works so you can actually fix it when you have an issue. So you can see here the core things we did is take all of the services that were there in NOAA Network, made it essentially multi-tenant, like you can have a lot of them. And you can scale out these network nodes so you can really scale to a larger number. So, but you have to look at it from the vantage point of NOAA Network. You go from one to two, that's 100% scale up. So you can go to 500. Now people are gonna say that it is not as easy to scale to like 1,000. I have like five of those nodes. I'm doing straight synchronization. You have increased your scale from one to 1,000, that's 1,000%. Obviously your management overhead is gonna be a little more than what it was with the older model. So you need to know how you're gonna maintain and make sure this cluster is highly available. Are you gonna use some other technology to wrap it around or just go saying go to good enough or how you're gonna design it such that the failure domains are kind of isolated. We need some thought if you're doing a super large scale environment. But compared to NOAA Network from one to 500, it's a lot more simple. You had the same architecture. Now you can get 500,000 of them with the same kind of fault characteristics, but with more flexibility. But if you're scaling more, you're probably gonna look at commercial solutions. You're gonna look at somebody to help you support that because you don't want to be on the hookup for that. So the last part of the topic was people keep asking us a lot. This has been coming up in the press that is neutron ready for production, right? Like, oh, that's great. You guys solved a lot of things and is it ready for production? And I thought I'm gonna be probably pretty biased having pitched neutron, right? And creating it. And even though we work with a lot of customers, I've worked with all of the early adopters. How do I actually convey or how do I even understand if it's ready for production before I can tell an audience? So thankfully for me, the user survey came out yesterday, so I had some fresh data to look at. So I took a look at that and I saw, you know, this is the slide from Dev QA Environments, the survey of about, I don't know, 700 or so of OpenStack deployments worldwide that the foundation puts together. If you will see over here, you know, which services are folks using? There is Nova on top and neutron over here in the middle. There were 169 neutron deployments, 204 Nova deployments. So I assumed the delta between 204 and 169 is 35. So people who are using Nova but not using neutron are probably using Nova network because you need networking in a cloud environment. So that's a pretty good number, which is the delta L sign that it is not all that bad. It's got a decent uptake. That's 169 neutron deployments compared to about 35 remaining Nova network deployments. And I don't see some people going away from Nova network for a while because upgrading is just challenging in OpenStack yet. There's no in place upgrade. So some of these are early adopters, probably going to be, they'll have to stand up a parallel cloud and do a migrate. And those Nova network numbers are going to keep on showing up. But if it's, that's a pretty big five is to one, a roughly difference. So that was a good sign to me that I think neutron, you know, you can probably, I can probably recommend users and customers to take neutron to the next level and try it out. Next. Then I looked at this survey around what backends to folks would run on neutron. People might say, oh, neutron's ready, but you have to, you have to only use a vendor proprietary backend and that's the only way it's integrated. So this was on the networking technologies people use. So you, and that was also a surprise. I didn't, I had, so look, I just found out this data yesterday. So I didn't know. I was looking at it, says OpenVSwitch is the leading networking backend. And that's what is the only backend that uses GRE tunneling and the mesh of networking in the back behind neutron to implement logical networking. That's also a good sign that most of these folks are actually using the OpenVSwitch plugin. Sure, I mean, there are use cases, like I said, where you'll need a vendor proprietary plugin. And a lot of folks are using NYSERA and Cisco for that or the Linux bridge for the legacy models of networking. So, okay. Oh, this, I skipped this. This was the data on production deployment. So the way the foundation tracks the deployments is POC, Dev QA environments, early workloads and production workloads. So POC, I just skipped it because it's not very relevant. People POC have all kinds of things. I looked at it, people have put a decent amount of Dev QA workloads, five is two, one on neutron versus no one network. Looked at production, people are more conservative, takes longer to go into production, right? There is about 135 neutron deployments compared to 51. No one network is still pretty in green because these people probably started an open stack journey quite a while ago. But that's not pretty bad. That's 2.5 neutron deployments per no one network deployments. So that was also a positive sign to me is that yes, no one network is still here. People who started early on in the journey are still using it. But neutron starting from POC where there's a higher uptake to Dev QA that's even higher uptake or Dev QA that's a little lower uptake and then to production where it is a little lower. But it's the growth rate compared to no one network is pretty high. So based on this data, I think, even the folks were saying that neutron might have issues but the numbers I look at from users tell me a different story. So I would think that there are probably issues in any software, there are bugs in software. We have an open framework in the community to help us drive together. But this is good enough to start deploying more complex workloads and topologies than what is possible before. So with that, I wanted to summarize why would you want to use no one network versus neutron? Told about choice, the federation droid model. You can have anything you want up till it's my way. And the neutron gives you infinite choice. Actually, sometimes I get scared it's too infinite. And so you have to lock it down actually with neutron you have to validate the whole choice matrix. Deaf test deployment, we saw no one network still have some footprint. Neutron has five is to one about kind of lead for deaf test workloads. Production workloads, no one network is actually better. It's more stable. It's been there for a while in the code base. So it's 2.5 is to one kind of mix for that. And use cases supported. Three use cases versus here pretty much self service, networking service L2 to L7 and a framework where you can create a networking service. Maybe you'll create your own CDN as a service integrated this for a framework you add your value add as a cloud service provider to your open stack deployment, right? Lot more use cases and services supported. So with that, I guess I would like to call out the rest of the people who are holding back with no one network. Come John the Rebel Alliance, right? Let's make this better. And I'm not gonna take some questions if anybody has any questions. And there's some resources here for people to look at. Go ahead. You wanna come into the mic? So go ahead. Oh. Okay, I'll just repeat the question. Okay, there we go. The Linux bridge open source driver is actually feature parity with OVS, just so you know. It's feature parity with OVS. VXLan and gray tunnels and everything. And creates tunnels. Yep. Okay, cool. And you can use both with Neutron, right? You have the choice that you can create a driver with Linux bridge only and you can integrate it. Yeah, I guess you can use both. Well, if you use OVS it actually uses Linux bridge underneath it. Yeah, for some functions. And then it ties IP tables via Linux bridge as well. Right, right. Or you can just use Linux bridge and not use OVS and things are a lot more simple. And you still get tunneling and everything, so. Sure, you can use all you want. That's the power of Neutron, right? You have all the choice. See what works best for you. Sure. Yeah, I just want to add a comment that the Neutron team is trying to make it make it in parity with the NOAA networking by Juno. So the NOAA networking whatever is available we should be able to do it in Neutron. Yes. I mean that's definitely a priority for the team. It has parity, but just corner cases which are holding some of these 35 users you saw back and that's a big priority that will probably happen by Juno. So if you remove all the corner cases. Remove all the cases and then we'll be deprecating the NOAA networking. Yeah. Okay. That's fair. All right, so you showed the for NOAA network versus Neutron for production and QA kind of deployments and you showed the distribution of plug-ins for the QA deployments. Did I miss the, was there a slide showing? Oh, I didn't, I didn't. But it is at the user survey, open stack user survey. It shows a distribution of plug-in for the QA deployment. I just didn't pick it up. I meant for the production deployment. For the production deployments I did see the distribution of plug-ins on the priority. Majority of it's open V-switch which is a default open source plug-in and in the other plug-in category there is Cisco and NYSERA which is the NSX plug-in. Those are the top two. Okay. I think we are, I'm saying we're running out of time. But we'll take one more question. Yeah. So Neutron actually has the network nodes can scale out. You can, and within the single host you can have namespaces. So you can scale out within the single host. So imagine we can have 500 NOVA network nodes in the single host because of namespace isolation and then we can scale out by adding new Neutron network nodes and within each one of them we can have 500 of them. That's not recommended because then you know you want your traffic to, which is leaving the North-South data center to be centralized. Otherwise you'll have to drag your WAN connectivity to your compute nodes which from a networking model becomes complex. Great. I think I'm saying I'm running out of time. Thanks everybody for coming. And we'll hope to see you as Neutron users.


Welcome back. Now India's largest car maker, Maruti Suzuki has launched a new ad campaign for its youngest hatchback, the Celerio. The Ajke Zamaneki Leap campaign has aimed at the young, the progressive consumer of today to reflect their mindsets and position the Celerio as a new-age youthful compact car. Nima Namchu is the Chief Creative Officer at Hawas Worldwide and is breaking it down for us. Look, I think they are trying to appeal to the younger audience and now in a very crowded market of, you know, a lot of small cars. I think they are trying to position themselves as a brand or a car, which is, you know, with the times. But while the stories are sweet and very cute, they seem to lack a certain amount of, you know, disruption value. Papa, look, why is it happening like this? Papa, look. I'm the captain of the winning team. I think you'll probably get lost in the crowded television set. Otherwise, I think it was nice. It was to the brief. It's quite very faithful to the brief. Maybe too faithful to the brief. So which is why it stops being disruptive. So probably will not stand out. At the same time, I don't know how much people are going to believe in the fact that Maruti is with the times because deep in the consumer's mind, I don't know if Maruti is seen as a, you know, a with it or, you know, progressive brand. Papa, you're right. Girls go driving. Okay. Men are born drivers. Because in the past few years, for several years, actually, Maruti has lost that edge. It's become a brand for the mass, not necessarily a brand which is at the cutting edge of technology. Just joking. The stylish Maruti Suzuki Celerio.


Hi everyone, Joe for Jaspy's CaseWrakes.com. We did it. We finally unlocked this one box break of NT football, 2022, NT football. Pick your team number seven. Number eight is the last box of the case. That's already loaded up right now. Let's run it back. Very big thanks to, to this very patient group here. Thanks for making it happen. Appreciate the people who bought their team straight up. Start with last bot mojo and then we pulled some teams out before that random number block to which we did that randomizer we did in a separate video but here are the results. Serial number break just for these teams. Just for that break. Keep that right next to us over here. We got two boxes left, 2022 NT football. We marked them with the letters. We got box A and box B left. We'll go one, two, three. This is the first box, top box, four, five, six for the bottom. One, two, three, four, five, six, five, bottom box. And then so this box we will save for pick your team eight which is in the store right now, Jaspy's CaseWrakes.com. Now let's see what we got in here. We'll use this card right there to hide and slow play the hits a little bit. We also have some 2019 NT football as well.  Those are neat to figure out how to get to the Super Bowl though. They got her figured out, Tinker with the team again, got 90 out of 99, two Giants, Daniel Jones, Saquon Barkley, Saquon Barkley, a free agent I think, could he get franchise tag? It's going to go to Kevin and the Giants, Big Blue, the G-Men, we've got Desmond Ritter 23 out of 99, Atlanta is going to have a new coach, well they have a new quarterback as well, Atlanta is a number block team so we go by that digit right there, Atlanta 3, it's going to be for Allen, got tremendous treasures, Traylin Berks 25 out of 49, Tennessee, that's also a random number block team, it'll be for Tennessee number 5, it's also for Allen. We got Brock Purdy, Danny Gray 1 out of 49, Duel Relic, that's for the Niners, Niners number 1, Allen. The first auto is a Kongu, Shigo Zim a Kongu, 67 out of 99, Tennessee 7, that'll be for Douglas. That's what I heard too, yeah Josh McDaniels might rejoin Bill Belichick, wherever Bill Belichick ends up head coaching. Alright, got a few more things here, we've got a book and it is Rashad Bateman 62 out of 99, nice big patch, nice autograph and that's for Aaron and the Ravens, Ravens hosting the Chiefs this Sunday, I'm rooting for the Ravens Aaron, let's get a little more Jackson in the Super Bowl. Alright, couple more here, good luck everybody, we've got Reach for the Sky, Skymore, three color patch and autograph, 2 out of 10, nice low number on that one, they're calling this the crossover rookie patch autographs, there's a snake in my boot, that's going to go to Kansas City's number block team, so that is for Kansas City 2, Douglas with the number 2 and the final one is 2 out of 2, Nike Swoosh, Kenneth Walker III, oh there's a ding in that corner there though, who are we blaming, did Kenny Walker drop this card? That's a shame, but still nice, Seattle is a random number block team and that's another number 2 for Douglas, that extra spot coming in handy and out of 5's and under, all aboard the Big Hit Express and there you go ladies and gentlemen, I'm Joe for JasperCaseRakes.com, we did not see any Brock Purdy's, I don't think there were Brock Purdy's in the first 2 boxes, we saw, I mean we didn't see his autograph, we saw a Brock Purdy with Danny Gray, but maybe in that final box, so check it out, JasperCaseRakes.com final box in the store, I'll see you next time for the next one, same box, yeah, it's not so bad, thanks everybody.


Hello my friends welcome back to my channel you might be able to see that I am in my crafting space which I never film in here for some reason. I have no idea why I don't but I'm gonna try to start filming in here more because it's actually really cute and I love the vibe of like craft supplies behind me since you know I am a crafting channel. Today I have a really exciting video which is part of a larger series here on my channel known as DIYing Your DMs which is basically where you guys DM me over on Instagram and if you're not already following me on Instagram make sure to follow me it is loanfoxhome I'll put it on the screen somewhere for you guys but I always ask you guys to DM over any project ideas furniture you've seen decor inspo whatever it might be that you're curious about and you want to see how you can recreate in a DIY format I try to then recreate it here on the channel for you guys and I selected four really really cute projects I was looking through the DMs and I got multiples of a lot of these projects I'm going to be sharing with you guys today so I figured if more than one person requested it I might as well share it with you guys here on the channel and before jumping into the project I do want to mention that today's video is kindly sponsored by honey I absolutely love honey it is a free browser extension that basically saves you money it is incredible I've used it for years and years and years and I'm very excited to share with you guys how that works in just a little bit but let's go ahead and dive on into project number one our first project was sent in by loanfox family member ama I believe her username is 18 ard noxella I'm probably butchering all of that but I will put it on the screen for you guys and she basically said hi drew could you recreate these marble bookends and I opened the photo it is a marble bookend it almost has like a tiered effect to it and it is from west elm and these retail for about $70 a bookend which is quite expensive um but I do understand why marble is a very expensive you know substance to be working with but I'm going to share with you guys how to recreate these bookends for literally a couple of dollars each they look incredible I cannot believe they turned out as well as they did but let me share with you guys how it's able to dupe this bookend for just a couple of dollars when I was brainstorming the supplies for this project I figured why not use some scrap wood so I ended up cutting down a old I think like two by six down to the dimensions on the screen and I ended up actually sanding it with a little bit of sandpaper as well once I had my cuts we are going to be applying contact paper on top and the smoother the surface the smoother the finish so this is the contact paper I'm going to be using here now I'm going to be completely honest with you guys it is not my favorite contact paper and some of the ones on the screen here I will link below for you guys these are ones I've actually used in the past and I really really love these ones but I just don't have them on hand I did put them on order though so they are coming I just happened to have this kind of more chunkier marble but the thing I don't love about this marble contact paper is that the actual white portion of it is very blue and then all the veining is very warm so it's just like a very odd mixture of warm and cool which just to me kind of seems a little bit odd however it ends up turning out really really cute still I mean you could totally alter whatever contact paper you want to use with this project now as you can see here I just cut out a piece that would give me enough to wrap around the full cube one of the edges or I guess one of the sides does not need to be wrapped though because it's going to be glued on to another cube so I went around and wrapped this there truly is no great way for me to explain how I did this I kind of just wrapped it as you would at present but tried to keep all the edges as neat and as clean as possible so it looked like a chunk of marble as opposed to a marble paper wrapped block essentially so I also wrapped my other two blocks as well and we're already on the last step you guys super quick and easy I just used hot glue and I use a very generous amount of it and I also made sure to use firm pressure that way there was no gaps in between our blocks once we connected them I really wanted them to look actually connected and carved so I applied all three blocks together and it does look super super shiny on camera you guys but that's because of my lighting setup it has lights from overhead which just kind of glare off of this contact paper I swear to you when you see the final clips it is stunning before jumping into our next project I quickly wanted to take a moment to talk about today's video sponsor honey now if you've never heard of honey you are truly missing out it is a free browser extension that scours the internet for promo codes and automatically tests them when you are checking out on any of the supported websites which there are over 30 000 supporting websites and the install is actually extremely simple all you have to do is go to joinhoney.com slash loan box click the orange button on the screen and then download it on the next page it takes literally three seconds to install you guys I swear super simple and easy and how it works is essentially whenever you are shopping on a website that is supported by honey once you reach the checkout page it'll actually pop up and allow you to apply any coupons it might have found on the internet and you can watch the price drop from there as you could see I saved a hundred and three dollars on this world market order I just wanted to share with you guys how simple it was for me to add a couple of items to my cart however with honey I saved an instant a hundred and three dollars I probably would have never saved prior which is absolutely crazy so make sure to head over to joinhoney.com slash loan fox to install honey it should 100% be on your computer it is a no-brainer and I just love this extension for saving money well let's get back to the DIYs we are into our next project this one was sent over by Melissa and her username is Mekuella I believe and she said so I've been seeing these moon garlands on Pinterest for a while now and I thought they were so adorable and I tried the DIY one but I don't have any idea of where to start maybe you could give it a try now I do think I've created a moon phase kind of garland in the past but it was one that kind of attached to the wall and went downward so it wasn't like an actual garland it was more so just like a moon phase wall hanging decor piece but this one's an actual garland and I wanted to do the chain and all the different elements I believe that Urban Outfitters is the one that kind of popularized this item it's super simple and it's also really fun to actually make so let's go ahead and jump on it this one if you guessed we're going to be starting off with clay again you were 100% correct because clay it's just it's I've just been loving using it lately you guys I don't know what it is but I just love how I'm able to sculpt it into things you can bake it you can create shapes you can do so much with clay so I ended up rolling out about a quarter inch sheet of clay and I'm going to just be using a cup from the kitchen to cut out some circle shapes here and we're going to want a variety of different circles that cascade from a full moon down to a very thin kind of crescent moon shape so what I did was I started off by cutting out a lot of different circle shapes with that cup and then I also tapped down the edges because mine kind of created an odd edge on there but how you can easily cut out an actual crescent moon shape is just to place your cup back on top of a cutout circle and just cut out like the inside of it to create this moon shape but you're also going to want to keep that inner cutout as well because I'm going to use that in my little moon face banner I also cut a full circle in half just to kind of create two half moons almost and then I cut out two more which I'm going to make a more chunkier crescent moon that way we have a cascade from this kind of chunky style down to a thinner one and then um into a full moon shape so what I'm going to be doing now is actually using a needle just to poke a hole at the top here just make it wide enough for a little bit of wire to go through after pop this on a baking sheet and just bake for about 15 to 20 minutes or as your clay's instructions tell you to do so. Once it's cooled down I use my metallic finish rustoleum bright coat spray paint which I will link this below for you guys because it is my new favorite gold it is so bright my camera lens or my camera settings can even pick up the brightness it was literally overexposing the entire time but that's totally fine that means it is nice metallic and shiny they are so beautiful once they're fully dry and I also picked up a little bit of gold chain at Joann's as well and I'm going to be cutting this out now it was kind of hard for me to share with you guys the lengths that I cut it out as so I created this little diagram which is going to pop up in about three or four seconds here to show you the different lengths that I ended up cutting out my chains at so pause it here if you are creating this project and now we're going to be doing a little bit of wire wrapping which is a new technique that I'm going to share with you guys so I'm putting my wire through my little clay piece there and I'm going to be overlapping the wires that they intersect kind of as shown here and then I'm going to be twisting that wire just to twist it around itself about five or six times so you have about a quarter inch of wire twisting and then I'm going to be using a round nose plier or just anything that allows you to create a loop at the top with one of your wires there as you can see I have a loop up there and what you're going to want to do prior is actually grab one of your chain pieces that you cut that coordinates to that clay shape so whichever one that you're going for for that piece you're going to want to slip the chain on prior and then you're going to want to wrap around that base that you created so just wrap that wire around about five or six more times back down to the bottom that way it secures your chain onto the piece and you don't have to use like an oversized jump ring or anything this just worked best for me I've done wire wrapping in the past when I used to make jewelry so it's very very simple once you get the hang of it and if you need to google wire wrapping you could probably find so many techniques that show it may be a little bit better than I did but I just wire wrapped all the pieces onto the chain and then I did end up using jump rings to attach my chain pieces onto the longer piece which is going to be the garland so I used about a 60 inch section of chain for the actual garland portion and then all of our cut pieces which have our wire wrapped moons on them are then going to be attached onto that chain and I spaced them three and a half inches apart um that's just what I found worked best for me and so I placed all of my little garland pieces on there with a jump ring by simply opening them I also applied a jump ring to the start and end and that finishes off your garland we are now approaching the project that took me so long to create I'm going to be completely open and honest with you guys this project took me about five or six hours to do and it wasn't that it was a hard project more so it was a very time consuming project and this project was sent over by Apostle Rostov and basically he said I would love a DIY on this light fixture made out of dowels and rafia or cane it's from h&m home and it costs around 150 I believe and I looked at it I couldn't actually find it on the h&m home website however I did find a photo of it on google and I did see that it was 150 it looks very very complex and I was like you know what this seems like a fun challenge to do and I'm going to share with you guys my take on this light but do keep in mind it's a very time consuming and almost like advanced project so I do want to let you guys know that it was not the easiest thing I've ever done but it definitely is achievable if you do want to spend the time and just you know dedicate some hours to creating it you totally can and I am obsessed absolutely obsessed with the outcome so let me share with you guys how I did this one the base of our light is actually going to be constructed from embroidery hoop so I have two that are 12 inches and I have two that are seven inches we're also going to be using some quarter inch wooden dowels and I'm going to be introducing some eighth of an inch wooden dowels later on as well but for now let's focus on our larger rings so I popped out the insides of both of the embroidery hoops because those are seamless rings and then I'm also going to be using this raffia paper cording I got this at Target a year ago or so and when you see paper cording do not let that scare you it's actually extremely extremely strong it's almost like a ribbon or a cording so what I did was I started off by tying on one of my wooden dowels to the side of my embroidery hoop this is the 12 inch one that I'm working on here and what I'm going to be doing is actually securing and fastening down every single wooden dowel around the entire exterior of this embroidery hoop just by kind of crossing it over the top of the dowel going underneath the embroidery hoop and then creating an X on top just securing it in place and in no way it's just going to be super super strong bondally secured because we're just kind of pulling it with a cord around it but do not worry guys we're going to fix that in just a little bit but you are going to do a very repetitive process and just kind of secure your dowels around the entire exterior of this piece and I did not space them out in any particular way I just tried to make the spacing pretty similar throughout and once I reached the opposite side I tied a double knot and this is what we were left with so that's the start of our light and at this point I was a little bit skeptical I was like is this even gonna work so I continued on with the process of what was in my head and I took the second embroidery hoop and I attached it to the bottom side of all the dowels and I actually hot glued all of these ones down and just with a little dot of hot glue again the gorilla hot glue holds it so nicely and I just space them out as evenly as possible around the entire embroidery hoop and once I reached the end and I glued everything down I went back with my raffia cording and I went ahead and created the same exact X shape over the top of all of the dowels and the embroidery hoop that I did in the first section just to create a very cohesive finish on both the top and the bottom so about an hour and a half later I was finally done constructing this kind of base section here but to me it just did not look full enough it looked very sparse and just not very like grand in a sense you know it didn't look like the photo to me so I actually went in with some eighth of an inch wooden dowels and I applied them and glued them in between every single of the quarter inch wooden dowels that we used originally so I glued down an eighth of an inch wooden dowel on both the left and the right side and this really filled it in and it's honestly made it look so much cuter and it is time to repeat everything we just did but on a smaller section which I guess is nice because it goes by a little bit quicker but you do have to cut your dowels down they were originally 12 inches but I wanted this one to be much smaller than the first one so I cut them in half to six inches now as you can see here when you cut them with a pair of scissors like that it creates this little pointed edge so I used a little bit of sandpaper to sand that down and create a nice clean finish and basically everything from now on is going to be the same exact steps as what we did previously by starting off by just wrapping your raffia cord around your dowels and securing them on the embroidery hoop to start the reason that I'm actually doing this is because it allows me to maneuver them later and make sure that everything is nice and straight and symmetrical because if I glue them down to start there's a possibility that one might be crooked or one might kind of like lean in a different direction and I wouldn't be able to fix that very easily but if I have the cording on there it gives me enough time to move it in the proper spot and then glue it down so it's super super secure so once that's all done I went ahead and I applied my eighth of an inch wood and dowels like I did with the last one just to make it nice and full and then what we're going to do is actually construct the light so we have our two different shades we already made and right down the center I'm going to be applying a 12 inch long dowel this is the thicker one of the two and then I'm also going to be using my paper cording to just really fasten down both edges to make sure it's nicely secured now what I did was I kind of just went in and out and wove this around just as many times as possible until I ran out of the cording honestly and what you're gonna do to really really secure this down is actually saturate the paper cording in crazy glue and guys this literally turns into cement once you do this so I did the same exact step on my smaller ring as well and once that was fully done and dried I placed my smaller shade on top of the larger one in a crisscross orientation so as you can see the bars that run down the center are crisscrossed and I'm going to be using my paper cording just to secure that down doing about 10 to 15 wrap around to attach it and then using my crazy glue saturating the paper cord it will literally turn into cement once that is fully done you're just going to install your light cord down the center and that finishes off your light and that guy concludes today's episode of DIYing your DMs I hope that you enjoyed these projects they were a lot of fun for me to create and I love the outcome of honestly all of them I do think though the lamp's probably my favorite and then you know the book it was really cute too I actually really like all the projects in today's video and I would love to know which one you like the best so definitely leave a comment letting me know which project you liked and also if you could just give this video a thumbs up it helps out my channel so so much so if you did enjoy it make sure to give it a thumbs up and subscribe to my channel for brand new home decor and DIY content every single week and quickly before letting you guys go I do want to remind you to definitely download the honey extension all you have to do is go to joinhoney.com slash loanfox and make sure to use that link that way they know that I sent you guys but whenever you are shopping it will pop up in your little shopping cart ask you to apply some coupons you do that and you could save some money it's truly a no-brainer I absolutely love honey and I've used it for years so it's kind of surreal that they reached out for a partnership which is very exciting but I will catch you all in my next video again if you ever have any DIY projects you are curious about please feel free to DM them to me over on Instagram I would love to help you guys out and I will catch you all in the next one bye everyone


So, hello everyone and welcome to my talk on horizon. The free EDA package I started working on for about like a bit over a year now. So, to get started, let me explain to you why someone would write a brand new EDA package in 2016, even though like there are still many around. So, these are my main points of motivation. First of all, I thought that the management of symbols and packages and stuff wasn't quite solved the optimum way I liked it. Also, supporting actual parts is still something I didn't see solved to my liking. As you may know, pretty much every EDA software consists of many editors like boards, schematic, package symbol and stuff. And I wanted to unify all these so that these share code and share the same use experience. And another important aspect was to have a schematic editor that actually understands what you're doing and just isn't a program that lets you draw lines and tables and then figures out a net list. And one something that really can help you with drawing schematics. And last but not least, I also placed emphasis on rule-driven design for meeting design rules and stuff. And some implementation details include like making use of explicit references. So, not doing things like one pin is connected to a net line. If they happen to be on the same location on the sheet or that like nets are connected if they happen to have the same name. And since programming also has to be fun, I found using modern OpenGL to be quite enjoyable. And doing it from scratch, a program also gives the possibility to try new things. So, let me give you an overview of the implementation details. Horizon is written in C++ 14. This caused some issues in the past since compilers still are getting smarter even though I thought that these would be pretty mature already. It's about 50,000 lines of code without the included external libraries and dependencies. It's using a GTK3 for use interface which gives us things such as high DPI scaling for free. And right now, it builds and runs on any reasonably modern Linux distribution and Windows and it should run and compile on free BSTs as well. Unfortunately, Mac OS is out at the moment since the Quartz back end of the GTK3 on Mac OS doesn't support OpenGL. And I'm using a JSON for a file format everywhere since that makes interfacing with external scripts much easier. And everything, really everything from the pin to an ad, symbols and stuff it's all referenced by UUIDs. Since these are easy to create and they are practically unique by guarantee. So let me explain to you what I meant with the first point with management of symbols and stuff. The classic approach is to have libraries. You have a library, in a library you have symbols or packages that have similarities like being a resistor or being a logic gate. I didn't quite like that approach since it's like having a file system with only one level of hierarchy, which doesn't make organizing things very easy. And these aren't also data based where you can just use SQL or something else to query. Instead, the pool, in the pool, it's like having just one library. In the pool, each item like so, each symbol, each package and stuff is all placed in its individual JSON file, which makes merging stuff easier. And since like having a bunch of files scattered around in that directory, isn't that easy for searching? All of the metadata of these files that's scraped into a SQL database, which makes searching a breeze. And to remove the cluttering stuff, the pool is only supposed to contain parts that you can actually buy. So there won't be like a generic 10K resistor or 6 or 3 resistor there instead. You should only like go to Digikey and use the exact manufacturer. Manufacturer's part number since that's the only way you can generate a reasonable bomb. Yeah, so that's how the pool looks. Some of you may be familiar with things like symbols and packages, but what are these and why do we need these? First of all, let's start with the most tangible thing, the part. As I explained just before, a part is a real thing. So a thing with a manufacturer and part number, where you can just go to a Digikey type in the part number and you will get exactly the same part you want. So that also includes like slight variations such as temperature grade and stuff, but that's the way it has to be done to maintain consistency. Next on, there's the package. Packages are rather straightforward as well. It's just like in pretty much every other EDA package. You've got your lines for filtering and stuff. You've got pads. You already have the additional layers such as courtyard or assembly outlines and assembly reference designators. So but now things get a bit more special, namely how the pads are defined. Like many other EDA packages just offer like a selection of basic pad shapes. But what turns out that manufacturers, especially connector manufacturers, really like to create custom pad shape for whatever reason and horizon supports the out of the box. So a pad isn't something single like a rectangle instead of a pad stack. Something that you draw like anything else.  So arbitrary pad shapes are basically built in. Now, that raises the problem how to handle simple pad shapes like rectangles without redrawing the rectangle for every single size. To solve this, pad stacks can be parametrized. And to do so, a pad stack can be accompanied by a program that's custom stack based language to keep things easy. It's liberately non-touring complete so that it always terminates in infinite time. And it's basically just a way of writing mathematical expressions. So that the program can take external data such as like pad size or pad size or other stuff. And modify the pad stack itself to suit these requirements. Now let's know, now you may be wondering where the pins are defined. Like you could go the traditional way and just define them in the symbol. But I didn't quite like that approach since I wanted to really separate schematic from netless representation. So that was all for obvious reasons. I also didn't want to specify them in the part. Since you have many basically identical parts such as like resistors. Netlist-wise, they are all the same. But yeah, so to do so, there are the types entity and unit. The unit is a thing that actually defines the pins. So you can think of the unit as things such as a single end gate, a single end gate, as a single op-amp. Or in case of parts that only have one gate. For example, a microcontroller is a simple one. The entity just references the single unit. And the entity is a thing that groups the units and makes the logical device out of them. This is the advantage that for the net list only cares about the entities. So when we want to change a resistor from a 10K one to a 1K one, the net list doesn't care since the entity stays the same. There's just a note in the net list that tells this instance of this entity, this component, it has this part. I guess some of this make it clear in the demo. So and last but not least, there's the symbols. Symbols are pretty easy. They just take the pins as they are defined in the unit. And you're supposed to draw all the usual symbol stuff like the pins and the text for reference signatures, values, and all the other decorative stuff. These small arrows you see there, they are just for showing what's input and what's output. As I already told, I wanted a schematic editor that actually knows about nets. So we could always generate a net list on the fly. But that seemed kind of silly to me. So that's how it's implemented. The net list is edited in parallel with the schematic. And the actual connections are defined from the net list and net names. So and the schematic reads the net names from the net lists for net lists and places the appropriate labels and stuff if they are there. As I line out in my motivation, proper rules and checks are important as well. Since in the end, you want to manufacture your design. And you need to meet certain rules, like the rules of the PCB house, and both your rules to ensure that the design actually works. Right now, there are things like rules can actually set a track width. I'll show that in a demo how that works. Rules can match certain things. So a rule only gets applied if these things match. And rules can also be checked for, like clearances and hold size and track width and stuff. And these rules provide a framework for basically all things that can be checked. So we have the framework that makes it easy to add new checks for ERC, DRC and style checks for packages and stuff. Even though the project is rather young, I started working on it late 2016. It's been public since about a year now. And it's been actually ready for public consumption for about three months. Like these are all the things that are working. Some of the things, like the interactive router, are leveraged from KiCAD, especially the KiCAD router. It's developed rather separately of KiCAD since it has its own data model. It was surprisingly easy to integrate that. So right now, Horizon has the same awesome router that KiCAD has. And also, the handling of step models for important export was also adapted from KiCAD, as well as the calculation of the red-nosed air wires. So that's actually rather difficult. And they also support the usual stuff under real copy paste, even though some of them are bit as still an experimental. Yeah, some things are still missing. Since my plan is to have one global pool, there needs to be a convention in place that everyone adheres to. There's some work in progress that someone on the internet started and had some really, really good ideas. So I think that could go somewhere and we could also adapt things from the KiCAD Library Convention since they did a really great job there as well. So last but not least, thanks to everyone that helped me in the project, especially friends and testers, many people on the internet such as on the EV blog and microcontroller.net forum and on GitHub that file issues and basically helped me. And also, I'd like to thank the KiCAD people. Since without KiCAD, Horizon wouldn't be what it is today. Since without a router, things would be much less nice. Now let's head on to the demo. So there are basically two main entry points to use the user interface. For one, the project manager and the pool manager. I'll start with the project manager. So let's just open an example project and open the schematic. So you've got your usual schematic. So you can drag on that just by starting, dragging and starting from an existing junction. And now let's actually put some, so I thought there's a USB connector in there right now. Now just let me delete that one so I can show you how adding new things work. I select place part, then the pool part browser pops up. It's normally a bit better if you've got a screen with a higher resolution. So let's place that USB connector. There's a preview of the symbol and to the right, there's a preview of the package how it looks like. Just let me place that one like this, rotate it. Now I press O to add like a round symbol that attaches like that. And just let me connect this just by clicking and dragging from there. And also let me add some labels to connect these. So let's just name this net like USB, the minals, and USB D plus. And now instead, so if I would like to do it like as unusual and so I'll just rename this, then this will show an error since like now it created a second net with the same name and that will cause a warning. And what I have to do instead is to use the tool to move this net segment to other net. So like take these things that are connected to this net segment at the moment and connect them to a new net that makes things much more explicit. So I just connect this one to USB D plus and this one to like USB like USB D minus. And just because we can, let's make them or because it's useful, let's make them a differential pair that's as easy as that. So let's save that, go to the board editor and go back to the schematic editor and click place part to board. And this will pull up the board editor with the part editor for placing it. Let's place it just here like so. And use the interactive router in the differential pair mode to just route this differential pair track to the USB pins of the micro controller just easy as that. And also like it supports all the things that you know from the packet router like not making collisions and stuff. Just let's hope that this fits on the screen. That's how like the clearance rules work. You can add rules that like match certain nets. You can either match like net like net class or the net itself or the net name using a regular expression. And for each match you can you find you have your full clearance matrix. So it's sort of like the minimum distance between these types of copper. And when looking for the right one it just starts at the top and looks for the first one that matches. Like I guess users of Altium may find this a bit familiar. Yeah, and there are also other rules such as like clearance from copper to non-copper things for example like board edges or holes. And also other rules for copper planes and rules for track width. So if a track has a width set to be loaded from the rules. I can just alter the track width in there, hit apply, and then it gets applied to all the tracks so that I don't have to change everything. And everything stays nice and consistent. Yeah, and I also got a 3D preview. Right now it takes a bit to load the models. Since these are step models and triangulating them takes a bit of time. Now they are there and I have also some visual aspects like I can change the background color and some feature that actually might be useful. I can when I like let me turn off some of these and to better see how the layers are stacked that I can like explode these. So I can actually look into the PCB and right now it's a bit silly. But I guess it's useful when you got like PCB with many more layers. Yeah, I also got some like goodies for example. Instead of using the usual things for like box selection, I also have selection modes such as lasso. So I can just draw a lasso and everything that's within it will be selected, yeah. And as the KiteCat people do, I also got like a selection filter. So if I know, for example, I only want to select tracks. Just select tracks and it'll only select tracks and not like packages and stuff. Okay, then it's time's up and questions please. So just go to the first page and find the link to the GitHub repository and just like file issues, open pull requests and stuff. You're welcome. Do you have some kind of IRC or something like that? No, I don't have like a dedicated IRC channel. But if there's a need for one, I guess we can just wear a channel or 3.0 or FTC also. Yeah, let's just let me delete the USB connector I added. Let me delete this in here. I'll press save to safety netlist and then I'll press reload netlist and then it's gone. Yeah, yeah, yeah, okay, so the question was why not contribute to KiteCat? As I explained earlier, I really wanted to implement the parts management in a proper way since like how parts and symbols and stuff are managed is like the core of every EDA package. Like changing that would need changing everything. So it's also we would have cost a lot of friction since like as I said, the way how the symbols and packages are handled is really the core. So that's why it's decided to start over. Well, I mean, historically, I hope the other ones don't, like by the time Git came out, there was Mercury that was just on the console. You know, Mercury was great, but it just never caught on because it got the whole thing. And again, it's wonderful stuff, I don't want to criticize the words. I had a similar question. I mean, in KiteCat, the number one complaint of users is library management. Yeah. So it looks like if somebody proposed something, yeah, there would be fertile ground. Yeah, but yeah. Yeah. Did you try discussing with the KiteCat? Actually, I didn't. Yeah. Which I'll sort of make the same thing that I made in the previous talk. Yeah. But I'll make it in a different way. It seems everybody is inventing a new file file. Yeah. You mentioned Jason. Yeah. And I look at that, and I look at Jason, and I accept math style, and see style, list book style, you know, you name all those things. Yeah. But what really matters when you look at it as a file format is how is it organized. And this is something that always comes secondary. And one thing that I've noticed about the formats that are used in layout, and stuff like that is that they're basically drawing format. Yeah. It's a drawing first, and your circuit that it represents is secondary. And what I kind of like to see is that flipped around, where you have this, where the circuit that it represents is primary, and things like the placement and stuff like that is markup. So how to repeat this? The previous one about the layout, the layout features, because that's the way they look at it. But the bit about, I see all these neat tools that they don't work together. Time for one more question. OK, three very quick questions. You, you and I. Yes, please, make a T-shirt. Yeah. Well, how is the method that your program generates compatible with the method that's called our program? No. So the question is whether or not the methods are compatible. No, they aren't. They are just JSON. Since my thought of storing things was just like serializing the internal objects. And compatibility, in my opinion, can be cared for by exporters. OK, one from Plaspar, and then on the character virtual, and let me use it. OK, so the question was whether it was hard to integrate interactive router. Yeah, there were some impedance mismatches, such as the keycage router, like thinking of things being connected if they are on the same position, like in Horizon, if they connect to the same junction. So I had to do some like matching things in there. But it also required some changes to the canvas to interactively hide things and stuff. But overall, it was doable. Yeah, I did so once just by doing a get pull on the keycage reaper and using melt to not change this over, since I didn't modify the actual router. Since all the interface between the router and host application is in its own class. OK, last question? Both. OK. I'm asking because my idea is, you know, we all hardware engineers do PCB design pretty much every day, and we learn to live with different systems. Priority software, I'm not going to mention here. It's not so bad. OK, look at it again.


The purpose of the work is to audit the affordability of oral GLDs for the treatment of type II diabetes, which are subject to reimbursement under the state program in Ukraine and to study their availability. The research found that only three drugs under the INN are subject to reimbursement, metformin, glibanglamide, and glycloside. Metformin, glycloside, and glibanglamide tablets are available in sufficient assortment of different dosages and packaging. The copayments for DDD ranges from UAH 0.111 to UAH 2.510 for glycloside, and from UAH 0.105 to UAH 1.576 for metformin. To increase the affordability of GLDs and the introduction of modern treatment schemes, it is necessary to expand the list of reimbursable GLDs, including prolonged forms of metformin and innovative drugs such as GLP1 and SGLT2. This article was authored by I. Ovalosenko.