Hey, everyone. Welcome to the session. In this session, we are going to talk about key lessons learned from building a wealth management portal using cloud native architecture. I am Uncle Kumar. I'm a senior director of technology. And so before we get into the session details, let me give you a brief intro about myself. I've been with sapient for more than 10 years with industry for 22 plus years. I am the technology lead for financial services. Hey, everyone. Welcome to the session. In this session, we are going to talk about key lessons learned from building a wealth management portal using cloud native architecture. I am Uncle Kumar. I'm a senior director of technology. And so before we get into the session details, let me give you a brief intro about myself. I've been with sapient for more than 10 years with industry for 22 plus years. I'm the technology lead for financial services. I focus on microservices and cloud native architecture. I'm certified as new soft platform architect to graph enterprise architect. AWS solution architecture and also I've done safe and scale agile certification. I've been speaking at different conferences. So feel free to engage me at Twitter or LinkedIn to know more. And I'm very excited to talk about today's session where we are going to see what I've learned. And as part of a journey which we started few years back of building a wealth management portal for a client in North America. Before we dive deep into wealth management case study. Let's understand what a wealth management is if you are already in financial services sector you might be knowing this but for those who do not are part of financial services. It's an advisory business where you do advise your clients or how to make your investment, how to grow money, how to make sure you manage the cash and investment strategy for your clients. As part of that there are two key entities and the first part is advisor who is advising the clients and who are basically involved in making that investment strategy and making the investment on behalf of the clients. Advises are essentially are regulated by FINRA or SEC. They in fact get a unique ID from them and they have to register and go through that process. Once you are done that the once you identify a client or you can see a prospect even before the client. You start discussing the initial goals and objectives and build that relationship with the client. And then you start doing the financial planning process as part of the wealth management goal. Once you understand what is the long term or short term goal for a particular client and then you start capturing different information for the client. You start collaboratively working with the client to understand and create a financial plan and then mutually open up that strategy of how you are going to make money for them. And there are different aspects of, I can't capture all different aspects but this is just a quick summary of what an advisor does for a client, opening up the digital account managing the investment portfolio, rebalancing as per the market dynamics. These are not the examples but it's a symbiotic relationship between the client or we say advisor and the client. So from the client perspective what they are expecting from advisor is that once they understand their financial objective, basically help them grow the money, provide the details of how they are doing it. Definitely work and trust the advisor because they are sharing all this information like bank accounts or all the financial details so that they can plan for their financial future. Exchange the documents and they are giving the an authority to advisor to manage the financial plan so you pay for advisory fees as part of your assets under management, but it's advisor and client they are working closely to make sure that the money or the investment strategy is in place for that. So in order to do that, and that's where the wealth management portal or wealth management business comes into the picture and that's what we are going to talk about today is how a technology can help an advisor to serve their clients better. And that's an statement from an advisor we captured early on is they don't want to worry about the platform they want to worry about the client so the platform is just a tool. The main purpose is to serve their clients. So, when we started in the journey which I'm going to share for one of the clients and where it's the second largest wealth management. You can say a broker dealer company, I can't share the name because of the confidentiality, but when we started working with them. You know, first thing you understand, try to understand from advisors and from the client is what is the key business challenge and the drivers where you know we wanted to enable the advisors we wanted to launch new features and we wanted to ensure that advice are getting the kind of service they're expecting so that they can serve their clients better. And in order to do that, they wanted to ensure that they have the right operational efficiency. The platform can be scalable and extensible as the market changes they should be able to meet the needs for the client so time to market and the ease of integration with different vendors is also a key part. The most essential part of the experience experience of advisor experience of the client so that they can serve their clients and clients can experience an integrated experience so that they can see the financial plan they can ensure that they can they have easy access to all the information. So, in order to do that they ensure that you know the outcome is that how do I reduce the total cost of ownership, reduce the time to market do better brand positioning and and also increase your advisor and client support base with that business challenge in mind. We started our journey towards almost in 2018 timeframe. We started building this digital platform and there were three key goals as outlined here. One is technology that you can ensure the technology is an enabler and we wanted to have the latest and latest technology but not using the microservices architecture and all that but that's not the essence of it. Essence is that you want to create an integrated customer experience and end to end digital experience and so that the advisor can bring that bigger financial picture to the client and they need certain tools like digital vaults, you know, easy e sign and different capabilities you will see that how do I accelerate the experience which I'm giving to the clients. Accelerated delivery is one thing which was always key that how can I do monthly releases or even weekly releases as as what we need of the hour earlier they used to have like six month release cycle. So we wanted to ensure that we can meet all these, you know, kind of a delivery goals as well as experience goal and technologies, enabler to doing that. I like this code where we say that you know do the best you can to you know the better because there are so many unknowns right. So the idea is how do we start progressing and as we know better, we will try to do better. That's the intent of it. So, in that journey, or any journey to be any journey, my focus is always and that's what I also suggest others to do is that look at the lens from people processing technology perspective. So, when you look from these lenses that how do I, it always starts with strategy and consulting right but the dynamics are when I say people is customer experience or advisor client experience enabled by technology and and the product is at the intersection of it. When we are talking about all three dimensions so product is the output but you know all this is all about these three different dimensions perspective so moving forward I think what we started doing is that we started streamline streamlining the client experience and we can't do it in a day so we defined a roadmap that okay let's let's do that with building the platform slash foundation, then we start launching the MVP feature. Let's say the decline portal and was a portal and financial planning and some of the capabilities we are talking about which are essentials for advisor and client to do business, and then later on we start in 2019 we started streamlining and accelerating some of the capabilities that how do I integrate with some of the key capabilities like account opening electronic delivery CRM integration and all that so he took a crawl walk and run approach that you know how you can start defining the baseline first and then you start launching capabilities on top of it. So by 2020 the platform was fully operational and now it's kind of being used by 20,000 plus advisors. So having said that the first lesson, which as part of the journey, which I, which, which we learned as a group is that organization culture and I know it's, it sounds, you know that organization culture that's fine but what do I mean and is we we observe that you know engineering is a lot driven by when you say what an organization culture is allowing you to offer. And having said that some organizations they are very waterfallish in nature and some organizations they are, they want to. They are very agile in nature. So what we started observing is that how we get that support. And the first thing like I said that for us it was to ensure that and going back to Convys Law is that you know organization, whatever is your organization, you will start designing your architecture as per your organization So putting and I can correlate with that because that's what we observe that you know the key challenge which we saw that any, any such organization where you go and start driving the digital platform adoption. Initially you need to understand the culture of the organization and ensure that you get enough support from the executive and change or at least try to change the culture of the organization so that you can build that platform. So that's what our initial learning was that how do I change the culture of the organization and leadership support. So make sure that you know the key stakeholders, you get a bind from them and they understand the why part why we are doing this and, and also people have these fear of, you know what will happen to the existing platform so you need to build that psychological safety and bring the culture of and cultivate the culture of product mindset not the just that we are doing this project not know we are. And that's what you know Martin follows if you have read the article long time ago he published you know that we need to move from the siloed functional teams to you know more of a you know teams either where you have a vertical cut of you know people where they're business driven, not that you know there's a UI specialist there is a middleware specialist and EBA specialist. So, so cultivating that product mindset is important and it's not, it will not happen in a day in our experience or so it didn't happen, but gradually you start doing that in first spring second spring and then you'll start seeing that, you know, after in soft development and following that approach and consistently doing it, you'll see that that will start everybody will start adopting to it. So you need to promote that culture and ensure that you know that you also promote the culture of you build it you run it kind of culture and that's what after our first release we wanted the deaf team to start operationalizing it as well so that that's another thing which culturally you have to enforce. One thing which I strongly believe is you know every failure is a learning opportunity and I've seen this. There will be lots of failures during and we also encountered that, but every failure we need to ensure that you are not pushing the team rather than we are enabling the team okay it's a learning opportunity and ensure that you know the team is focused on meeting the objective. Alright, so the second part of our, the second part is after the transformation journey the lesson learned is that how do we establish and people ask me that is there any secret sauce to it and I always say that you know it's every organization journey and every engineering transformation is unique and it's contextual to what organization or what client we are working on and what is the program under consideration right so it kind of start looking at the holistic perspective that engineering and cloud transformation when you start looking at you know from the technology and engineering from product process from communication culture. There are different aspects to it. So, if you look at it like technology engineering, you ensure that you know you are following cloud DevOps and you know microservices kind of architecture which is the modern day architecture. You ensure that from product perspective, you have the right ways of working you have the product management team in place you are focusing on customer experience and all. And then you have the right communication and influence on the culture so that you enable that culture to build that capability. From an organization design perspective you ensure that you know product and customer aligned there is enough governance in place and they are our right matrix to be. So this is just a framework, but you need to customize in all these areas that what works for you and that's what we did. We got this framework from sapient kind of ways of working we can use this framework as a reference but we customize it as per this journey as well so that's that's something which is up to you that how you want to customize it. The third lesson, which I learned as part of that journey is that how do you innovate and how do you apply open source and cloud native and these are very powerful technology which you have under consideration right that because it gives you the empowerment and enable to build something bigger. So when we started defining the architecture, and this is a very simplest simplistic view of the architecture and the logical architecture which I can't share the details but this is a, you can say a 50,000 feet view of the, the logical architecture that we had the user experience for advisor portal and the client portal. And then we had this API orchestration layer we can experience there which is aggregating the experience for, for the front end here, you can say back and for front end pattern. And then you have the microservices layer beneath that, which is using caching messaging and other different features but essentially these microservices are being orchestrated by the upper layer and then, you know, services are being rendered to the front end here. And then, at the end, you have the system of record you have many databases we had and you have, you know, different third party integration system data warehouse system, and other analytics and third party systems but I'm not getting to details but the high level these are the different layers in the architecture which we design and powered by the different cross cutting concerns that we have to address. So, when we start laying down this foundational architecture. We started seeing that, okay, what are the different elements of the architecture, which we can meet with open source and as an engineering principle we were always keen to look into what are the capabilities open source or the cloud native can offer. So, the application architecture, we started with the reference architecture for application. But we started looking for what are the different capabilities, then application architecture needs to have right so so we started with the before actually choosing the technology choice, we started looking at what are the, what are the capabilities we are looking for. So, definitely we needed for a better self service and application development experience you wanted. You know the Kubernetes kind of management and administrative interface. We wanted observability so that we know what's happening behind the scene we wanted better release management so we can do the faster build and release deployment and better time to market. We wanted to understand the analytics and notification and apply that CI CD and all configuration management is part of that, you know, continuous delivery approach. And then we wanted to enable that the whole support for CI CD we wanted a container registry software supply chain secrets management on all these different set of capabilities which we typically have as part of your software delivery. And the foundational layer is you know there is a container runtime and orchestration engine power and then compute network and store so these are the logical, you can say capabilities we wanted in in the application. So this is a relative kind of a reference architecture. So once we knew that you know this is what we were looking for, we started now mapping out that okay what do I need to and not going to share details about all the application architecture but this is a map of what we chose, right so we used for application okay we chose angular spring boot Drupal elastic crazy and post-crisis technology empowering different microservices and and different components of the architecture. But the key part is that for Kubernetes we were in fact they were already using rancher so we we kept using rancher as a as a more like a Kubernetes managed interface, which was providing a nice dashboard and, you know, kind of a capability to monitor your container orchestration and all. And we already had the good relationship with New Relic and New Relic was already in that organization so we use that as an observability and you can see application performance monitoring solution. But if you look at this you know we we kind of leveraged a lot of open source technology for CI CD like Jenkins and you know Kubernetes as an underlying platform and big bucket and all. And then we started, we also looked at like JFrogh Artifactory and use that as a registry and for software supply chain also JFrogh and secrets and identity management. Earlier it was Centrify but it got acquired by CyberRox so we are we're using that as an identity management solution and bucket was definitely the runtime engine and initially we were into rancher capital, which is not. You can see at that time Kubernetes compliant but now we are moving towards the Kubernetes. Kind of orchestration so and also in parallel because this whole architecture we had, you know, the complexity of the architecture is a hybrid cloud kind of architecture so some services and some components are on prem. Now we have also started taking another initiative where we are moving some of the components of the AWS so there are already those components are using EKS and Lambda as a function as a service and some of the you know the AWS native services. So it's a hybrid cloud kind of you can say architecture we are using on prem cluster using rancher as an orchestration managing all the containers and for cloud side we are using AWS EKS so it's a mixed you know kind of architecture we are using hybrid cloud. So, but if you look at the technology options here we ensure that we not only see that what is aligned to that organization as well as what is better suited in that context so you know your answer could be different. It's, I always believe that it depends a lot on the context and the organization, which technology you choose but you know that's what we also did and you can use the same mechanism to do that in your architecture. So having said that the next thing which score to my heart is about the deployment right because if you notice in the early, you know kind of a vision which will be started talking about what we were looking for the architecture and what we were looking for is that time to market right so if you can do the deployment right and do it something in a, in a time friendly fashion that you won't be able to achieve that vision right so the lesson learned is that you know, we also learned hard way that in any architecture including cloud native architecture you need to manage the deployment operations early on. And when I say manage, you don't need to wait you know, till the whole because it early days you are focused more on development so you're kind of don't ignore the deployment aspects of it because that is where will bring a lot of efficiency for the future releases. So, when we started looking at, you know, the cloud native architecture which we established and, and, you know, you might get over with so many technology or so many components you can say, which you have in your application right so, and every component can have a different deployment approach like we chose mule soft as a API management solution so that has a different way of deploying than a microservices application which are, you know, like spring boot application has different way of deployment so, similarly, if you have like rabbit mq for example we used for messaging. How do you ensure that the infrastructure as a code is set up. So every component has to be considered from the overall deployment perspective and that's the essence of it that's what I'm trying to communicate here is that once you understand your the application dynamics, you need to ensure that you have the details of each component that how you are going to manage the deployment of that aspect and that's what we also did. So based on that, you know, communities is foundational. And we all know that you know, when you're discussing a coven it is as a strategy. One of the lessons learned is that you need to be very early on discussing all these strategy and we learned at hardware game that you started with like rancher cattle and now we are moving to the full blown coven it is that it's a painful journey if you're doing that so think about the coven it is journey early on that what part of and we need to coven it is there some parts nowadays, you are having several as you're having, like we are talking we have also deployed an air blue as fog it. So you need to think about what components you want to deploy to several less what fits better for that area and what component you want to keep it to, you know, your managed coven it is and what you want to still do a self managed engine like rancher cattle so I think that is where a lot of innovation and you have many options, but you need to be very clear in terms of established. So the key lesson is that you know establish that strategy first, and for each component that strategy can be different. Okay. The fifth, and that's one of the most important areas that when you're building a complex solution like a wealth management. You can't build every capability by your own. Why because the time to market is a pressure, you need to launch like we launched in nine months so we need to ensure that you launch that capability sooner and then get the early feedback. So integration by integrations. What we learned is it's it's a it's a big accelerator, and you can keep the patterns to what industry standards are but some of the capabilities for example, financial planning, you, we use money guy pro. And that's a, that's a vendor, providing financial planning, some of the areas of financial planning but we also integrate with some vendors like you only for account aggregation so why we are doing that why not building that capability yourself because if you start doing for every capability you need to decide that whether you want to build or buy. But if you don't want to do by then it's the time to market will increase so that balance we need to keep and that's why integration plays a key role. In any set solution like wealth management. Some of the capabilities you're not going to build from scratch, you are going to take vendor offered capabilities and you're going to integrate that capability so that you have an integrated experience so the essence is that you know, it's an accelerator, but you can keep it standardized and used to and a great resources the enterprise integration pattern book which has catalog almost 65 patterns right. So there are different patterns for different areas that what do you want that how you want application to be integrated and and all these 65 patterns, you can go and bring about in detail but they offer a great catalog of how you can integrate with external services and we leverage a lot of these patterns when we were kind of integrating with these systems whether it's pubs up the point to point, whether it's using dead letter queue for any message which you can't process, whether you're using a messaging service for communication between services are correlation identifier for messaging routing we have used a lot of dynamic routing and pipe and filter pattern message translation. All these patterns we have to apply in different use cases for business so and the technology I'm just outlined some of the technology it's not like enlisting all of it but technology is again. similar for these patterns so the key recommendation is that always go and refer to these patterns and see whether you can apply these patterns in the as per your context and that's what we also learn. And I'm just sharing up, you know, a view right and it's not covering all the vendors so we've integrated with like 30 plus vendor so I can't show it all but I'm just sharing that you know that. So when it comes to integration, either you are integrating in a user experience or, or a business process or a data right. And that's what happens in the typical wealth management context right that you are maybe getting accounts data from your Lee. When I say counts data suppose I have a Bank of America account and I'm just sending a link to my account so and wealth management professional need that information so that data is coming through your lead to your wealth management system. So, some integrations are, you know, require like money guide like I talked about it requires integration in all three areas like experience process and data. And, and same goes for account linking and aggregation, we were leveraging, you know, all three aspects, and some are you know you're only like research report like Morningstar we it's a process based integration where we are getting a PDF or data from Morningstar and then ingesting the data and then keep it in our system and then the experience part is what we want. And similar to that, you know, in that wealth management portal, you always have some custodian like purging or broad range. So they are providing you the different statements and all so that is again, and my view is like, it's a data and process kind of integration So, what I'm trying to communicate here is that based on different vendors that and what capability you want to build and buy, you have to be applied to apply different integration pattern so be be clear on what you want to apply what area of integration piece and refer to that integration back catalog so that you are, you're kind of using this industry standard and that's what we also did. This is just a sample of what we were talking about, you know, how you are getting data through batch or ETL or I streaming interface. Typically what happens is that some of the integration touchpoints you can't even do, you know, the real time integration suppose you are getting a data which is to the volume is too much right because of, or some regulatory purpose you can't do a real time integration you have to provide the batch integration interface interface as well. So, this is just a view of you how you can, you know how we have kind of ingested as well as, you know, kind of a built that batch interface as well again applying the same set of patterns from the catalog which we talked about. And that's what the lesson is that you know, keep all your integration as per you know the integration patterns and mostly keep it standardized right so that's that's the key essence. And for last point, I just want to make sure you get it from the engineering standpoint is that later on we realize that it's very important to have a platform engineering team and any initial stage when we were foundation, building the foundation architecture. The platform engineering team is by default everybody is kind of contributing in that area of building that platform. At a later stage, that becomes more critical. And that's what we also learned. So we saw that you know, some of the areas like, if I look at the dev an ops part of it, when we established a platform engineering team, we saw that we gain a lot of momentum when we had a focus team. And that's a lesson that if you have not done that, establish a platform engineering team. And these are some of the outcomes which we have seen it happening in dev and upside of it, when we did that, like we redesigned the search experience using elastic search and move from database to that. And a lot of, there was a huge business benefit like business was looking for a global search kind of this feature and better response time we did that with no search redesign. We ensured the faster data ingestion time for better results. We kind of use feature toggle and platform engineering team kind of came up with approach. How to do feature toggling so that business can switch on and off any feature when we when they need that. We also kind of built a page building experience using Drupal, so that you can drag and drop widgets and build a content heavy page. So a lot of these capabilities was the outcome of having that platform engineering team. So, it's very essential that you also focus on that and that's the lesson we learned. And for operational team as well that we when a production issue comes that we realize soon that we need a consulate observatory dashboard we built that we also built a dashboard for production support team so that they can they can quickly resolve an issue. So we started tracking the SID matrix the for golden signals that's what they call it like latency traffic and error and resource saturation. So, all these traceability or tracking of those metrics through the dashboards instrumentation for tracking, synthetic monitoring for proactive alerting. These are just some examples but platform engineering team made it all possible so you know that ensure that the platform engineering team and helped us to accelerate some of the manual bills to automated and you know the developer tool enhancement, bringing that high motivation culture and a lot of things happen because of the platform. Listen, we learn. So, all this is just to create the business impact so want to highlight a quick slide that what impact we created and I, I just taken a, you know the advisors feedback for this and you know what once they in the initial release once that happened they experienced the advisor portal. And they kind of started using it you know that that speaks for itself that how this type of moment was promoting a good relationship for them to build with their clients. So the impact we made is that we saw that in our initial reasons we saw that almost 20,000 plus advisors control and when I said 20,000 advisors, imagine that each advisor can have many clients so almost we are talking about 5 to 10 million clients and then different broker dealers that's what we call it is that we start seeing a lot of them adopting the platform we ensure that we move the idea to live from when you the product manager writes an idea to live it got reduced from one to three months. We improved automation sprint lifecycle and platform adoption and also these are the key impact we made as part of the journey. And with that I will just say that you know, this is just the beginning we are still continuously improving the experience of the platform. And I'll be happy to engage in any conversation not linked in a Twitter, and thanks for spending time to hear me out. Thank you.


I have retried. Someone said it's working in Twitch. Oh, that's interesting. Oh, it's buffering in Twitch. Okay. Is it live? You hear me? Yes. YouTube's working now. Okay, I'm stepping in front of this camera because I know this one's working. Yes, sorry about that. We've got a bunch of different gremlins going on. You've got a signal you can see me now. Can you see me from this camera? I opened up a little separate app, Photobooth, to try. That video is going to be super laggy just because of how I'm having to pipe it from a screen capture.  How is the audio sync? And if it's working pretty well, I will at least try to use this camera as much as I can. So that is the question. Let me know in the chat if you are able to see this main workbench camera. Yeah, very laggy on the second camera. Hey, bummer. That's weird. Let me see. What does YouTube say? YouTube, yeah, they don't love my bit rate. Frame a second. That is awful. All right, we're going to do a little full restart. Oh, wait, now some people are saying good audio, good video. All right, so where is it good and where is it bad? Dexter Starboard, are you watching on Twitch? The YouTube chatters are now saying it's working. Okay, yeah, it's also just my delay in getting answers from you. Main cam is good. Okay, this camera's perfect. Okay, thank you. So I'm going to try again to make a real FaceTime camera work over here instead of this thing. So let's do a new video capture. Wow, that's so weird. It is always grabbing the wrong camera there. So I'm going to quit and restart this whole application. So please stand by. Hey, check this out. My camera's back. Let's see if that gets picked up. The stream is starting up. YouTube says it is a miserable bit rate. I shake my fist at it. It's no good. Yeah, I'm back, but it's not a super great frame rate. So we'll see. Or bit rate, I should say. We'll see. But I've got a camera, so I'm happy about that. So here's what we're going to do. I'm going to fix now a couple of my screen captures because those never survive or restart. What is this one, Adam? Okay, this one is Discord. Hello, Gene Fien. Hello, Roy. Thanks, everyone. Let's see. What is this? This is going to be Google Chrome and live broadcast chat. Let's see. This one is looking good. How about that? That's looking good. Okay, cameras. That's a camera. That's a camera. That's a camera. All right. Here we are. Hey, everybody. Welcome to John Park's workshop. This is it. This is John Park's workshop. Having some issues today with our stream. Very sorry to say. So one thing that was going on in the chat earlier, and I didn't realize you guys couldn't hear me, is that Sea Grover had found a transformer in his attic, I think, for ringing an old doorbell. And I think he said it was from 1941, which is great because I actually pulled off of the wall here, original doorbell from this house, which was built in 1938. And I'm going to send you this doorbell if you want it. It's a nice doorbell, and it's a 16 volt, uses a 16 volt transformer. It's a new tone from Cincinnati, Ohio.  All right. Let's see. Miserable bit rates better than no bit rate. This is true. And I'm glad this camera's working. So some things. I'll skip jobs other than to say, head to the jobs board to check out jobs.adofruit.com. There's a position here that has not yet been filled, as far as I know, for a contract job to build a submarine themed offices control panel, including buttons for macro controls over video, rotating lights, warning lights and siren, fog machine, LED, fluid pump, optional triggers for Zapier. So pretty cool. Sea Grover says he was going to send me the transformer. Well, then we'll still not have the full set. Maybe it was never meant to be. What else? Let's jump into how about a circuit python parsec while the stream seems to be working. Sure. Here we go. All right. Let's get set up here. I just want to make one little change. That ought to do it. And I'm going to open up a different file. Here we go. So what I wanted to show today in, let me get that set up there, what I want to show today for the circuit python parsec is a really simple command that you can use to check how much memory is being used on your board when you are doing things, when you're importing things, when you're importing libraries, when you're using big files. How much memory have you got left? This is a really simple command you can use.  And here's how you can use it in real time. So what I'm going to do is go into the REPL for this Pico that I have sitting right here. And now I'm going to just go and hit control C, which brings me directly to the REPL after going into screen.  Now the garbage collector has a bunch of different things you can do with it. But what I'm going to use is this mem free. So if I do a let's say print, print GC mem free, it will tell me I have about 210 K to 2100 576.  And you'll see now my available memory has decreased because we've added another library in. So as you can see by the code I have up above, you can sprinkle this through some code while you're debugging it working on it. So you can have it do things, maybe bring in a library, check the available memory and use it as a way of figuring out where you're running out of space in case that's something that's happening to you. And so that's how you can use the garbage collector to check the available memory on your board inside of circuit python. That is your circuit python Parsec. And I should also add, of course, there are other things you can do like garbage collection, which allows you to free up space, essentially get rid of unused things. So you can use the GC dot collect to sort of get rid of space that's being used that shouldn't be that you're not asking for. There's also ways to delete libraries out of memory and then check it again. So you can see some other code up there. I was testing out some different commands. So check out garbage collector. It's pretty useful if you are deep in it with a board and right on the edges of your memory usage. This might be a helpful technique. All right. So jumping backwards in my usual order a little bit, I want to mention that I have a show on Tuesdays that's called JPE's product pick of the week. It usually looks something like that. And this week's was this 1.69 inch rounded rectangle display. And what I'll do is I give a product recommendation, product pick, show you a demo, talk about how it works. And there's always a really big discount available during the show. We actually broadcast this show from inside the product page and there's no coupon codes or anything needed. You don't have to solve any riddles. You just simply buy it while the show is happening. It happens on four o'clock Eastern time, four o'clock PM Eastern time on Tuesdays. And this week's product pick was 50% off. Here's a little one minute recap. It is the 1.69 inch round rectangle display. This is a TFT display and it has 240 by 280 pixels and it's a nice tight resolution 220 pixels per inch. Look, that guy likes rounded corners. We have a couple of ways of hooking this up. You can use the pins here at the bottom or we've got this little ribbon cable connector, this flex cable connector. And so there will be some upcoming dev boards that will allow us to really nicely and neatly plug that little ribbon connector in. I'm inspired by this to want to mount that on my wrist and make a little miniature baby version of the Pip Boy. If you were to mount some 3D printed or laser cut electronics around it, you would include a sort of rounded radius corner there and it's built into the display as well. You can see the pixels don't go all the way to the edge. The round rectangle display. It is the 1.69 inch. Hey, watch out buddy. Yeah, that thing was just in looping mode. Sorry about that. So that little display actually got inspired during the show to try to build it into a project, a full blown project, which is what we're going to do today. What we're going to look at project-wise. So let's get into it. First thing I'll do is I want to talk about Pip Boys in general, because what's a Pip Boy, you may ask. Let's open up a little browser here and we will search for Pip Boy. And if we just go to an image search, you'll see the Pip Boy is a prop from inside of the Fallout series of games. Full disclosure, the only one I've ever played is Fallout 4. I know Fallout New Vegas is a big favorite of a lot of people. But you can see here are some examples of Pip Boys in the real world in action. I don't know if we'll see any pictures of them in game, but it is a big wrist-mounted computer type of gizmo. In fact, here's the wiki fandom wiki for it. So this tells you about the games that it's in, the model numbers of the different Pip Boys in those games, the history of them, appearances, how it's changed, its functionality. And so you essentially use it as a menu system to go between things like a map or GPS map to allow you to set waypoints and head places out in this post-apocalyptic world, as well as check on your inventory, check on your health, and so on.  This is the concept art, I think, for the 3000, the model 3000, which was in Fallout 4. And I'll head to Adafruit's Learn Guide and show you a Pip Boy that the Ruiz brothers made a few years ago using a Raspberry Pi in a TFT, I think it was a TFT display. So here it is, beautiful cosplay prop. And if we take a look at the 3D printing section of this, you'll see these are the parts that you would print, and some cleanup you do, tapping some screw holes with some screws, and then you build this circuit up, and they probably have a video here I can attempt to play. Oh, maybe not, or it's on the last page. Have you guys done a video on that? Let me know. There might be, there should be a Ruiz Brothers video of this. If we go to the mounting components last page here, you'll see everything coming together here of power boost and a, I think there's some amplifier, speaker, battery, battery charging circuit, and on and on. And in the end, you've made this gorgeous looking Pip Boy. So my idea with our rounded rectangle display is what if we made a sort of miniaturized version of it. These are usually, you know, pretty big as you can see. So I wanted to make one that's more like a big humongous wristwatch than it is a full arm band thing. So the rounded rectangle display is kind of the inspiration for that, because even on its own without building up a model for it to build or to print, we get kind of that four by three, almost four by three ratio look to it with the rounded corners. So it feels like an old fashioned tube TV kind of look. So excuse me. You can see also in the original design, we have a screen and then to the right of it, we have controls. And so in iterating on this, I came up with this kind of a design, let me go to a down shooter now actually, where I have this feather tripler, which allows me to put a feather as well as a joy feather wing, which gives us controls, gives us analog joystick here. So this is essentially two pet potentiometers, as well as four buttons. And this uses a seesaw chip. So it's pretty easy to interface with in code. It's more straightforward than if you were asking to read a couple of potentiometers, and instead, it's all done over I squared C. And that's another nice thing about it is that this feather wing is really only getting power ground and the I squared C lines from the feather that's underneath, which means we don't have to worry about using up pins that we need to run the display because our display, as you can see there, it has a lot of connectors, we don't actually use all of these, but we do use about five of them for the SPI screen connection there, which is a lot faster than I squared C would be. So this is kind of the general design. I've also started my second iteration of getting it down onto a board. I made some mistakes with the first one, and I bailed on it. I wanted to keep the size down as far as the height of it, the sort of depth on your wrist. And so you can see here I'm going to go over some sort of steps that I'm taking. We'll see if they pan out in the end, but one of them is I've soldered the, sorry about the focus there, come back. I've soldered the feather almost directly to the board. So what I've used here, I'm going to clip these, but right now for testing these are good to have. I've used some of our extra long header pins. They have sort of the full, I don't know, five millimeters or so on either side of the plastic spacer. I moved that up into place from underneath. I soldered the feather to the top of those pins. I then removed the plastic spacer. It takes a little bit of work with sort of a little spudger and some pliers to pull off all of the, let me grab a typical, here's a typical one, this is a short one actually. So removing all of those allowed me to get that space down real low, but still have enough height here to plug in header pin on top. I may go with the sort of shallower header pins here. These are these short feather headers that may work out well, but right now with this height, this gives me a way to connect the display at essentially the same height as that board there, which I kind of like. I might get this down lower and then build up the 3D printed case so that the screen is a little higher and the joystick and buttons are maybe recessed a little bit from there. So one of the things I did, so I had actually built a version of this on a breadboard and that's the one I showed on the show the other day and that was with a metro and the display just plugged in over here like so. When I went to this design, I made the mistake of not trying it on a breadboard first, so I got some things wrong, including the board I was trying to use didn't want to, it didn't have enough memories, kind of why I got into this garbage collection thing. Didn't have enough memory to load the images, so I switched it out for, and that may be something I can solve. It was a Feather NRF 52840 Feather Sense, which should have enough memory, so it could be something else going on with the image load library on it, I'm not sure, but for now, at least we had something working today, I've put in a Feather RP2040 and I kind of like the name PipBoy RP2040, so why not. One of the ideas behind using the Feather Sense was that it has some sensors on there for humidity and temperature and light which and accelerometer, which means it would be a fun one to do wrist things with and maybe pretend there was a suggestion LeMort made, maybe pretend the humidity value or the temperature value is really a Geiger counter, so that you can use this essentially as a prop. So my idea is to do this as a prop, kind of like a cosplay prop. I'm not trying to make a watch out of it, I'm not trying to do low power stuff and have a real-time clock on there or anything, so I'm not really trying to make a watch, I'm more making a cool looking wrist accessory. So the other thing that I've done here and as I write this up as a guide, I'll share some fritzing diagrams of what's going on, but essentially since I have these headers, this row of pins that I'm using on this display, I wanted to mechanically fasten them to this board, so they're stuck on there. And again, kind of for testing, what I did is I used an extra long stackable header cable so that I could, or a header pin assembly, it's got both pins and sockets, so that I could bend over its leads and solder my connections to it sort of temporarily, make sure I like where everything is, make sure it all works, which it is now, then I can go and clip these and solder smaller jumpers directly from the board to some of these shared pins, so the nice thing about these feather wings, these doublers and triplers and quadruplers that we have, is that these pins are all shared, so that pin, what is that on, let me pull this off here so I can read it, so D4, this pin right here is D4, is D4, is D4, this is the pin 13, pin 13, pin 13, so that means I don't actually have to come around to the bottom side and reach all the way across the board, you can see I've already done it here with power, I'm just running to this power row here, which is the same as that 3 volt ground, which is the same as that ground, and then I'll run these just right across the way here to the pins that I'm using and maybe over to this one, this row here. The other thing that I like about this, and I think I forgot to bring the one I had played around with yesterday here, is that the hole spacing here is pretty good for a watch strap for a wrist mount, so you might want to do this with something else Velcro if you're going the outside of a space suit or who knows what, your dweller jumpsuit, but I've got sort of a typical watch band here, nylon watch band, a bit of a thicker watch band, and it'll fit between these holes right here, and so that means I can run a zip tie, pair of zip ties, one whoop there and one whoop there, and that'll hold it really nicely, so we'll do that after we get that assembled if we want to check that out. Let's see, so let's have a look at functionality. You think you understand the connections, what's going on there, and why I'm doing some of this temporary stuff, which I can then make permanent. It's sort of a step between the breadboarding and the full blown. Here we go, and so then I'll be able to clip those once I solder the shorter connections. So I'm going to plug in my feather wing here as well, and let's give this some, oh by the way one other thing is that we've got space under here for a battery, so I was thinking of using one of these 420 milliamp hour lipos, it'll just live right under there, it'll be connected, and the feathers charge, they have a charging circuit built into them, which means this is going to stay nice and simple and compact, and I won't have to add another board for charging. For now I'll leave the battery off, and I'll go ahead and plug in USB-C, and let's take a look at what I've got demo-wise right now. So we have a single image coming up yesterday, or on Tuesday actually I showed sort of looping through them as fast as I could. What I'm going to do here, I'm not really trying to animate this unless I rewrite something in Arduino to get it going really, really fast, gift player kind of thing, but if I'm doing this in circuit Python, I don't think I'm going to do animation, I'm going to do static screens with maybe some elements that we can control with the joystick, and the ability to move between pages, and I think that's kind of one of the key things. In fact if I open up, I'm going to show you there's an app you can get from Bethesda software that is the official PipBoy, Fallout PipBoy app, and this is a great way to see what it kind of does in the game without having to get the game. It can be connected to your game, or you can play in offline mode, so in offline mode here, or demo mode, you'll see the screens, so this is your typical, how's your status screen, there's an inventory screen, data screen, a map screen, and the radio which will play back little cartridges you get. So I think I'm going to just do those screens for a sort of simple cosplay prop, and for now just to test that theory, what I did was I'm reading these two buttons here, which are the B button and the X button since I have this sort of rotated, and you can see if I press the B button, oh I have to set, you know what, I got to save some new code on here, I had to rewrite that right before we started, so let's go and look at the code for a second and fix that. I overwrote what was on there by accident before, and let's see if I open up, open up some code I have saved on my network, where are you? You are almost here, there it is, code two, all right, let me just save it on there, we'll check it, it works, and then we'll look at how it works, so let's save that as code on the, hey where is my circuit pi drive, it's going on, it's not showing up, if not it'll be impossible, there it is, circuit pi drive showed up, save it as code, replace, cross fingers, and this should now restart, did you restart? Here it is, restarting, and in this mode it is now watching for me to press the button, so you can see each time I press this button it's going to advance a frame, and I'm not going to try to do the world's slowest flipbook animation with it, but instead have those five screens, and then if I press the back button here you'll see it goes back a frame, so we can make him moonwalk, so that's just using these two buttons, we have up and down we can use, then we also have the joystick that we could use for something, it might be kind of cool to put a cursor on there or adjust brightness or something, I don't know a lot about the alpha test stuff, alpha blending that Jepler was showing off yesterday, but the ability to blend between the sort of transparency between two images would be pretty cool using alpha channel, so maybe that could be used to adjust that, so that's the basic demo of what I've got going on, and then let's take a look at the code that I've got running on there now, so here is, here we go, better view of that, so here's what I've got going on, this has some libraries that I'm bringing in, the seesaw library is what I'm using to be able to use the joy feather wing, and that's because it has a seesaw chip on it that interfaces all of the onboard analog reads of the potentiometers inside of the joystick as well as the four buttons, all of that stuff is being sort of buttoned up and sent to the feather board over I squared C, image load is what I'm using to show those images, and then the driver chip for this display is this ST7789, next thing we do is release the display, using display IO release displays, and then we set up the I squared C channel for using seesaw, or bus rather, so I squared C bus on the boards, I squared C pins is being used to set up seesaw as a thing called SS here, then setting up the SPI for the display, so it's board SPI, and then there are a couple of chip select pins, I'm using D5 and D6, this is basically out of the demo that Melissa has in her guide on the round rectangle display, and then I'm using pin D9 for the board reset, and we're setting up on the display bus this four-wire SPI display using those pins, then we set up the display using ST7789 on the display bus with a width of 280 and a height of 240, so you can use this as a vertical or a horizontal type of display or portrait versus landscape, so you change those depending, I actually don't know what the row start is about, it might be the 20 pixels that are missing there in the corner, and then the rotation I had to set to 270, if not this thing will be upside down, or kind of off by 90 degrees, then I'm using some display IO commands to create a group to hold this content, adding that screen to the display, and then based on that image load code that Todd Bot had posted, I've got my little slideshow essentially set up where I'm giving it this list of eight images, image names, and those are what I have stored on disk, what I have stored on the feather in memory, then append the display IO group to the screen, set up the variable names for the buttons, so right down, left up, select button mask, and then this seesaw pin mode bulk is how it reads that mask, that button mask message that comes across over I squared C, it's also setting up the seesaw device as an input pull up, and then I have some variables here to tell if the joystick has changed, it won't update anything unless they change, so we have a couple variables to hold there, and then the frame, that's essentially the screen, the display screen that I'm picking of my BMP files, which file I'm looking at, so we start off looking at file zero, and then here's what's happening in my main loop, so when I was doing the slideshow I had this jazz right here, I don't need that anymore, this either because I'm not pausing, so I'm setting up the image and palette using Adafruit image load, load, and then the file name is whichever number we're looking at from this list up here, so initially it's this pip01.bmp, and I can show you those files in a minute, then screen zero is display IO tile grid, that image that we just loaded and the pixel shader is that palette, that loads the image up right there, so then all we need to do to change those, again this is really preliminary code that I, because of some of my hardware blunders this morning, I just got this code running this morning, so it's not effective or efficient, well I guess it's effective, it gets the job done, it's not super efficient, because it's just constantly trying to redraw that screen, I need to have it only update that when it changes, but I am also always checking the two potentiometers inside of the joystick using this analog read two and analog read three, and then this is the code that checks to see if anything has changed enough that we should update and print those to the screen repel down here, which I'll launch in a second, and then buttons are equal to this button mask message that says alright here's the state of all the buttons, so we just get dumped that message every cycle of the of the program and it tells us what's happening with the buttons, if something's happening most of them were just printing A and Y and the select button, but if we press B then I change that frame variable to be incremented, I add one to it and I use the modulo function to loop through the list back to the beginning when we go forward more than the length of that file or that list, and the X button does the decrement, so it does a minus one in the same modulo, so if I go ahead and open up the serial output here, if I move the thumb stick there, you'll see my values, they sit around 512 and 512 in the middle, not exactly that, almost zero to the left, almost 1024 or 1023 to the right, up is I think 1023 and down should be close to zero, so that's how we can use, we can read those and print what's happening on them, if I press a button we'll see that show up in this screen, again this is real slow right now just because of the inefficient code that I have that's constantly trying to re-display the image, so we're always waiting on that, but you can see if you watch my little screen here when I do press the A button I will update, and actually if I hold that it'll try to animate it pretty much as fast as it can, uh-oh, oh do I have some of my code goofy there? I didn't think I could go out of range, maybe I have to subtract one from that list, let's rerun this, that might need to be minus one, right? The length minus one, probably, all right, I don't think I tried going that far, so what do I have, no I have eight, so we'll try pressing this eight times and see what happens, so one, whoops, what happened, I can't put that there, can I? Let's put some parentheses around things, and where's the other one, that should be better, one, two, five, six, seven, oh, I went out of range again, all right, I have to play with that, and I'll make this run a little better so that I don't have to wait so long to see it change, is there, no I don't know why it's doing that, I bet there's some tips in the chat though, if anyone sees what the obvious issue is in me trying to run through that list, let me know, and we can try it, yeah parentheses is the program I was trying to accept, I still screwed this up, no I do want it to be a modulo of the list length, right, yeah this is okay, I don't know, I'll throw in some more proper looking parentheses, and what I'm going to do actually is not update the screen, and I will just print frame, I can see what's happening, one, two, three, four, five, six, seven, eight, or zero, yeah one, two, three, four, five, six, seven, all right, that looks proper, so did one of those images not exist on disk, pip one, three, five, seven, nine, eleven, thirteen, and fifteen, let me just check that I actually copied all those over but I don't think that would have given me that error, one, three, five, seven, nine, eleven, thirteen, fifteen, no that's all fine, okay, I should do x plus one and then David G is saying I should do x plus one modulo something, you are doing x plus one modulo something, okay, yeah so I did put those in the parentheses now and I don't know why that didn't work, well the numbers are behaving so let's see what happens if I do show my image again, and you know what while I'm at it let's see if I can make this a little better so let's do last frame equals, we'll make this equal originally it's just the length of the file names, oh no actually we'll make it zero to start with right, let's try that, so if frame is last frame oops not that indent so let's see that means when I press the button I'll need to increment last frame so we should only draw it when that's true right frame is the same as last frame uh it'll draw until I update it I see that I have a flaw in here but let's see if I can make that work so last frame oh wait no this is not going to work all right let me let me bail on that we'll just put up with the slow display sorry I got a little ambitious there oops all right so let's see if that works it's doing the modulo before the plus is what people are saying okay so is this still doing that hey at least we got the print of the numbers now two three four five six seven here comes eight okay oh it does work now okay okay thank you everyone about order of operations I think that is what fixed it let's see we can go backwards four three two one yay okay so now it's doing the modulo before plus or it was okay uh all right so let's see what I wanted to do uh you know what we're just about out of time because I had the problems with um at the top of the show rather than go long because all I want to do next actually is uh improve that wiring and uh let me let me uh let me jump to the bench cam here I'm not going to improve the wiring right now but I am gonna do the the wrist strap so you can see how that's gonna work and I can put the battery in there uh so let me let me put in a corner camera there okay um by the way my important notes when I was trying to actually get my wiring right was this little thing including colored wiring I know I don't always use like rainbow wiring but in this case it was really helpful to say okay since I'm sort of translating from focus since I'm having to translate from this row of pins that I'm not using every single row in so we start with three volt then we skip then we go to ground and then we use the the remainder until the last two which are empty I had problems I started at the bottom and screwed everything up last night um and since we're going from this kind of single row to these some pins in two rows uh it was helpful for me to write that down use those color pins do it on a breadboard first now have it this way so then that next step is going to be to say okay uh very carefully make sure that I'm heading into the right uh short little runs of wiring on here and and then I can get rid of all this stuff um so that was part of the process for me there is to just have a guide um this won't work very well as a wrist watch right now because of these pins I'm going to leave them in though for now but I will show you how the strap can work here we should have the space under here to put that there and there same width down below you know I love zip ties uh this process is good for kind of the bare bones version if I end up making a 3d printed case for this I will probably not uh not be using the zip tie method anymore I'll probably whoops I'll probably use uh some screws you can use these m25 screws uh and standoffs and fasteners and that's but for now simply go like that run the strap through oh I put that one twice in the wrong just to move over there we go that gives us enough space just this is a wide wrist strap and then we can pull that tight through there um you can also use the dual uh if you want to you know this trick if you don't want extra zip tie here you can take a donor zip tie let me let me grab a couple more uh I'm going to grab some blue and a purple one just so you can see this a little better uh this is one of the great things about zip ties so you let's say we couldn't run that there we just don't want to uh we can simply turn this into a zip tie fastener so what I'll do is take some diagonal cutters or scissors and snip the end off of a donor and that's your fastener get rid of this don't cut any wires and now we have a needle zip tie that didn't have to run across the middle there which this is a bit excessive I don't really need anything there again and that is reason 700 of why I love zip ties okay so again like I said this is not going to be uh super comfortable right now because of these spiky things uh in fact it probably won't really go around my wrist but I can give it the whole college try it's just at a jaunty angle so as long as you don't have the benefit of perspective where you can see how that won't be flat until I get rid of those uh header pins get an idea of what it'll what it'll look like on the wrist uh and when we finish the demo here by popping in the little battery and like I said these charge um it's one of the great things about the feather is that charging built in it's a no added charger just plug it in and off it goes now again with a three printed case I'll probably have a little nicer home for the battery or you could just use some foam core uh run out foam core foam tape break something already it's trying let's restart it here our next map or whatever screen and that is it that is the uh pip boy 2040 right there uh another nice thing to do if you're going to go with sort of a bare bones version of this is to put something like a little uh fabric or foam or leather or something underneath there because you don't want to be shorting things uh with your conductive human flesh and sweat uh I got a question over in youtube it's sherry m6 s191 question mark dr ml who says I apologize I just arrived here what is that exactly he's making so this is a miniaturized version of the uh classic oh I have green screen this is green screen turned on by accident so it's punching it out turn that off uh of the sort of classic pip boy from the video games fallout uh which is like a big honking screen on your wrist with some controls and so this is a sort of uh modernized simplified version that doesn't use a raspberry pi uh but it's still programmable unlike the iphone one uh that by the way is is one cool thing about some of the there have been official pip boys uh licensed and sold in uh various ways there's even a deluxe version of the game that came with it and uh those usually take an iphone that's why that iphone app works you just pop in a disused phone I don't know what what models it fits uh and then you have a ready-made thing you don't have to use a raspberry pi but you can't do as much with it you can't customize it I'm not that familiar with what the state of the art is of the raspberry pi based pip boys but it's uh open source huge scene with people doing cool stuff for it making you know functional radios and and media players and gps tracking mapping and all that so I'm not trying to do that I'm just trying to make the thing that looks kind of cool on your wrist uh and so that's my project for today and I'll be working on turning that into a learn guide so that you can make your own and that's uh that's using our little round rectangle display uh spi display the joy feather wing and in this case I've got the feather uh rp2040 inside of there and of course the feather tripler that makes it all possible so uh yeah pip boy jp2040 thanks everyone for uh sticking through it sorry about the weird uh software issues I had uh earlier on in the show it seems like it's streaming decently now uh if we head over to the discord funk finger just showed a pip boy watch on the watchy that is cool is that a eink display I love the look of that uh and that's a real watch uh if uh if people are motivated it would be great I'm gonna release this project just as this sort of simple um kind of slideshow type of thing where you can press buttons and get different screens but um I'd love it if people extended this and wrote involved interesting code for it so we'll see where this can go um you could also do if if you can get if we get the image load thing that I had not working going with the feather sense or the nrf5284 you could do some bluetooth stuff including sending images from your phone to the display so um there you go all right well thanks everyone thanks for stopping by and uh I'm gonna take off I will see you next week for another round of shows uh including let's see I'll have a product pick on Tuesday uh I will be hosting the show and tell on Wednesday evening so come by for that uh there should be a 3D Hangouts Wednesday morning and there will be an ask an engineer after the show and tell uh with Lady Aida and Mr. Lady Aida and then Thursday I'll be doing a another John Park's workshop uh maybe I'll have designed and 3D printed a case for this that we can start to explore um the what else uh Scott is having a deep dive I think tomorrow uh and then he'll be having one next Friday as well I forgot to mention that first let's see we have this live broadcast announce uh chat this should tell you when things go live so this is one place to check um it says that we're live right now and uh you can also do the show times command in uh the discord and that'll tell you that uh Scott's deep dive five o'clock eastern time on Friday so that should be happening tomorrow as Scott continues to uh battle with USB on the bare metal uh raspberry pi circuit python implementation he's doing I think that's what that's what's up next so really exciting all right thanks everyone and uh if uh if you can please send us your votes of if you want me to send this doorbell to see Grover or if you want see Grover to send me his transformer let me know because we need we deserve to have these two come together and make some doorbelling sounds uh and then maybe we can uh make it internet connected uh someone asked for a link to the discord you can just go to adafruit.it slash discord um I'm not sure if I can share how you share that out of here let's see can I can I right click on something invite people what does that do I don't know but if you go to adafruit's uh adafruit.it adafru.it slash discord you'll get an instant invite and that was a question from the backwards engineer over in YouTube all right uh pony lover says they're a huge fallout fan very cool um I really need to play Fallout New Vegas that's that's the one that I keep hearing I should play uh all right thanks everyone I'll see you next time bye-bye


After a 100% inelastic collision and a 100% elastic collision we have a third application of linear momentum which is explosions. I wrote it here on top of my inelastic collision notes because it actually is the same thing. If you think about it, in inelastic collisions you have two objects moving initially and then one object moving at the end. They stick together. Now in an explosion you have one big object that moves together and then is being ripped apart by the explosion and ends up being two objects or more than two objects moving in different directions. So what I had to flip is what we have before and what we have after. So now before we have one object traveling at the initial velocity and after the explosion we have the two parts in which the object fell apart moving in different directions. Kinetic energy as in an inelastic collision is not conserved. In the inelastic collision the energy went down so your final energy was lower. Why? Because there was a negative work done in order to deform the material during the collision. In this case in the explosion the energy released through the chemical reaction will definitely provide a positive work therefore your kinetic energy at the end is higher than it was before. Linear momentum however is conserved as an inelastic and elastic collision. For inelastic collision we had two parts moving initially becoming one part at the end. Now we have to flip this around. We had one object with a total mass traveling at some initial velocity which then rips apart and gives us two separate objects traveling at each their own velocity. A good application of this explosion equation here is the rocket equation. I have a special video about how to get the rocket equation based on this linear momentum conservation equation.


So last week, you got a dime package and those type of things. How excited were you to get to play the crucial role in the tournament? It was a long time coming. Everybody knows I've been battling some injuries and everything, but it was fun. I was super excited, super stoked, and I just went out there and played my game. Some things I could have done better and some things I did well. So it was a good start for me. What is it that makes me so soon before that dime package? I don't know, that's more of like a variable question I would feel like. But maybe it's my speed, maybe it's my size, I would think. And then, yeah, I just feel like they just think that I fit that role pretty good. But yeah, that's more of a question for France. And what's it like, I guess, that the coaching staff can't have been the trust and the faith to do it? Say that one more time. What's it like maybe having the coaching staff have the faith and confidence to do it? And I guess you want to kind of prove that you're ready for the challenge here moving forward? I mean, it always feels good when the coaching staff is confident that you can get the job done. Like I said, it was just me battling some injuries that didn't give me... I wasn't able to really battle for that spot in camp, you know what I'm saying? So obviously, they got to go with whoever is healthy. With that being said, now that I'm healthy and everything, I'm able to contribute and other guys are too. So it's not really up to me to say like, you know, for me to play that position or play safety, that's all up. I just listen to the coaches, they tell me I'm up that week, I'm up that week. Challenge this week against the Colts and I guess how are you as far as chemistry and gelling with KB back there? Obviously, this is the vision of the opponent. So I mean, it's going to be... those games are always, you know, pretty close. It's pretty tight. But like I said, me and KB, I've been here for four years. This isn't new to me. I've been on the field with him plenty of times in practice. Obviously, games are a little bit different. But I feel comfortable out there with him. You mentioned a couple of times just the injuries you've gone through and stuff like that. How frustrating was that and how good does it feel to finally just be healthy and like you said, contributing? Oh, it was definitely frustrating, you know what I'm saying? But I have a great support system back home. So, I mean, I'm very thankful for them and obviously my teammates and my coaching staff, really, they've never given up on me. You know what I'm saying? They've always kept me locked in in the meetings even when I knew I wasn't going to be able to play because I wasn't healthy at the time. But honestly, it's just part of the game. It's just part of the game. You're going to have to fight through some type of adversity. And to be honest, that's when people could tell what kind of character you have, you know? That word communication keeps coming up whenever we talk to the guys. You was the seed getting in there and getting your chance. How do you help facilitate that communication? You know, just echoing the calls, studying film, seeing what formations they line up in and what we could be getting out of those formations, things like that. Basically, the communication and everything, that just goes all across the board though. We all got to be on the same page and I'm looking forward to doing that Sunday.


Hey, you guys, so I thought I would record a quick video going over the data table from the potato lab because it looks like From the lab discussion that there's some confusion and when I sat down to look at this data table and go, okay What what's what's the difficulty here? Why are we having a hard time? There's a significant typo in this data table that is super confusing. So first I apologize for the typo second pretty much every group of students I've ever had does something new in my classes and serves as a guinea pig for the future and you are benefiting from a lot of things that other students were guinea pigs for in a lot of ways But you are being the guinea pigs in these Carolina labs. So For the most part, I'm feeling pretty good about them, but we're definitely finding some issues Anyway, so when I went in to take a look at okay, what's the scoop here? The typo that I found that I think is significant is this puppy right here. Oh, that's really big and We can't have a pen size like that, but this is the okay, whatever dude. We're going with that pen size It doesn't make sense to be dealing with length times width when you're cutting your Your whatever potato in half because you cut the length of your potato in half, right? Do you know what I'm talking about here? Okay, there we go.  They're calling the I got a width the little That makes sense to me the wide part and then they're calling the height the part that's up and down Did you follow what I just said? I'm not sure anybody did When you do your cross-section what they're asking you to do is to cut the length in half So you start out with a length at 2.5 For this particular potato chunk you're gonna end with a length after you cut it that length is gonna be in Half, so it'll be 1.25. This one will be one. This will be 0.75 right this will be 0.5. This will be one. This will be 0.25 Now I've been hearing a lot of like I've been measuring my potatoes and it took me five hours to measure my potatoes Please be nice to yourself and if your measurements aren't Exactly precisely accurate like do the best you can and maybe report out like I'm not positive about my measurements but the actual size I think we'll still get the point even if you don't have your Measurements perfect, so be nice like move on. It's all part of having a good time.  There's a little width.  That's the size of your cross-section. It's an area. That's what you're calculating You know what when I go through I'm gonna redo these instructions for the future classes And we'll call that the area because that's what it is. I think that would make it a little more clear Okay, so you get the area of the cross-section The distance that the icky traveled is actually a length like that It's not an area.  That's a width and again Really, it should be the same You drop a huge potato in to the icky solution and Diffusion lets the iodine diffuse into that potato Bind with starch in the potatoes starch is a carbohydrate and Change it to black. You can see how much diffusion happened by how far in that icky diffused If my potato is one pound or 50 pounds In the same amount of time The icky should diffuse in the same distance if all other factors are the same So for all of these guys the distance traveled by the icky should be about the same So I don't know what your numbers are, but this let's just call it x It really should be about x. There'll be some variation, but it should be about x for all of them The funky part is the fact that they asked us when they asked us for the area of the white region They asked they said length times width and and so think about this And I know since you've done this already this will be clear But here's your block of potato that was sitting in the icky So diffusion happened and there's a it's black when you take it out of the solution You've got this black potato chunk You cut it in half length wise. So now my lengths are half you open it up and Voila, there's like this really cool Line of black and then the inside potato is white, but the face that you're looking at is Length I mean width times height So the length is going this way, and I'm sure that that was your confusion So the area of the white region is just saying okay when you do your cross section and you see this The fact is that this is what width and height Cut on that in line, right?  So the surface area of my slice With times height is just this column right here Right, that's the slice that you so you're taking the data. This is my raw data table raw and Then this is my manipulated That whatever I'm not manipulated My manipulated data table is just the place where I'm compiling like the take home messages so The length okay, so we've got that the surface area of the white section you've already calculated that as well The surface area of the black section.  I don't know how you want to do it But you might do something like this You would probably have two of these and Then something like this Just a minute That person is gonna have to wait.   The surface area to okay. All right, so the surface area of the whole block Here it tells you how to do this and again, I would just plug your numbers I had to think about it length times width times two and width times height times four like Okay, um, I just trust it the numbers that you have for length and width and height just trust those You've got them in here Just plug them in and that will give you the surface area of your block to calculate your volume Multiply all those guys. You don't have to do any Experiment to calculate these two piece these two columns Once you have these two the surface area to volume ratio is also easy to figure out this lab this activity right here is really good and It's if you can think through What's going on with what with the data that you're collecting? I think you'll be really glad that you did it Okay, I'm gonna go find out who's calling me all these times and Hopefully that is helpful and let me know if it isn't And you will huh, okay, I love you


Developers, developers, no, I'm kidding. Beyond the bubble. Yeah, so sounds good. Cool. My name is Taylor Gehring. Thank you. Been working with Ethereum for a while now. And I wanted to give a less technical talk. You can see here I've titled it Beyond the Bubble. And I wasn't sure exactly what I was going to present, but in the end, it's overcoming education and adoption challenges for the blockchain industry. Sound? So I get asked a lot, what do I do at Ethereum? It's kind of like this. What would you say you do here? This is from the movie Office Space. Yeah, so what do I do at Ethereum? This is me in the very beginning at Miami when Vitalik announced the project. And since then, I've worked on a couple components of the project. At first, I was working on the website. Then I helped on the Go Ethereum project and then infrastructure. And now I'm doing less technical work. I'm doing kind of external relations. And what is that really? Well, it's really taking technical topics, breaking them down for the layperson, and explaining them in a very simple way. So this is kind of what I do. Ethereum blockchain platform. Come hear the gospel. I go to meetups, public conferences like this one, private symposiums, and do some blockchain education and training. And you can see here, is there a pointer? Nope. So on the bottom left here, I just went to this in Orlando a couple weeks ago and had the pleasure of speaking with the CIA, FBI, DEA, Secret Service, SEC, and a few others. Kind of nerve wracking being in the crypto industry and talking to these organizations. But interesting nonetheless, because I get to hear what they think about blockchain. And I get to share what I think about blockchain with them. Why have I chosen to do this? I have the technical capability to program. So why go down this route of less technical things? Well, I want to answer questions about growth beyond our very small industry, very, very small. Trying to find the perfect elevator pitch. And I'd like to help avoid this stagnation that plagued the Bitcoin meetup scene. After two or three years, I think the value transfer aspect has been discussed. And the meetups kind of died down a little bit. So I have good news. Well, we've already started really pushing beyond our small little industry. And I think we all know that. FinTech is rapidly developing blockchain solutions. And we have ongoing interests. I get calls from people, emails from people all the time. And they want help with various projects. And some of those projects are IoT. Some of those projects are energy, medical related. And I think they're pretty much ready for adoption. FinTech has picked up the baton, if you will, and run with it. And I think these other segments are about to grab the baton and continue the race. And soon, I really hope that we'll have governments and nonprofits on board. There seems to be a lot of interest for voting applications and other things like that. It's hard to really say, Vitalik wrote a blog post about the long tail of blockchains. And we don't really know, but it's starting. So another aspect of this is mom and dad. How do you explain to mom and dad what are blockchains for? They're not corporate enterprises that are looking for efficiency gains. They're not FinTech organizations look to transfer money faster. They don't really care that much about IoT and having a light bulb that talks to your refrigerator. So how can you get mom and dad on board with blockchain? Well, there's a big problem. Generally, people don't really care about technical innovation. If you're not in the tech industry, why would you care about blockchain? My mom's a nurse. She doesn't care about blockchain. But if it's something that immediately improves their lives or makes their lives worse, they're definitely going to pay attention to this. And what I've come up with in terms of talking to my mom and getting her to understand blockchain and why it's important to me and why I think I can make an impact on the world kind of really boils down to the slide up here. The internet still functions off 1970s technology. You send an email that's in plain text. You access a web page, generally it's in plain text. And the result of this, actually, is that our data is leaked by companies all the time because our data is stored on their servers. Our identities are stolen by hackers. If you have shopped at Home Depot or Target or a variety of other organizations and you have a credit card stored online, there's a good chance that that credit card was leaked to hackers. And also we have this problem of our behavior being monetized by advertisers, which isn't a problem in and of itself, but if you're going to monetize my actions, maybe I'd like a cut of that too. So it's kind of interesting. We're still working with 40-year-old technology, let's say, and yet the yet web is ubiquitous. We all have smartphone supercomputers in our pocket that connect to a global information store, and it's everywhere. In fact, if you were born after 1995 or so, you've never lived in a world without internet, which I think is really amazing. I grew up in the 80s and I had computers without networks, and that was really cool, and I really don't understand how I was able to function back then because I'm so addicted to the internet now, but yeah, I have a young sister, and she was born after 1995, and rather than her friend coming over to hang out, they would FaceTime each other. They just pop up the iPad and hang out like they were in person, but over the internet. So she has a vastly different understanding of the world and it's connectivity than I do. So we have an internet age, most of the world's getting connected, and we still have these broken 1970s legacy technology. Why? Why are there no obvious solutions? Why haven't we fixed this yet? We know it's a problem. The good news is people are beginning to understand the need to have the same privacy and security guarantees online as with offline. So one really good example of this is if you wanna have a private conversation with your friend, doing it online is a little harder. You can't step into a room off the side, close the door, and have a private discussion. And I think we should change that. As our lives become more and more connected, it's going to become more and more necessary to have these kinds of conversations. Not because you have anything to hide, but we need these digital versions of what we're used to in the physical world. And on top of that, with all the hacks and all the leaks, even older generations are starting to see the need to have security and privacy by default. We want our emails and messages encrypted. We want our online transactions to be encrypted. Really, there's no reason that most of our activities shouldn't be encrypted by default. So let's start building these systems. And really, this is kind of where I boiled everything down. So I gave a talk last year at DevCon 1 in London, and it was entitled Ethereum in the Enterprise. And I basically created a selling point for IT managers, IT professionals, say these are things that you can bring back to your organization and try to integrate blockchain or distributed technology into your organization. And I think it was a really nice way to kind of give that sell to people that weren't so interested in the ideological principles of blockchain but found the technology interesting nonetheless. Since then, having had a lot of conversations about the properties of blockchain and this technology, peer-to-peer technology, so forth, I found that actually, this idea of data under owner authority to be very powerful. This was a phrase that I borrowed from Nick Szabo. He wrote about it some time ago. I boiled this down though, because it's a bit dense of a phrase. And really, it boils down to own your own data, right? We all use Dropbox and services like store our files, but at the end of the day, we don't really own that data. We upload pictures to social media sites. We don't own that data. Shouldn't I own that data? It's my photo. So far more than be your own bank, people are interested in own your own data. And even my mom understands this, which is a huge leap for her, I think. So yeah, what can we do? What does this have to do with blockchain, right? We're an Ethereum, DevCon, Blockchain-type conference. Well, part of what I'm trying to do is get outside this industry and move into other parts of the technology industry and explain to them how blockchain can be used. So for example, next month, I'll be heading to All Things Open in Raleigh, North Carolina. And there, I'll be talking with 2,000 free and open source software people that are interested in this kind of technology, IoT and the like. And I think it's going to be our job to help build a better web, a better internet. This is something that we've talked about in Ethereum for a long time. We've talked about the vision of Web 3, something more secure, more distributed, less failure. So I think over the next couple of years, this is something people have asked me as well, you know, what's going to happen? We've seen what's happened in the last two, what's going to happen in the next two. And really, all our Lego blocks that we've been building are starting to come together. And we're going to take those Lego blocks and start building bigger and better things. And in that process, we hope that we build a better web, a better internet. Something that is similar to the app experience. This is an experience that has proven people understand it, and we're building it. I'm sure you've all seen this image up here a few other times, but it's a listing of dApps. I think this is a really great way to explain to people what's possible until it's ultimately a fabric of the internet. And in the end, if we do this all right, people will have the ability to manage their digital lives. And I think that having that kind of control over their digital life, just as they do with their physical life, will be something empowering to most people that they will start to appreciate the kind of work that we're doing now, the effort, the man hours, the years of time spent building this for what they thought was a questionable purpose. But in the end, we can actually give it a lot of meaning to them. So that's it. That's how we can push beyond the bubble. Thank you.


As COVID-19 cases reach new heights in the state of California, so too do the number of COVID-related deaths. And one of the biggest issues facing the overwhelmed death care industry is decedent storage. We put out an all-call, which counties would like this. A lot of the coroner's offices throughout the state of California did ask for one. As sheriff, it's really important to be prepared and that's where Cal OES comes into this equation. They're helping us prepare for the worst and we're going to hope for the best. But the county isn't alone. With Cal OES mutual aid plans in place, this really is a team fight. State liaisons coordinating with all affected counties to flush out problems before they become bigger issues. It's just opening those lines of communication, knowing that you aren't on your own in this whole situation, knowing that you can reach out. For more information about the Cal OES law enforcement mutual aid plans, go to caloes.ca.gov and click on the law enforcement tab.


We got it Hello everybody, I'm evil rabbit We're here on a set of Corsa in the shadow realm Prospect cars here at English town and I believe we have like Matt the ginger in them on here So we're gonna try and get some tans so make sure you guys follow me and all social media I'll just found description box below. Let's get to it. So I haven't driven these cars yet so this is going to be kind of a Initial Shakedown of the cars as well as trying to get some tandems So like I said, I think I believe we saw Matt the ginger and stuff in this lobby So we're gonna see we can't throw some doors with some some people and just like that. I See Matt the ginger right there And of course everybody's gonna be trying to follow him so I'm gonna run myself quick shakedown lap It's gonna be a fourth gear Maybe third So overall quite impressed with how that first run went with that I believe we're just going to wait for all of them to come back because everybody wants to Run against it looks like Matt or they're just running because they want to run in train So we can see if we can't get some tannins in they just found me in all social media all the charm on the description box below I appreciate all the support I'm gonna run it in third if we're leading so we can see how close they are actually to us a full send Oh live there came this thing in third gear though Overall a quite good run See if we can't get a chase So overall Kind of very impressed with how this show around f-14 is driving like I said, it's the first time I've driven this car Third gear seems to be the money gear right now. It was actually a pretty solid chase run full send In the lean that was quite nice Apparently we're all just chasing Apparently, this is a drift bash now. I can't see where I'm going in third You're not recommending view mid-drift. That's one thing. I do not recommend doing trying to change your view mid Mid-corner, so we're gonna go try and can between these two Do not express it expect him to angle up like that towards the end, but it wasn't too bad That could have been way worse We're gonna oh man like a Matsuri going on right now. We're getting all these Case runs right now. Oh, I got one from the back. I felt that tab as soon as I entered in Sorry dude one thing about public lobbies is everybody's always just going full send and there's just a lot of People are running like four-man trains like this But it's always fun Everybody get stacked up. We got another twitch streamer up here. Maybe no, maybe not maybe just another driver I'm in the grass. We got it though. This thing is just a banging red line though. That is for dang sure I'd see if we can Do this a little bit in third Problem is I can't see Anywhere I'm going One thing about not being able to see when you are In that full smoke field when you're running that we're gonna go You can't chase this guy And first oh Not that way if He biffs the wall unfortunately we have no way of correcting ourselves a Lot of fun tames in these Shadow Realm cars is the first time I've tried this car so or any of the Shadow Realms, so This is actually a very good testament to these cars and these cars are out of the box Really good, but I was gonna rotate that We're gonna cut this line to catch you up. Oh, we didn't oh, okay I got a I got co-locked in that part of the course So a couple cool tandems with Matt the dinge and some other looks like twitch.tv guys So definitely a lot of fun. Wish you guys found me an all social media knowledge found the description box below I appreciate you guys coming back and Showing your support to the channel deep in that zone. I was pretty uh pretty solid leave I'd love to get a chase against that Fox body though Looks like I'm gonna get a chance to chase him in that lost egg Throw a deep in the door little little love tap little love tap on Matt Not a big deal. We got it Solid oh Yep, that happened. It was a big attention. I was too uh, two stokes for that run Well, it's like we're just going in train to finish this episode. I think you guys call me an all social media knowledge found Here's the box below. Oh man, it's crazy train. I have no idea where I was on course Okay, all right But you guys follow me on all social media all this fun description by below. I really appreciate you guys coming back as always I Will be good guys for coming back and watching. I'm evil rabbit. I See you guys on the track Start my way back a little bit I got pushed