Hello, my name is Nick Schultz and I'm a field application engineer at Crank Software. We at Crank are thrilled to be able to speak to you today, and we will be talking about the importance of rapid HMI development and why it's more essential than ever in today's world. First off, I'd like to thank each and every one of you for taking the time out of your day for joining and attending the virtual session. These are unprecedented times. 2020 has thrown more than a few curveballs our way. Many of us have had to change how we live and do business. I'm sure that all of us would much rather be talking and connecting in person. I know I've spent my share of days at events getting the chance to meet and speak with people who are passionate about technology and innovation. Despite us not all being in the same room, I know that the passion for engineering and innovation is still just as strong as ever, and there are plenty of new challenges waiting to tackle in the embedded software industry. So we at Crank are thrilled to be getting a chance to speak to you today, and we'd definitely like to thank ST Micro for hosting such an amazing platform for sharing ideas and allowing innovation to flourish. Before we dive straight into the content, I want to give you a quick overview of what we'll be covering in this session. For starters, I'll give you guys a quick overview of who Crank Software is as a company and why we were founded. Then we'll switch into some of the broader implications of rapid GUI development and why it's essential for today's embedded applications. And finally, we'll touch on a few customer success stories, highlighting some of their challenges and how we were able to help them succeed. Ideally, by the end of this talk, you're going to have a good understanding of some of the challenges that GUI developers face today and what you need to embrace to be successful. So about Crank Software, Crank Software is a privately held software and services company headquartered in Ottawa, Ontario, Canada. We were founded in 2007. A leadership team has an extensive background in embedded software systems and embedded graphics, and our product storyboard has been founded and used in products across the globe inside small organizations all the way up to Fortune 500 companies. We've received numerous awards and been recognized for our software and the products our customers have made with storyboard. With millions, and that's a very conservative number of devices in the field today, we're shaping the next generation of embedded user interfaces.  Our technology was created to help make UI development easier on embedded platforms, traditional markets like medical, automotive, and industrial, or even consumer markets like wearables and white goods all share common challenges when looking to deliver an exciting and excellent user experience on an embedded display. So onto today's topic, why rapid GUI development is essential for today's embedded systems. Well, it's no secret that we live in a rapidly changing and evolving world. Technology that was once considered groundbreaking and even a gold standard very quickly becomes improved upon, adapted, or even replaced. It's a competitive world out there and many of you have likely seen this in your own place of work. If you think of when a competitor releases a new product and all of a sudden you're forced to react and pivot so your product stays competitive or takes a new direction, or perhaps you could even think about the number of iterations that take place when you bring a concept from prototype to production, I guarantee the end result is pretty different from where everything all started. All of those examples underline the fact that change is inevitable and frequent iteration is required. You need to be able to embrace change so you can deliver the best product to market quickly and at the highest quality possible. If your workflow doesn't embrace change and iteration, then your product won't be able to evolve and change as you do and this could just cause you time, you know, or you may not be able to make the adjustments that you need to successfully get your product to market. At the end of the day, you want it to be successful and this is the way that you can do that. So really, you know, what I talked about a little bit before, but what's driving all of this is the expectations for embedded devices is changing rapidly and the demands are increasing. You know, if you think of all the smartphones that we carry along in our pockets today, you know, we all have the best and greatest example of what, you know, state-of-the-art touchscreen experiences can be and, you know, we can't help but carry that over to any other interface that we interact with. So the expectations are high and, you know, generally users don't have a lot of patience for something that is substandard or, you know, not intuitive. Also, the user interface is, you know, more and more of a defining part of products today.  As well as we've seen this year especially, you can have dramatic shifts in global markets in patterns. You know, in this case where even, you know, everybody changes and starts working, working from home and isolating, you know. So your products need to be able to react to those things. And again, all of this comes back to your development flow, your workflow, your tooling and how you enable yourself to react and evolve when change comes into play. So we make our customers successful with a few different reasons. You know, up here you can see that, you know, some of the core things that we focus on and these are things that really we focused on from the beginning back when Crank Software was founded in 2007. You know, but at the end of the day you need to accelerate development. You need to embrace iterations and you need a lot of UI flexibility. And that's exactly what the market conditions and expectations are demanding today. Rapid GUI development is more or less the way that you can achieve those things.  So bringing it in from your users quickly and frequently. You can very easily measure your progress. So as you're moving through deliverables and development, you have very clear checkpoints along the way. You're able to quickly and easily adapt. So, you know, if you're going down a path and you test it out and the user feedback isn't good, well, you can move that and change that. And that's very important. You also have the ability to explore early system integration where because the rapid development of prototypes is so quickly, you can deploy on systems and start integrating with real hardware and sensors where maybe you wouldn't have been able to do that with other workflows. You also get the benefit of having a very clear separation of, you know, system components and where all of their responsibilities lie. And that's something as we go through and as I talk a little bit about, you know, what we've done and why our product is successful is something you'll see that we do very well, you know, because ultimately our goal at Crank Software is to make our customers successful. So, you know, to do that, we focus on accelerating development. As you see there, you know, we embrace iterations and our goal is that we can provide a scalable and flexible UI solution. So, you know, all the features that you'll see in the next slides, they sort of tie into that rapid GUI development model. And it's part of why we think it's so important. And, you know, why some of our customers have been so successful. So, when we say accelerate development, you know, it could mean a few different things. But for us, most importantly is, you know, we really help you start and hit the ground running when it comes to taking content from a design and turning it into an interactable prototype and then carrying it forward into development. So, we can do a direct import from some of the very common UI design tools on the market, things like Photoshop and Sketch. Import them into our tool. And then right off the bat, you have all the building blocks of the UI and your design ready to start adding interactions. From there, you know, you can start using things like our integrated animation timeline tool to start building up, you know, kind of that extra polish and sparkle. You can, you know, test, iterate, review it all within the tool and really kind of hone in on that experience that you're looking for.  You can rapidly test the usability of some of your prototypes and your designs. And all of this can be done without requiring final hardware. So, you can run your application. Maybe you're evaluating a few different developer boards, trying to decide if you're going to go with an MCU solution or use an MPU. But, you know, all of this can be done in parallel. So, again, you're not stuck in that cyclical model and you can really focus in on coming up with the right UI and the right experience for your end users. We kind of talked about this, you know, indirectly, but embracing iteration is how you can really fine-tune and focus your product. You know, once the development begins, you know, your designers and your developers, they can work in parallel. You know, you can have someone who doesn't have an embedded software experience and background come in and start implementing features in the UI. And that, you know, allows the embedded engineers to work on their sections. You can introduce design changes and iterate your UI look, feel, and logic, and that doesn't impact the lower level of systems engineering and backend code pieces, if you will. Down the line, if you wanted to reskin your design, you can just re-import a Photoshop or Sketch design file, and that leaves you with all the behavior you had before, but the tool will go through and replace all the image assets, update the positions, fonts, things like that. So again, you can really quickly iterate the look and feel of your applications. And as you're going through, all of this hooks into, you know, revision control and collaboration tools. So you've got all the pieces so you can work in, you know, distributed teams, you know, as many of us are doing today, or even with people in different sections of the world in different time zones. So you can, you know, compare, merge changes and collaborate efficiently and quickly and easily. When it comes down to UI flexibility, this means a few different things to us. You know, most importantly, from our point of view, is the Storyboard product was created to be platform-agnostic, and that way our customers, they can de-risk their projects by introducing a software framework that easily supports technology and design change at any point in the development cycle, you know, whether it be a concept of scalability. So I mentioned this before, if you're unsure if you're using an MPU or perhaps an MCU, you can scale across a range of embedded hardware. And as you can see there, you can leverage different pieces of the hardware and software stack as you go. So perhaps you're looking at, you know, an MCU chip that doesn't have any acceleration. You can use our software renderer as you move up. Maybe there's some 2D accelerators, like the Chromart DMA2D piece that is found on a lot of the ST hardware. Or perhaps on the higher end boards, things like hardware layers, multiple cores, or even 3D acceleration. So GPUs that can support OpenGL and Vulkan. All of those are available to you without having to switch your software development environment. So you can build your UI regardless of that and have that common development environment. You know, so that leads you to having portability. You know, you can swap out the hardware in the OS as well without having to change your UI. And then finally, reusability. So, you know, perhaps you're coming into an existing product line where you can then start building up a UI and scale it across different iterations of the same product. Maybe it's a good, better, best type scenario where different versions of your product have larger displays or different features. You know, you can build on that core and reuse content as you go across different applications. So, onto some of the customer stories, you know, and each of them as we go through them sort of highlight different pieces of what I've talked to you about today. But, you know, I really think this helps bring some of the concepts home as well as, you know, for us, it was a really good, you know, validation of everything that we believe as a company and how you should go about UI development really came home. So, the first is a company called Dometic. And they are a company that provides solutions for mobile living. So, particularly if you think of, you know, the image there is sort of a RV type application. So, food and beverage, climate, power and control, hygiene and sanitation. You know, basically what they want to do is make mobile life for outdoor living easy for their end clients. And, you know, that's something that's becoming more and more popular these days when the market is getting increasingly competitive. So, they were looking to enter a new product category to sort of diversify themselves and, you know, stay competitive in the mobile living space. And traditionally, Dometic had been outsourcing their design works to different partners across the globe. They had limited resources in-house and they also had pretty aggressive deadlines so they needed to find a tool that could help develop their new product which they ended up calling the Dometic Interact. Like all projects, it had to be delivered on time and on budget. And really what, you know, put them over the edge is that they wanted to view a prototype at a trade show which was only a few months away. And historically, I'm sure, you know, anybody in this position has gone through something like this before. It can be a little bit, you know, stressful. But, you know, they succeeded. And, you know, we firmly believe without the rapid development capabilities that Storyboard offers, you know, Dometic wouldn't have been able to meet the deadline for the show or at least provide the quality and level of prototype that they did.   And their criteria for choosing a UI development tool included, you know, things like software that was configurable and easy to use. They needed a flexible architecture that the team could continuously build upon. And, you know, after looking at a few different solutions out there, they ended up selecting Storyboard. And, you know, the top three reasons that they gave to us was, first, the ease of use for software development for the UI. They really liked the hardware and OS agnostic platform. And, you know, something we take quite seriously and we're quite happy to see this, but they really liked the supportive team and feedback that Crank Software was able to give them.  So, you know, that goes sort of hand-in-hand with choosing Storyboard as your UI development solution. So, when it came down to it, they had settled on us Crank Software sort of late in the fall and their project deadline was early spring. Their engineering team was still figuring out the hardware platform and application architecture, but their designers were able to start playing around with the UI and, you know, they were building up designs in Photoshop and importing it in, laying out their graphics and building animations. And, you know, the Photoshop import feature really allowed their designers to come up with those really high-fidelity, interactive mockups and prototypes. And they could test that very, very quickly and iterate on it and, you know, do all of that in parallel to the, you know, the main core logic of the product and the application. And, you know, since adding new content and features was so easy, you know, the team was able to add product functionality that they didn't think was actually possible based on the timelines they already had. So, when it came time to debut their prototype, this was their biggest event of the year, the RVX Show, the team won first place for the Dometic Interact and received the Cityscape Award at the RVX Show. So, with Storyboard, the engineering teams were able to get up and running fast. They used their prototype to make informed decisions based on user feedback and testing. And then Storyboard allowed them to easily iterate and continually validate and test their features and functionality. And this resulted, you know, an award-winning demo and prototype for the show, but an extremely feature-rich and polished product. And they had delivered and built this and brought it to market faster than they had ever built products in the past. So, it's something we're quite, quite proud of. Another customer success story and something you may have heard about and seen press release in the news, Ventech Life Systems.  But if you're unaware, Ventech is a company that makes ventilator systems.  So, seven years ago, give or take, they decided to create a system that would integrate five previously separate unique systems into one. And really the main reason for this was to improve the quality of life of the patients and their caregivers on ventilators. So, you know, the challenge really is you had to bring five therapies that would typically be, you know, separate machines and combine them into a single device. It had to be portable, easy to use, and, you know, have broader availability to patients that needed it. So, to do this, they had to approach, you know, engineering and product development from a very different angle. You know, many of the components were being redesigned and built from scratch.  You know, the device itself was 75% lighter than all of the combined five units previously. And that meant it was much easier to transport. But again, it had some constraints, you know, given it was a smaller device. There was some ingenuity required to fit things in to adjust the UI and the display so everything fit and worked in a usable way. So, key to making this, you know, this product a success was that it had to be easy to use. You know, patients and caregivers really needed an interface that, you know, was comparable to what they were seeing on their smartphones. And since it was also a medical device, there was, you know, an extensive effort invested into the, you know, the UX, the usability and the safety of the user interface. And, you know, when you're spending this amount of time and resources into the user experience and design, you know, it's necessary that the software solution that you pick can accommodate all of this, but also allow for frequent design change and it had to make that easy. So, Storyboard was the tool chosen to help them overcome these challenges. And this was, you know, seven years ago when there wasn't a global pandemic. And, you know, what makes this story really impressive is how, you know, Ventek was able to react and pivot to help the fight against COVID-19. So, back in, you know, early March of 2020 during the initial COVID-19 outbreak in, you know, North America and sort of Europe and that part of the world, you know, Ventek was in communication with governors and, you know, state health officials. And, you know, they were discussing the critical immediate need for ventilators. And instead of developing something completely new, the company decided it was going to take the already proven platform and then really just sort of update it to be targeted towards some of the needs that the patients were seeing today. So, Storyboard was able to react. So, they were able to make design updates and add functionality and iteration to their touch screen. And this was all done in order to better serve the needs of the frontline medical staff fighting against COVID-19, you know. So, really at an incredible speed, Ventek was able to rapidly redesign, retest, revalidate this new UI. They were able to meet the FDA regulations and then start fulfilling large order capacities all within the first 30 days of the pandemic. And, you know, if you've ever worked in the medical industry or with people developing products, you know, you'll know how quick that is. And I was honestly blown away by this back in the spring. So, you know, really, truly an amazing story. Kudos to the team at Ventek and, you know, a nice showcase of what a tool that offers, you know, a workflow that really buys into this rapid HMI development and design and iteration can gain you. So, if we go back to this slide that I had earlier on in the presentation, you know, where I talked a little bit about some of our markets and I highlighted, you know, some of the customers that we've built products with. Really, all of the customers that you see here today were able to achieve their goals, their awards, their recognition, you know, because of the workflow, the rapid design features and functionality that Storyboard offers. And, you know, a few of the notable ones here, which I'll sort of work through and give you a quick chat about is, you know, Vorwork. You know, Vorwork, they won the prestigious Red Dot Design Award for the latest release of the Thermomix product. And if you're familiar with that, it is a, you know, a very impressive, you know, complex, guided cooking machine that blends, stirs, mixes, has connectivity options, downloadable recipes, you know, all of these things in one on the unit that you see there. And to get this product just right, you know, they were coming off the heels of an extremely popular and successful version of their previous Thermomix. So they had to test constantly, so frequent testing and iteration, you know. They were running devices with, you know, the latest UI look and feel testing, seeing what, you know, people thought how the cooking process went and then constantly iterating that back into development and, you know, this had to be done in order to make sure that this product met the high expectations they had, but also was successful in terms of user experience and, you know, brought new value to the product line. And we worked very closely with Vorwork on this and, you know, very, very proud of, you know, everything we were to help contribute for this fantastic product. Another great example, the Emerson Sensei thermostat you see there, it's got a few awards attached to it as well. And we engaged with our services department with Emerson and we were able to work in parallel with them. So we were building the UI based on sort of designs and feedback from Emerson and integrated directly with their engineering team. So, you know, every time we would do, we would do some work, we would make some features, we could test it and we could get direct feedback from them, iterate it in and ensure that the UI and the product was very, very high quality and very, very successful. You know, they even went so far as to say that we were the best third party they had ever engaged with and, you know, that's something that, you know, we're very, very, very proud of and, you know, that dedication to the design process and workflow is something that we feel really, really shines through. Another interesting product, the Stages Cycling Computer which you can see there. It's something, you know, there's a little bit of a cycling culture at Crank Software so obviously there was a lot of interest when this opportunity came up and we engaged with the team at Stages to help develop the UI and the platform for this cycling computer.   And finally, a famous soft drink company you can see there. The drink dispensers are prevalent in movie theaters, restaurants and I'm sure most of you have seen them but many of you have used them and interacted with them before. And the story is pretty interesting because we were able to help them bring a new UI to market when frankly they were heavily behind the schedule with a competitor's platform. There was a team of engineers working on this around 10 or so people and they just couldn't get the performance they wanted and they were not going to get the features in place to meet their deadlines. So, we engaged with them. We were able to work with their existing architecture and just replace the UI layer with Storyboard. We kept their existing infrastructure and backend and system logic in place and with less developers like around two compared to 10 we were able to get them to market. We gained them the performance they were looking for and had the features in that they wanted. And what's really interesting is that the improvement here was so dramatic that we were also then given the chance to retrofit some legacy machines in the field and these were machines that were previously thought to be end of life and we improved the performance on them and added new features and this provided new life to lots of the units in the field and if you're at all familiar with managing legacy units you can imagine the benefit of not needing to replace tens of thousands of units that are already out there and deployed. So, really good couple of customers there some stories and really the main reason of why we as a company are successful is the workflow that we offer and the points that we feel are really important when it comes to building a UI successfully. So, thank you for joining. I really hope these examples really help show the value of rapid GUI development and why it's important for you. These are things that you should consider regardless of what you're doing and without the features and workflow that Storyboard and Crank software offered the case studies we showed and talked about probably wouldn't be impressive and as successful as they are. So, in closing, products are judged heavily based on the experience they offer and the first reactions users have. So, you need to ensure that you meet the needs and expectations of your users in your UI and your GUI development strategy needs to be something that embraces iteration and supports this. So, once again, I'd like to thank you all for your time today. I hope you found this interesting and informative. I certainly really enjoyed it and we'll be doing some in-depth technical demonstrations at our virtual booth over the next few days and I'd love to invite you all to come and check it out. Myself and some of my colleagues will be around for live Q&A after the demos and I really look forward to meeting and chatting with you and learning about some of your projects. So, thank you very much and have a wonderful few days.


Everybody forced here up in a box or two boxes of 23 24 prism draft basketball hobby for a pangency Thanks for the order as always pangin. Let's get to it First up is the 25. It's a mojo auto of rookie Olivier Maxence prosper Silver Matherin hyper rookie Seth Lundy red Anthony black rookie Nice red Anthony black to 299 collegiate color match. It's a scoot base in there Dylan Mitchell rated prospect blue Number to 199 a Gabe Cal sure auto to 149 Silver to wreak whitehead rookie hyper Jalen Williams and a blue wave of trade Johnson Out of 249 a Justin Edwards purple ice auto out of 99 excuse Silver Jalen Brown hyper rookie Gabe Cal sure and a blue turquavian Smith rookie Of 199 there's been Cambridge jr. Rookie auto out of 49 Silver rookie Colby Jones hyper palo band caro and a purple ice a victor women Yama 96 of 149 What a hit for the last break of the night fire That's insane Wemby to 149 huge card right now Silver fearless key on the George. Well, let's keep it going then one more box pangin Marquise Noel on the silver auto here a Silver victor women Yama in this pack now hyper Donovan Klingon and a blue wave Toson a woman Over to 249 a women Yama prison break as well Wemby's are showing up right here. I Sure feel to 99 on the purple ice rookie auto grand sure feel silver rookie Olivia Maxon's prosper hyper Desmond Bain and blue trade Johnson Numbered to 199 silver fearless is Jason Tatum then I'm rated prospect of Jacoby Walter Mario Chalmers auto number to 149 Silver rookie Grady Dick hyper Bradley Beal and a purple rookie Tristan Vuchovic Out of 75 Blue rookie next with junior now nice Nick Smith to one 99 To 125 as a Desmond Cambridge junior rookie auto Steve Silver Kauai Leonard a hyper rookie Jalen Clark and a red rookie of Chris Murray 299 that will do a page and congrats on that purple ice Wemby. We're gonna get these cards out to you in a bit


So I like to go very fast with these videos. I hate it when I learn something online And I start the playlist or I start the video and I see it's in a 40 minutes long Difficult, so I like to keep things short, but sometimes you have to slow down a little bit And so what I want to do here is to just slow it down so we can just look again at homomorphisms We've looked at homomorphisms isomorphisms before but we didn't really have enough to build to where we really want to go And that is to look at the theorems of isomorphisms to get a very deep understanding of what is really going on here at the Moment we still set with that problem. I mentioned right at the beginning you have this box and you have to fill up Keep on filling up this box. You don't know where these things fit in you don't really know why but That's the thing about abstract algebra. You've got to build these You've got to build all this knowledge put things in the box put things in the box Pull them out when you need it and two things come together into something greater But that goes in the box again until you can pull it out and that makes it very difficult because sometimes to know this You first have to learn this but to learn this you need it to know something about it goes all over the show Anyway, let's just make sure that we understand slow down a little bit and understand what what is happening here I have a group G it consists of a set of elements and a binary operation I have a group H and it consists of a set of perhaps different elements and perhaps a different binary operation and I've got this homomorphism F and that maps G to H Many textbooks you're gonna see it's Phi and it maps a G to G prime All sorts of things it's all over the show textbooks lectures all over the show Doesn't matter what is written on the board or in the book. It's a mapping of one group to another group Maintains the structure this hope this homomorphism maintains the structure Now what we're interested in this isomorphisms and we know for an isomorphism We have to have that this mapping is bijective. So it's got to be injective and surjective Now we want to stick to and you'll see most books It's going to stick to the fact that we only need to look initially at surjective homomorphisms And it's almost we can state that any homomorphism we have we can reduce it to a surjective Homomorphism so doesn't matter what the homomorphism is We can we can reduce it to a surjective one so that we only need to look at it being injective before we say It's an isomorphism so can we really prove that we can do this because remember if I had h then and it has a lot of elements G then and it has elements here What we can say is that for for surjective more than one of the elements here can map to the same element The same element there and it might very well be that some of these are not mapped to Imagine if I have a function or old-fashioned function e you know old-fashioned meaning You know what you learned at school or the beginning of College of University e to the power x. I'm mapping r So f of x equals mapping r to r real numbers to real numbers This is the domain of all values x and this is the co-domain all the real values there on the y-axis But I'm not using up all of them. I'm only using up the positive ones here And that is called the image of this co-domain So I have a domain I have a co-domain, but only the ones that be mapped to and I'm suggesting that whenever I'm You know busy with this Homomorphism if you're between these two groups that I can discard all of these and I'm and I only need to consider the image It's called the image of f So of this whole the set this is the set of elements that make up H I only need to consider those elements that are that make up the image of F. So the image of F Really is just the set of all elements the f of G Such that G is an element of G. So there might be elements here in H You know that is not mapped to by an element in G and I'm suggesting I can discard them So the only thing I'm left with is this Surjective homomorphism and no matter what H was before I'm claiming that I can always do that How do I prove that the first thing that I really need to do? I've got to show that F maps identity element in G to the identity element in H Because in that image, I've got to have the identity element. Otherwise, this doesn't make up a group anymore So let's just let's just have a look at how we can prove that The way that we go about it that you'll see in most book take X which an element of G and state It has the following property that if I take the binary operation Between X in itself and I land up with X again The only way that that can be is let's write binary operation with the inverse So I'm gonna have X binary operation X inverse which just leaves me with the identity that is going to be This and X has got to be the identity element in this case in G. So let's just remember that fact Let's just remember that fact. So let's take the F of Let's take the identity element in G Binary operation the identity element in G and by definition of homomorphisms that is going to be the F of the identity element of G binary operation different binary operation now if of that Okay In group G binary operation between the two identity the identity element with itself. Well, that's this F of the identity element in G Okay Looks in G looks a lot like that. Let's just rewrite that and we put this first and then this second So that's binary operation equals Okay, so I've just swung it around and what do I what do I have here something that looks very similar to this The only way that this can be so if I then let me do the full thing for you on the board. So I've got this I've got this I take the binary operation with the inverse of this and that equals okay These two if I take this element and it's inverse that leaves me with identity element So I'm left left with you with this Equals and I have this is an element of H. This is an element of H It's inverse of this one that leaves me with the identity element in H And that shows that this homomorphism E of G is going to be here. It is always going to map to Identity element in H. So I'm suggesting here that under the image now this G is This it is going to map to that. So it's always going to be in the image of F So we know that identity element in H is always going to is always going to be there I'm going to clean the board because the next one that I want to show you is this That remember a is mapped to a f of a a inverse that's mapped to the f of a inverse Now curious factors these two and G the inverses of each other are these two inverses of each other In other words is the f of a inverse is that equal to the f of a inverse That's what I've got to show now. So remember a is also an element of G and it has been mapped to something so that is going to be in the image and This is in G. So it's also going to be mapped to so it's also in the image This is also element of the image of F and That is so that would mean that all the inverses Really all the inverses, you know, so for every element f of a in here It's and it's inverse is also there and the only way that I can show that is if these two are really equal to each other So let's prove that Okay, now we need to show these inverses now So if I have the f of a and I have the f of a inverse That is by definition This and that is nothing other than the f of the identity element in G and that is nothing we've just shown to be the identity element and the only way that The binary operation between these two can give me the identity element if this one and this this one are inverses of each other In other words this one and it's inverse Equals that in other words. This is exactly this is exactly the same thing so I could just left binary operation here with with F is inverse with F is inverse and Let's do that. So I have F a it's inverse binary operation with F of a and binary operation with the F of a inverse So they and that has got to be the F of a Inverse binary operation with E of H So I've just taken that first one and on this side The inverse of that the inverse of that and it that gives me the identity element of H So on this side I'm just left with F a inverse and that has got to equal the binary operation with this and its identity element is just this F of a inverse This is an element of G. This is an element of G. They both be mapped to the image So what we really have now is we we have actually shown that this image of F This image of F is a subgroup of H because we've shown that it will have the identity element We've shown that all the inverses will be there So this is a subset. Remember, we just took this as a subset of Of each so we are going to inherit The associativity property there and the only thing that we really still need to show that this is a group in itself Is if there is closure So if I have two elements H and H this element of the image of F I want to show that the binary operation between these two So these are two different elements there must be an element of the image of F I've still got to show that I've got to show that that's so let's just take elements G and G star Just arbitrary elements of G. So I am going to have the F of G and let that be H I'm in going to have the F of G Star let's make that this element Quite legal to do these are arbitrary elements and if I take the binary operation between these two So I'm going to take the F of G at the binary operation and the F of G star Remember that's going to equal the F of G binary operation G star That's in G. This is nothing other than H This is nothing other than H star And this is F of G and G star But remember G is a group so the binary operation between two elements of that is still an element of G So I am mapping an element of G An element of G to something and in other words, and that's how I define the image So these two must be an element of the image of F Because that exists in G The mapping is mapping to something inside of the image of F one of the elements This is that so the binary operation with these two must also be there So we've shown that we can really take any isomorphism And we can reduce it to a surjective homomorphism So we needn't worry about that at all. You know just reduce it. It's always reducible I've shown you that it is reducible just reduce it to you know If need be throw some of the elements of HOA so that you only have a surjective homomorphism Now we only need to show that it is injective if we want to show that this homomorphism is indeed an isomorphism a specific kind of homomorphism called an isomorphism Because we can always just Just reduce a homomorphism to a surjective homomorphism. We don't have to worry about that anymore All the all these mappings that we see that maintain structure now if or phi or whatever It's named in your textbook or by your lecture We can always just reduce it to a surjective no issues there and now we can move forward and just they now test for You know which ones really are injective as well


Miley Cyrus has been keeping busy lately releasing new music, breaking up with Cody Simpson and buying up new Hollywood real estate. And her most recent property acquisition, it's in none other than Hidden Hills.  Thank you for having me. Thank you for coming to my house. Thank you for sitting under the disco tree. In that interview Miley just did, she shared some juicy secrets about her past, her relationship and more, but today we'll be focusing on where she calls home like her new place, her Tennessee farmhouse and more. We even found some of the listings. Miley Cyrus, born Destiny, hopes Cyrus is a singer-songwriter, actress and record producer who has a music style ranging from pop and country pop to hip-hop. But whatever she does, it's often a banger. Most of us were introduced to Miley as Disney Channel's star with her show and title character Hannah Montana. Her teen idol status brought her fame and success in Hollywood and it wasn't long until she shape-shifted and found her own identity. Over the years Miley's not only amassed a huge fan base but a huge bank account as well. Her estimated net worth is reportedly at about $160 million. If you recall Miley lost one of her homes to the California wildfires in 2018 near her beloved Malibu. But with her success she's been able to pick up the pieces and move on to some other gorgeous properties both in LA and elsewhere, even in her hometown of Franklin, Tennessee. Hey guys it's Kara and today we're doing another house tour here in Famous Entertainment. We've done a video on Miley Cyrus' homes in the past that was a long time ago and since then she's got some new real estate. We'll take a look at where Ms. Cyrus calls home like the new Hidden Hills house she bought this summer, replaced in Tennessee and more. If you like these videos make sure you're subscribed and ring that bell to be notified when we post so you can always be up to date. We've also done house tours and links with Kendall Jenner and her newly renovated place and Rob Zombie and we'll link to some at the end. Follow me on Instagram to chat and as usual let me know who's house tour is next in those comments down below. Now let's get into this video. We're gonna get started right away with Miley's new home. Although the start continues to own a long time home in LA which we'll take a look at a bit later, just last month she decided to treat herself to another home in one of the most sought after neighborhoods, Hidden Hills. Of course the same name comes up a lot when you're dealing with celebrity homes as plenty of Kardashian, Jenner, Sliv here and other famous neighbors like Gabriel Union and Dwayne Wade and Will and Jada Smith just to name a few. About five years ago when Miley was only 22 she put down a very adult $5 million for a relaxed country spread in LA's guard gated Hidden Hills enclave and since she loves horses she kept hers there on the five acre farm. In 2018 she sold this property for about the same price she purchased. As you can see it's not Miley's first rodeo in Hidden Hills and it seems she missed the place. She put down $4.95 million for a recently renovated contemporary home. The deal was quiet and closed off market but listing materials describe the place as an East Coast traditional spread sitting on a 1.1 acre law. At first glance Miley's new home already shows gorgeous landscaping on the front lawn, a large motor core and stairs leading you to the home that's covered in bay windows. Inside the home spans about 6,000 square feet with six beds and 6.5 baths. Built in the 1950s but renovated for a modern upscale lifestyle the classic home now has huge arch windows throughout higher than average ceilings and French oak floorboards. Just after the end Chew-A there are formal living and dining areas, the dining room with a vaulted ceiling and French doors out to a terrace with views of the neighborhood. Nearby you'll find a full bar with glass backdrop and attached wine fridge. The gourmet kitchen has a large marble island, stainless steel appliances and skylights to let in a ton of light. It flows into another living space with cozy fireplace. Elsewhere in Miley's new home you'll find the state-of-the-art home theater with eight leather recliners and a 135 inch screen. All half dozen bedrooms have ensuite so it seems pretty perfect for having guests over, two of which are master suites. One on the main floor and a larger one on the second level. I'm gonna guess Miley's taking the upstairs one. This suite offers a fireplace, balcony, a walking closet and spacious bathroom with marble lines, steam shower and even a glam station. Sounds perfect to me. Moving outside Miley can unwind however she pleases either at the lagoon style swimming pool and spa line by boulders or lounge by the outdoor fireplace. Back here there's also ample patio space to entertain and open air pavilion with outdoor kitchen and a dining area. The fenced hillside above the pool remains undeveloped but Miley has some options. It's easily accessible from the long driveway and according to listing materials can be used for additional guest quarters, a vineyard or equestrian facilities. My hunch says that if Miley wants some horses here she'll turn it into the ladder. Although Miley has this new hidden hills estate to get excited about, let's not forget she continues to own a getaway in her hometown as well. In 2017 the Tennessee native purchased this gorgeous farmhouse in her hometown of Franklin just a short drive from Nashville. It sits on an impressive 33.5 acres of land and costs Miley 5.8 million. Inside there's 6,689 square feet of living space, five beds and 4.5 baths. I seriously love farmhouses and Miley's is an updated modern-looking one built in 2014 but still has the traditional vibe. Like look at that amazing wrap-around porch. Her home is decked out in a lot of stacked stone wood-beam ceilings and exposed brick and has a rustic chic design in most of the rooms. This occluded property is entered through a private road and elsewhere you'll find a barn style structure which I'd assume she uses as a guest house or space to entertain. In Miley's main home there's a huge kitchen and dining room that merge to create a large common area. There are high-volted ceilings, a large island with bar seating and nearby another sitting area and fireplace. Next to this there's a room with an even higher double height ceiling which I would call the grave room. There's a large stone fireplace, windows letting in a ton of light and a massive iron chandelier. I think this one's my favorite room in the home. Other features of Miley's farmhouses state are the spacious indoor outdoor room with a TV, a wet bar, picture perfect bedrooms, most of which are on-suite and even an elevator elsewhere in the home. Outside aside from the large patio spaces for entertaining, there's a stone trim pool with diving board as well as a spa. Honestly looking at this property of Miley's it's already my favorite. Any glamorous farmhouse like that would be considered a dream home to me. Finally, Miley continues to own a long-time party pad located in Studio City, Los Angeles. Located just over the hill from the hustle and bustle that is Hollywood, the quaint neighborhood of Studio City has served as a perfect location for Miley all these years. Purchased back in 2011 for 3.9 million when she was still a youngster, the remodeled mid-century modern home was definitely dubbed a party house. It spans 5,172 square feet of space with five beds and 6.5 backs and is arranged in an H-shaped floor plan. At the center, it's an expansive living room with floor-to-ceiling windows that open up to the Instagram famous backyard. Yes, this place was posted a lot. The gated single-story estate may look unassuming at first, but listing materials claim the property has unobstructed panoramic views while being super private and renovated from floor to ceiling. Miley's Studio City home offers the ultimate indoor outdoor experience and sits on a 1.15 acres of land with a light flooded open floor plan thanks to walls of windows throughout. Inside, you'll also find large common spaces including the professional style kitchen and dining areas, skylights and fireplaces. Other features include a private home gym and top-of-the-line security system. Not to mention, Miley's master suite here has a ton of floor space and a spa-inspired bathroom and steam shower. Outside, there's all that glorious entertaining space where Miley has hosted some parties in her day. Besides the huge motor court for guests to park their cars and three-car garage, there's also surround sound across the property. Elsewhere, there's a saltwater solar heated pool and spa, cabana and custom grill. Miley's also decked out the Studio City property with some decorations of her own like unique statues, a teepee-style structure and more. So I think I'm gonna wrap up this video here, but we've seen a lot of her houses. After looking at where Miley Cyrus calls home, like her brand new spot in Hidden Hills, her gorgeous farm in Tennessee and her longtime Studio City party pad, which was your fave. Honestly, I love both the Hidden Hills spot and the farmhouse, but I have to say Miley's place in Franklin is my ultimate favorite. I mean, it's not too often you see a farmhouse that's so modern and impressive, but I guess when you're spending multi-millions on the place, it better be beautiful. As usual, be sure to tell me your favorite Miley property in those comments down below or what you like best about her real estate. Keep the suggestions coming for whose house to where we should bring you next, because I love all the ideas. Follow me on Instagram so we can chat, be sure to like and subscribe, and I'll see you all next time. Bye!


Welcome back to our lecture series Math 42-20, abstract out your row one for students at Southern Utah University. As usual, I'll be your professor today, Dr. Andrew Misteldine. Lecture 25 constitutes the very end of our talking about coding theory. I know we're all really sad here. There's so many things we have to talk about, and I just wanted to give us a very short, but awesome introduction to this fun topic of coding theory. So let's summarize what we've learned so far. The efficacy of a linear code really comes down from the balance between linearly independence and linear dependence. So we want to balance these two competing forces. In terms of the column vectors of our matrix H, where H is our matrix that generates the linear code. So for example, to form an NM block code. So if we want to find and form an NM code here, our matrix H must be a P by N matrix. It's got to be a P by N matrix with a nullity of size M. So the nullity determines the size of the code, and thus as a consequence, it determines the message set Z2M. So the nullity is going to go hand in hand with these things. So if we need to encode three bits, we need the nullity of E3. If we need to encode 12 bits, we need the nullity to be 12. Great. Now for the parity check matrices, these are our matrices where H has the form A augment some identity, where we have some control over this matrix A right here. For the parity check matrices, the rank of H here, this is going to be the number N minus M. This will be the size of the augmented identity matrix we see right here. So we need that to be the rank. In particular, this tells us that this number P is going to be N minus M. Great. But still, how does one choose the matrix A? So we've talked about how big the matrix has to be, but how do we choose the matrix A? That's going to be the heart of our discussion in this lecture number 25 here. So the important thing to remember is how large do we set N? How large do we set N? Because after all, this number P is determined by N and M. M will basically be described to us. So how large do we choose N to be? The larger N is, the more room there is for possible code words, thus increasing the minimum distance. We have benefits from separating words far apart from one another. So the bigger N is, the more space we have and we get better error correction. This allows for a larger level of error detection and correction. Thus, a large N allows for better codes, but a large N does not guarantee better detection and correction. That choice comes down to A. A bigger N doesn't automatically have a great error detection. We got to choose A. So that's what I want to talk about right now. How do we choose this matrix A? So remember a little bit of notation. We're going to use the vector EI to denote the vector of all zeros except for a one in the ith position. So this is like the ith column of the identity matrix. Take a arbitrary vector inside of Z2N. So this is the space of encoded. This is the space of code words. That is to say our code is a subspace of Z2N. So given any vector, since it's Z2N, the only coefficients are zero one. So we got to keep track of where are the ones, and that describes our vector. So the vector X can naturally be written as a sum of these EIs. So long as I keeps track of who where the ones are, and we'll call this the index set of our vector right here. So if we multiply X by the matrix H, this one, just by matrix multiplication, we distribute across this linear combination. We see that XH is then a sum of the HEIs. Again, over that same index set. Why is this relevant? Well, one thing to remember with linear algebra is if you take a matrix and you multiply it by the ith column of the identity, this produces the ith column of H itself. So this is a nice little trick from linear algebra. Because after all, if you times by the identity matrix, you'll just get back the matrix H. So if you just take one column of the identity, it will produce one column of H. All right, so we'll come back to that in a second. So HX is a sum of the columns of H, all right? Now let's suppose that X is a code word. The code word for a linear code is the null space of our matrix H. So X should be the null space. That means that when you multiply X by H, this ought to be the zero vector if we in fact have a code word, okay? Now of course, the weight of our code word X is equal to the cardality of that index set. And so if this equals zero, if this equals the zero vector, then the sum of HEI, it's at equaling zero, this is giving the smallest non-trivial combination of column vectors, which combine to be zero. I guess I should say, I forgot to mention that if we choose X to have the minimum non-zero weight of C. So what if we pick the smallest word? After all, the smallest word in a group code determines the minimum distance of the whole code. So what if we choose that smallest positive weight? Then because it's in the null space, this combination gives you zero and because X was chosen with smallest weight, this right here will be the smallest, the absolute smallest combination of columns of H that produce the zero vector. And so whenever you have the columns of H that produce the zero vector, some linear combination, we'd call that the dependence, a dependence relation. Well, since we chose to be smallest, this is a minimum dependence relation. No smaller index set can produce zero better than what we have in front of us right here. So let's call this a minimum dependence relation on the columns of H. And so what we see is the following. The minimum distance of the code is gonna equal the minimum weight of a word, K, because it's a group code. And then like we just observed, this is gonna be the cardinality of this index set. So the size of a minimum dependence relation determines the minimum distance. All right, so our observations can be summarized in our theorem here, 8, 3, 4. Let H be a matrix with Z2 entries or what we call a binary matrix. Let D be the size of the minimum dependence relation on the columns of H. Now there could be more than one dependence relation of minimum size, but we're just talking about the size of that dependence relation with his minimal. Okay, let D be that number. Then the linear code, null of H, can detect D minus one errors and can correct D minus one divided by two many errors. And it doesn't matter whether it's even or odd, so we're gonna take the floor of that number. And the idea here is that this minimum dependence relationship is equal to the minimum distance, like we saw in the previous slide, for which the minimum distance leads to these two observations, error detection, error correction. So that's the idea here. A quick corollary to this theorem, let H be an M by N binary matrix, then the null space of H is a single error detecting code if and only if no columns of H consist entirely of zeros. Now, when I say a zero detecting code, a zero error detecting code, I mean that it can detect a single error. It could potentially detect two, three, 17. By single error detecting, I mean it has at least the ability to detect a single error. Okay, so a single detecting code will happen if and only if no columns of H can consist entirely of zeros. So there's no zero column inside of our matrix. The thing to remember here is if you have the zero matrix, the zero vector inside of a set, this is automatically linearly dependent. Every set of vectors that contains a zero vector will be linearly dependent. And so as you shrink that down, shrink it, if there is any column of zeros in H, then you can take the one size, the singleton set of the zero vector and that would be the minimum dependence relationship. Of course, if you take the empty set, that's actually linearly independent. So you can never get zero for D, but we could get one as a possibility for which means, according to theorem 834, if your minimal dependence relationship has size one, now the only way it's size one is if and only if you have a zero vector, because that's the only way to get a singleton to be linearly dependent. If your size is one, if your D is one, then your D minus one is a zero. And that's basically the argument that's summarized right here. It's a pretty nice argument too. So as long as long as you have no columns of zeros, we can detect at least one error using linear codes. And that's a pretty easy check, right? But just look for zero column of zeros, don't put them in there. Furthermore, the null space of H is a single error correcting code. And again, by single error correcting here, I mean that it can correct at least one error. It could potentially correct two, three, 5,280, whatever, depends on the efficacy of the code, but it can at least correct one. So our code will be a single error correcting code if and only if H does not contain any zero columns. So the first condition satisfied and no two columns are identical. So in linear algebra, how do you get a set of vectors of two vectors to be linearly independent? This thing will be linearly dependent if and only if U basically is not some multiple of CV. Now, technically speaking, we should also say or V is not equal to a multiple of CU. If one of the vectors is a multiple of another, then the sets can be linearly independent because if U equals CV, then the dependence relationship you need is just take negative one times U and add to it CV, which is just equal to U. This would give you the zero vector. And this also includes the possibility that U or V could be the zero vector itself. That's actually why I had to consider both cases right here because you have the zero vector. If U was the zero vector, then yeah, you just take zero times V, you get U. But if V was the zero vector, then no multiple of the zero vector will give us U if it was itself non-zero. So as long as the vectors, if one vector is not a multiple of another, then a set of two vectors will be linearly independent. Now in the special case of mod two, there's only two possible multiples. You either are gonna get zero times V, which is the zero vector, or you're gonna get one times V, which is equal to V. So the only way you could be a multiple of another, I guess what I'm basically saying is the only option here is you're gonna take U in the zero vector or you're gonna take, which honestly that's not a minimal relationship, you would take the zero vector right there, or you're gonna get U and U because the column shows up twice. Let's look at an example of this. So the linear code associated to H1, what'd you see right here? Let's see how good it can do. You'll notice scanning, scanning, scanning. There's no columns of zeros. So zero is not here. So this means we can detect up to one error. That is, we can detect at least one error. Ding! Let's do the next check. Are there any repeated columns? Uh-oh, there are repeated columns right here. So this tells us that the set 101 and the set 101, this is a linearly dependent set and this will be a minimal dependent set. So D equals two. So we get error, so we can detect according to the previous theorem, we can detect up to one error and we can correct up to zero error. So that's not the best, but you know, at least we see that here. So this has an error detection of one. If we look at H two, scanning, scanning, scanning, oh, we have a column of zeros, which means the set of columns, zero, zero, zero, this is a linearly dependent set, which means that our D level is one, which means our detection level is zero, which also means our correction level is zero. So this is essentially a useless code. You wouldn't want to use this matrix. At least for H one, you could detect an error. It has some efficacy to it. How about H three, what do we see here? Scanning, scanning, scanning. I don't see any columns of zeros. And if you look for any duplicates, if you look for like one, one, one, none of the vectors are one, one, one. If you look at one, zero, one, no repeats there. One, zero, zero, no repeats. Zero, one, zero, nope, nope, nope. So everything is, there's no repeats here. So this tells us that our minimal dependence relationship is at least three. I'm not actually telling you what it is, but it's at least three, okay? In which case this tells us that we are able to detect, we can actually detect two errors and we can correct up to one of them. And that's pretty good for the size of this matrix right here. So some things to note about this matrix from our previous discussion. I should mention that this right here is a parity check matrix. So it's the first one. The first one you took A to be one, zero, one, one, zero, one, which is a horrible thing to do. Why repeat the column? This one did a little bit better, right? Here your A matrix is one, one, one, one, zero, one. Basically we made sure not to choose any rows of the identity or any columns of the identity and we made sure not to repeat any. This gives us an error correction of level one. Now it does turn out that this is actually the threshold for this one. Let's make comment here. We can actually argue that the distance here is in fact three. Notice if I take the vectors one, zero, one, and then you take one, zero, zero, and then you take the vector zero, zero, one. You look at that right there. That's gonna be a dependent set necessarily because when you add these things together, if you just take the first vector that's the second vector, that's gonna be the zero vector right there. And so you can see that, oh, okay, I see there that when you look at the second column, you had two ones and a zero, which means that I could write this vector as a sum. You could write this as E one plus E three, which if you put that together one, two, three, then you're going to be able to get a minimal dependence relationship of exactly three. That means this code can accurately detect two errors and correct one and we can't expect anything better than that. And so this also gives us some idea how we're supposed to choose A. We don't want dependence relationship, so we definitely don't want any zero columns or any repeats, okay? But if you want to get a better dependence relationship, what if you want to get a large dependence relationship? It turns out that you do have a bound, a constraint on the number of ones. If you take the column of minimum weight, so this will be of weight one, weight two, excuse me. If you add one to it, that's going to give you the dependence relationship automatically. It might not be the minimal dependence relationship because it could be that some way of combining these guys together goes forward. But if you want a highly effective code, you need to make sure the columns of your matrix from the A side have a lot of ones in it. But you can't have too many ones because then these things become, you can start making combinations there. So we can see that this is sort of a tricky thing to do, but making highly effective codes might be challenging, but to make a one correction level code is actually super easy. Just don't have any repeats in columns of zeros.