All right, good morning everyone first and foremost. Thank you for coming out. I know it's early for some of us It's certainly a little early for me But I would like to start off with first introducing myself. My name is Victor I come from a company called Sukuri. We specialize in website security I like to start off at every some of these talks I come to work him You know sort of providing a little more information about myself. So if you see me enough, you might know me more than most One thing. I'm an avid runner Secondly, I'm a large video game enthusiast. So if you see me geeking out at some like Nintendo stuff around here That's why but first and foremost. I'm a technical sales engineer for the company and today we are going to talk about Recognizing as a business owner as a website owner. How do you know how can you identify that your site is in trouble? How can you know if your site's been hacked and what does that mean? What does that mean for you? What does that mean for your business? So One thing I want to start off with is a quote from the CEO of the CEO of our company, which I really like as Website owners, we have a responsibility to one ensure that everyone that interact with our websites have a safe Online experience in that everyone that interacts will rather that all website owners should be good stewards of the internet by Ensuring that we're not abusing the resources available to us Quite a bit. So let's break that down a little bit. What does it mean to not abuse the resources? What does it mean to ensure that our visitors have a safe online experience? because If we really think about it at the end of the day, what we really want is to get online We want to get our WordPress installation done get our site out there and you know drive traffic Get people to see our site buy our stuff, right? But we need to consider all the people that we're inviting in all the people we want flocking to the site What kind of people are we inviting in? What kind of traffic does that look like? Because sometimes the traffic might be people. Yeah, you know what? I really want to buy your product. I really want to read your blog but sometimes that traffic is not friendly sometimes they're out to attack the website so How many people here are comfortable in identifying that there's a problem with your website? That's not a lot of hands That's not a lot of hands. So and that's okay. It's okay to not know Because the fact is you know as a business owner, how are you supposed to? How are you supposed to know that malware and hacks are part of this deal, right? You just wanted to run your business. So I Want to take an example here and look at a website and compare that to what happens when the site does get attacked and how to identify When there's a problem the specific site You know seems pretty pretty obvious right so design favorite accessories. That's that's what we want to show people look This is my product. This is what I can deliver on All right looks normal, but what happens when there's a problem? How many people have seen that before Right, so we're starting to identify that there's a problem with my site when I'm visiting it All right talking about the facement the facement when they're simply you know Taking down the front of your page because hey, you know what maybe this is some 17 year old snuck up kid Who just had nothing to do nothing better to do with this time, right? It could be your kid for all we know We're looking at this This is very new very recent terms of what we consider ransomware meaning they will lock your site And they will hold it at ransom and say look for so much Bitcoin which is so much money I will give you back access to your site and that's assuming if you pay them they actually give you access back to your site Right so imagine that as a business owner you're logging on to check higher sites running how the new theme looks How that new plug-in is functioning and then you see that Now there are other instances where it's a little less obvious So you're logging into your site and whoa Facebook pops up. Oh shoot Maybe you know I must have hit a bookmark must have hit a shortcut, but it looks like I logged off So let me log on Except if you look at the URL bar, you'll notice that's not a real Facebook address What happens is people accessing your site all those all those people visiting your site are being redirected to what we Consider a fishing lure meaning they are fishing for information anything that will personally identify your your audience And now we're taught now. We're really getting into Abusing resources right we don't want our site to be a vessel for people having their information stolen Consider your brand reputation there. Oh, you know every time I visit that site They're trying to get my information and they put that on you instead of the attacker. How are people to know? Now Let's look at the another form of attack. That's also less obvious The site might be fine the site might still show design favor accessories, you know, okay great But then if you're looking if you're searching for the site in Google search results, you're gonna notice there whoa prescriptions I'm doing accessories, you know, or I'm send I'm trying to sell clothing What why is my Google search result propping up Viagra? Cialysis right something we call a pharma hack where people are you know Injecting things into your database to it, you know sort of prop this up and flag your site as a problem because Lasting your site needs to be known for is oh they sell Cialysis at half off. No This one now how many people have seen this Roman the internet every once in a while trying to find anything else, right? Yes, and now we've seen this before, you know, the site may be hacked How many people are gonna visit this site if they see this message?  It's custom hot tubs But of course not why would you the site might be hacked the site might present a problem So you and everyone trying to visit your site harming your brand on top of it, right?  All right, that's fine You know you might enter the site you might download Software onto your computer so now we're not talking just about the site now We're affecting everything on your way to the website and now we're coming back to a safe online experience that this is not Of course a safe online experience for your audience You don't want that for everyone come to your site you want people to come to your site to say Yeah, they have a great product. I bought it it shipped on time or it was a great theme that I purchased and that was the goal We don't want to worry about this but You know Google plays a large part in this as well in terms of like what can happen and what can you do? Blacklisting how many people have heard of the term black listing? There you go so y'all I can understand what that means when there's a problem on your website and When we're going down this road, you know about like what kind of attacks there are, you know, they're the list doesn't end But what you need to understand as business owners is there is you know some investment in time Some investment financially to ensure that you provide the best experience that everyone visiting your website may consider that Basically anyone making any search result on the internet 80% of everyone doing that goes through Google Google is prominently known for blacklisting as you might know for a you know saying yeah That site might be hacked because most people are going to see that same message we saw earlier, you know So here's the thing There are a couple things that you can do with in terms of a relationship with Google that will alert you to a problem Google webmasters, how many people have heard of that? How many people are using that? Good for those that don't you should really consider it doing it for one thing. It's free Secondly they will let you know With time before the sites blacklisted that hey, there might be malicious files on your website Right, they will let you they'll give you a heads up to the problem instead of you know having it linger You may never know that pharma hack that we looked over that you may never have noticed or treating your own site on Google They'll let you know and Most of all on top of everything else. It's free, right? You don't have to make an investment into a tool like that It's Valuable that someone like Google who has a presence online, you know is letting you know about our problem before it gets to it So let's go back to this the site may be hacked This is your site and you have you know, you're trying to figure out. What do I do? I don't I don't know how to fix that So you go to Google who alerts you and they have all these guides there and you know You're trying to get rid of that blacklisting warning because now it's really gotten out of hand after a week. Well Let's consider the impact if we let that lie as Business owners, how many people here of course are familiar with SEO? Wow, see there. Yeah, everyone knows about SEO everyone knows about driving traffic You want to rank high in certain keywords. So You know after a couple days, you know, okay, the site's been hacked Google's let you know and it suddenly your sites been blacklisted and Your SEO tanks, they will remove you from whatever page you were before and stick you at the back of the line until you fix the problem Now consider how much work you might have put into maybe ranking number one or ranking top five or top ten Into getting people to visit your site Right, we don't no one wants that no, I wouldn't want that So what can you do? Well Google gives you some good guidance, you know Things about how to clean and maintain your site moving forward, you know The things you need to do, you know having shell and terminal administrator access and knowing shell and terminal commands How many people actually know those two things? So a whole lot more of you raised your hand knowing blacklisting but not this and Google's telling you you need to know this Well, that's not always the case and that's okay. It's not a problem But you know, I can you know, it can be very Intimidating when something like that happens and you're not sure what to do and there's no Big red button that tells you oh, yeah press here and your site's fixed It's not always that easy Especially if you don't have that kind of knowledge to comb through all your code to go through your database and figure out What's going on because there's a website owner. What is your primary goal as a website owner? Who can tell me that? You want to make money? That's your primary goal That that's the only thing you want to be thinking about when you're running your website when you're you know I try to you know update your inventory That's the main goal. So The idea of course is understanding. How do I get there? How do I restore my ranking? Well, yeah, you know sometimes a lot of it is investing in a solution in the resources like even just the free resources of Google Webmaster You have time to figure out an answer to the problem But what does that really cost? I mean, I'm saying that yeah, Google Webmasters is free But maybe it's too late for me. I maybe I've been blacklisted. What does that cost? So I Like to tell this story Because it's the one that resonated most with me.  So After three days, we've had the site fixed the site's been delisted from the blacklist of Google and You know, she comes back to me. She's like, you know, thank you for helping But I feel like I need to tell you what happened. I'm like, well, what happened? She tells me that as part of her five-day vacation. She was stuck in her hotel room for two days Trying to figure out how to get her site back online You imagine being on vacation and trying to worry about this with family around you And you don't have time to spend with them that money you spent wherever it is that you went to go on vacation Moreover, she was selling like high-end creature accessories and products, you know, like, you know bracelets and the like And she was telling me, you know, every time she leaves on vacation She's expecting $11,000 in revenue easily She didn't make any of that so She lost $11,000 in three days because of an issue like this So the cost sometimes isn't necessarily like what do I have to invest to ensure That my sites fine or you know, maybe getting a firewall or someone who can respond to me would clean up Sometimes the cost or the consequences of your site getting hacked Because I don't think she ever would have imagined $11,000 gone in three days that she never would have had because no one could access her site. How could they? Especially if they had that site may be hacked, none of you would have gone to visit her site because I wouldn't Except for apparently that guy over there who was very brave enough to do so but When we consider what can you do in a Circumstance like that, you know, there are a lot of easy steps to you know, sort of go about you know Making sure that everything is fine with your site and of course first and foremost It's updating the site right your wordpress installation your themes your plugins everything that you're utilizing to make sure your site is up Make sure you're up to date Because a lot of times what you don't realize is that while those fixes may provide a better user experience or a Back-end experience for you for the most part they probably have important security fixes that you don't realize are there It's no different than updating every app on your phone Sometimes it's not updating because it's trying to make the scroll bar a little better or the text a little nicer It's because they're trying to do something to protect you. I Could go through this list, you know, there's some a lot of good a lot of good items here that are you know Free in terms of understanding like what would your host do in a situation like this? You know just that kind of information gathering, but I want to sort of get back to this quote a little bit And understand that you know as website owners We do have a responsibility on us because we're the ones putting the website out there and using the resources available to us to Ensure that everyone that interacts with our site does have a safe online experience Understanding that we want our visitors to come in come out and not feel like you know They've been swindled and I feel like they have to look over their head because they saw a funny pop-up come up through your site They have to understand that you know as website owners We do have a responsibility to be good stewards of the internet making sure that you know We're not using our top-ranking Google search results to fish for information on your on your visitors Stealing credit card info or stealing their name and email and phone number when you have a contact form up we you know Because we certainly wouldn't want that visiting other people's sites We wouldn't want that visiting a website developer site who's trying you know We're asking for help and then you know sort of passing on the kindness in a sense So that's what I have You know as I mentioned my name is Victor I work for security and thank you for taking the time to come in You know have a happy work camp if you have any questions feel free to come down. I'll be more than happy to answer Like on there you go someone down here asked about redirects redirects are very similar to sort of what I showcased earlier with the Facebook page In some instances, it's a more of a it's more enticing for someone to use a redirect hack to say access your site And you get sent off to that Facebook page and your staff person is putting in information That's being sent out somewhere else there are some you know PHP mail scripts other instance A little more obvious for all of a sudden the site is being redirected to maybe a similar looking site of yours Right, maybe they sort of just copy and paste you know templates and information then when someone's making a purchase and not actually making a purchase Those kinds of things I mean can Reveal itself in different forms HT access files if you're familiar with it But most cases you really want someone or some you know somewhere to go to to be able to properly identify if that's a problem Because if you're noticing it on your own site, then you should consult someone who can provide better response for you Sure, so someone asked why is it that you get so many hits from all over the world regarding that kind of thing So one thing to keep in mind Especially about when you're trying to figure you know when you're thinking about even just the tax like where they come from Most of these things are automated like just bots, you know Hitting pinging your site because either they're trying to test access or they're trying to you know See what they can do in terms of accessing your you know your sites files and everything and on the administrative end So for the most part when if you're looking at your SEO and you're looking at your hits and you're looking at your logs And you start seeing that you know for the most part really you're focused on the states in Canada But you're seeing random my piece from Turkey from Russia China, you know There are some instances where it might be a valid access to your site It might be someone actually from China or Turkey trying to access your site some other cases It's them trying to test to see what they can do There are a lot of good plugins and resources online that let you track that Similarly, if you're running on WordPress for example We have a free plugin that will let you track people even logging into your your back end of WordPress when you go into WP login something I'll alert you to a problem that you know Hey look I've got like 50 emails telling me that this IP is trying to access my site You know these are people trying to get in they're trying to force their way into your environment, so oh What you do is depend you know I suppose it depends a lot on you know what you're comfortable with knowing I mean if you know there are ways you can write rules in your h.c. Access file to block IPs if you can recognize them There are web application firewalls out there that will block that kind of thing outright Recognizing whether that traffic is malicious or not You know so I would definitely first and foremost go to your host to see what solutions They can provide you or recommendations. They can make for you for instance like that We don't and you're not going to find many people who will approach Suspected attackers because for the most part what you may think might be the university attacking your site might be actually Someone using another computer another site and another resource just sort of like the mask where the origins from So that it's possible that actually their network well, maybe unlikely but Got compromised and there and they that you think it might be coming from the States But it could be anyone else it could be an anonymizing IP something that they're trying to mask to hide to make sure that they don't get caught Right So it's part of that you're not going to find many people who do that kind of forensic, you know retrace analysis, but There's you know on your part in anyone's part There's always measures you can take to ensure that even if maybe it was from there or anywhere else that You know those kinds of requests that are being made on your site on specific like folders or sub folders and plugins Don't result in a hack. You know those that's the best resources or best information. I can give you on that. Yeah, I would say You know, I'm hoping that everyone was able to hear you know his his interest in this So I would say that there are a lot of resources that they are able to tap into that's not simply the back in the WordPress I mean if they have your domain and they're trying to you know log in with a similar file path to log in odds are they've Paying your site to identify your hosting IP, right that you know that one, you know like a one nine two die eight eight Dot two four eight five like understanding that okay I know that's the hosting IP so let me get into an FTP manager and try different username and combinations there to have Direct access to your spy files a lot of times, you know, these attacks are automated So it's not so much that they're trying to guess one username. That's how it goes, you know A lot of our information is out there. So, you know, my site is you know, Santoyo hats calm Right and they can find my last name my first name that I might put on the site odds are they're probably gonna get What city I'm from, you know other things like that and they're gonna use Typical, you know like I would say variations of how people create username and password It's like first initial last names last name first name Maybe they can identify family members, okay So maybe I'm putting just the last name in my birthday or my zip code or things like this And these are the kinds of things where you also need to consider about the access you're creating like when you have a Username and password make sure that no one can understand why you have that username and password, you know I don't I try to avoid using, you know anything identifying me or my family and anything with passwords because Passwords are the one thing that people People get lazy about, you know, we want to just say ah something one two three or what's my password? I forgot, you know, I Had a guy who Or password no, I had another clever guy who was like, you know, I know my password is gonna be and I'm like What is it gonna be he's like well see every time I try a lot game I forget it tells me password is incorrect So incorrect will be my password And I'm like No, it's not how that works But you know that that's the kind of thing you should also be like conscious of as long as you have a strong password You know like 16 characters, you know with a with a hash tie an explanation mark and numbers and letters You should be fine, but knowing that kind of information is pivotal and I wouldn't I would implore you to sort of look into ways to be able just to block that access outright when you get it a Lot of what you also want and in something you're touching on, right?  Take precautions to make sure it's the right people if you don't and your audience is strictly yeah I'm a local person. I really only need Miami Spanish speaking people looking on my side or I'm in the states in Canada That's the only people I want to reach then ensure that those are the only people you're reaching Invest in a resource that'll let you country block or block IPs if you can find them No, I would say 12 at least I use a 16 character password Sort of touching on the last thing there like password shouldn't mean that complexity It should be 16 digits should have a combination of upper lowercase letters numbers special characters in No discernible order. There are resources like last pass has anybody here heard of last pass Great for anyone who doesn't you should definitely use it.  You don't have to remember those passwords. It'll auto-populate it for you because you know Most I'm guessing that some people here might end up using the same passwords for multiple platforms Right, you might be using your same password for Gmail for your banking for your You know website or anything else and that wouldn't be key So it's not even simply having a complex passwords making sure that those passwords are also different for everything you're logging into And brute force is you know a lot of what we've been touching on here like you know basically Bombarding your door and trying to guess the lock combination That and it happens every single day, you know and plugins like what this gentleman here mentioned about tracking the IP Or being able to block it or just identify it Give you visibility into what's going on Think I'm out of time. I'm not sure so if you have any more questions feel free to come down I'm also at the sponsor table there. We're so cootie and have a great day


Hi, I'm John Furrier with SiliconANGLE theCUBE. We're on the ground in San Francisco at the Scalely Office with a beautiful background here, but really the big background in this backdrop is the HP announced with Scalely, Ruan, MNR, COO, Scalely. Welcome to theCUBE conversation, kind of like an after discussion of the announcement. We just covered it. Are you excited about this? Oh, sure I am.  First of all, thanks for joining us. Beautiful day in San Francisco. No, yeah, absolutely. You know, we've been working on this for four years. We are the kind of low ego guys who want to do great stuff for customers. And now we can come out. We have references. This thing has been rock and rolling and we're making it even better and better packaged. So yeah. So one of the things we talked about in the covering the announcement is that it's already existing product out there. You've had a relationship with HP. This formalizes kind of the partnership. Does this mean that you guys are gonna have more access to their accounts? How has been the go to market and the sales motion been with HP? Well, you know, I think at the end of the day, HP servers have a great leadership on the marketplace. This is potentially a huge upside for them. And we believe that 40% of their addressable market with those boxes is the need we are serving here today. So we're fulfilling a great gap. We're giving some great stuff for those servers, sales guys to talk about. And from a scale at this standpoint, benefiting from the badge and the brand of HP is absolutely fantastic because they definitely have the trust of their customers. And you guys have some good success on some joint opportunities with HP. Yeah, we had many. I mean, the one we talk about publicly today are Daily Motion, the competitor of YouTube in Europe who left conventional storage to embark on this new way of doing storage. And it's a 10 petabyte project, pretty nice size. Another one is a broadcast company in Europe, RTL. But all together, it's already 50 petabytes.  You know, we love talking on theCUBE about with the young company, especially ones that are successful. But we talk about this modern infrastructure, app developers, mobile infrastructure, security, all these are important things. But one thing that's interesting is with the hybrid cloud and the data center is this unification where it's not just about the servers of the storage. It's really about this integrated environment where developers just want DevOps. They want to have programmable infrastructures. How do you guys fit into that vision? So our job is to make that happen in the storage space, which is already a lot of investment and a lot of pain sometimes. So let's try to make a good job there. And then we insert ourselves very gracefully in frameworks like OpenStack. So if you deploy your entire cloud and your infrastructure in an OpenStack framework, we can insert ourselves within that, connect, look even like a swift storage to speak in OpenStack terms. And so insert ourselves, bring all our benefits while complying to the way you're building the infra. What's the biggest takeaway that you've learned in with your customers now with HP? Certainly you've had some good track with HP now. Formal relationships should expand things. But out in the customer environment, what are you hearing from architects, CIOs? What are their critical pain points? And what have you guys learned in that environment? What's your solution addressed? So obviously you have economics, right? I mean, the cloud economics are defining the price point and it's impossible to do that with a legacy architecture. But I think equally interesting, equally important is the opportunity to collapse the traditional silos. There are so many storage systems that have been built for one or two applications, totally dedicated. Here we can harmonize, unify all this and basically abstract the hardware issues which always happen.  So it's about abstracting that and making it available to a large variety of use cases. And it's critical because today, enterprises have a ton of data. They don't know what they want to do with it tomorrow. And having to be within the rigid framework of a storage system that can serve only one workload is very painful. So that conversation was an evangelization a year ago. Today every large enterprise has a project team of people who are trying to think the new way and see how that software defined storage on industry standard servers is going to change their life. So HP is back on the track, a Meg Whitman's on our turnaround plan is starting to make some acquisitions. You guys looking like an acquisition target? What I can now is to serve customers together. I guess it's probably helps whatever scenario forward. When you focus on customer, your futures are usually bright. Well, certainly great validation with HP certain the track record. You guys have any other news you want to share any observations that you've learned with customers? Well, I think the news is that this may sound like a new topic to many people. We're already at the fifth version of the product. This is something that has been bulletproof on the ground. And so I think if anything, I want to encourage people to try it, to put their hand on it and to touch with their workloads with the reality of their DevOps people what benefits we can truly bring. This is not PowerPoint anymore. This is real stuff. And I think it's a big part of the announcement today. We are formalizing four years of field experience together. The track record is really kind of impressive and it's also important, but there's also competition. How would you compare the competition out there? A lot of noise and software-defined, fill-in-the-blank, storage, whatever, why not? Well, I think first of all, you won't find so many people who can spread across so many workloads. And why is that? Because the first one we took care of four years ago was really difficult from a storage standpoint. Bandwidth requirement, so speed, latency requirements, big, small files, many files. And that particular workload, which was storage for messaging system, for web mail systems, basically drove a big versatility in the product. The product can do very different things. It can do archives. It can do video distribution. So that's one huge differentiator. The second thing is that it's very easy to develop an appliance and relabel yourself a software defined. My definition of it is we have no certification program. Our software meets the brand new server of HP on the ground. Without testing in the lab, it's gonna work because it's x86 and Linux and that's all I care about. Which implies, by the way, that when customers wanna mix and match many generations of hardware with us, it's very easy as opposed to appliance models. So these are two probably really big differentiators. The, you know, you mentioned scalability, flexibility, performance and economics. Those are awesome highlights. You check in all the boxes. Is there one that you're most proud of with the company? Well, I think this ability, this flexibility of accommodating so many workloads is terrific. The engine at the heart of the software is an object store. But guess what? There are not so many applications on the planet who yet speak object. We added an embedded scale out file system and now we can serve about any application in the enterprise because even the legacy application can benefit from the new architecture and its flexibility, its economics, its performance. So I think that's the key. And what does that mean to the CIOs and the architects and the storage guys out there in the enterprise? What does that mean to them? It means that they don't need to find a science project to test this thing. They can bring those benefits to their current environment, to their current workload and start reducing their storage cost and increase their flexibility right now. In production. Absolutely. Okay, we're here getting all the ground after interviews here in San Francisco Scalety. I'm John Furrier. We are here checking out the announcement, getting the data. Thanks so much for your time. Thanks for watching theCube.


So if you have understood this, let us see if you can solve this problem. So now we have an airship, same airship, same ISA conditions and we want to calculate the lifting gas weight and the balloon air weight and the volume of balloon air if there is a 1 degree change in the temperature and it is slow. So because it is a slow change in temperature, we have to refer to the previous formulae. So this is the formulae for slow change in the temperature. So using this particular formulae, you will have to calculate for an airship that is flying at sea level under ISA conditions, TA will be 288, PS will be 101325, K you already must have calculated 0.03416, V is 6000, always ensure the units are correct. So 1 by 288 minus 1 by 289 minus 1 by 288, how much is Delta Lg, 249 plus or minus, so reduction. Then what about Delta Ln, that will be 0. And what about the volume of the weight of the balloon air, correct it will be the same and you can calculate the volume of the balloon air by looking at the balloon air weight and the density of the balloon air at sea level condition. What happens if this 1 degree is not because of ambient air temperature change but because of super heat? Should it differ or should it remain the same, whether you add 1 degree because of super heat keeping T s same or whether you make T s 1 degree more and keep same super heat. Should there be any change, the only difference that will happen is in the numerical value. In one case there is an increase, in one case there is a decrease but the number remains the same. Okay, what happens if this is rapidly done, not random, not slowly, so for rapid same or different? It is the same, the formula is the same. So on that note I think we should stop for today because already we have reached 1230 but I just want to make some announcements. We will continue from here in the next class.


Hello and welcome to another episode of Scripting for Artists. My name is Siebelen and in this episode we will talk about modal operators. So the recent free episodes of Scripting for Artists have been part of the OpenUp project. You can read about this on blender.org in the news section. This OpenUp project was all about providing some relief during the corona lockdown and slowly but steadily, at least here in the Netherlands, things are opening up a little bit again. So this means the OpenUp project is also coming to an end. Because this is the last episode for now, I wanted to do something a little bit more complex. So that is why we're looking at modal operators. They are a bit more complex, but they're also very powerful and they open up a whole range of new possibilities for your add-ons. So first of all, what is modal? I looked it up on doc.go and it gives me some information, some useful links. Well useful apparently modal is also kind of fabric, I'm not that interested in it. But the second link was to the Merriam-Webster dictionary and it has all kinds of definitions for modal, for example, of or relating to modality. So let's take a look at that, modality, the quality of state of being modal. Yeah, well, thank you very much. But it also says the classification of logical propositions according to their asserting or denying the possibility, impossibility, contingency or necessity of their content. I still don't quite get it, but it has something to do with logic. Well let's take a look at another dictionary, in this case the Oxford Learner's dictionary. And it says for modality, the particular way in which something exists is experienced or is done. And this starts to look more familiar if you think about edit mode or object mode. It is the particular way in which Blender exists at that moment. For example, pressing G in edit mode will move a vertex whereas in object mode it will move an object. So things can have different meanings depending on the mode that Blender is in. And this is also what a modal operator does. It basically adds another mode to Blender which is then defined by your operator. It can take over your complete Blender interface and swallow up all the user input events that there are, or it can just respond to one or two things and then pass on the rest to Blender so that it behaves as normal. Let's see what that looks like in code so that things become a bit more concrete.  It has a BL info, it imports BPI, it has the operator and then it registers and unregisters when needed. So of course the interesting bit is inside the operator. It starts in the same way as you're used to with the BL ID name, BL label, the naming is consistent with the ID name, yadda yadda yadda. But instead of an execute it has a modal and an invoke. Now mind you it could also have an execute function, it is not the lack of execute function that makes this modal. The invoke function is called by Blender whenever the operator is run from the user interface, so from a hotkey or a menu item or a button on a panel. And this is the function where you would start the modal operator. This invoke function does two things, it tells Blender's window manager that we should receive events and then by returning running modal, it tells Blender that we want to run modal. And that's the basic of getting a modal operator. Now when there is a window manager event like a mouse move, a click, a key press, anything like that, our modal function will be called. And of course it gets the context, but it will also get information about which event triggered it. So these event objects are documented in the Python API reference. So if you want to find that for the version of Blender that you're using at the moment, just go to help and then Python API reference and that will bring you here. You search for event and then you'll find the bpy.types.event structure. This has all kinds of useful properties that are set by Blender before it sends the event to our code. So for movement of the mouse, we have a few different options. We have mouse previous x, so that's the previous location of the mouse. Combine that with mouse x and then you get a sense of the motion that somebody did rather than the absolute position. There's the mouse region x, which is the region relative horizontal location of the mouse and there's mouse x, which is the window relative horizontal location of the mouse. The most important property here is the type. This tells us what kind of event this is in the first place. It's the left mouse, it's middle mouse, right mouse, keyboard, trackpad events. Here you also have a timer event. This one can be very important if you want to do something every once in a while. So that could be every second, every millisecond, every 30 seconds, just what you need. Back to our code, I want to print some different things based on the type of the event. So if event type is mouse move, then I just print mouse move with the mouse x and mouse y coordinates. If the event type is left mouse, I say left click at x and y, else if the event type is in this set, and this is a quick and easy way to just check for a bunch of different values. So if it's either right mouse or escape, I just say right click stopping. It may also be escape. I don't care if this is fine. Then it says return finished, which tells Blender that we want to stop the modal operator. So at this time, it will no longer be receiving any events. If that does not happen, it returns a running modal just like the invoke function did to indicate that it should still be kept running. Let's see what we can get it to print. So I've installed the add-on and enabled it in the user preferences, as you can see. So here we are in Blender, and I've also put my terminal on the screen so that you can see what it prints. Now, this is still without our operator running. You can see that the menu items and everything is responding to our clicks. This is how Blender normally responds. I pressed F3 to go through the search box, and then I looked for the silly example. I press Enter so you can see that it already received its first mouse move event in the terminal. And when I move the mouse, it keeps going. Remember the difference between the window relative and the region relative coordinates. The 3D viewport is a region. The outliner is a region. The properties panel is a region. So if you want to do something that is relative to the 3D viewport, the region relative coordinates will probably be what you need. Now I'm printing the window relative coordinates. So that means that in the bottom right corner, the coordinates are 0, 0. And in the top right, we get to what is almost the resolution of my desktop. One thing you may have noticed is that Blender doesn't respond anymore to these mouseovers because we swallowed up all the events. Also, when I middle click and drag to change the viewport, it doesn't do anything. But it does show a left click and a right click and then it stops. And now it's back to normal again. Our operator has stopped and Blender responds as usual. One thing you may notice is that one click caused two print statements. So the print isn't exactly correct. It's not a left click. It's the mouse down and then the mouse up event that you receive. Again, the Python API documentation to the rescue, there's a value property that will tell you more about the typo event that you're looking at. Let's add this to our print statement. Here in the code, we know it's about the left mouse so we can leave the left in there, but here we just do event.value at a certain location. And then instead of right click, let's just say event.type, event.value, and we'll still be stopping there. Reload the script, rerun it, the mouse move hasn't changed, but you can see that it's a left press and a left release and then a right mouse press. We can run it again, left press, left release, and when we press escape, we get an escape press and then it's over. So that's the basics of modal operators. Let's start looking at something a bit more useful. We're going to follow what is pretty much in the template.  So what we're going to do is follow the view 3D operator, but I'm going to do things in a slightly different way than is in this code. And then you can just make up your mind about which approach you'd like more. First, a little demo of what it does. I've run the code in the template and then press F3, simple view operator, you press enter it starts, you in the top left corner, you can see the offset which is now moving. If I move the mouse in the X direction of the window, it also moves the viewport in the X direction of the world and the same for Y. Now if I rotate, then you can see the difference. I'm moving the X direction and you can see that the movement is still in the world X direction and same for the Y direction. If I right click, we end up where we started off. So that's a cancel. And of course, left click is confirmed. So let's look at the invoke function. It does a bit more than we did in our code. Of course, this only works in the 3D viewport and that's the first thing that's being checked on. If contacts.spacedata.type equals view 3D, then the work is done. Otherwise, a warning is shown and the operator is canceled. Personally, I would flip this into if it's not 3D, give a warning, stop and then indent the whole thing. So now that we know it's a 3D viewport, we can access contacts.spacedata and call it V3D and then we can get the 3D region. So a space is made up of regions and in the 3D viewport case, a region is the 3D view but also a header, maybe a photo, maybe some panels on the sides and we have to have the 3D viewport if you want to change the camera around. Then changing the 3D viewport camera only works if you're actually looking through it. If you're looking through a scene camera, this whole thing has to do something different. It would have to move the scene camera around to fix that. It just switches it over to perspective view. And then finally, we have to store the initial location of the mouse so that we can track the motion of the mouse relative to the point where it was when this operator started. And then we have to remember the original location of the viewport camera so that we can restore that when we right click and it has to be canceled. And then finally, we have the known bit which is registering this operator as a model operator and then returning running model. As a side note, in Python, it's possible to just write stuff to self.something. You don't have to declare it as a property, you can just add a new property like this. So these kind of things would not be stored by blender if you do this on an object. So it's very limited in its use but for storing temporary data on an operator like this, it's fine. Now let's look at the model function and the structure of this is pretty much the same as we did before. We look at different event types and then execute a little bit of code. We can change some things around in this code to make it a little bit easier to understand. This bit is only used down here. So let's move it there. It's the same thing as before. It just gets the 3D viewport region so that the view location that is the camera that is used for the viewport, the location of it is set back to the initial location when we press right mouse or escape. This causes it to cancel. It then clears the header text that is set while we're moving the mouse and then it returns canceled. So that tells blender that this operator is no longer supposed to be running. In the case of the left mouse, all that's done is that the offset text is removed from the header and then blender is told that we're finished because during the interaction, during the mouse move, we're already changing the viewport, confirming doesn't need to do anything because the viewport already changed. And then finally we get to the interesting bit. What should happen when the mouse is moving? This line is already doing a lot. So let's split that up into a few easily digested parts. First of all, it's converting event of mouse X and event of mouse Y to a vector so that we can do some 3D math with it. Of course, the camera location in the 3D viewport is a 3D position. So there's a vector and converting things to a vector makes all those computations a little bit easier. So we have a mouse position, which is the vector consisting of mouse X, mouse Y and zero because we don't have a three dimensional mouse. The amount that the mouse moved by is self.initial mouse minus mouse position. So that is the difference between the starting position of the mouse and the current position of the mouse. And then finally we scale the mouse movement because otherwise you would move at around one blender unit for every pixel that you moved your mouse. So how do you get to this number? Well, that's just trial and error. You first tried without the scaling and then you see that things move way too quickly and then you start scaling it down and you get to something that works for you. Finally, self.executor is called. Normally blender would do this for us and it will still do this when we call this operator from Python. However, there is nothing stopping us from calling execute ourselves as well. We'll take a look at what execute is doing exactly in a moment. And then finally the header text is set to offset with the X, Y and Z coordinates of self.offset. This notation is called percent formatting. It consists of a format string, then a percent and then one or more things that are supposed to go into the format string. So in this case our format string has three fields. They start with a percent, they end with an F to indicate a floating point and point four in there means that we want to have four decimals in the number. So let's take a look at that offset and the execute function because those are the final parts we haven't seen yet. So the offset is a property as we've seen before. It's a float vector property and this is imported here as from bpy props import float vector property. So it's just shorter version of writing bpy.props.float vector property. So my name is offset, the size is three which means that we have three values in our float vector and this is because the viewport camera position is of course three dimensional. And then finally we look at the execute function. Again, it gets the 3D region from the context. What's going on here is a little bit confusing because a property type is float vector property but the value that it produces is not a vector. It is something else. So that means that if we want to do some vector math we first have to convert it to a vector. So that's what's happening here. It's converted to a vector and then it's added to the initial location of the viewport camera. And that new location is then assigned to the view location property of the 3D viewport region. So as a quick overview in the invoke we did some preparatory work. We registered that this is a model operator. Then in the model function when the mouse moved we computed an offset and then in the execute function we add that offset to the initial location of the viewport camera to compute the new viewport camera location. Now I wanted to show you how we could call that execute function from Python. But the problem is that in the console you can see that the operator is there and that we can even pass an offset. But if you try to use it, let's see what happens. If you do it like this then you get an error that a space console object doesn't have an attribute region 3D. And that is because currently when you run it here the context is set to the console. So context.spaceData is a space console and not a space view 3D. In the error message you can see that the execute function is actually called by Blender. Line 18 is the problematic one and that is indeed getting view3D.region3D. A console doesn't have a region3D property so that is the issue here. But it does show the idea behind it that you can have an execute function on there that you can call from Python and then an invoke to get something that is interactive. As I said in the beginning a modal operator takes over all of Blender but it's also possible to do that selectively. Whether an event should be passed through to Blender itself or should be used by the modal operator that's determined by the return value of your modal function. This operator now only responds to mouse motion and we cannot zoom in or out. So let's say we want to allow the scroll wheel up and scroll wheel down to be passed through to Blender so that Blender can take care of the zooming forest and then all the other events that they are still gobbled up. So you can't do shift A to get the add menu for example while you're also moving around. This is quite simple to do. First we have to figure out what the event type is that belongs to the scroll wheel. So either you look that up in the Python API reference or you do like me and you just added a print statement that prints out all the event types that you see. So by that you can figure out that it's wheel up mouse and wheel down mouse. Those are the events we're interested in. Now if the event is of any of these two types we can just return paths through. This tells Blender just use the event as normal. This we could also do for the mouse move. We could do also a by default and then the modal operator would be more like an addition to Blender's regular behavior rather than taking over all of the user interface. And this is up to you to determine what your add-on should do. An example of passing through all the events you can find in the timer example. Also in templates Python and then operator modal timer. Using a timer is basically the same as you've seen before is just adding yet another registration function. And of course when you stop you also have to unregister your timer. This time it's the execute function that returns running modal. So you can start a modal operator not only from an invoke but also from an execute. And here you see self.timer equals window manager of the event timer add. This is the number of seconds between timer events that you want to have and you have to pass the window so that it knows which window your operator belongs to. And then modal handler add and return running modal. And then when you want to cancel your timer you have to tell the window manager instead of event timer add you say event timer remove with the thing that you got from event timer add. And in your modal function you will get an event with typist timer and there you can do all kinds of stuff. What you see here in the modal function is that by default it returns pass through. So this does not get in the way of your blender usage except that it changes the theme all the time so it might get in the way after all. So this is it for this episode of scripting for artists. If you have any questions or remarks please leave a comment below. If you want to get more help or you want to just talk about what are good approaches when it comes to add-ons and Python and scripting pop over to blender.chat is the official blender chat platform and there is the Python channel where you can ask all these kinds of questions as many people helping each other out over there. In any case, this is it for now. See you later.


So let's get into part three of great skies I need to kind of quiet down some because it's a little little quiet here. It's early in the morning here girls So little ASMR Girl, I had some of those ASMR videos Anyway girl, so alright you guys so we in it part two. How do we get a part two? Byron being nosy as hell doing some Internet research Snooping around trying to find some information on the month and Kendra, okay? So we're gonna cut over. It's a couple of days later.  He's like, yeah It's okay. I need to get out of this house anyway. So Driving around on those country roads, baby. Her car has gotten Filthy so she decides to go ahead and take her car and to the local car wash, right? So she gets in the car wash and she sees the young man there and he's like, hey, what are you here for? She's like, yeah, I'm gonna go ahead and get my car washed in detail It's got right if you'll hand me your car keys. We can have you in and out here in about an hour, right? so she sits in the little waiting room, right and he leaves and Goes outside now this car wash is all clear see-through Glass, you know how those dealer dealerships those car washes or auto places typically are like that anyway So she sees him head down. She sees him talking to some Other guys that are you know cleaning up a car They all turned around and they're kind of looking at Kendra And that's when one guy stands up and it's a buyer it and Kendra sees him They make eye contact and he smiles at her in waves. That's when he excused himself It comes in and he's like hey She's like hey work here.  She said no everything's fine. They're taking care of me He's like, all right, then. Well, I guess I'll see you in a couple more days And she's like yep, I've seen a couple more days and he's like by Kendra She's like by Byron. So he heads back outside and the guys that are out there that have initially had saw her They started looking at her still one of the guys is like, hey, is that you he's like, man Oh, that's the wife of the family that I'm gonna start helping out from Chicago And I'm gonna start helping out around their house and one of the guys was like that's the wife He's like, yeah, he's a she's fine as hell man. He's like, yeah, but she's marrying I don't know if y'all didn't see that belly. She's pregnant That's when one of the guys on the other side of the car. He was busy vacuuming He gets up still with the vacuum in his hand. He's like, man, she pregnant and byron said, yeah He said man, I don't know about you But some of the best sex I ever had was for pregnant woman and I was like what he's a young man Some of the best sex I ever had was what was with a pregnant woman and the good thing about it Is that you ain't got to worry about pulling out That's when Byron was like you silly man So they all start laughing and busy cleaning out this car And that's when Byron kind of turns around and looks at Kendra and it's like hmm She doesn't see him because she's on her phone, right busy on her phone or whatever So within the hour she gets her car back as detailed as clean She draws off so why she's leaving the car wash by returns running wait that are she waves at him, right? So she gets home and Lamont is downstairs at this point making himself a snack And he's like hey, honey. Um, so how was your car is your car clean?  It's like he works there She's like, yeah, apparently he works there every now and then and byron and Lamont was like well, he's like, I hope he still has time to help us. She's like, yeah He seems like he he should be okay. So Um So Kendra goes into the lift room and that's when she looks down at her phone and saw that she had a missed call I guess she was so busy daydreaming the car She got a missed call from her friend Tiffany and she left for a voicemail her friend Tiffany still back out in Chicago So she gives her call back and she's like hey tip. What's going on? And she feels like hey Kendra line look I know you told me to wait until the baby comes but look honey I need to see you and Tiffany's like, okay. What does that mean? I went ahead and booked myself and I'm flying out there next week and Tiffany was like really? She's like, yes honey. I'm coming down to see you. So go ahead. They'll stop that Just stop one of those guest bedrooms and be ready. So Kendra's excited Even though she's only been away from home for a month. She's home sick She doesn't know anyone in the small town and so it's great to see her friend Tiffany Tiffany sits at about five ten mama is tall. She wears a size 11 shoe Mama sits at about 240 pounds. She's really 250, but we like Tiffany. So we're gonna say she's 240 She says about 240 240 you guys on someone who's five ten looks good It's gonna hit the right places. See we know what I mean. Um, she's chocolate. She has very exaggerated facial features high cheekbones and She has short hair extremely short hair. She's relaxed, but have a very short very short hair Almost like a fade basically very very beautiful Statue-esque woman and Tiffany is in her mid 30s. So she's like 35 36 So a little bit older than Kendra and Lamont actually So she has gone ahead and booked herself a plane ticket down or a trip down to see her good friend and Kendra's excited So she lets Lamont know she's like hey guests.  They all know each other. They all met in college. So it's cool, right? So fast forward to the day that Tiffany comes in Tiffany's excited. She comes in Tiffany's loud girl I can't be that loud this morning because it's early Tiffany comes in Tiffany is the type of person when she walks in All eyes are on her.  That's when they're interrupted With a knock on the door. Now Kendra didn't tell her she knows that Byron was hired, but Kendra doesn't give her any details. So Kendra was about to get up, but Tiffany's like, oh, hold on, hold on mama You sit there. Let me get it.  She's like, well, hey I'm nice to meet you. My name is Tiffany. If you're gonna be out in the back I'ma be up here in the front if there's anything that you need and he kind of smiles at her White teeth gloss man.  That's Byron the guy that we hired She's like, I didn't know he looked like that. She's like, yes girl. He's okay Kendra's Tiffany's like Kendra. He's a little more than okay. Look, my man would never Let me have someone like that around the house and Kendra's like, yeah, that's your man Lamont and I trust each other. So we cool. So Tiffany looks at her and say mm-hmm. So y'all That's when Tiffany can see Byron through one of the windows Byron comes around the front and she was like, hey Kendra Um, why don't we just go sit out on the front porch? It feels really nice up out here We can sit out in the front porch. So Kendra looks at her suspiciously and smiles and it's like you are not an outdoor person I know what you up to Hussie and Tiffany rolls her eyes. So they sit outside, right? Cuz Byron has moved to the front now, y'all It's the weather right now. It's really nice. It's not too hot, but it is humid. Okay, so Byron has taken off his shirt While he's working in the front yard, so they sit down on the porch when he comes to cross Tiffany's like Byron hears Tara and he looks at her and smiles and laughs. He's like, well, hey y'all enjoying the weather out here and Tiffany's like, yeah enjoying the weather and the view so Byron laughs at that. He just continues to work He's a little shy about it and not embarrassed but a little shy about that But he continues to work. Honey, Tiffany and Kendra don't say anything. They're just enjoying the view after about five minutes They don't want to you know seem like they're creaking on the guy.  I'm about done You know, I'll guess I'll see you guys tomorrow when Tiffany rolls around. She's like tomorrow If you're not doing anything later on tonight, why don't you have dinner with us and Kendra looks at her He's like, I don't know. I don't want to intrude on y'all again I mean if that's okay with Kendra Kendra's like, that's okay Byron You can have dinner with us my friend's cooking, you know So if you want to have some good seafood then he's a word. I'm always down for that So Byron makes a plan to head back, you know, go home wash up and he's gonna come back later on for dinner Okay, so fast forward to dinner Tiffany honey has cooked all this nice seafood crawled Well, I don't eat seafood y'all but crawfish and stuff baked potatoes and fried shrimp.  She wants her friend to relax Okay, so she's done cooking and they're all at the dinner table. So byron is like so how long have y'all known each other and Kendra said too long and Tiffany laughs. She said this hussy. So we all met in college out in Chicago and We've known we know a lot about each other sometimes a little too much And so again, they're just talking having good conversation and it's starting to wind down and get a little late like so Byron, um, I don't want to intrude on the family here So I went ahead and got myself a hotel room in town and Kendra's a little shocked by this because she thought You know, Tiffany was gonna say with her and she's like Tiffany, are you sure? She's like, yeah girl I don't want to intrude on y'all right now. You know, so I went ahead and got a hotel room by Byron I don't really know myself in my town. So would you be willing to um show me what the hotel is at? Byron looks at her and kind of smiles. It's like, yeah, I could show you where it's at And so Kendra's like this helpful. So Tiffany goes ahead and says bye to Lamont and Kendra and she follows Byron and his car to the hotel So they get there and he helps her with her luggage And he's kind of stalling on the way inside, right?  And so he looks at her and he's like, you know what? Under any other circumstances, I would because you bad. You're bad and she kind of smiles. She's like, but unfortunately I got a lot to do tonight in the morning It's best if I just go ahead and go home now Tiffany is a little taken aback because Rarely do me and turn her down. So honey, she looks at him. I was like, um, I'm right there.  Y'all he he has an aunt Nora So and she's the one with Alzheimer's. Okay, so he gets there. He gets a tv dinner out of the um Out of the freezer Warms it up. He goes into the live forum where his aunt Nora has dozed off after looking at pre-recorded episodes of The Young and the Restless and he kisses her on the cheek and nudges her to wake up And she looks up smiles at him. He tells her that she has some food. All right So fast forward, um one or two days later, Tiffany has gone back to Chicago They had a good time, you know, and Kendrick was really glad that her friend came down So Lamont unfortunately has to travel out of town Um on a business meeting meeting. Um, this is one of many business trips He's gonna have to take over the course of the next few weeks. I'm just gonna give you that disclaimer Kendrick doesn't know that yet, but we know. Okay. Hey, I gotta leave Here, but I'm gonna make sure you are taken care of so he approached his Byron and he's like, hey man um I gotta leave here on a business trip and my aunt is Pretty busy. So she can't come by. Is it okay if you check in on Kendra every now and then? I mean, I know you'll be here and But just check in on her and so he's like, yeah, I could do that because this is the thing you guys Kendra and Lamont house is about five miles away from any other neighbor So if something was to happen to her You wouldn't know so he's like, yeah, man. I could check in on it for you um, okay So Lamont ends up heading out the next business day and sure enough Byron comes over to check up on her one night when Byron's done Kendra's like, hey, you know, I was gonna go ahead And have some dinner. Would you like to join me? You've been working hard all week and Byron looks like he's like, are you Are you sure? And she's like, yeah, come on.  I can grab one out of the fridge. She's like, you know, yeah, he's like, but let me grab it So she's like, okay, so she stays seated seated down with her in her belly He gets up and he grabs a beer, right? so y'all two or three hours have passed by and so He looks down at his watch and y'all by the way, it's also raining. It's raining right now raining season And they can hear it and it's getting hard.   So I can go ahead and change the sheets on the guest bedroom You can sleep in there and then go on home whenever you're ready. Just make sure you like the door He's like, okay, cool So he follows Kendra into the guest bedroom and y'all at this point Kendra is exhausted, baby Honey, she is tired. So she's taking the covers off. He's helping her taking the covers off And she's putting on the feet it fit it sheet. She's tired and he looks at her. He's like, are you okay? She's like, yeah, I'm just tired. I'll be okay. They put the other sheet on they put the blinking on And that's when she's like, okay, I'm just gonna sit down here and rest for a minute. He's like, that's cool Go ahead. She's just down and rest And he takes his shoes off, right because he's trying to get ready for bed And so she sits on the bed and rest and he's okay. I'm just gonna hit him here real quick As he goes into the living room.  It is still raining really really bad outside So he goes into the living room Now they have leather couches y'all and I don't know about you but sleeping on leather couches is not comfortable So he goes back into the living room. He doesn't want to go upstairs. He goes back into the guest bedroom. Excuse me He looks at Kendra. Kendra's knocked out. She's snoring. He looks around He's like, okay fine. He takes off his white T Hmm He just has on sweats. He keeps his sweats on right He takes a pillow and he puts it in between himself and Kendra. Okay, and he makes sure she's okay And he falls asleep that pillow lands on the floor Kendra in her belly or tossing the turn in in the bed And they end up in a what is it called spooning you guys where her back is against his belly And his arm ends up around her belly. So Kendra feels something Against pressing up against her back and we know what it is, baby So she turns around and in her confusion and sleepiness and you know slumber she opens up her eyes expecting to see Lamont, baby, it's not Lamont. It's a baron and she lets out a That's when he snaps open his eyes and he's like, oh my god And that's when he realizes that girl he's been aroused. He has a forearm erection. He gets up He's like, I'm so sorry Kendra. He grabs a pillow y'all try to hide some stuff. He's like, I'm so sorry I'm so sorry. I you know what? I need to just I should just go ahead and go home.  You know, and so he Apologizes again honey and races out of that bedroom and heads on home Kendra again kind of sleepy but she's she Is that huh Kendra, you know, she hears him closer to door.


The search is on for a venue where motor racing enthusiasts in San Lucia can call their home. A delegation from the Ministry of Youth Development and Sports headed by Minister the Honourable Kenson Kazimer took on a tour of several possible locations where motor events could be stayed safely and comfortably. Other relevant parties were part of the visits to ensure a more suitable location was found. Today we've visited some of the sites in the south that the members of the association have identified as possible areas to have motor racing, whether it's cars, whether it's drug racing, whether it's obstacle racing and the likes and I'm very pleased to say that they are very enthusiastic about ensuring that they get to a location that is comfortable for everybody. We are in the south because I think motor events are very popular in the south, more so than the north and for me I'm making every effort to, you know, as I said in most of my speeches, go to the areas that have the events actually ongoing and further develop it and I think it would be very good if we can find a location in the south because the development of DSH has displaced these individuals that are interested in the sport and for me as youth fund sports minister it's incumbent on me to ensure that we have them with their plight. The president of the Senusia Racing Association, Craig Gustave, says his membership is keen to have a facility where they can get back to a level of competition after a long period before a suitable venue for motor racing. Our objective today was to actually locate a new location so that we can call a home for the Senusia Motor Racing Association. We've been trying to cope with the lack of facilities for the last how many years and now with DSH coming in we've now been actually forced to move from what we know as the Kakabef. We have a lot of avid racers here and what we are trying to do is now to give us the racers a place to actually call home and to be able to express our hobby, sometimes some of us use it as a livelihood as well. A choice of location should be determined soon and the relevant interested groups are banking for a location close to the traditional site at the former Beanfield Airstrip. From the Ministry of Youth Development and Sports, I'm Ryan O'Brien.


So, we are from the Excelsis Assessment X-Block team and they are my group mates, Agnivesh and Treya. Before going to our objective, just imagine a scenario in which there is one accounting teacher and thousands of students are enrolled in his course. So after the examination, just imagine the situation when he has to check all the thousands copies of that student. It is somewhat a more hectic process for him, right? So our X-Block comes into the scenario in this situation. Our objective is to build an X-Block which can autograde Excel sheets. So and the purpose, our main purpose is to simplify the checking of balance sheets in accounting question and why we are autograding, we are autograding the sheets by just comparing the cells of the Excel sheets. So it can be extended to any type of questions which involve cell companies on Excel sheets which is having text data, not music or anything else like videos. So the scope is the future of the platform means many students can enroll in the course. So we have configured our storage to two types like Unix and S3 and we are doing the automatic grading and we are also exporting the grades to Open edX platform which teachers also can see. So moving to the demonstration. Before we start our demonstration, I would just like to tell you how the Excel sheets should look like, like how the teacher should make the Excel sheets. Now say the teacher wants a student to fill answers in this particular cell. So what he will do is, he will fill the cell with the marks for that particular question and enclose it with angular brackets. By doing this, like when the student will open and see it, the student will understand that he has to fill answers in this particular cell. For example, like in the previous slide, in this particular cell, 20 was enclosed in angular brackets. So in this slide, like in the file that will be uploaded by the student, the student will fill 30,000 which is the answer in this particular cell. Now moving on to the demonstration. Is bracket 20, bracket 20, bracket 20 are the marks? Yes. For that particular cell? Like the teacher has mentioned it in the instructions that the cells in which a particular number is enclosed within angular brackets, the student will have to remove all the contents of that particular cell and fill in his answer. Yeah. Yeah, he has to replace the angular brackets and in the empty cell he has to fill in his answer. That is the marks. Yeah, that is the marks. This is the corresponding mark for that cell. Sir, should we show the teacher's perspective or does the student? Sir, if you want you can show from the beginning only. Do you want to see the teacher's view, then you can show you the teacher's view, like how the teacher fills in the answers and everything. Why the teacher will see anything? No, like... There is no teacher's view, correct? Sir, there is teacher's view because he will uploading the question. Yeah, uploading the question, that is okay. Yeah. So uploading the question is just one extension. Yeah, with that he can put a... Okay. How does the teacher upload the answer to you? Yes sir, like in the teacher's view, he has to upload two files. Yeah, this is the question paper. This is the question right over here and this is the place where the student answers the file. And the teacher also uploads the solution view for the correct answers. Yeah, only looking at the bracket, where is the answer? These are the two files that the teacher uploads. Yeah. No sir, like for the comparison, only those... Yeah. It only considers the angular bracket fields. Question and solution. The correct solution. Yeah. Sir, because... So that's up to the teacher. Sir, like how can we know the correct answer? Like the teacher should know the correct answers. No, but as he said, the teacher by mistake removes one line. So you know that he has filled the wrong answer, no? Sir, while checking the question means the answer sheet of the student, the teacher knows that what is the correct answer. The teacher is not checking the answer sheet of the student. You are checking. Yeah, but I am considering the general process. I am considering the general process, what is happening. Forget the general process, I am just asking you a question that your teacher has made a mistake in giving you the answer sheet. Sir, but that is teacher's mistake. But why are you supposed to catch it? Teacher's mistake or what? You are going to punish the student for teacher's mistake. So teacher have to again upload his question file. But how will he know that he has made a mistake? Sir, like we can't know the answers, right? Sir, how will we know the answers? Of course you know what the answer is.  See, I expect people to think and you are still not thinking. Sir, suppose a question file is uploaded. And answer file is uploaded, correct? Answer file is uploaded. So what the teacher is uploading a question file, how the system will know what is the corresponding right answer file for that particular question file. How does our system is... Tell me, how will the system know that teacher has made a mistake? Tell me, that is the question I am asking. There is no way to know it. Of course there is a way to know it. For that we should have all the answer files of all type of questions in the world. Why? Only this type of question. Sir, because... No. Like at 10 and 5 you said. Is the answer the same or not? Teacher has supplied answer to that, no? Yeah. He is not giving all questions, all files and you match. That is nothing, right? No. He is giving one question like Excel sheet. And answer sheet for that Excel. Yes. And you are telling me you don't know whether that answer sheet is correct or not. But still you are able to grade hundreds of students. Sir basically... Because we are assuming that that answer sheet is correct. But you can't check whether that answer sheet is correct. We are checking on the basis of what? Sir like different things can happen in this particular balance sheet. Like this is quite predictable. Say under non-current assets if the teacher fills in like all the options. And then like in that particular case inside some like for some cells the answer will be blank, right? So if the teacher by mistake leaves the cell blank then there is no way to know whether he has started correcting or not. This is very interesting. So basically you are not even checking whether all the bracket 20 okay in the answer have been supplied. Why are you not checking that? Sir because in certain cases the cells can be blank. The bracket 20 is in the answer file. There are only the samples. Correct. But come on. The bracket 10, bracket 10, take 10.  All other cells you are ignoring that you answered him. Correct. Yes. Correct. Now those cells you can't even check whether teacher answer has got those cells filled. Sir the answer could be a blank. The answer could be a blank. For example let's consider this question itself. What do you do with the student? The student has to submit a blank too. Either a blank or a zero. Sir for example, let's say there will be premises, furniture and vehicles written over here. The student can clearly understand that he has to... No it's okay. We will leave that. That's a minor thing. That is not correct at all. Okay. So that the student does not directly... So you added this new complication that the answer can be blank. Okay. Solution is blank. Correct. I think then it is okay. Yeah. Okay. Basically... Yeah, because we are just... Actually the... Actually, the problem is again, I am saying that the problem is laziness, okay, but I am sure the problem is laziness because there is no reason, okay, for the teacher to supply two things, okay, there absolutely no reason, you are adding the complication. I understand, no, no, forget your inventory, I am not worried about accounting, I am not worried about anything, I am talking about excel sheet which says, okay, again as I talked to you about that other fellow, chess fellow, it is only a block. So, you are talking about excel sheet which has got certain cells, okay, which are supposed to have bracket, some number bracket, that number is treated by you as the marks for those cells, okay. Now, you are saying that the correct answer for that cell, okay, is to be submitted somewhere else, why it cannot be submitted in the same thing? Because this will be shown to the student. Correct, that is why I said laziness, okay, why cannot you generate what is to be shown to the student? Sir, how will we know if that cell is a part of the question or part of the solution? Because your thing is that bracket 10 bracket, then I am supposed to give an answer, it can be blank, okay. So, remove that and then show it to the student, no, because you are writing software, no. So, in this particular case, I will write bracket 10 bracket, 30,000, you remove 30,000 and give it to the student. Sir, then the student would know for which cell he gets, how much? So, bracket 10 you keep, what I am saying is, in the same cell, in the whatever answer, whatever you are asking the teacher to give, okay, you are asking him to give two things in the cell. You can put bracket 10, bracket question mark, question mark, it is your business, you are specifying, okay. So, you can say in the same cell, you have to give the marks and you give the answer, I will remove the answer and give it to the student. It is as simple as that, then my problem is solved, okay. So, you cannot ask him to give two things and if there is a mismatch, all 100 students are wrong and then I have to do a repeat, are you allowing a repeat? Good, regrading, regrading. The teacher can set a number of reattempts you can take care of. Attempts, no, regrading, I made a mistake, all my students have got zero, I made a mistake, I will give a second model answer, are you allowing that? He can re-upload the question and answer the question. The student has already answered, no? No, that won't be allowed. Correct, revaluation, my model answer, I am doing IIT these days. Question number 4, 4 questions are wrong, give me the mark, I don't want to give the mark, I will re-correct it. Regrade, you are not allowing regrade, because of mistake I have made in answer some missions, you should have done that, but that's okay. It's good, I like it, okay. Sir, we are allowing the teacher to test his upload first, before he publishes it to the students. How will I test? He can again download his question file what he has uploaded, and then he can publish. Sir, in the ideal scenario, if somebody submit the ideal answer, we should be getting a full mark. Correct, but that is what I was trying to ask you, that you can check whether the answer is correct, by submitting the teacher, re-evaluating the teacher's answer. Okay, but you will always get unread, even if I made a mistake. Okay, my problem was answer sheet me, I mistake, I make one column up and out, that doesn't solve me, because you are allowing blank. Yes. Okay, so I got a problem, that's why I said you should have question and answer, correct, but that's okay. Fine, and finally you are giving one answer to these guys. Student gets to have a number of set of more attempts at this question, one of the parameters. No, no, that is fine, that is fine, so good, I think you have completed what you set out to do, one problem only in the requirement, that's okay, fine. This is fixable within like two hours. Here, I think you should do that, okay, don't take two files, take only one file, okay, and if you are doing bracket, actually, bracket, bracket and question mark question mark, whatever two things hash, hash, whatever you want to do, answer will be within that. Okay, remove that hash, hash portion and then give the answer sheet to the student, okay, that's it. Basically, you take the answer sheet and generate the question paper yourself, okay. Okay, so that would be best, okay, if you can do that. I think we can configure anything. Yes. So, that is covered, yeah. In the place where if I change one number somewhere, you know, the whole thing will replace the answer sheet. Yeah. So, is it covered? Yeah, it is covered. Sir, because we are taking... So, instead of 30,000, I write equal to that cell, you will mark it correctly. How do we address... Addressing formula files, that is why it is... You have two files, yeah. Suppose you have one single file. Okay. And the solution that you have given you. So, how do you define marks, comma... How will I address that? Okay. In the cell, we can have the marks within quotation and we can have a comma, after that we can have the solution. For a formula for a cell. If the teacher uploads a formula, that can be done in the method he suggests. Sir, we can provide a dictionary type question. One place will be a hash table like. One will be indexing with, done through formula and then the corresponding values will be his answers. So, for example, if a student answer... So, instead of that 49,000, I write a formula equal to sum of those three. You will mark me correct. Yeah. Presently we mark that correct. Like, in the... You have to mark me correct. Yeah. Because the answer is 49,000. Yeah. You don't expect me to use a calculator. I can use Excel formulae. Sure. Okay. And it will still be correct. Yeah. The answer should be correct in any way you... Excel formulae. Yeah. So, that 30,000 can be equal to that cell. Yeah. It will still be marked correct. Yeah, sure. Sir, if the teacher wants to upload a formula for a cell, that can be done in the method he suggests. No, I don't want to upload any formula for a cell. Okay. I think that's fine. Yeah. Other ways to do it, but that's okay. Sir, for a scalability purpose, we have... So, you are going to do this much simpler. Good work. Sir, do we go... Yeah, other ways to do it. Okay. And you will faithfully retain all the teachers think of that right, read protection and write protection. Only these cells are visible and all that business. Yes, sir. If I do it properly. Yes, sir. Okay. You will faithfully work with it. Yes. Okay. So, when a teacher uploads something which does not mean that all that should be bracket, bracket everything else is green color and only bracket, bracket is shown as white like the income tax thing which you don't fill, but which I fill. Okay.  I don't... Can't do anything else with anybody else. Okay. If I do that, okay, then that is fine. Yeah. It will work. Yes. The income tax will be fine then. We will be able to do it. And sir, except that also, we can also... Okay. Go. Okay. Go. Okay.


Hello and welcome to this presentation of the SPDIF-RX block. SPDIF stands for Sony Phillips Digital Interface. The SPDIF-RX block is able to receive digital audio streams compliant with the IEC 60958 and IEC 61937 standards. The SPDIF-RX embeds an Advanced Peripheral Bus or APB interface allowing the control of the block and the reception of audio and control flows. The SPDIF-RX also provides status registers so the application can check the quality of the reception. The SPDIF-RX needs two peripheral clocks, an APB clock for the register interface accesses. A kernel clock, named SPDIF-CLK, is used for the resampling and processing of the incoming stream. The receiver part is mainly composed of the SPDIF-FE, which performs the sampling, the filtering, and the edge detection of the incoming stream. The SPDIF-DEC, which decodes the received symbols, and the SPDIF-SEQ, which checks the frame format integrity and separates the payload from the control and user information. The SPDIF-RX provides the following features. The possibility to select one audio stream among the four inputs. Note that only one stream can be decoded at a single time. Automatic symbol rate detection. If the SPDIF-CLK frequency is high enough, the SPDIF-RX will be able to decode the incoming stream and provide to the application information about its estimated sampling rate. Stereostream rates up to 192 kHz are supported. The SPDIF-RX decodes audio frames compliant with IEC 60958. This specification describes non-encoded stereo streams. The SPDIF-RX also supports encoded audio streams, such as Dolby Digital, as described in IEC 61937. In addition, the SPDIF-RX provides two DMA channels, one dedicated to the audio samples data encoded or not, and one dedicated to the control, status, and user information. Interrupt capabilities are also available for various signaling. The RCC or Reset and Clock Control block of the STM32F7 provides both the APB clock and the SPDIF-CLK kernel clock to the SPDIF-RX. The SPDIF-CLK is generated by the post-divider P of the PLLi2S, allowing the application to adjust the SPDIF-CLK frequency. The signal SPDIF frame sync provided by the SPDIF-RX is connected to a timer. The application can use it to perform a clock drift estimation in between the two audio streams. Refer to the training slides of the RCC for more details. The next five slides give a short overview of the SPDIF standard. They mainly describe the physical and logical structure of the digital audio stream. In IEC 60958, the digital audio stream is organized in block structure in order to decode the channel status, or CS, and user or U information. Each block contains 192 frames. Each frame contains two subframes. The SPDIF-RX is able to recognize the start of block, the preamples, and the frame boundaries. An SPDIF frame contains two subframes. Each subframe contains 32 bits divided into three fields. A synchronization preamble allowing the detection of the block and subframe boundaries. A payload of 24 bits. And status bits, V, U, CS, and P. The digital audio data are coded using biphase mark encoding as shown in the upper figure. Note that with biphase mark encoding, there is a transition at the boundary of each bit. The preamble length is four bits, and some transitions on the preamble do not respect biphase mark encoding. This will be used by the SPDIF receivers to easily detect the block and subframe boundaries. UI means unit interval. It represents the shortest nominal time interval in the coding scheme. Bits 4 to 27 of each subframe can also be used to transfer encoded audio signals. This is described in specification IEC 61937. The encoded data packet uses bits 12 to 27 of each subframe. The 64-bit burst preamble is a specific pattern also located on bits 12 to 27 of four consecutive subframes. It is used to detect the start of a data burst. Note that the burst preamble, 64 bits, shall not be confused with the subframe preamble, four bits, used to detect the subframe and block boundaries. The first 32 bits of the burst preamble are a fixed pattern, PA and PB. The last 32 bits of the burst preamble contain information on data packet and payload size. Stuffing is used to adjust the repetition rate of the data burst. The SPDIFRX is able to suppress glitches, increasing reception reliability. In order to decode the incoming stream, the SPDIFRX estimates the duration of one UI and defines two thresholds. The low threshold, TH low, fixed to 1.5 UI. The high threshold, TH high, fixed to 2.5 UI. When both thresholds have been computed, the SPDIFRX compares the time interval between consecutive transitions of the incoming stream to those thresholds. If the time interval is lower than TH low, a short transition is detected. Note that two consecutive short transitions correspond to the simple one, but can also be a part of the preamble pattern. If the time interval is between TH low and TH high, a medium transition is detected. Note that a medium transition corresponds to the symbol zero, but can also be a part of the preamble pattern. If the time interval is lower than TH low, a short transition is detected. Note that two consecutive short transitions correspond to the simple one. In order to decode the incoming stream with good reliability, the estimation of the thresholds TH low and TH high must be accurate. The TH low and TH high thresholds are estimated in two steps. The course synchronization measures consecutive time intervals within 70 transitions, and then selects the longest and the shortest time intervals. These two values are used to compute a first estimate of TH low and TH high thresholds. Thanks to a course estimate of TH low and TH high thresholds, the SPDIFRX is able to decode SPDIF frames, and then further improve the estimation of TH low and TH high thresholds by measuring intervals over 24 and 40 consecutive symbols. The figure shows the hardware process performed by the SPDIFRX in order to properly estimate the TH low and TH high thresholds. Note that the course synchronization may become inaccurate in a noisy environment, and the fine synchronization may fail. This can be considered as a normal situation, and the application can program an amount of retries, or NBTR. Note as well that the TH low and TH high thresholds are updated every frame. The figure shows the different states of the SPDIFRX. The state of the SPDIFRX can be changed by the application via the field SPDIFEN or by the SPDIFRX hardware, mainly if errors are detected. When an error is detected, the SPDIFRX directly moves to state stop. It is up to the application to set the SPDIFRX to state idle, and then set it again to state sync or state RCV. The SPDIFRX offers a 32-bit double buffer for data reception. The application can read the received data using DMA or interrupts. Various data formats are available, right-aligned, left-aligned, or compact format. The compact format can be interesting when the SPDIFRX is receiving encoded audio frame. In addition, the SPDIFRX can insert a preamble type, C and U bits, validity bit, and parity error bit with each audio sample. Using the mask bits, the user can select which information will be provided. The SPDIFRX offers a 32-bit buffer for the reception of the CS and U channels. The application can read the received control information in the SPDIF CSR register using DMA or interrupts. The SPDIF CSR register contains 8 bits of CS coming from the selected channel, could be channel A or B, 16 bits of U, the U bit of channel A, and U bits from channel B. And one bit indicating if a start of block has been detected. A complete error signaling is provided to the application in order to define the root cause of any failures. The FERR flag detects errors linked to the frame structure. The SERR flag detects synchronization failures. The TERR flag detects when the counter used to estimate the width between two transitions overflows. This generally means that no signal is detected on the selected SPDIF input. The PERR flag detects if the parity check fails, and the OVR flag detects if an overrun occurs on the data flow. The SPDIFRX can recover from an overrun situation without misalignment. The RxSTEO bit indicates how the SPDIF reacts to an overrun situation. If RxSTEO equals zero, the SPDIFRX can minimize the amount of data lost. To be used for PCM mono mode or the reception of encoded audio signals. If RxSTEO equals one, the SPDIFRX can avoid the misalignment of stereo samples. Must be used for PCM stereo streams. The SPDIFRX offers a single interrupt line shared by several events. Error events, data and control flow reception events, synchronization ready event, and block detection event. In order to have a reliable decoding of the SPDIF stream, the SPDIF CLK frequency must be at least 11 times higher than the symbol rate. The table gives the minimum requested frequency for the SPDIF CLK clock according to the sample rate of the SPDIF stream. The SPDIFRX provides information allowing the application to estimate the sampling rate of the decoded stream without having to decode the CS channel. The accuracy of the sampling rate estimation is partly limited by the frequency of the SPDIF CLK. The application can also check the estimated TH low and TH high thresholds for debugging purposes. The SPDIFRX also provides a signal named SPDIF Frames Sync, which can be connected to a timer in order to estimate the CLK drift. This feature can be useful if the circuit receives audio samples via SPDIFRX, performs audio processing, and provides audio samples to an external audio device. In this case, a sample rate converter may be needed to perform the rate adaptation, which may require the CLK drift estimation. The SPDIFRX can receive signals from an SPDIF digital input, an SPDIF optical input, and an audio return channel from an HDMI connector. A signal adapter may be needed in order to amplify the signal received from the SPDIF interface, 200 mVPP. Using one or two unbuffered inverters can be sufficient in most cases. Note that for SPDIF encoding, the signal polarity can be inverted without affecting the decoding. Only the transitions are used by the receiver. Here is an overview of the status of the SPDIFRX in each of the low power modes. SPDIFRX operations are not possible when the device is in stop and standby modes. This is a list of peripherals related to the SPDIFRX. Please refer to reset and clock control and direct memory access controller trainings for more details on possible configuration.