Good afternoon folks. My name is Dilip. I work for Cisco Systems. In today's session, we are going to cover how is Neutron extension framework is designed and we will go into the details of how to add additional extensions using this framework. And also we will cover few use cases in terms of like some of the customer requirements, how we met using these extensions. With that introduction, I will hand over to Abhishek. Hi. Hi, I'm Abhishek Routh. I'm from Cisco Systems as well. Dilip has given you the agenda now. Let's just deep dive into it. I believe most of you guys who are here probably know about Neutron. I'm just going to touch upon what Neutron is. It's a networking service for OpenStack, which provides uniform northbound APIs which can be consumed by different clients like Horizon, the dashboard, or you can write your own CLIs, or you can have your own orchestration tools, scripts to manipulate these resources that are exposed by Neutron. Neutron is a pluggable architecture. You can have plugins. Different vendors can have their own plugins, which can enable the physical as well as virtual switches and networking devices. So with this, I'd like to go into the core resources that Neutron provides. The three basic core resources, the network, the subnet, and the port.  It can be realized in various technologies like VLAN, VXLAN, or it could be a flat network. Each of these networks have a pool of IP addresses which are called the subnets. They are a contiguous block of IP addresses where each of those IP addresses can be assigned to ports. These ports are nothing but the switch ports that we have, logical switch ports. They can be tied to OVM. It can be tied to a DHCP service or L3 agents. They carry the MAC address and the IP address. Having said that, when we started Neutron, these were the three resources that was enough to get the basic stuff going on. We wanted to make sure that Neutron is extensible. We can add more features to Neutron. That's why we made the architecture such that it's extensible, so that you can add new services, you can solve complex problems, and also various vendors. They have their own capabilities. These vendors can expose their capabilities and integrate into Neutron via extensions. That doesn't break your original API. It's not necessary that every plugin has to implement all the extensions that are available. That's why extensions are very useful. It helps in evolving the Neutron API. We started off with three resources, but slowly, gradually, we started adding more services, more features. Today, if you look at Neutron, it has over 25 core common extensions, and there are many other extensions which are vendor-specific. That also leads to the next phase of Neutron, which I think probably we will call it V3 or so. That's the versioning of Neutron, with the extension framework that we provided. We provided a breeding ground for these new common core extensions to evolve, and once they have become stabilized, we will absorb them into the core Neutron API. There's going to be a design talk around that versioning. For some of the examples like the common extensions are security groups, that's very vital for deployment. Extension is a way to make that happen. As I mentioned, based on what the intent of that extension is, it could be broadly classified into a vendor-specific extension or a common extension. A common extension is something that is common throughout for all the ... It will solve a common use case, while a vendor-specific extension is something that will help you enable your own vendor-specific capabilities into Neutron. Then there are two types of extensions, resource extension and an attribute extension. Neutron has three core resources, but you might want to do something which cannot be achieved with these three resources. You could introduce a brand new resource, and what are the different attributes that this brand new resource would define. If you want to do that, you will be doing the resource extension. If you want to use the existing core resource like the network sub-network code, and you think that the attribute ... Because it has limited set of attributes, but perhaps there's something that you would want to add into that core resource. You will use the attribute extension and enhance the core resource. Now we'll get a little technical as to how to write these extensions. These are the basic steps that you would do in order to expose your extensions while in Neutron. You will need to add a resource module. What this will basically do is that it will tell Neutron or the extension framework what the new resource looks like. You will need a database schema because now you want to store these attributes. You want to make them persistent. You will need migration scripts because Neutron releases every six months. You need to make sure that your tables are pre-loaded once you install Neutron. Once you have these database ready, you will need to access these resources. You will add a DB API layer and then you will enhance the existing Python Neutron client CLIs and your orchestration tools to consume these REST APIs which are exposed by Neutron. Based on the two different types of extensions, they could reside in either the core location or if it's a vendor-specific location, it will reside in the vendor repo. I'll talk a little bit more about the vendor repo later and talk about the core and vendor decomposition. Let's dive deep into each of those steps. What do you mean by resource module and why do we do this? The resource module is basically, as I said, it tells Neutron and the extension framework what the resource looks like. When the plugin is initialized and Neutron services started, it will look at all the extensions that are existing in the extensions path and it will try to load them. That is why the name of the extension and the class name should be the same as a requirement. Also, you need to implement some of the basic methods, the contract binding between the extension mechanism which will describe your extension in detail. For example, you will have a method like getResources or getDescription which will describe what this resource is all about. Once you are done with that, the extension manager takes care of loading it in Neutron and it will provide you with your URI, a REST API so that you can access these resources. Also, once you define these resources, as I said mentioned before, not every plugin implements every other extension so you can decide what your plugin needs to extend. That can be done by just adding the name of the extension in the supported extension aliases. Another thing as a side note is that if you have any helper modules which reside in the extensions directory and you don't want them to be loaded as extensions, you will start them with an underscore. That way Neutron knows that these are just helper modules. This is how a resource attribute map looks like and that's the fine difference between the resource extension and attribute extension. In this example, let's say you are extending a resource with a resource name. This guy is adding a new resource with ID and name while on the other hand if you want to extend an attribute you will take the existing core object and you're going to add the name of the extension or name of the attribute and then you can define the type, whether it's a string or a boolean. That's the example attribute map. The next thing was once you have the resource module ready, you need to persist them. So you will create tables and model classes which would store these attributes and then as I mentioned the database migration scripts needs to be written so that for upgrade or whenever you install Neutron all the tables are preloaded and this is where the migration scripts will reside. Also you'll need to then write database API to access these resources which are stored and to perform core operations. So let's say you have written an extension called security groups. So in that case if you want to retrieve a list of all the security groups from the database you will implement the get security groups method. I mean if you write a method called list security groups it won't work because the extension framework expects a certain naming convention to be followed. So the get extension name will retrieve a particular extension if you pass in the UUID or it will retrieve all a list of the resources. The create extension name would create, the update would update and the delete would be responsible to delete that extension. So these are the minimum set of DB APIs that you need to at least write. And the last step was to once everything is ready so Neutron will automatically load all these extensions and it will form a URI for your new extension and you can then access this URI via REST APIs. You could write your own scripts or you can enhance Horizon or you could add CLI's into Python Neutron Client. So if you look at the workflow the user will perform an API request for your extension. It would pretty much do the keystone authentication there and then in a way whether the extension is loaded or not if it's not loaded it's going to return a not found error code. If it is present then it will either let the extension process it or if it's an attribute extension it will let the core to process it and then a response will be generated. So as I previously mentioned that there was a vendor core decomposition that happened in Neutron. So as part of Kilo release we removed all the implementation and the code of vendor specific code out of Neutron tree and moved it into stack-forge repositories so that they're maintained by the vendors themselves. So how does this affect the extension framework? The extension framework is largely unaffected because it mostly, most of the code resides in the Neutron code today. The only thing that changes is that today if you want to write your own vendor specific extensions they will reside in your vendor repo. So you maintain it, you write unit tests for it and you will be responsible for that code. So having said that, lay the groundwork for what are the different use cases. We at Cisco encountered a few use cases and problems and how we solve that I'll invite Dilip to talk about that. Thank you. Thanks, Abhishek. So we went over the extension framework, the details. Now what I will do is I'll go into some of the cases, the examples where we need to address a problem and how we leverage this extension framework to address those issues in OpenStack environment. Just a quick recap, at a high level there are two types of extensions. One is a vendor specific extension. It's predominantly plugin specific and the implementation is in the plugin, most of the code work. The other one is it is the additional functionality that you would add to the existing Neutron capabilities. Some of the examples like we already went over that, security groups or DVR functionality or provider network kind of thing. But that is mostly a plugin independent. It's mostly like done in the common code and each individual plugin has to enable it if they want to realize it. But this example cases that we are going to cover today is predominantly going to be that vendor specific feature part. Though the implementation is somewhat very similar, the difference is where that code resides and how we realize that functionality. Except that most of them will be identical. As Abhishek mentioned, there is a discussion around whether this extension framework is the right way to handle the additional functionality. The reason being like the common code, there are three resources, 25 plus additional resources that's been added. The expectation was those features will be added initially as an experimentation. Once it becomes more mature and they expect it to become part of the code, that is right now it is not happening as fast as community expected. So there is a discussion about how to make it more standardized. But having said that the extension framework for vendor specific features will be largely unaffected and it will be the same model that we will be following. Having said that, let me explain like why are we looking at this functionality, right? The extensions. Before I go into that, let me explain like the current switch that we have and what this switch does. This is a Nexus 1000 v-switch from Cisco. This is a multi-hypervisor distributed virtual switch supported prior to KVM, ESX, Hyper-V platforms. And also it integrates with various orchestration tools. The key thing is this has a rich set of functionality because it leverages the same Nexus OS code base that is available across data center platforms from Cisco. Since all these features are available, the expectation is we provide the consistency across all these hypervisor environments. Some of the customers has dual environments. They will be using OpenStack and along with that they might have already has their existing virtual environments. And they have a specific operational model and the ask was how do I achieve the same operational model in the OpenStack environment so that from the network perspective it is transparent whether you are using OpenStack or using something else like virtual center or your own custom orchestration portal. That was one key requirement. The other key requirement is in a traditional OpenStack model largely when you deploy the VM, that is the time where you define the policies associate the policies. What it means is users are the ones who are controlling the policies. If you look at a typical data center environment that may not be the case all the time. Sometimes admins do want to have the control where they can define the policies at the same time users can deploy the VMs at will and leverage these policies or attach these policies. How do we satisfy these requirements? That was the major issue that we looked at when we started integrating with the OpenStack. Now let me go over a little bit into the details of what does admin define policies means. Typically like as I mentioned earlier the users could be defining the policies but there are certain policies for example compliance. It is best left to the administrators because admins know what exactly compliance means. It may be that if you have a HR web server you may want to monitor all the traffic from that. If you have those kind of requirements also how do I prevent DOS protection? How do I protect from the spoofing attacks? All those functionalities is best like the admins are the ones who knows what to do but at the same time every time when a user launches a VM you don't want to be coming on the way you need a way to define these policies and users can consume it. So this is exactly where the concept of port profiles came in. If you are using Nexus switches it's already there in the Nexus switches. So the idea here is you group the policies like in this example if you are using a web server profile you define a profile for that that defines all the policies needed for the web server and the same way for application servers or you can define these policies like you can even define by group whatever way you want HR web servers this is the policy. Now once these policies are defined as a user when I'm launching the VM I know that what this VM is this VM is meant for HR web service so I will associate the appropriate profile for that and once you associate that without worrying about what are all the policies underneath it those policies will be implemented by the network infrastructure. This is at a high level what admin defined policies is in a nutshell it is nothing but the port profile slash network templates. How do we get such a functionality into the infrastructure right? OpenStack doesn't have such a concept yet so what we did was we implemented an extension to the port called policy profile extension. There is a I mean we could have called it port profile extension but we decided to use a different name to avoid the confusion. The port profile itself is nothing but the entire capsule of the policies whereas the policy profile is the name of that port profile the model that we used is just like administrators would come and define the policies using whatever orchestration tools or preferred tools they use they can go ahead and define the policies. Once the policies are defined using this policy profile extension we were able to expose that port profiles into the open stack environment. Now the open stack environment has the list of all the port profiles that are available as policy profiles. In this example like I mentioned earlier we have four different port profiles exposed as policy profiles. Now when the user wants to launch the VM as part of the port create now he can specify what profile he needs to apply. He doesn't need to worry about what are all the policies underneath it. That is left to the administrator. That separation when this was one of the key differentiation like a lot of customers who are looking at uniformity across multiple environments open stack non open stack environments they were looking at this functionality and using the extension we were able to achieve that. This is a now let's go into little bit details into this extension. How did we realize this extension? Like Abhishek mentioned there are two types of extensions. One is the resource extension the other one is the attribute extension. The policy profile concept itself is new to the open stack. Since it is new to the open stack we need to define it as a resource. So we define first this was a resource and as earlier we went over that like what are all the steps we need to have DB schemas we need to have extension policies we need to have these are the places where it is defined once that resource is defined how do we use this resource that resource is available somewhere you have to use that resource that is where we did the attribute extension as part of the port create you would be attaching this policy profile so we did the extension attribute extension to the port create and there we specified the policy profile this is where that key construct comes in as part of the attribute maps the policy profile has two objects here one is a name and the other one is the ID the ID is the unique identifier of that resource you define the resource using this object now the second one is as part of the neutron port extension there in the attributes it's shown as we defined that there is a new extension called N1KV profile with that name you are able to now see that extension there will be REST APIs everything automatically generated even the neutron CLI we extended that where you can specify that that is what we showed earlier here let me go back and show that at the bottom of the list you can see that that hyphen hyphen N1KV colon profile with that additional changes that we made we were able to expose this this is the one extension we did and once we did this extension in fact like we were able to use this for many other purposes because we made it so generic now additional capabilities that we are looking at or the features that is been available and customers want to use it we were able to use this port profile extension I will go into one of such example this is a one classic example that people look at it today when you have provider networks and the VM shows up in the provider networks they can communicate with each other because they are all on the same segment you can use certain capabilities like security groups but they are very error prone or you have to build some orchestration systems on top of it especially if you are looking at non IP traffic it is very difficult so how do you achieve isolation one simple answer is well we can create multiple segments yes you can create multiple segments now you cannot use the same subnet well you can use the NAT that is another option yes we can use the NAT but that becomes too complex now you are adding more complexity one simple answer is things like private VLANs can be used these are certain things that people are already deployed and using it in other environments one example that came up is how do we use private VLANs in the open stack environment open stack by itself doesn't have private VLANs feature but the underline virtual switch has that capability how do we leverage that so we did a very simple thing as part of the port profile you have that command saying like private VLAN isolated once you have that capability now we know that port is say isolated port we can only communicate to the external world or any other resources like if you have your shared VMs meant for common services that could be accessed so we can use that there is also a slightly different variation of this isolation where group of VMs they can communicate with each other but not with other VMs we were able to use the same port profile extension capability or policy profile to achieve that the key next summary I want to highlight is the extensions that open stack provided it helped a lot to realize the functionality that the customers are looking at using this capabilities this one is a port extension now let's look at the other extension that we made this is on the network so one of the issues with today's open stack model at least which has certain constraints for certain deployments is it treats all the networks are identical take a VLAN network but the reality is what if I want to enable multicast on that VLAN network sure you can go ahead and enable IGMP everywhere but because your infrastructure may not be supporting that scale you may have VLANs but the infrastructure the physical hardware that is available may not be able to support IGMP and all 1000 VLANs now what do I do how do I enable IGMP for select set of VLANs that is a capability that it is not possible today with existing open stack there are ways like you can do a provider networks but the issue is for every VLAN you have to manually go and enable provider networks you want to have the same dynamism where dynamically users on demand basis can allocate and deallocate their resources if you have to achieve that the existing networking has a constraint and this became a real challenge in certain deployments the same thing goes for VXLAN I think in the other session previous session we were talking about VXLAN multicast mode I wouldn't go into the details there are different flavors VXLAN itself is evolving multicast is the original way of implementing the VXLAN when you have a multi destination traffic like broadcast you use a multicast group to send it again you have flavors like you can allocate a multicast group one per VXLAN segment or you can use a common shared one or there is a new mode which is completely multicast independent called unicast mode the underlying storage has the capability of supporting all of these models simultaneously they can coexist that's a key because it really depends on the workload requirements right if you have a production workload that has a lot of multi destination traffic or broadcast traffic you may want to use the multicast mode but you cannot enable multicast on all the VXLAN segments because the groups are so limited how do I what am I going to do I should be able to selectively use the segments with multicast for certain workloads and for rest of the workloads use the other methods how do I provide such a capability one simple answer that could be is take VXLAN type driver implement another type driver say VXLAN multicast shared mode type driver that could be one way to go it but if you take that approach that means you are if you look at the at the end it is multicast VXLAN it is not something different than VXLAN it is a flavor of the VXLAN for every flavor if you start defining a type that defeats the purpose of having a shared and product type drivers so how do we achieve this right so this is where again the extension mechanism became handy what we did was we did an extension to the network object and with that extension we were able to achieve the things like now you can define the profiles the similar way that we talked about policy profiles now you can define the profiles for the network which is the network properties that is the property of the entire network you can specify now okay here is a gold profile with multicast mode silver profile with multicast shared mode or you can have a branch profile with once you have that one and as part of the network create now you can go ahead and specify what kind of network you want so the user may be able to say that okay I know my workload requires a silver level treatment so I am going to use a silver level profile or based on the tenants the administrator itself can specify that if the tenant is a tier one tenant he only have access to the gold profiles all those options now is possible we were able to achieve that using this extension mechanism that's the two extensions that we want to cover today one is for the port to extend the port properties how did we do that and we were able to get all the features with just one extension we didn't try to extend it by having one separate extension for feature that is one thing that we achieved the other one is the network profile extension to do the network attach the properties to the network so in summary the key takeaway if you look at the extension mechanism that Neutron provides it's pretty flexible it's not that difficult to add extensions but it doesn't mean that we want to add extensions all the time you have to be at most careful because when you add extensions that means you will have different implementations on different platforms that is one thing you want to avoid from when you when you look at the open stack there you want to if you want to look at the main objective one of the things is have as much commonality as possible so that is something that we want to one needs to consider before adding an extension this is another factor what we did was to keep that gold we always keep these features as optional by default they are disabled that means the common functionality is only what is available everywhere only on need basis if the customer really is looking for such a functionality then they can enable it that's how you can have a balancing between what extensions can do without having too much divergence in this ecosystem that's what we have today if you have any questions feel free to ask us I'll take that up so a plugin is something that would realize the API call so let's say for in our case the Nexus 1000 is a virtual switch and we want our virtual switch to be integrated with OpenStack Neutron so all the Neutron APIs the request that we make we want to make sure that the same configuration is passed down to the Nexus 1000 V switch so the plugin will do that the plugin will take these calls and pass it down to your virtual switch or your physical switch the extensions on the other hand is just a something that would extend the current functionality of Neutron and the plugin will realize that as well so let me explain in summary what you have the functionality how to implement it because your infrastructure may have different ways of realizing it that's what plugin does whereas extensions is extending the functionality itself whether that functionality is additional attributes or additional resources once you extend the functionality the plugin should be capable of supporting it so you mentioned that after you've implemented your extension here then you need to update the Neutron CLI and add support into Horizon and everything so is there any automation of that at least for the CLI if you add an extension does it automatically show up in the Neutron CLI or do you have to go in and modify the CLI or you'll have to go and modify the CLI code because it seems like with the data model that you're expressing there that there should be some automation of that kind of thing it seems like if everybody is having to hack on the Neutron CLI that's a bit of a source of a problem so the vendor specific CLIs generally are the vendor will maintain them outside the tree it won't be a part of the core CLIs that come with OpenStrike Neutron so you will be modifying those CLIs as long as they're vendor specific but if you're bringing a common core extension in that case the CLI will be as part of the core CLI so if you add an attribute to the core a core attribute then that will automatically show up for attribute extensions you don't have to worry about the CLIs because the CLI what it will do is it will just pack these attributes and send that request over to the Neutron server so the Neutron will know based on what extensions are loaded it will look at the attribute map and see whether it's a valid attribute and it will be valid against that quick question maybe you covered it so excuse me if you did already but I think in the beginning you mentioned the vendor specific and the general ones what are these two use cases that you covered today are they just Cisco or this is vendor specific thank you alright thank you


Hello, everyone. Hope everyone had a good break, right? So today we'll be talking about a very different kind of business. Till now you have been hearing about e-commerce, about food deliveries, right? About different share mobility. But today we will be talking about bike rental. So how many of you have seen these green bubbly bikes around you? Right? Okay. So a lot of people already know about this. Great. So just to reiterate, we are pedal and pedal is a bike share. It's a shared mobility where you can rent a bike, go from point A to point B, right? And pay per use. Now how it works. So let me just give you a brief background about it. So you can go to a station, you can see a bike. It's QR enabled. So you scan a QR code, link your Paytm wallet first, scan the QR code and that's all, right? So you can go from one place to another. When you want to end a trip, you just lock it and on your app push the enter button and it ends. So as simple as that. So the purpose of starting pedal was to make shorter commutes convenient. You have cabs from going from one place to another that are far off. But imagine that you're going to a place where you end up in a metro and now you have to go to your home.  Right? Do you want to take a cab again? That'll cost you around 100 bucks or 50 bucks. Or you can take a cycle from there and go to your home. So that is the whole point of starting this business. Now, just to explain a little further, if you have seen these bikes, there are two main components to it. One is this basket and trust me, this basket is a solar panel, right? What it does it, it gets charged by the sun and it powers this IoT lock. So this lock at the back is where all the magic happens, right? So there's a small box which have all the GPS tracking. It captures the battery status. It gives signals to lock or unlock a cycle, right? It tells you the strength of the signals and everything else. So these are the two features that are put on the bike because of this whole ecosystem works, right? And this is also the way we capture data. So let me take you through how we expanded because it's a very new business. So I thought that it'll be good to share with all of you. So it started somewhere in January 2017, where we built our minimum viable product and we set it out in HSI layout. So we had only 15 stations at that point of time and it used to be, there was no IoT behind it and it was completely manual. They were fleet at all these 15 stations and people used to find these good looking bikes and they would come and ask, you know, what are these bikes for? And they will say, I want to go, you know, you can take this bike and go to BDA complex. You can take this bike and go to 27 Main Road. And we had stations there and people will tell, okay, I want to go from this place to another. So we would communicate to the fleet at that station that, okay, this bike will be coming there and that is how it used to work, right? But what are the challenges in it? The challenge was obviously all the data was manually collected. There was no IoT, there was no tracking, right? So those are the major challenges. But what we learned from this was that people really used to like it. There was a void in the market that there was no way to go shorter commutes. It was either through walk or either through caps. And even the buses had very fixed stop and, you know, the routes were not convenient for residential areas. So we did this, we did this expansion for around six months. And then in November 2017, we expanded to 1000 cycles. Now this is when we actually introduced the lock. This is then when we actually introduced the solar panel and we started collecting all the data. Now what happened was the reason behind it was that we want to make it madness. There was no one present at the station. Now people used to discover themselves. They used to unlock themselves. They used to go from one place to another and they used to park it back themselves. Now initially we started in Bangalore, especially HSA layout, but then we expanded to Pune and Kolkata. The reason being these are smart cities. We had a lot of government support. They wanted to go eco-friendly, right? And they wanted such initiatives to come to the city. Then we expanded in Agra, Jaipur, Gurugram and all these cities. But we had a little setback there because there were high cases of vandalism. Now the obvious question would come, you know, why would I not see the cycle? How do you protect all those things? So though we had a lot of things by which we mitigated theft, so inside a lock, we have a buzzer. So if you try to move a cycle when it is locked, it will buzz off, right? If you try to shake a lock, it'll buzz off. So and it'll send an alert to the fleet or the city operations team that someone is trying to fill with the cycle. So this is how we tried to protect vandalism. Then we thought that okay, maybe it's a good idea to launch in closed circuit areas like college campuses. So we launched in ID Bombay, ID Chennai and IASC. And then when we had success in that, in around April 2018, now we have a fleet of 12,000 plus bicycles. We are in 15 cities across India, New York cities like Ranchi, Raipur, Varanasi and the maximum density we have in Bangalore, Kolkata and Poore. Now what is the problem here? So we had problems of vandalism. We have problem of the GPS location not coming in the correct way. We had problem that the battery is drying off, but what is the major problem? The major problem is when you expand to so many cities, right? How many cycles do you put at a station? How do you maximize your revenue? It's a very low ticket item, right? If you are taking a ride for 15 minutes, you hardly pay like three rupees. So how do you sustain this business? So for sustaining this business, this is the problem that we are trying to solve. And this is my main focus for the stock for today. How to increase the number of trips per cycle and hence maximizing utility and revenue. Now, why do you want to do that? So these are the challenges right now allocation of cycles at the station for heuristic base. So when you're launching in say HSI layout, so I know the places I would know that these BDA complex 20 cent main road, these are areas where you have a lot of crowd, where you have a lot of people shopping around. So I should put more cycles here. But when you go to newer areas, like for example, Kudluget, Victoria layout, right? How do you recite number of cycles you put there? It's very difficult. It cannot be heuristic base and you would know good about a city. But what about you go to Kolkata and they want to expand there? How do you recite the places? Then the trips for cycle right now was very low before we launched the experiment. The third was re-balancing of the cycles was totally fleet based and it was done only once a week. So on Saturdays or I think Sunday morning, they used to go and they used to just rebalance all the cycles there. If we have hoarding of cycles at one place because everyone took from point A to point B. No one took from point B to point A. How do you solve those problems? And last was identification of new sites. So I launched an SSL layout. I launched in Kormangala, but I launched in Indira Nagar. But what next? How do you expand? So to solve all this problem, we thought that it's not as easy as taking out a report or generating some statistics. We have to really visualize it. So to do that, we followed this approach. So there are two legs to it. One is how do I optimize the current network of stations? So if I have SSL layout and I have around 15 cycles and SSL layout, how do I make sure that I have the right number of cycles at each of these stations to maximize the number of trips from each station and overall network? For example, if I have, as I said, if a lot of cycles go from point A to point B and not coming back, then how many cycles should I put at point A at the start of the day? Because I know they will get depleted. So cycle rebalancing to optimize for number of trips per cycle. Second, identifying the dead zones. So you decided to start a station somewhere, put cycles there, but then you realize no one is taking cycles from there. So can I relocate those cycles to somewhere else? Third, identifying frequented routes. Now, for example, I did a station A. Now I take this cycle to a station B, but in between I stop at a hypermarket, right? Because I want to buy groceries. So can I open a station at the hypermarket because these areas are demand aggregators, right? They will build a network. So how do I find these things? Identifying areas where people abandon cycles is a very important point. The reason being, you can only end a trip at a station. You cannot take a cycle and leave it anywhere, right? Your money will keep deducting. So for example, we don't have station every 200 meters. That is what we want to achieve in future. But right now what do we do? So we find out which are the areas where people took cycle from and then abandoned it here. So maybe if a lot of people are banding there, if you open a station there, that will help people. The fifth point I'll just touch upon a little later in the presentation. The second leg to it is expanding into new areas. Now, for example, when Uber Eats started, right? So it started with Kormangala. But how did it identify? So if I was sitting in Whitefield and I wanted to avail that service, so they would tell you which area you're coming from and then we will shortly expand to that area. So these are called empty searches. This is a concept of empty searches that you get a search but you don't have a product there. So we used to capture that when we started this and identifying connecting neighborhoods. So for example, you have HSA layout, you have Kormangala, but these are pretty apart. They are at least five kilometers distance from each other, right? So can we open station that is in between these two? The demand does not originate from that, but people, you know, it's like a connecting station. So it helps bridge the demand between these two big stations so that the overall network density increases. So what we'll do is I'll first take you through what a pedal networks look like. So this is a short video. Okay. So what we have here is these yellow dots are the stations all around Baglow. So for example, this is JNagar. Then we have around residency road. We have around ISE. We have Indranagar, Kormangala and HSA layout. Now you will see blue dots coming, right? Now what are these blue dots? So blue dots are the places where the people are starting trips from. And the red dots are places where people are ending the trips. So now there are some obvious observations here. So you'll see a lot of people are starting and ending here, but these are kind of empty, right? JNagar, residency road, Kaban Park, ISE is pretty good, right? So there are some obvious insights that you get if you plot it well, right? What next? Let's go dig down a little deeper. So let's go to ISE, right? So this is ISE. Now you will see all these stations are doing well. A lot of tips are starting and ending at these stations, but these three stations, no one is either taking cycles, no one is either ending at these stations. So basically all the supply at these stations is kind of dead, right? So this frees up my supply from here. Similarly, let's go to the area near Kaban Park. Okay, you see here. So there's a whole set of stations, stations on the right-hand side. These have a lot of trips starting and ending, but station on the left-hand side, they're almost dead. Now there's so much of inventory lying idle. There are so many areas where I have a good network and areas where I have a bad network. So if I were to show you how the trips are panning out, so it'll just come in a second. So this is how the trips are happening, right? See here. All the people from this area, from Residency Road, are not really going within. They're transversing to either Indranagar or Kormangala. ISE is a very close circuit, right? And there's a huge network density in these areas. So this is the power of visualization. Now, how do you utilize this? Now we know this helped us in defining the problem that we really need to solve it now. How do you do it? So next is what we'll, the major talk is decoding a network. How do you decode it? So our objective is to identify the right number of cycles that we should deploy at the start of the day at each station so that the number of trips per cycle gets maximized and that's the revenue. So to understand this, there'll be two concepts that I'll be introducing. First is the rate of outgoing trips from a station. Second is the transition probability of going from station A to station B. Now, what is the rate of going, rate of this from a station? It means that it is the expected number of trips per day from a station given X number of cycles at the start of the day. So if I have said 10 cycles at the start of the day, how many outgoing trips can I expect? If I increase the cycles to 15, can I expect more trips? Right? So what we did is we had data. So because we had launched it for around more than one year. For every station, we had data when they were different availability of cycles at the start of the day. So we figured out when the availability differed over time, what was the increase or decrease in the odd trips per day? Now, initially we thought that we'll build a linear algorithm to it and if you keep increasing the supply, the demand will keep increasing because understand this is an impulsive business. You see a cycle and you write it. It's not that you know and then you come. But what happened was it's like a projectile. It has diminishing utility over time. It demand is capped after a certain point of time. So that is why what we did is we fitted in a polynomial equation. So this becomes our rate of trips. So what it tells us is that if I deploy C cycles at the start of the day, at what rate my trips outgoing trips will increase. So we defined this function using past data for each and every station we had across Bangalore. And this is the objective function of number of trips. So the trips at the start of the day into the rate of trips expected at the station. So if you do it for every station and sum it up, it will give you the total number of trips for the whole network. And this is what you want to maximize. Let's go to the next thing. So this is building a network chain. So say there's a station A and this station B. At the start of the day, they are 10 cycles and the rate of trips of the station is 0.5. It means that if you have 10 cycles, probably you will have five trips from that station. Now those five trips can either be a round trip. I can start from the station and that station or it can be a trip to a station B or it can be a trip to a station C. So the probability of round trip is 60% for the station A to B is 20% and A to C is 20%. So we calculated something called as cycles we are expecting at the end of the day. And I'll tell you why it is important because it helps us defining constraints. So cycle at the end of the day, cycle at the start of the day plus incoming minus outgoing, simple. What is incoming? Incoming is the cycles I expect to come from different station to station A. So incoming at station A is cycles at the start of station B into the rate of outgoing trips I'm expecting at station B into the transition probability from B to A that is 20%. Similarly from station C. So these, this will be the total incoming cycles I'll expect at station at the end of the day for outgoing. Again, cycles at the start 10 into rate of trips into one minus probability of a round trip. Because if I take a round trip, it will end up here. It will not be outgoing. So cycles at the end of the day is like this equation and it is 14. So see you started at 10, you ended up at 14, right? And this is the most important thing to analyze the network. How much should I keep at the start of the day? So now to optimize, we define three constraints. Constraints are important obviously. So the constraints are cycles at the start of the day at any station should be greater than equal to zero, right? Logical. Why greater than equal to zero? Because we want the algorithm to tell us, right, that you don't keep any cycles at all also at a station. That is why we said greater than equal to zero. We want to remove those death stations. Second is the cycles at the end of the day at any station should be greater than equal to zero. It cannot be negative, right? It has to be positive. And the sum of cycles at all stations is equal to the total cycles. So this is a macro constraint. So this is what it looked like before. This is just our layout. This is how the trips look like. And after we run the optimizer, this is how it looked like. You can clearly see the density of trips have increased. How much they have increased. Let's see. So we had around 150 total cycles. The uplift in trips for cycle was 20%. The uplift in revenue was 15%. Why the revenue uplift is less than the overall uplift in trips for cycle? Because there's a rebalancing cost also. So you have to pay the fleet to move a cycle from one place to another. But even after factoring in the rebalancing cost, the uplift in revenue was significantly higher. So that is the use of such kind of doing such kind of things. Now this solves for the first case that how do you optimize within a network? But how do you identify new network? That is the second problem. Again, three legs to it. Identifying the frequented routes as I talked about the hypermarket. Identifying areas with no station and high abandonment. And identifying areas with high empty searches. This is a route map. So what we did is we collected all the GPS traces when you're going on a cycle and we plotted it as a heat map. So this is HSL layout. You can see these places marked in red. This is the HSL flyover. A lot of people are going and stopping, but there's no station. No station. No station. So these give us probable areas where we can open new station because they already demand aggregators. We call it at the fountain graph. So this is Jaksandra. A lot of strips are starting from nearby areas in HSR and Kormangala ending up at Jaksandra. But there's no station. So these people are manning here. So this makes a use case for creating a station here. And then we plotted the empty searches you will see in Martha Lee Bridge, Outer Ring Road, Coven Park metro station where we don't have any network at all. Right. People are searching, but they do not find the product. So we by this we expand to newer ideas. So these are three use cases where you how you can expand. These are tools and techniques you can use. We use Kepler and deck dot gl we use folium map box techniques are heat mapping network analysis and operational research. Right. Then other initiatives that we took after we did this is that we launched subscription. So I don't think you have heard about it or not, but we lost subscription at 49 and 199 where you can take unlimited trips in a month. Right. And why we did this is so that we increase the frequency of trips from a particular user. So how we utilize it in mapping is the areas from where we get more subscribers. We make sure we have more number of cycles in those areas. So we put a layer on top of a maps and we also plan to reduce a rebalancing cost. We also plan to incentivize users will give them the credits to take a cycle from one area to another. Right. So that ways we don't take the burden and the user also benefits and makes money out of it. So implementation was not a cakewalk. Right. It was really difficult. It took took us several months. We started this initiative somewhere around six months back where we went and talked to the operations team and they said, you know, we don't want to do it. We don't see value into it. And then we attended, you know, various conferences, read, talk to various people and got to know about these tools and techniques. So these are learnings. Start with small experiments. We started with just a layout. We proved it to them and then pushed it to them that, you know, why aren't you using it when you are seeing the value? Keep measuring it and keep flashing the results. Right. Send them a report every day that if you do this, this is the result. If you do this is the result. There's no way they can deny that. Build map to highlight actions and not just describe data. So tell them that these are number of cycles, you know, required at the station at the start of the day. And don't just tell them how the tips are moving around and don't underestimate the power of making it look good. So you might see that it looks a little fancy, but that is one of the reasons people are using it. Right. Initially we use folium, but then we switched to get the dot GN and really looks fancy to us too. So we also like working on it. So how can you guys benefit from this? So I've listed on some of the use cases that you can use identifying areas to expand your operations using app search data in terms of food deliveries, groceries, medicines, e-commerce area where they don't have right now. Second is recruitment or allocation of free persons by areas to optimize delivery time. So if you know already know you have delivery orders from these areas, how many persons should be present at the start of the day? Second is decentralizing warehouses and distribution centers across the city to minimize the time of delivery. If you know that you are getting a lot of orders from this area, why don't not have a warehouse or distribution center near it and tracking of fraud during delivery. They talked about FE scores, right? Fleet executive scores where they're making fake attempts. So we can know that what is the distance of the GPS location the fleet executive went to and what was the geocode of the actual house and was it close enough? If it is not close enough, it's a fake attempt. So all these other things that we can use it. So that summarizes my talk and we are open to Q&A. Very interesting talk. That curve that you showed, right? The rate of outgoing as a function of the number of cycles. Now to the extent that it fits well, even if assuming it fits well, it's dependent on the properties of the other nodes. It's not something that's just independent of that station, right? The thing is that so you're sort of doing something local which is applicable only if you hold other things fixed. But then you're doing everything local there as well in each of the nodes. So there's no reason to assume that the same coefficients to the extent that, as I said, they fit well. They don't fit particularly well, but let's ignore that. That no longer is going to stay the same. So I'll tell you what we do is that that equation keep changes every day. So what we do is we base that equation basis on the last month data. And we filter out to make that equation that, you know, we have, for example, holidays, we would filter out. We would filter out when we had very less cycle availability and all cycles were damaged. So we would know that in recent time, the equation is as true as possible. And in future, when we'll have more data, we'll actually build a prediction algorithm to predict the number of trips for the cycle availability for each station. So right now we start with very less data in HSA layout. And that is why we, when we plotted the data, it looked like a polynomial equation. That is why he fitted a polynomial equation to start with. I think we'll start off with the buff. But meanwhile, while getting the chairs on the dice, I think maybe we can take a couple more questions. Hi. Sure. Why do you take a start of the day and the end of the end of the day? They are the only two relevant milestones. Okay, it's operation challenges. So why is the start of the day? I could do it at every time of the day that in the evening you should have these many cycles and starting these many cycles. But we have limited resources. We live in a practical world. So when we talked to the business team, they said, right now I'm doing rebalancing once a week. So for us to convince them to do once a day was a big job. No, no, no, it's not about rebalancing. Say, what if in the middle of the day, the number of cycles at a station goes to zero? You'll not be able to collect data on what would have happened if the cycles were there. Yeah. So if it goes to zero, we cannot do much. See, but what we are trying to do is we try to build a optimizer in such a way that it should not go to zero. So we over index the cycles that we keep as a start of the day, right? And we try to, for example, one of the constraint you said, we said that the cycle at the end of this should be greater than equal to zero. Right. So what we can do is we can do greater than equal to five so that it predicts to keep more cycles so that it there's a minimum viability at any point of time. So these are things that we can tweak. We started with this. We can always improve.


If U.S. abandons its commitment to Ukraine, it will increase threat of nuclear weapons, U.S. senator. Countries under the U.S. nuclear umbrella are closely watching the U.S. response to Russia's nuclear threats against Ukraine. This was stated by U.S. senator Jim Rish. If the U.S. does not support Ukraine in the context of Russia's threats to use nuclear weapons, Rish explained, I worry about what our enemies will think, but I worry much more about what our allies will think. Therefore, the reaction of other countries, especially allies, to the potential failure of the United States to protect Ukraine from nuclear blackmail or a Russian strike, could completely change the vision of nuclear weapons on a global scale. So they will say, we can't count on the United States, so we have to have nuclear weapons. And I do believe that a failure to honour the commitments in Ukraine would trigger the largest nuclear arms race on the planet that we have ever seen. Rish said. The senator said aid to Israel, Ukraine and Taiwan is important to move forward and we want to get it done, but we need to first and foremost be concerned on our southern border.


All Israel apologists have is ad hominem attacks The Washington Post has a new article out explaining why it and other mainstream media outlets have been citing the Gaza health ministry as a Source on the daily death toll from Israel's ongoing bombing campaign Noting that the ministry has an established track record of reporting such deaths truthfully and accurately Everyone uses the figures from the Gaza health ministry because those are generally proven to be reliable human rights watches Omar Shakir told the post in The times in which we have done our own verification of numbers for particular strikes I'm not aware of any time which there's been some major discrepancy This point is inconvenient for Israel apologists including the president of the United States Who have been suggesting in recent days that the Gaza death count is untrustworthy on the basis that the Gaza health ministry operates under Hamas governance I Have no notion that the Palestinians are telling the truth about how many people are killed Biden told the press on Wednesday adding I have no confidence in the number that the Palestinians are using Adam Taylor the author of the aforementioned Washington Post article correctly notes that Biden's statements are a bit odd Given that his own State Department considered Gaza's ministry of health reliable enough to cite their death counts in its own reports as Recently as a few months ago What changed the information interests of the US Empire changed When I drew attention to all this on Twitter a few hours ago I immediately started getting comments from Israel apologists Dismissing the information I was providing because human rights watch is bad and unreliable and because the Washington Post is bad and Unreliable in order to defend their belief that the Gaza Ministry of Health is bad and unreliable These are the tactics of people who have lost the argument They understand that the soaring death counts from Israel's ongoing massacre of Palestinians in Gaza is Devastating to the information interests of the side they support so they need to make up fairy tales about how the Washington Post Human rights watch and the US State Department have been engaged in a years-long conspiracy to make Israel look bad Which is of course not to say that anyone should ever believe claims made by the Washington Post or Human Rights Watch on blind faith I've had major criticisms of both of these institutions myself over the years Believing they're infallible would be as misguided as believing. They're always lying Which is exactly the point. I'm trying to make here. It's not about the source It's about the strength of the argument Attacking the source instead of attacking the argument is what people do when they can't attack the argument It's a standard ad hominem a lot of people think an ad hominem is when you say something that hurts the feelings of somebody you disagree with But that's not what the term refers to an ad hominem is when you attack the character or motives of the person making the argument Instead of attacking the argument itself It's a fallacious debate tactic designed to move the conversation away from the pursuit of truth and facts to just dismissing Someone's claims because you don't like them It can be entirely appropriate to interrogate someone's motives and character when that's the only information you've got to work with and Is relevant to the conversation, but when it's used as a substitute for addressing evidence and argumentation It's a fallacy and that's the only tool Israel apologists seem to have in their toolbox these days It's exactly what they are doing when they accuse you of being a terrorist supporter or an anti-semite when you criticize Israel They cannot address your actual criticisms because Israel's actions in Gaza are Indefensible so they attempt to impugn your character or your motives to shut down the debate and keep people from listening to you The you can't trust those death counts because they come from the health ministry of an enemy government line Can be used in literally any war against literally any enemy People who care about facts don't look at what government loyalties a source has they look at whether the institutions in question Have a track record of being reliable or not and whether its claims are supported by evidence You'd have to be a complete idiot to look at the photos and videos showing entire city blocks reduced to rubble in an Area known to be packed full of children and not assume that there is a massive number of civilian deaths in Gaza right now As anti-war's dave de camp recently noted Dramatic increases in death counts in Gaza correspond directly with Israeli government statements about having increased the number of bombs dropped This is what you would expect to see if the ministry was accurately reporting deaths Israel apologists are doing everything they can to minimize and justify Israel's crimes in every way possible Because if Westerners start looking objectively at the crimes themselves They will cease consenting to this horrific genocidal massacre that Western governments are fully supporting They don't have truth on their side and they don't have morality on their side So all they can ever do is attack the sources of the ideas and information that are opening people's eyes to the criminality of Israel and its Western allies


Alright, here is my box from the Mystery Science Theater Revival Kickstarter. It took long enough to get to me. They had to deliver it a second time. The first one didn't get to me somehow and I did not expect a giant two foot long tower. It sat for three days. I'm lucky somebody didn't run off with it. Okay, let's cut this thing open. Get out of the way first. What does this say? Okay, that's just a shipping list. Some blank cards. And this is a set of stickers it looks like. Okay, this is why the long box, I guess this is a poster. Okay, that's a viper from Battlestar Galactica. And Santa Claus and the Martians. And okay, there's characters from Starcrash. And there's the satellite of love. There's the animated characters from Moon Zero Two. And Rocket Chip XM over here. Alright, lots of old and new movie references. Looks like Reptilicus over there. Gamera. Okay, so this is like a Where's Waldo thing with the MST3K references. There's Ahtor hang gliding. I'll have to look through that carefully. One more thing in the box. And it's taped down more than two. That's a keychain. Many layers of tape. Keychain. Spinning keychain. Pretty cool. It's huge. It's heavy. Okay. This has to be the mug that so many people had trouble with that arrived broken for so many people. This feels heavily padded. It's in there tight. Okay. It feels intact. More paper. Oh, it's in there good. Mystery Science Theater 3000. We brought back MST3K. And there's no handle on the mug. Can this be called a mug? If it doesn't have a handle on it, it's a pencil cup. That's what it is. Okay, so these are the nice things here. The poster is surprisingly funny. And honestly, the one thing I wanted was the thumb drive with all the episodes on it. And that's not in here. I believe I remember Joel saying those would have to be shipped special. And it would be later in the year. So we'll have to wait for that. Here's my MST3K swag. And now I'll push the button.


Here's my very strong view of the world is that we have created very deep, exceptional technical talent in pockets across industry, whether it's on a software company who's developed a platform in its engineering, or at a data analytics firm who've developed deep techniques. The fact of the matter is this though, in the services industry where many of us are working, it's all about how our clients articulate value, and the way they define value is in their business strategies. And so to me, and I've said to my team many times, we have to take all that capability and now contextualize it to industry. So what does that mean? It means large language models and we're all talking about them are great, but they have certain areas where they can deliver superior outcomes. Applying them to every problem like a blunt force object isn't going to work very well. And so understanding that large language models are really great at coordinating lots of data sets that are coming in for the kinds of iterative things we have to do when we're interacting, let's say, in a payable function. The payables helped us. I mean, it may be a very mundane use case, but it's because we understand the work that happens in payables and we understand the technology now that can be applied there. And that to me, that coming together of the convergence is why we believe as a company we're starting with domain and business knowledge. And then we're shifting left to bring in more and more capability from technology and AI and data, as opposed to starting with technology and using it, ad hoc across companies, across industries, etc. It's all about really understanding the strategy of our clients and how we can use technology to accelerate that. And so to me, convergence is the name of the game for the next five years.


I'm Jessica Carson. Welcome to the special edition of the Sound Post Sessions. I am in downtown Long Lawn in the creative district at Joanna Rose Getting Studio called Oprah Arts. We will talk to her a little bit later in the show about some of her art and what's been going on in the creative district. If you donate to today's show, every $10 you donate puts you into a drawing to win this. It's a $100 gift card that you can spend here at Oprah Arts in Old Town Marketplace in Longmont. Our musicians today are Taylor Sims of many bands. He originally I knew him from Spring Creek Blue Grass Band. Then it was Bonnie and the Clydes and now it's Everybody Loves an Outlaw. They have gained quite a bit of notoriety in the last few months. We will also have Monica Marie on the program today. We're excited to have her back on the show because she played the very first Sound Post Sessions when we were still doing live and in-person shows back in the day. She will be coming out with a solo album later this year so be sure to keep an eye out for that. She's also in Honey Tree which is a duo with Eric Wiggs. So thank you for tuning in. Thank you to the creative district for making this show happen. They very generously created grants for artists and musicians to keep working in this strange time. So the creative district grants funded today's show so thank you to them. We also have two downtown Longmont gift cards and I want to tell you about our Patreon. If you check out the Sound Post Sessions on Patreon.com we have been putting up content from online shows as well as shows that we did live so you'll get archive material and new material and the next two people to sign up for Patreon will get downtown Longmont gift cards. So thank you for joining us and enjoy the show. Her heart on fire just like the hills of Calif. High as the mountains tall from Liza was her name. She'd stay up late and listen to me all night radio dancing with the shadows on paper walls bathed because there's nothing like Liza was her name. Night is calm the snow is fall I guess better see and I can hear that whistle blowing so much for tuning in here to the Sound Post Sessions. I'm so happy to be a part of this great friends and and such a wonderful musical community here in Longmont and I'd like to before I forget I'd like to thank our sponsors for this particular episode and these virtual Sound Post Sessions. I'd like to thank the downtown Longmont Creative District for sponsoring this this episode and and lots of other things that are going on here at the Sound Post Sessions so thank you for that. All right well I don't really have a set list as you know I'm a professional up here and so I don't know what I'm going to do next oh I think I think I know what I'm going to do next. I grew up down in Texas in the Panhandle of Texas and spent my formative years there and it still means a lot to me I mean don't get me wrong I love Longmont I'll never leave but sometimes I get nostalgic start feeling like home missing my folks and missing my family and missing the countryside down there and I wrote this song when I was in one of those momentary laps and reason I guess. I hope you're you're clapping out there I'm imagining it I'm hearing it in my head I'm trying to hear it you know I'm gonna get I'm gonna get crazy here I'm gonna try a brand new song I actually just finished this today I'm gonna push myself a little bit out of my comfort zone because usually I don't do this usually I excruciate over songs but I'm not gonna do that you guys are gonna get the the first the first taste here of this new song so it doesn't have a title yet I'm not sure what it's what it's gonna be but I'll try it for you right now I really hope you like it thank you all so much for tuning into my portion of the show I really appreciate being asked and thank you so much to everybody here in Longmont and wherever you are listening to this or watching this I appreciate it I hope it brings you joy and light and I wish you all the best in these crazy times that we're in and we'll get through them as long as we stick together and as long as our guitars are in tune we'll get through it all right here we go that's it for me I'm Taylor Sims this has been such a treat to spend these brief moments here with you I hope you enjoyed these songs and somebody else is coming up next that's far better than me so stay tuned for that I'm Jessica Carson and I'm here in Old Town Marketplace in downtown Longmont with an excellent watercolor and who knows what other mediums that I just don't know about yet a wonderful artist here in her studio and it's Obra Arts yes tell us about your studio here so I've been here in this building for three years moved up into my own space this year and Obra Arts Obra is Spanish for a piece of work it could be a work of music a work of art and the goal of my studio is to not only advocate for and produce and teach visual art but also integrate Spanish into what I do because I'm bilingual and study in Spain and it's a big part all my works are titled in Spanish so it's a big part of what I do and with the studio I have dreams to teach bilingual classes in English and Spanish so Spanish speakers who are learning English can practice their English and vice versa so that's kind of the the goal behind the whole thing that's great tell us about some of these pieces back here before we got started these caught my eye and I love the theme that you told me about so tell us your thought behind these this is a series that I started last year um it's probably going to be a series of about 20 or 25 pieces all together and the theme is our connection to each other and to our natural world um and physical connection and with the advent of technology and how much we are um spending time together virtually um arc I feel like a lot of our connection our actual real physical connections are lost and are being lost we're spending more time indoors we don't take our shoes off and walk on the ground um anymore and physically we are actually not as connected uh to our world as we used to be and so that's the sprung out of that and then with the advent of COVID um that has become even more um of a poignant subject I think for me because um we're all shut up in our houses and only are are having any connection through technology and through virtual methods so this these are these pieces are the beginning of a series uh about that do you have you made any art during COVID has that inspired anything new from you um a lot of artists kind of started making you know paintings of people with masks on and things like that I kind of went the opposite direction um and started making a piece of work uh that was complete fantasy I had had this little story it's kind of a legend or a myth almost an origin story in my head for a long time and because my kids were home from school and I had to work at home a lot because I was helping teach them um getting help helping them get through their digital classes um I'd sit my eight-year-old son up with the computer and I'd sit down with a little pad of paper and so I started doing just one piece a day of um illustrations of the story so I'd write a line and I'd do a piece every day and I have I'm up to about 67 pieces that I've done for this legend and the story's not completely written yet and some of it's completely abstract and some of it's representational um but all these pieces have to do with the story um and every day I post on Instagram a next the next you know installment of the story and the next illustration so that's what I started doing just kind of I was thinking as an escape as something to open up and follow every day and just that's not about the virus it's not about what's going on right now because I think we all needed a little bit of escape from that so I'm also interested to know about your involvement in the creative district here in downtown Longmont if you've been to downtown Longmont recently you'll know that there are barricades up and there's art on the barricades and so some of the restaurants are using that for extra seating for their diners just a little more room to to have live music and keep having art outside and I want to I want to point our attention over here because you're in the Times call for painting one of the barricades so tell us a little bit about that so um I participate on the creative districts committee which meets once a month and kind of is a brainstorming session and or planning session for what is going to be happening in the creative district and so when the barricades went up I was actually across the street eating a burrito at Benny's with Sabrina Ellert who's a yeah who's an artist in the building too and I said hey wouldn't it be great if they let let us paint them and we had a committee meeting that afternoon and the LDDA Kimberly and Mercedes with the LDDA were so we're going to have artists paint murals on the barricades and I was so excited um so I couldn't wait to get started with that so the next day we had we kind of divvied them up and and decided on placement for them and then we got busy recruiting artists and um we pulled from the firehouse there are several firehouse artists um that are doing murals and there was a stipend provided from the LDDA for that purpose so they were paid for the work um and then uh we also pulled some just from general facebook posts and word of mouth and things like that but there are about 20 murals that are going up and some of them are still in progress some of them are finished um but it's been a really fun um addition to those barriers and then this weekend saturday I know they're doing um the lgda is recruiting uh from the public to do wheat pasting um which is kind of like a paper mache kind of application on the barriers so the ones that aren't muraled on um can be covered by other things and the the community can participate and it's just a really great way to brighten them up and they'll be around till october um at least that's the plan at this point so um they'll be around for a while so you can come down and see some art and be outside and I know a lot of artists at the firehouse and and just local artists here are putting up tents and having uh art events on on saturdays as well from now until at least the end of at least the middle of september it's going to be going on I think so there's a lot going on outside downtown awesome yeah well joyanna rose over arts please come see her come check out her art she's an old town marketplace we're third and main between third and fourth three three two main street great and she's you come into old town marketplace and she's upstairs so come check her out oh yes please tell us about that um so um this is a a gift card that is for a hundred dollars that's going to be redeemable here um that I think uh for donations made during this cast um you get entered to win a hundred dollar gift card and this can be used toward art itself or um toward a painting party or toward a love watercolor lesson or what have you there's a lot to do here so it's redeemable here awesome yes so if you donate to the sound post session you will be entered into the drawing to win that hundred dollar gift card for over arts thank you again for joining us today and letting us come check out your studio it's beautiful I feel like I'm not going to leave today without something going home with me so um stay tuned up up next we have Monica Marie um she is a wonderful wonderful musician she's in a few different projects honey tree monocle band but you get the chance to see her solo so stick around for that and thank you to the creative district for making today's show possible hey looking muff is my song any old day nice to be playing for the sound post sessions an interesting time I have to say I've really enjoyed all the baking with my son who is just over one years old right now and last time I played the sound post sessions I was actually pregnant with him so um kind of feels like I'm coming full circle just a little bit which is really cool um I'm gonna play a love song so I grew up in Colorado Colorado Springs and my husband also grew up in Colorado Springs and we went to the same high school and even though we weren't dating back in the time like back in the day we um we were friends and so this is kind of a very condensed version of our love story this is called loving you we talk a little writing first writing music I wrote a lot of love songs love music from love songs nice to return back I think it's I think it's kind of followed the timeline of my life a little bit I'm gonna play a tune called river song this song I wrote to just say that I I see you and I love you and it's gonna be okay and it's really to address um like deep dark heavy feelings that I think I know I experience and that I've witnessed the people I love experience and um and this is this is a song that I will be releasing um early September so watch out for that this is called river song I just wanted to say thank you to the downtown Longmont creative district for sponsoring this wonderful it's so cool that Longmont has a creative district I'm so excited by that this town has just become you know cool gem of the front range and I always love coming here and making music so thank you sound post sessions thank your creative district all right I'm gonna try one more okay so one of my first memories as a human is sitting on my mom's bed growing up and her playing music to me and me just begging her to keep singing um I would just ask her to sing the same songs to me over and over and over mama sing to me and um I really wanted to write a song about this memory and um my good friend ebb and graze helped me write this tune and um it's all about that memory and so this is called mama sing lived in a brown house a blue trim on a big hill sunny colorado nine two ninety three summer with the smell of stain in the porch I hear sweets calling out to me on the street a song starts two sessions


Ella, can you just explain for us a little bit about before you came to church and before God did a wonderful work and you're like, what kind of things were you going through and what was your life like before Christ? Okay, so it happened about five years ago. I came to the conference with wise men, Harry, and, but well before that, I didn't live a godly life at all. I didn't serve him.   But then something, I woke up one morning and I'm like, this is so tiring already.  So for how long were you addicted to drugs? I was on drugs for like six years, like five and a half years. And then so it was like a really deep drug addiction that I couldn't like, I couldn't deal with myself. And I knew that one time I woke up, I was like, I can't do this myself. And then my aunt were, they were going to the Wiseman Harry conference five years ago. And I was like, okay, this is it. This is like my time to, this is my time to go, I got to go, I got to do this. And so I came to the conference and I remember I was like, the whole time I was at the conference, I was like, okay, I know this is, you know, this is going to help me. This is going to, you know, set me free. This is going to, you know, get closer to God. And but I was like, look, and I saw it like there are all the people manifesting and the man of God was like, either falling and demons are caught and cabbie and cast it out. And I looked to my aunt, I'm like, is this normal? Because I come from really, I came from a really just Christian background, Christian religiousness, more religious than it is just like non-dominational. So I was like, okay, this is totally not normal. I'm like kind of scared and freaked out. I was like, okay, this is not, I was like, I hope I don't like manifest or I hope I don't make a fool of myself and the demons are going to talk something weird and like expose me completely. I'm like, oh my goodness. So then I was like, okay, well, as the man of God was coming, the wise man here was approaching me. I felt like a whole, like my whole body was like hurting. I could, I was like standing there. I couldn't even like worship. I couldn't even say I couldn't do anything. I'm just like frozen. And then it's just, I just was completely like, I sat down on the chair. And then as he approached me, like he put his hand on my head and like everything was just hot.  And I'm like, okay, I kind of walked away from him. And then the only thing I could remember after that was, I guess people tell me that I started manifesting, but I didn't know what I said. Because that whole thing, in fact, like I couldn't even find the video to show, like, or to even hear what I said. So then, so he's, what I remember him saying, he was like, okay, get up this woman is set free. So I'm like, okay, you know, I really didn't feel anything.  I felt a little bit lighter. That's about it. I felt like, I'm like, okay, cool, you know, I've been delivered. I've been set free. And like, thank you, Jesus. So then afterwards, nothing, I mean, after the, after I got delivered, I went to like a rehab program up in Oregon. And I went there for six months.  I'm like, no, are you supposed to like, no, I don't feel, I just feel set free.  So you know, do you want to share something? I'm like, I didn't bring anything. I came here to actually get help. And then they're like, oh, well, that's so cool. Okay, the school, they're like really, really surprised that I didn't have any withdrawals. Like, and I knew that day, like I, and when I got delivered, like I got set free completely from drugs. Amen. Let's put our hands together for Jesus. And then so, so after the program, I, I still, I still went back to like my church, so religious church.   I was never, I never had that connection. I was just going to church, you know, doing the regular thing, praying when the church was praying, singing hymns, like everybody did, no worship, not like none of that. And so then I kind of slipped back into like, back into, like, you know, hanging out with the wrong crowd. And then, but during that time, the thing is, I, the devil never really tempted me with drugs, because I knew that day I was set free with from drugs. I never had that temptation to do drugs, but I did step back and I started, you know, going out, hanging, partying and stuff like that, drinking. And then the devil kind of grabbed my, and chained me back up.  I know what this feels like. So I'm like, and then I remember a week before I came here, I was like, so done with it again. I'm like, oh my goodness.  Like I cried out to him. I remember exactly the week before I came here, two months ago, I'm like, oh my goodness. Like I cried out, like honest cry out. I'm like, okay, God, please, you know, don't leave me this way.  And I want to like do that.  So I'm like, oh my goodness. Okay. Yeah, let's put our hands together for Jesus. So just quickly to clear things up, you had said that you had got completely set free from drugs. And when you went back home, and you went through that, well, you went through the rehab program and everything, and, and you didn't have any withdrawals and God was doing a great thing in your life, but you went back home and you didn't have that support system. You didn't have that living church to build you back up. So while you didn't go back to drugs, the Satan began to tempt you in a new way. And you kind of fell back in that. And then that's what brought you back to Pasco to hungry generation. Is that right? So then the week before, but the week before I was like, okay, I'm not done living this kind of way. I'm like, I know there's a better life for me. Again, so I'm like, okay, so the week before the devil already knew in his, you know, he knew that I was already getting to like planning to come here. So he's tried to stop me.  There was like demons around my room.  So they're like, okay, you know, we're going to try to, we're going to make a plan to stop her from coming here. And it was, it was everything, like even from my flight coming here, I was, it was supposed to be delayed, but I'm like, Oh no, I'm running down that concourse. I'm going to make my next flight. So I came here and then pastor prayed for me so I can sleep better because I would always have like horrible nightmares. It was just, it was like completely vivid. Every see like a spiritual or like super vivid for me.  And sure enough, like the next day or as I went to sleep that night, I had no nightmares. And ever since then, I have no nightmares. It's like I sleep like a big, yeah, let's get up for Jesus. So then, and then now it's like, now I go like this church is really like, within the two months that I've been here, it's, it's just everything's like on fire, like just a living church and back home. I mean, it's like, it's, there's a church. Yeah, but it's not, you can't, you can't feel the presence of God as much as you can in this church. So, and then even just to get, even just to get connected and starting being like involved in everything in church, like I started doing power of evangelism and it's just so awesome to see how God can like move, you know, through other people to save other people's lives, you know, getting them set free from drugs and even just set free from healing or just healing them, healing and all that is just a miracle to see what God can do in this church. And I love it. Amen. Let's put our hands together one more time for Jesus.   Okay, like I was like, before I was thinking, okay, open up with prayer, just good morning Jesus, that's it, you know, but spending that hour just devoting yourself right before internship just to God and just, it's just makes your day so much better than even through internship, you're just learning more and more about God's grace and how powerful he can, how powerful he really is. It's just all that sets in you.  Amen. And lastly, what has been your experience like when you've been doing Power of the Evangelism, you know, many people have given wonderful testimonies about what God has done, but how has it personally affected you? For me, it's made me, okay, it's made me more like soft-hearted and more compassionate. Every time I do see like, go out to Power of the Evangelism, as I see people struggling, I'm like, okay, you know, I've seen them, I've been there, I've done that, or I've done this kind of, you know, I've lived that kind of lifestyle, I know how they're feeling, all they need is just a love and just, just some encouraging words and it's inspired me so much to go more and more because I'm like, okay, I have the compassion for these people. It's like, we pray for compassion. We pray for, you know, more boldness and I just step out there and have compassion and boldness and it's just like, wow, it's awesome. Amen. Let's put our hands together for Jesus. And lastly, Ella, what is your advice to some people who might be here today or who are watching us online via livestream who may have been struggling with things that you have struggled with, with drugs, even with alcohol, or maybe they've backslidden in life. How can you encourage them and what advice do you have for them? Well, like they always say, you know, don't, you know, just go do it. But yeah, it's, it's some people I've noticed, they're like, oh, it's not for me, you know, Power of Agilent is not for me, doing this is not for me, but it is actually, and the Bible, it says, you know, go on to the whole, and share until creation, because we were meant to do that.  And you'll see like great blessings and great miracles right after that, because ever since I started, you know, before I came to church and I was just sitting on the pews, I wasn't doing anything for God. I didn't, I was just sitting there expecting for God to bless me. Oh, bless me with this, bless me with that, but I never gave that 50-50 for him. So as soon as you step a little out of your comfort zone, you'll see blessings back, because I've been seeing blessings since I came here. So, hallelujah!