So, we're now going to go through the profiler.  And then we'll be using that profile in the rest of the hands-on as we go through the rest of the afternoon. This is one of the newer features added to the workbench, so that we can actually analyse the motor and calculate some of the variables inside. Not all Chinese motor manufacturers detail everything in their data sheets, as you may have experienced over the years, but there are a few parameters that you do actually need to know. So, the profiler does actually need to be told one or two parameters and it can calculate the rest of the parameters for us. So, we're moving through our flowchart now. So, we're now on to the motor characterisation section. So, the motor profiler, it's going to do an automatic characterisation of our motor. And then we'll show you a few of our bits and pieces doing the profiling features. So, what do you need for a motor control application? What's the biggest key element for any motor control application? Yes, the motor. So, that's the most important part, that's what we need to profile. What's the next element you need for the motor? So, you do need a power stage somewhere as well, and as you said, you need a controller in there. So, there are the key elements that you need for your motor. Now, if we look at the FOC parts. So, field-oriented control, what do you need to do FOC? So, you need to know about the position and the current. So, there are the two key things to do FOC control. You need the feedback parts. So, you need to know certain features of what's going on. So, apart from the hardware, you need some control algorithms. So, you need some libraries of some sort to go inside there. You will need some signal flows to generate all those information for the power stage to drive the motor correctly. And you then need to look at things like back EMF and the feedback side of things so that you can actually position things correctly and control the motor efficiently. So, these are all the elements that we need to now understand to make up our complete system. Profiling the motor and understanding what that motor is going to need from all those other systems is a key part. You need to know what you need to do to drive your particular motor. So, what the motor of a profiler does, it powers up the motor. It will spin it a few times to analyse all the information that it requires. Our kit is going to do all this for us and we're going to tell it exactly which type of power board we've got in there as well to drive our motor itself. You can do this all manually and this is how you normally had to do things previously. So, you can observe all the parameters that you've got in the datasheet. We've got an online training for this. So, we've already got a MOOC that was done by one of our motor control experts in our Prague office. So, he's already done one of this for explaining this. There's a lot of maths involved in that part doing this manually. So, there's a lot of things you need to do. So, you have to obviously connect it to oscilloscopes. You do quite a few trials of spinning the motor. You have to change things manually. Test it again to see if it's improved, maximise the efficiency of your motor. So, it can all be done manually if you want to. If our boards or algorithms can't do it, then you'll have to revert back to this particular way of doing things. So, with the motor profiler, it's a nice, easy task. You're going to see it for yourself in a few minutes. It takes less than one minute to do all this, whereas when you do it manually, it can take a few hours' worth of connecting to various things. It'll do so many tests while the motor is stopped, which are all the elements, the current, the inductance, of each of the coils and windings that you've got inside your motor. Then, we'll do an open loop test to work out the back EMF for the central estate setup. Then, we'll do the closed loop test inside there. So, these are the three elements that we will do as part of the motor profiling procedure that goes on. So, as I said, the tool can do motor things, but there are certain things it can't do, and these have to be done manually. So, the number of pole pairs. This is one test that we have to do manually, so it's not something the tool can automatically figure out. We also need to know the maximum speed of the motor. So, again, we need to know that limitation because the tool can't work that one out. It could try and crank the motor as fast as it can, but potentially it then damages the motor if it goes beyond whatever the maximum rating was. So, we have to actually tell it the maximum speed as well. The currents. So, we need to know how much current to send through it again. If the automated system tries to do it, it could potentially damage the windings if it tries to send too much current through there. So, those are the three key elements that we have to actually tell the tool what we need. The VBUS voltage, it can actually work this out. So, you don't actually have to tell it. So, when we go into the profile and screen in a bit, we're going to leave that VBUS blank. So, we'll let it work it out for that particular value. And you've got to tell it the ratio as well, which I think is one by default. And I think we're going to leave it as one for this particular motor as well. So, the pole pairs. Normally, this is one of the bits of information that you do get on the data sheets of motors. So, it normally tells you that. But, again, we've written some little firmware tests so that we can actually test this. So, we can actually count the number of pole pairs. You can do it manually as well. So, you can get the scope out to do it and check to see where they all are for the number of pole pairs. But, we have a nice automated task that's going to help us do this in a second with the firmware that we've currently got inside. So, as I said, it was already included in there. You just need to start the test. And if you remember my firmware diagram from earlier on, if you press and hold your blue button for three seconds, it'll put the motor into a specific test case. And then you can see how many pole pairs we've actually got inside our motor. So, it's press and hold your button for three seconds. You'll feel it judder, the motor, as it goes into the test routine. And then you should feel a bit of resistance as you turn round your motor if you've got into the right mode. So, have we all agreed on a number? Everyone agreed on a number of pole pairs? So, hopefully you should have all have got seven as a number. So, how many I managed to get them on? So, now we've got that number. We can open the motor profiler now. You can launch the motor profiler directly from the workbench, but you then have to close the workbench afterwards. So, when you launch motor profiler, you should get this screen. So, the first item you need to do is you need to select your hardware that you're using. So, you need to go and select the boards that you're using. So, there's quite, as I say, there's all supports quite a lot of boards. This is still increasing month by month. So, there will be updates to the tool where we're increasing the number of boards that we've got. So, it's IHM16M1 free shunt board. If you want to see any of the product webpages for each of these boards, then there are quick links to it. So, we will just select those boards and it now populates the hardware into what we're doing. Now, we have to key in our pole pairs that we had, which was seven. Max speed for this particular motor is 1600. And the current that we're going to use is 0.15. And, as I say, we can leave VBus blank on this particular one. So, I think our power supply is less than what the motor can take. So, this is why we'll leave it blank because it will automatically calculate whatever we're putting out. I think it's a 12-volt power supply that we have anyway. Normally, you'll be profiling the motor with known elements. So, you'll profile the motor with a known drive stage rather than a custom drive stage because you want to actually understand the motor. Why would you try and use a custom board and an unknown motor in the same area? So, you'd actually want to have some known drive stage to figure out the motor first before you then go and create this part yourself. So, you want to know the parameters of the actual motor first. So, it's best to do it with some known elements to actually calculate this. As you saw, we've got lots of boards at different drive stages there available to you. So, these are to, again, cover the different voltages of motors that you've got, so how many watts or kilowatts of motors you've got. So, this is why we've got a collection of different boards available to you to test your motor. Remember, this is only the motor we're testing. Later on, when we get into the tool properly, that's when you can start using different power stages to drive the different motors in different ways. So, once we've entered those parameters, we can now click Connect. So, we'll connect the communications link to our target board. You'll potentially see some potential fault issues. So, we've collected them all. The most common one is Upgrade Firmware. Pretty much everyone will get an Upgrade Firmware. We always seem to do it. I'm not sure if mine's actually told me that yet on my board. Did it flash up as well, yep. So, Upgrade Firmware is a common. I did this test yesterday. It should have upgraded the firmware yesterday, but it needs it again. So, if you upgrade the firmware, it'll go through. It'll reprogram certain parameters back into the board to do that. And now, it's ready for us to profile. The reason you get the Upgrade Firmware is because it's loading these parameters into the software that's in the board. So, you should always probably get Upgrade Firmware every time you do this. But, as I say, there are a few other error messages. You've got the slide there for you in your documentation to see what the other error messages are. So, now if I click Start Profile, this is where it has to be really, really stable now, the actual motor. So, make sure it's actually stable while it's doing these tests. And then, you can start your profile. And the first thing it will go through is the electrical model to work out your resistance and inductance. And then it will go into the mechanical testing. You normally get slightly different numbers because of potentially vibrations when it's trying to do the tests. Significantly different numbers is a bit strange. Each motor will have its own properties. There's no guarantee the Chinese of their quality assurance is going to be the same. So, hopefully when you've finished the profile, you usually get a ke of about 4.9-ish. Give or take a bit, which is your constant for the motor. You've got your friction rating and your inertia. It should have calculated your max speed as well. Mine's 15.90 there. And my voltage is 11.97. So, it's a 12-volt power supply. So, 11.97 is reasonably good calculation from a 12-volt power supply that we've got there. So, if you notice my screenshot there, I was 4.92 there, 4.96. They've got 16.40 on their screen capture when they did this in the Prague office. I've got 15.90 there on mine. So, you will get slightly different parameters because every motor is slightly different. They've all got their own various properties. If you do it multiple times on your own same motor, you should in theory get near enough the same results every time. The algorithm will have a plus and minus tolerance each time. So, if you want to test it properly now, you can play around with the motor. So, if you hit the play button, you should be able to control your motor there using the play to make sure now that you've profiled the motor, if the profile takes too long, it means that you've got an old board. Is the play working for you? I'll just check to make sure mine does. I'll start. There we go. That's fine. So, once you've tested the play, then we need to save those parameters because we'll need them in the rest of the hands-on. So, if you click on Save and give it a name, so it's Gimbal and I'll call mine COP because I've got one for every site. I've done and save.  Save it in the correct location by default and we'll use these parameters later on when we do a project from scratching the workbench later on. So, I've just called mine Gimbal COP for Copenhagen so that I don't have conflict with parameters I've chosen from different locations when I've been testing this and I've got the right motor. So, you will get occasions where the motor is not recognised by the motor profiler. The correct voltage being applied potentially could cause a problem. We've just had a problem here where we put the wrong maximum speed in and again it didn't characterise the motor correctly as well. Normally if you've got the wrong voltage it means because you've got the wrong power board sometimes. Your motors can do far more than what your power board can deliver. So, you've exceeded that board you need to try a different add-on shield to your nucleo so that it's actually driving the correct rated motor on the outside world. Or, potentially, it's the pole pairs that you've miscalculated when you've been testing the pole pairs and that can again cause the problems where it can't characterise the motor. There's three parameters that you give it potentially the voltage, the pole pairs and the maximum speed. So, if any of those three parameters are wrong it doesn't actually characterise the motor correctly. So, those are the three issues that you might see. There you go, that's the last one, the motor speed.  That's a key one. Make sure that motor is stable when you're doing this test because any inertial forces twisting on the desk can mess up the readings. So, that's the motor profile. So, that's one module of this new system workbench tool that we have.


Hello, everyone. So I'm going to talk about the other side With respect to the previous talk namely a constructive side So how can we build better and better systems? How can we provide more and more security guarantees while having a practical system? And that's very challenging but we've been able to make one step at a time and I'm going to tell you about Two steps in this direction Myler and Verena and this is joint work with my wonderful collaborators some of which are here as well So the problem we're looking at is the fact that web server could be compromised and Confidential data can leak for example, you have the web servers stored in a cloud and Hacker breaks in and steals a snapshot of the data Myler and Verena aim to improve confidentiality and integrity in the face of compromised web servers So to understand these systems, I like to think about this the following security spectrum On the left side, you have today's systems that process data in the cryptid form So an attacker breaking into the server is going to See all the data so everything leaks a first big step towards more security is To be encrypt with end-to-end encryption sensitive fields For example, the developer can say that the medical history in this medical app is sensitive and Encrypting it with end-to-end encryption will make a big step forward. This is particularly This particular relevant to passive attackers that just get a snapshot of the data and Can see that the and that the sensitive fields are encrypted but then we have active attacks that can compromise the server in arbitrary ways and An important step towards security for these attackers is to make sure that the attacker cannot compromise the client side code Because client side code has access to the cryptid data and in the web setting This is not so trivial because the client side code comes from the server who's compromised another important Another important aspect is to make sure an active attacker does not tamper with key distribution because keys can decrypt Another property going forward towards more security is to not allow any tampering from the attacker No tampering with data. No tampering with computation and results of computation Then yet another step is to hide metadata So not just the sensitive fields, but the information about them such as who has access to what? Then we also have access patterns. How do we hide access patterns during computation as well during search as well? And this is very difficult to do today in a practical way because we know that or n-based techniques are quite heavy and quite slow and Finally, there's this miscellaneous of topics that also leak And we would like to hide them and those are what operations are you running on the data? What's the runtime? When are you running a query the data size and the structure and these are very hard to hide as well? Because many times they involve worst-case padding and that can bring a lot of performance overheads But if we can hide all of these then we can give very strong security I'm not saying perfect because there's always usability concerns and assumptions we make but you can get very very strong security So unfortunately today, we don't know how to build practical systems systems with these target security We have a bunch of relevant tools in theory such as ORAM garble RAM and FHE, but they are too slow for practical systems Building a practical system is much more challenging and we've been able to make steps at the time now each step contributes a Conceptual property on top of what existed even if it doesn't give you perfect security So I've done a lot of work along this spectrum and let me tell you today about two systems Miler and Verena Miler provides end-to-end encryption for annotated fields and Against the attacker that compromises everything it provides two guarantees one that the attacker cannot tamper with the client side code and the second that The attacker cannot lie during key lookup Then comes Verena Which tries to prevent the attacker from tampering with the data and the query results So the attacker cannot give you crap Okay, even if the even if the web server is compromised is going to give you as a result the correct results And actually fresh of the press we have a new system opaque that we're preparing the camera ready for that Actually hides all metadata and hides access patterns including during computation opaque is based on oblivious algorithms combined with Harder enclaves and if you're interested in that then I can come next year and tell you about it But opaque focuses on data analytics so not the web setting and there's a bunch of other Challenges to address in the web setting. So there's a bunch of to-do left here Although we expect that some of the techniques from opaque will apply to the web setting because opaque supports rich functionality And for the last Category it's big question mark. It's really not clear how to hide that information in an efficient way okay, so Let me tell you now about my learn Verena So my lawyer is a web framework that protects sensitive data fields with end-to-end encryption the developers specify which are sensitive fields for example private message in a chat and the browser encrypts these fields and Gives encrypted data to the server. So for example if Alice has Encrypted sensitive data the browser encrypts it if it's a sensitive field that was marked by the developer and sends it encrypted to the web Server, okay, and the web server is only going to see this field in encrypted form It's never going to get the encryption key from the browsers And when Alice accesses the data the browser decrypts it for Alice so from Alice's perspective everything is seamless Prior work has already proposed encryption the web setting However, they were far from sufficient to use in real web apps for a few reasons first We show that the common web framework such as Django Ruby on rails is not compatible with encryption and we propose a different architecture Second in these systems the data sharing was burdensome Users had to do manual key distribution many times third their active attacks on client-sized search code and key distribution that can lead to significant data leakage and Finally, there's no support for efficient a server-side search so Milo addressed these challenges and In this talk I can only tell you at the high level about two of them how do you prevent active attacks on key distribution and How do you add support for search server side? All right, so the API in Milo is that the developer says which fields are sensitive and Milo is going to encrypt them Milo does not protect anything else The developer defines the access control so who has access to those encrypted fields using a principal graph So the principal graph Looks like this. Let's say in a chat application the developers specified that Alice Bob Eve chat work and chat party are principles and The edges denote access. Okay, so Alice and Bob has access to the chat work and no one else Each of these principles has a key actually multiple keys But think of a key and these keys are actually stored at the server encrypted They're encrypted with key chains, which I won't tell you how they work But the property they give you is that only the users that have access to in the principal graph can actually decrypt the key So only Alice and Bob can get access to the green key and Now the information inside each chat is encrypted with the key for the chat. However, there can be an active attack Key distribution when a user looks up a key So consider that Bob wants to write some text in the chat work Okay So He needs to fetch the green key from the server. So he tells the server. Okay, give me the green key Give me the key for the chat work, but the server is malicious might give him the purple key And as a result of that Bob might encrypt the data in a way that it can see it and that's not what he intended To protect against this attack mylar certifies keys Okay For example The green key certified by Alice so she produces a digital signature saying this green key corresponds to the chat work Okay by Alice and mylar supports arbitrarily long certificate paths similar to x509 Okay, the problem though is that Okay, now when Bob checks Fetches the key he can check the digital signatures on the key But how does Bob's mylar client know that he's supposed to check the key against Alice's signature as opposed to Someone else's signature for example if can also create a chat work Only Bob knows that He wants the chat work with Alice. Okay, so Bob has to tell this to mylar and For this reason in mylar principles have human meaningful names The developer is supposed to display The certification path for every relevant principle that the user might give data to for example in this case We have three available chat rooms. One is work created by Alice That's the certification path for work work created by Eve anyone can create a chat with a name work especially if they're malicious and Party by Eve. Okay, and the user is going to choose the work by Alice. That's where he wants to input his data He wants to talk to Alice Then mylar can check that the green that the key he gets from the server is certified by Alice And he won't be tricked into accepting the purple key Okay, so to prevent against this active attack. We made an explicit design decision That is that mylar does not hide the name of the principles and does not hide what principles have access to it Okay, we want any user any user coming in and wanting to give access to a principle to some data To know who that principle is who gets to see it who certifies it? Okay So the second part about mylar. I want to tell you about is search So mylar provides searchable encryption as a separate package from the main mylar system And it works by if the developer specifies a field the searchable then Mylar is gonna enable a searchable encryption for that one and we have an access controls function It's very important here allow search that controls who can see search queries Okay, so let me tell you how mylar does search first. Let's consider using a standard searchable encryption you tokenize every Chat into keywords and then when Bob wants to search for let's say SSN He has to give a token for each one of those chats with each one of those keys And then using regular searchable encryption the server sees that there's a match or that there's no match and We okay, we build and the problem is that as already Paul mentioned The client has to generate tokens for each one of these chats which could be burdensome So it'd be really much nicer to generate only one token and that's basically what mylar contributes here So mylar gives a server a delta Which allows the server to convert so an encryption of SSN into an encryption with the two different keys And then it's just regular searchable encryption from their own Okay, and because mylar builds on a searchable encryption It has the same properties the same leakage patterns a searchable encryption Namely that the server is going to know that there was a first match there and then there was no match And there were no matches. Okay, so the server is going to see the matching part pattern Okay, so to mitigate the amount of information that seen in a multi-user setting we designed specifically to allow search functions So we designed it for the following attack which we described in the mylar paper The attacker compromises the server The attacker creates a principle called attacker with The key so he has the key for the principle. It gives access to Bob Bob generates a delta automatically and then when Bob searches for SSN the attacker can convert that Into an encryption under the red key. That's what the delta enables you to do And then can mount a dictionary attack. Okay, just because the attacker has the red key He can mount a dictionary attack and figure out that SSN is what's encrypted And then the attacker is going to see that oh that matches in other documents as well just by the searchable encryption functionality so Because we were aware of this attack we designed to allow search functions specifically for it The point is that a user should not automatically give the delta to anyone giving them access the delta should only be given to trustworthy principles Okay, so the developer must call a law search on trustworthy principles Sometimes it has to was the user do you trust do you trust this principle this person to know your search queries? Are you fine if they know your search queries? Or other times a developer can just figure out from the application logic for example the boss can have the law search Okay, but the point is that the attacker should not get the delta Okay, so the law search make sure that only shows worthy principles get access to the queries so because of this the attacker and The other thing is that the attacker cannot fake that he is boss or doctor because my lawyer certifies principles as we just described Okay, so because of a law search the attacker is not gonna get delta and he's not gonna know the query what was searched All right so Going back to our security spectrum. Here's where Myler lies and It's natural right now to discuss the previous paper but that poll presented The very first point that was not so clear in the presentation is that my lawyer does not claim to provide Full confidentiality perfect security. Okay, the paper has a bunch of places where it clearly says tax It does not protect against That are out of scope Okay, now looking at the three leakage scenarios that grabs a tally evaluate We find out the first two are out of scope and the third we believe it does not work if you use Myler correctly Now I want to say that even if things are out of scope. They're still useful right because in my security spectrum Right, we want to get all the way there. We want to have all these properties So by all means even out of scope attacks are useful But we just have to be aware that they're out of scope and that they don't actually affect what the system gives you So concretely if we have a medical application, let's say Myler encrypts the Medical history of each patient. Okay, so it protects the contents of the medical history Myler does not protect That the doctor Alice can see Bob's medical history Okay, that's the this explicit design decision that we made It will be known who has access to what for certifying principles as we discussed Second Myler does not prevent does not protect the fact that Doctor Alice has accessed Bob's medical history Okay, and protecting that is really hard to do efficiently. We just or I'm based techniques are very slow So most most practical systems don't protect such leakage Okay, what Myler gives you is the fact that the content of the medical history is encrypted Regarding the attack on search This is the same attack that we described in our Myler paper the one I just showed you it has the same seven technical steps and We designed allow search specifically to stop this attack Okay, so it is the same attack we were aware of in 2014 and we designed allow search to prevent it And if you want more details step by step Please take a look at the Myler's website Alright, so going back to our security spectrum. This is where the attacks of Grabs et al are They don't affect the two steps of security that Myler gives you they're still very useful because we want to get all the way There so we won't understand what we have left to do Speaking of left to do let me make another step forward in this spectrum and tell you about Verena Verena ensures that an active server attacker cannot tamper with data computation code or keys and It provides two benefits first it gives you confidentiality against the wider class of active attacks than Myler did and Verena was designed for Myler. It has the same architecture. So it was designed with Myler in mind for example if the attacker if the server Removes one of the users from a ban list Then it might be the case that later some user gives access to that banned user because they didn't know he was banned and leak Okay, so it's important to take care of tampering for confidentiality as well And then of course for end-to-end integrity. Well, you want your users to get back correct data results The threat model in Verena is that the web servers can be fully compromised. Okay, really fully compromised And here's what Verena gives you so let's say you have a pacemaker application where the user's pacemaker sends heart rate samples to the web server and You have a doctor that analyzes this to give a diagnosis There for example a doctor wants to know the average heart rate for Alice in a timestamp interval The doctor is going to receive back a result from the web server along with a proof Okay, so in Verena the web server is going to prove that the result is correct And what do I mean by correct? Well, if the doctor checks this proof and the proof was correct Then the doctor is guaranteed that The data was only changed by Alice so the heart rates come from her so write access control That the data was complete. No sample was removed that It was fresh latest and that the average was computed correctly There's been a bunch of other work that try to provide these properties But they're not applicable to the web setting first because it didn't deal with multiple users and there you have access control You have lack of coordination and it's not fit for the web setting because it's the web setting is stateless So let me tell you a very high level flavor of how Verena achieves this properties in the web setting First if we consider that the web server can be fully compromised and that users do not coordinate with each other The problem is that there's an impossibility result saying that you can't actually give freshness The the attacker can fork the users namely after a while the doctor is no longer going to see Alice's updates So you can in order to bypass this impossibility result One makes some trust assumption for this we introduce a hash server and the trust assumption is that It does not call it with the server Okay, so at the most one of the two servers can be malicious Okay, either one can be malicious including the hash server, but at most one and our hash server is very simple it's mostly a key value store for hashes and it has a small tcb and What we are going to use it for at the high level is to store the latest hashes of the data So that when the users get data back they can check them against those hashes and make sure they're fresh in Verena the developer has to specify the integrity policy and it does so using Our integrity API that interestingly it's attached to queries. No data In fact in Verena, we don't really care what happens to the data the server can be changed It can be deleted as long as the server answers correctly to all read queries Every query in Verena runs in a trust context This denotes the members the users that are the only ones allowed to affect the result of the query For example, if you select the average heart rate for patient Alice, then the trust context is the patient Alice Okay, only she her device can change the result of this query If you want to select the list of patients, then only the admins can affect the result of the list of patients Okay, so if this is our integrity API at a very high level, how do we enforce it and Very important building block for us is authenticated data structures. These are basically search trees Sorted by sorted by the range field in this case timestamp The leaves also have the values like heart rate the values we want to aggregate and then each internal node has a partial aggregate That is the sum of the values in the subtree the sum or some other function. Let's go with the sum for now Okay, so for example in this subtree a hundred fifty is a sum of eighty and seventy and Then there's a Merkel tree that's built on top of this Okay, and if the client has the root of the Merkel tree Then the client can efficiently verify a proof from the server in which the server proves that the interval of interest of the user Has that aggregate? Okay, using the properties of the Merkel hash tree So this is all work that existed and we're going to use it Verena is going to compile the integrity policy into a forest of ADS trees that are linked with each other The root of each ADS tree will be stored at the hash server to ensure freshness So let's consider a complicated query and let's see how Verena handles it We want the average rate. So we're joining we're joining two tables patient lists and patients Okay from the patients list we want the patients with age greater than 70 and then for each one of them We want their average heart rate in a time interval So what Verena does is it goes? The server goes through all this trust context to assemble a proof of correctness First it uses the trust context admins to assemble a proof that these list of patients that it's returning is complete and Contains all the patients with age over 40 70 Then it goes into the trust context for each patient to compute the average heart rate for a time interval and Prove that that one is correct. Okay, so using this forest of trees at the high level Verena can give you the properties We talked about and There's so much more. I haven't covered So please take a look at the papers if you're interested in that One point I want to make is that both Mylar and Verena have modest performance overheads of their practical systems So in conclusion Mylar and Verena make significant steps towards providing security in the face of compromised servers a We open source Mylar and we plan to open source opaque as well. Hopefully it will help the community Building real-world Crypto based systems is very challenging But we can make one step at a time and each step removes a whole class of attackers Even if it's not does not give you perfect security And I hope I showed you that there's a bunch of really cool work left to do and hopefully this session will get you interested in working on it So, thank you So we have time for questions Hi there On on one of your slides in the middle of the Mylar portion of this you suggested that users Could select which principles they wish to trust I After decades in this field I have been unable to find a deployed system in which this works Users are not capable of making security decisions so far as I can tell and if you leave security decisions to users systems fail And and when I was young and naive I I actually believed in constructing systems on the principle that you could let users make Decisions like this and I have long since been disabused by by bitter experience Yeah, so I agree with you that a lot of users don't make the right decisions and I do almost none I mean the number you can you can basically guarantee that you know Perhaps a fraction of a percent of users will make the correct and and I also agree that It's not necessarily easy It sounds somewhat inherent because we need to know what the user wants who do they want to give access to and Moreover, they're thinking is that they will use this kind of system for Critical applications where hopefully they could be more educated than be more incentivized I agree with you that it's hard to make these decisions correctly But I I don't know of any other better technique because the user has to convey to us What principle they mean at the same time? I think there's really important to do more work on this and on the usability studies Maybe they don't select the path Maybe you make sequence of pages be so natural that they go to the right place So that would be usability work great point. Oh, let me just under intervene for a moment We're actually already eight minutes late for our excellent sandwiches So if you could keep the questions succinct and also try to keep the answer short that would be much appreciated. Thank you So I have a short philosophical question You're saying this is better than nothing because you're protecting in some attacks even if not all But it's also more dangerous than nothing because if people have false trust that the system is good They're gonna put all their Vulnerable information and use it with extra trust So I just wanted to hear what you think about that So I think that the user should not have this false feeling I think they have to be they should be informed, right? We're giving you one-to-one encryption for fields you mark sensitive. We don't hide anything else. They should be informed right Building comprehensive secure system is Seizific and hard task. Yes, and what you what you call users call them Highly trained veteran security experts Because it's not Sorry, but my voice It's not like you you don't have a so if you have some Primitive in cryptography that is like, you know, zero knowledge proof if I add it to an input and I verify it in any Context I can do it. It's a very robust and you you can you can put it in you don't need to be an expert if you use a system that is like a Swiss cheese it covers certainly but there's holes you need really experts to know where is the hole and where is not the hole and how the system is going and You need to monitor it all the time where you violate the Cheese and gets into the hole. It's it's very complicated But in in certain it's not robust in the in the sense security is not going to be maintained And I think don't use users use experts Yeah, so I agree that Users have to be they have to be careful here The one thing I want to say is that these applies to many other systems we have today, right? So whenever you have end to end encryption, they need to understand that they don't protect access patterns or metadata Okay, so this is not necessarily specific to mylar Pretty much every practical system has some things it offers and some it does not and it's really a mistake to think that It gives you all the security guarantees there because there's always going to be things outside of the threat model And the second point I want to make is that we absolutely should work on usability of these systems thinking how to make them usable How to make users not mistake? And that requires some work that's complementary to mylar right now We're trying to even figure out how can you technically do this before mylar there wasn't end to an encryption embedded with web apps at all Sure, I have a question about the Searchability you don't produce a reverse index on the server instead. We're encrypting each term with some randomness And that's why these attacks that reveal the order of keywords work. What's the difficulty with reverse indexing? No, so you can totally you can totally actually Randomize the order for each document you don't have to keep them in document order And we did actually have a reverse index Implementation as well and that reverse index index is done based on encryption So in some sense, they are they're randomized already so it will not reveal the order. Yeah, okay. Well, actually we're out of time So let's thank


If you're just a fan of good baseball, tonight is going to be a fun one in MLB DFS because we get Max Scherzer going up against the New York Mets and it are against the New York Yankees and it doesn't get a whole lot better than that because I mean, it's Max freaking Scherzer. It's the New York freaking Yankees and last night's game was pretty fun despite not having this headline or of a name in Max Scherzer and that's fun for from a baseball fan perspective the DFS perspective, it's tough because I love Max Scherzer, I want to use him always but can I use him against the Yankees? Even with John-Carlo Stanton being on the IL? I kind of think I can personally. I'm going to try to make that pitch to you outline why I like Scherzer for tonight, let you know what I'm seeing with him, who you could turn to as alternatives and top stacks for the Slates. So let's dive on in and get you set for Monday night Slate. Welcome on into the solo shop that's right here on the FanDual Podcast Network and numberfire.com. My name is Jim Sonnis. I am a senior writer and analyst for numberfire.com. Here to break down tonight's five game main slate with lock set for 640 PM Eastern for today again, 640 PM Eastern is when the main slate will lock for tonight. So make sure you have your lineups in earlier than usual as a result of that with the early lock for the Slate. I will also say I'm not breaking down the early only Slates on the podcast but it is pretty good. So we'd recommend checking that out if you're listening early enough over on FanDual, pretty good early only Slates. Not talking about it but it is a good one if you want to play that. There is a chance of rain in the main slate in Cincinnati for the Reds and the Marlins. They should be good to go but check back on that later. Luckily that is the first game of the Slate. No other games start later than 710. So kind of like an Express Slate which I'll take for sure. So it should be a pretty fun one. Check back on Sensei for the weather but I think they should be good to go for today. We'll break down Scher versus the Yankees and much more in just one second. The first day reminder to make sure you're subscribed to the Number Fire Daily Fantasy Podcast Feed, our PGA DFS preview of this week's event is already posted with myself and Brandon Gadoula breaking down the Rocket Mortgage Classic. Interesting field for sure. Does lend itself to a particular kind of roster construction. We broke that down. Guys we like and much more. Find that by searching for the Number Fire Daily Fantasy Podcast Feed wherever you get your podcasts. Fandall's World Fantasy Baseball Championship for 2022 is just around the corner in September and there are still chances to get yourself qualified. This year's live final will be in Chicago in September. Live final features $2 million in total prizes with half a million dollars going to first place to get yourself entered in a qualifier. Go to Fandall.com or download the Fandall Fantasy app eligibility of strict supply. Not many better places in September than Chicago. Also that's week one of NFL where before then the live final I believe is Friday. Week one is Sunday. Illinois does have legal betting if it's not available in your state. So extra incentive to get yourself qualified for the WFBC. Pitching preview for this Wednesday main slate. Max Scherzer, Shocker is the highest salary pitcher on Fandall checking in at $11,500 but some pretty fun alternatives. Luis Castillo is 10-6 with Kevin Gosman at 10-4. Cal Quantrill and Braxton Garrett are the others at $8,000 or higher. So Max Scherzer versus the Yankees, tough assignment. We could take the easier route because Castillo and Gosman do have easier matchups for tonight but I think I'd rather bet on talent here and go with Scherzer. It's because the gap between Scherzer and the field is pretty large. The most relevant sample on Scherzer is his past nine starts. He's been throwing more sliders than he was before in that span and in those nine starts his skill interactive ERA is 2.40. Nobody on this slate is within 1.15 of that. The strikeout rate is 34%. Nobody's within 6.5 percentage points of that mark. He also leads the slate in walk rates. He leads in a hard hit rate allowed. So he is far and away the best pitcher on this slate even with full respect. Luis Castillo, full respect to Kevin Gosman. It's Max Scherzer, man. Now the matchup is tough. You need to take Jean-Carlo Stanton off the active roster. The Yankees still have a 119 WRC plus against righties with a 21% strikeout rate. It's tough. It does help that it's not as tough of a park as Yankee Stadium in terms of home runs given Scherzer is a fly ball pitcher. City field is much rougher for offense and it's not as warm tonight as it was last week in New York. I've got Scherzer projected for 8.3 strikeouts. Nobody else is higher than 6.85. So I'm gonna use Scherzer here despite the matchup. I understand if you don't because the Yankees still very scary but that's how I'm approaching things here and that's how I think we should do so. So for single entry, cash games kind of doesn't matter. I think you could have more recent differentiating cash games than others, but Max Scherzer to me, the number one arm of this main slate. Among the alternatives, I'm gonna give Luis Castillo the smallest, smallest, smallest edge for number two on the slate behind Scherzer above Gosmin. We'll talk about Gosmin and things to watch and why I prefer Castillo. Let's talk about Castillo here because the reason I like him is because he emphatically checks a ton of boxes. I'm happy I finally get to use him for tonight. A lot of times the Reds are not in the main slate because their game started at 640. We get that for tonight. The biggest appeal in Castillo is his length. They're letting him go as deep as he wants. He went 123 pitches in one of his starts. He's gone 110 or more in four games this year. He went 108 in another. That's a huge leg up on almost everybody in the league. So I very rarely project pitchers for more than a hundred pitches but I've got Castillo at 105 tonight. And I kind of feel like I have to give him what he's done. Castillo has been effective in that length. We're up to nine starts on him with fewer sinkers in his repertoire. And he has a 3.61 skill interactive ERA in that time with a 27% strikeout rate. His bad at ball numbers are still very good too. And that's the one department where the Marlins offense does lag. They had just a 32% fly ball rate versus righties. They won 41 ISO. That allows us to worry a little bit less about this game being in a Homer friendly park. Castillo's upside is very good. He said double digit strikeouts and two of those nine starts. He had eight and two others. So that length he provides is so valuable both for floor and for upside. And it makes him my number two pitcher of the night. The one thing that could push you off of him, I will say is trade concerns because the Reds obviously discuss and cast you with other teams they want to conserve him. They could keep him short for tonight and what could be his final start for the Reds but they haven't done that yet. So not as concerned, but it's worth noting that is at least within the range of outcomes could push you on Gosmin. Again, we'll talk about him later on. First though, it's not going to value play. I'm not sure Braxton Garrett can sustain the hot start that he's had because he's outperforming what he was doing in the minors. But the sample of him, the majors keeps expanding and he keeps on pitching well. And at some point we've kind of got to buy in. So I will give him a look tonight facing off on the other side of that game versus Castillo. So he's facing the Reds here. It's an okay matchup, a 105 WRC plus against lefties but a 23% strikeout rate on the current active roster for the Reds versus lefties. That's good for the upside for Castillo. He showed he can take advantage of good situations because he faced the Pirates each of his past two starts. He had 11 strikeouts in the first game and seven in the second. And he also had seven versus the Rockies earlier on this year. Those are good numbers when he gets good matchups and he's got that in a way for tonight. We're up to nine starts now on Garrett in the majors. He has a 3.50 skill interactive ERA with a 24% strikeout rate. He's letting up just a 35% hard hit rates. And when you combine all those numbers for a value play, I'm okay with taking it. Projection systems are still a bit lower on Garrett not fully convinced that what he's done in the majors is legit, which is part of why I'm hesitant to like go all in here. And I believe the projection systems broadly are pretty correct. So given the numbers in the minors, I think it's okay to be a bit skeptical but nine starts is not a small sample anymore. Strikeout stabilized pretty quickly as long as it's just for turnies. I'm okay taking bites. I'd rank him tops among the value plays. Not sure if I'll get there because I kind of just want to do a lot of Scherzer for tonight, but Garrett's worthwhile. He's worthy as a value play for tonight. So would not talk you out of him by any means. Let's go now to stacks. And with Scherzer being 11-6, we do have to focus a bit on some value plays but luckily we just kind of stumble into it with the way the slate breaks down. That starts off with the raise facing Tyler Wells. We sat against Tyler Wells with the Yankees last week. That's obviously one thing. The Yankees are a very good offense. Stacking against him with the raise is another, but I still think we should do it for tonight. And that's with full respect to Wells for the season he's had. It's a pretty long sample. He's had great results and that matters a lot. But the underlying numbers say we can stack against him. We have a 13 start sample on Wells since his velocity stabilized. He has a 4.72 skill interactive ERA in that time with a 17% strikeout rate and a 47% fly ball rate. We can stack against that if the team is good enough, the opposing offense, good enough. And the raise kind of stretched that a bit. They're not a team I'm super itchy to stack but they're good enough is the way I'd phrase it. So I'm fine stacking them here. I wouldn't be doing that on a bigger slate, but on this one, I do think it works well enough. So the raise will be my top stack of the night. I think it's worth looking into Josh Lowe starting to look a bit more comfortable at the plate. His strikeout rate is 28% in July. The strikeout rate is 34% overall. So it's definitely been getting better. And that's a positive. His ISO is 145, you know, it's still not great, but it's good enough for us to use him, especially if he starts to run a bit more, it's something we have seen Lowe do at times in the lower levels. So he's not a priority within the stack. Lowe isn't, Lowe is, Lowe isn't, but he's at least a consideration now. So Josh Lowe, someone I wanted to use then this raise stack, but not a priority. I'd say Isaac Peretti is probably a priority. Lowe is a priority. Guys like that, Gimon Choi, close to it too. So the raise have their guys, Lowe is not there, but if you need help getting insurers are totally on board with that. Number two, we saw Nathan Ievaldi get knocked around last time out. And I don't think it was a huge surprise. I think it means we can stack the guardians against him tonight. The velocity on, on Gosmin or on, on Ievaldi in his first star back was pretty rough. This was before the all-star break. The velocity in this horsey and fastball is 94.5 miles per hour, which is the exact same as it was in his final start before the IEL. And it was the same last week too. So his splitter velocity in that time is down about three miles per hour. The sliders down two miles per hour. That's a big issue because Ievaldi is not reliant on velocity, but it does matter for him. So any slip in that department would downgrade him for sure. If we look at just the three starts with Ievaldi having reduced velocity, his strikeout rate is 20%. He's letting up a 47% hard hit rate. And only one other guy on this slate is letting up hard contact more than 39% of the time. So it's Ievaldi gap everyone else. And we did see Ievaldi struggle a bit with that before this dip in velocity too. So Ievaldi is a good pitcher. He could bounce back for tonight for sure. And that means that stacking the guardians is not super safe, but it's a five game slate. We're not gonna find a ton of safety. Ievaldi now has two starts back where the Velo's been bad. That allows me to stack Cleveland tonight. If he has the same Velo tonight as he had last week, the guardians could do really well. So I'll take that gamble here and stack the guardians. Number two behind the Rays for today. Ievaldi does weirdly have some reverse platoon splits. Righties have hit him pretty hard this year. So obviously it makes you feel better about Fromio Reyes' value play, but Amid Rosario I think is worth discussing too. He's not a value play, he's $3,300, but I think he's fun. His ISO in the month of July is up to 163. That is up from 116 overall. He has a 44% hard hit rates, which is up from 40%. So give a bump up to Reyes, but give one to Rosario too. I think he's worthy of that here and potentially better than Perception. Maybe it's just, again, speaking about me, maybe my Perception, but Amid Rosario trending up based on the power he's been showing this month and does get a bump here at the Ievaldi on the opposing side. Finally, let's go back to that Mets versus Yankees game where we get Domingo Armand making his second start tonight and he got knocked around the first one, wasn't really lighting things up and his rehab starts either. So I think we can at least consider stacking against him with the Mets here. The first start, Armand last just three innings. Keyletta five runs to the Astros, two home runs there. It's a tough offense, but the Mets also obviously are not bad. The velocity for Armand was basically the same as it was back in 2019 and in 2021, but he didn't get any whist with it. He had an 8.6% swing and strike rate. The strikeouts were not there and his rehab starts either. He didn't struggle there from a results perspective because he allowed just one earned run across, I believe it was five rehab starts, but it is concerning when you're not striking out that level of competition. Armand wasn't doing that. He's now facing the Mets, 119 WRC plus against Reides. It's another lowest strikeout team. I think they could get to Armand here. Again, there's risk because we know that somewhere down there there is a good pitcher inside Armand. Not sure if we're seeing that good pitcher right now though, so the Mets for me will be a quality stack and I'll happily be using Dan Vogelbach when I do those stacks because Vogelbach goes in the Pirates, not the worst team on the planet, but also not the best and now goes to a team with a 119 WRC plus. And of all Mets against Reides this year, Vogelbach has the best ISO versus Reides. So it can be annoying to use both him and Peter Lanza because it locks up catcher slash first base and utility, but I think it's worth it for sure. Vogelbach is a guy I'm willing to use even if he gives me reduced flexibility. So Vogelbach to me, pretty fun option within these Mets stacks. I'm excited to have him there because it's another powerful bat to use within this team. Might not hit super high in the order just yet, but I don't really care about that. Personally, Vogelbach will be a quality play for me assuming he does start for tonight. Let's go now to things to watch and talk about Kevin Gosman. I think he's solid for tonight, right below Castillo. Couple of reasons why I'm lower on him than Castillo is first of all, the length for Castillo just absurd, consistent and absurd. Second is that Gosman's been more volatile. He had a blip earlier on this year before the ankle injury where he was down in velocity. The velocity has bounced back. So that's not as big of a concern. He had 10 strikeouts last time out, but there's always that worry that could happen again. So that's the key difference for me is just predictability, but both guys have similar upsides. So if you think that Castillo will be much more heavily rostered, I'm okay going Gosman for sure, especially given the trade concerns around Castillo, but Castillo one, Gosman two, behind Scherzer in a vacuum for me. I would be interested in stacking the Orioles for tournaments tonight. They're facing Jurasmuson, it is his birthday. It's also Max Scherzer's birthday. So double birthday narrative in play for tonight. I like it for Scherzer, not as into it for Rasmuson here against the Orioles. Peripherals for Rasmuson have been slipping a bit of late. He has a 17% strikeout rate as past seven starts with more forcing fastballs with a 42% hard hit rates. The Orioles have some upside here. So I will stack them for sure. Orioles really solid team, I think in general, potentially again underappreciated and I think that they work here tonight. So if you want a tourney stack, I think the Orioles great out pretty well there. Finally, Boston is okay, but I would put them pretty firmly fifth in terms of stacking well behind even the Orioles for tonight. I could go higher and I could stack them because Cal Quantrell doesn't strike out a lot of guys, but also it doesn't let up a lot of fly balls, good at hard contact suppression. The Red Sox lineup is so banged up right now. So they're okay, but I'm not gonna extend myself to get to them and I might not get there instead of going to do with a more compact approach in terms of distribution of stacks for tonight, focusing on the four stacks I like more and the ones we discussed earlier on. Let's finish up here with some Dinger calls. I'm gonna go with Pete Alonzo for the boring one. I consider going Dan Vogelbach is the more fun one, but not a lock, lock, lock these in the lineup. So we'll go Pete Alonzo here. It's Pete Alonzo. I don't really need to explain too much more. So we'll go the Alonzo for the boring one. The fun one is at two nights in a row. We got, we did get Chas McCormick via Pierre saving me on Twitter with that one when I had Wilmer Flores, but back Wilmer Flores last night he went deep. So big expectations for Isaac Perretis as the fun home run pick. I'm not even sure Perretis counts given he's got pretty good number of home runs this year. He's had a really good ISO, but I don't know, I think he's fun personally. So we'll go with Pete Alonzo and Isaac Perretis as the home run picks for tonight in MLB DFS. That is all that we have here on the MLB side of things, but a reminder, we do have our PGA DFS podcast posted for the rocket mortgage classic breaking down our favorite golfers in each salary tier and much more. Find that by searching for the number five or daily fantasy podcast feed wherever you get your podcasts. If you've got any questions for me, I am on Twitter at Jim Sonnis, J-I-M-S-A-N-N-E-S. You can also follow the FanDuel Podcast Network at FanDuel Podcast. Big thank you to everyone for tuning in for today. Good luck to you with your MLB DFS lineups. Enjoy Sherser V. Yankees. We'll talk to you once again on Thursday to break down another slate of MLB DFS. This has been the solo shot right here on the FanDuel Podcast Network.


The All Progressive Congress Kogi State Chapter has approved the suspension of a member of the National Working Committee Mortala Yakubu Ajaka by the executive members of Ajaka Ward 1 of the party. Yakubu, who is a deputy national publicist, the secretary of the party, had been suspended by the entire executive members of the APC, Ajaka Ward 1, Igala Mela Odolu Local Government Area of Kogi State in a letter dated March 20 over alleged anti-party activities in subordination, cross misconduct, on guided statement, running parallel party structure and encouraging factionalism in the party. Reacting to the action of the ward executives in a statement signed by the State Secretary, Hon. Joshua Emanuel, the Kogi APC leadership affirmed Yakubu's suspension, adding that he has been barred from participating in all party activities. Hon. Kilane Ushalai Jumon State Constituensi, Hon. Belu Hassan Ajakuta State Constituensi, Hon. Iti Amedu Keniwan, Hon. Muziza Kande, Bogo Rimangogo, Kade Roka Aroga Dawaes, Dania Wright, Basa Mutabaiti Kukihi, Atule Ikunum Ibachi, and Hon. Tajashi Mosa, Missing those colleagues if they are members of their suspension till pending the outcome of the security findings and consequent report back to the House. I think it's in the eyes of it. On this note, the nine members of our suspension based on security reports and other findings as much as we get any signal from the security department. Get notified about fresh news updates.


On an overcast day, Thanksgiving weekend at downtown Nashville, Tennessee, welcome to NFL football. All of these types of games when you're in them, they're big, big games. Just because you need to get the reward of what all the hard work is in this league, and that's winning ball games. The Titans have won every ball game so far at Nissan. We need to continue that today for a lot of reasons. Let's go! Get after it today. Let's go. Here we go. I got you. That's the fastest part I've ever ran. Let's go. Oh, first! Get this thing going. Hey, let's go! First, play first now. Now, double team it, didn't it? They doubled him, essentially, too. He went live. They had two people on them. Good run, boy. Good run. Hey! Keep coming that way. I'm gonna push them down. Keep coming. Good catch. That don't go catch. Okay. Play fake. In trouble. Firing deep downfield for a top goal. He's got it at the eight. A top goal to the five. Hey, good pass, boy. That's a touchdown. They know what's coming. Here, let's go. Let's go! Levis gives. Henry. Henry pounding. Second effort. On the board, Derek. What? Good job, Corey. Good drive. Mic'd up? Yeah. I forgot. Not bad, guys. I'm mic'd up. I'll bring double donuts next week. Avril Lavigne, my favorite pop star, though. For me to be washed up. They show down me. I'm trying to guard me with two or three people, huh? He's in trouble. He doesn't know it. He's here. He loses the ball. It's picked up by Simmons. He's tackled it. Okay. I got you. Here's Henry. Left guard. Breaks and tackled the five. I told you. He said, come that way. I better call that time, man. Holt's kick is on the way. Stay in this. Come the way. The C-17, Carolina 10. Win is a win.  Good job, dude. I'm happy for you, dude. I'm proud of you, bro. I'm proud of you. I appreciate you, dude.


Welcome to Drake's Made Easy. Today we're making the melon ball shot. Perfect if you have a friend in your life Let's just call him Mike who is only drinking Fru Fru shots now There's like Fru Fru shots bro. People who don't say bro bro Whatever bro To make the melon ball shot you'll start with half an ounce of vodka quarter of an ounce of pineapple juice And a quarter of an ounce of Midori Cap that off a new shaker into full of ice and give it a quick shake Straight into your shot glass and there you have the melon ball shot. Hey Mike. I uh Melon ball what I made up a song what it's about tortillas. Well, actually it's a more of a rap Okay, that's here If you liked this episode, please be sure to like subscribe and click on the bell icon So you'll know whenever we release a new video and remember to always drink responsibly because everybody likes to make friends But no one likes to make them in a prison bro shower bro bro


I'm gonna stop sharing and mute myself. All right, thanks Susan for that introduction. My name is Wes Hohling. I'm a senior web content developer here at TechSoup. Today we're going to be talking about Illustrator and Susan is right, this is my favorite of all the Adobe Creative Cloud apps. So hopefully it'll be yours as well. If you're absolutely brand new to it, that is no problem. What I'll be doing today is what I've done in previous Tech 30s which is kind of give you a brief run-through on creating something basically from scratch in the application. And so there's no need to try and keep up if we'll have this video archived, if you wanna check it out later, along with a lot of other tools in our TechSoup courses course. So let me go ahead and hop on over to Illustrator. And first I'll give you a little tunnel vision for just a moment while I switch over. So part of my job here at TechSoup is to create some of the images that you see in By the Cup. If you subscribe to our By the Cup newsletter, you'll see these images show up in each section of the newsletter and I try and design something that's sort of relevant to the subject that they're covering. And these are always a little hand-drawn icons, flat design sort of look, and they're a lot of fun to create. And so I'm going to show you how to create a similar illustration in Illustrator, just all completely from scratch. So I'll go ahead and start up a new document by going up to File, New. And this is where I can choose some of my settings like the size 300 pixels by 300 pixels. That sounds good. What I'll be creating today, I should probably tell you first, I'll be drawing a clock, very basic design. And it'll cover a lot of the standard tools that you'll find in Illustrator. I won't be covering the illustrious pen tool. We've got some great resources on that in TechSoup courses. I would highly encourage you to check out if you're interested in the pen tool. If you're not familiar with what that is, don't worry about it, it won't come up today, but anyway, just a word of no at the beginning there. So if I'm creating a clock, it's a circular object. So it's one, an aspect ratio one to one, just as wide as it is tall. So 300 pixels by 300 pixels seems like it's pretty good. And down here, these are default settings for a screen. I'm just going to be drawing for the screen, so that all looks good too, and I'll just go ahead and hit okay. So now I've got a square canvas on which to draw. And the first thing, of course, it's a clock, so it's gonna be around a perfect circle. So let's go ahead and draw a circle. Over here on the left, I've got my tools. You can see I've already selected the circle tool. If that's not visible to you, there might be a square in place, that's the actual default. You can click and hold on it, and you'll get a lot of options that come up, including rectangle, polygon, star, et cetera. Ellipse, even though it doesn't say circle, ellipse is what you want for drawing circles and ovals. So I'll go ahead and let go of it on that one, and now I've got an ellipse tool. On the left here, just like in other drawing programs in the Adobe Creative Cloud, I've got a fill and stroke color. Fill, of course, is when you're drawing an object, is fill is the color inside the object. So I'm gonna be drawing a white circle, and I've got a black stroke, and stroke is just another way of saying border.  And I can click and drag if I want, and you can see I'll get an oval. If I, while I'm holding down my mouse key, or excuse me, mouse button, if I press the shift key, you can see it snaps into a perfect circle. I can click and drag along with that to whatever size I want. You can see there's even a tool tip on the bottom right of where I'm drawing that tells me exactly how big it is. So if I know, if I don't know exactly the size I want, I can eyeball it, let go, and now I've got a perfect circle, or if I undo, I can just click once. It'll prompt me to give exact specifications. In this case, I already know the size I want. I want a 200 by 200 pixel circle. Press okay on that. Now I've got it.  So I can drag it around and try and get it just right, or I can be very precise about it and align it. So one powerful set of tools that Illustrator has are it's Align and Pathfinder tools. You can find these here on the right. This is Align right here.  That's a very fancy way of saying I wanna center this circle on the canvas, and I can do that by choosing this Align to section here. There's two options, Align to Selection and Align to Artboard. The selection is the object itself, so aligning it to itself doesn't make a lot of sense. Aligning it to the board itself to the canvas is what I want. I choose that, and then I've got a couple options here. I can horizontally align the center, which means it'll snap to the center horizontally. If I click that, you'll see what happens. Now it's horizontally centered, and then right to the right of that is the vertical align option. Click that. Now I've got it right in the center and I can rest easy knowing that my circle is centered. As you can see, it's a white circle with a black stroke, and I can fix those colors if they're not quite what I want. I can choose the fill color here by clicking it once, and you can see that it snaps to the foreground. I'm also prompted to get some color options up here. I've got some colors that I already like saved to a library. I don't want to have time to get into libraries today, but Photoshop, excuse me, Illustrator gives you a lot of options for saving colors that you like, so you don't have to kind of guess and sample them later. So I'll choose that on my right side here. These are, this is a feature that's unique to Creative Cloud. You won't find in Creative Suite where you can basically save your color selections to the cloud and then get them later on another computer, and this is all of TechSoup's brand colors, so I'm staying on brand by creating this clock. So I'll go ahead and choose a, let's say, light blue for the fill, and if I click my stroke, now it's currently black, I'll go back to my libraries and choose a deep blue. It's still dark, but it's not as dark as the black. It's also kind of a thin stroke. You get a one point stroke by default. I want to change that. On the right side here, I've got a stroke option. I click that and you can see the weight here. Let's bump that way up. Let's go from one point to 10 points, and you can see now it's a lot thicker. I can even decide if I want to align the stroke to the edge of the circle on the inside of it or the outside. Right now it's on the inside. I think I want it on the center. So you can see if I click this, it looks like it's expanded a bit. You can see a thin blue line going along in the center of it, and that's what I want. Basically, you're adding five pixels or five points on top, five points on bottom, for a total of a 10 point weight stroke. That's looking pretty good to me. So I'll go and click up here in the selection tool. I'll deselect everything by clicking on the canvas, and now I've got basically my clock face. So from here, I'm going to start adding some of the notches on the clock face. So you might see a clock that has the numbers on it or just lines. I'm just going to add some simple lines. I think that'll be a little cleaner and we don't have a whole lot of time, so I can't have enough time to tell you all about creating those. So on the left here, I've got a line segment tool. This is the one that will be chosen by default, but as you can see, if I click and hold on it, there's some other options that shoot out, which none of which I have time to cover today, but lines good for now. So I'll just let go of that. I've got a line segment, and I'll just go ahead and draw a simple vertical line by clicking and dragging down. And you can see a small line begins to form there while I'm still holding down. Let's go to about 30 pixels in height. And if I let go, you can see now I've got that line. It's not where I want it though. Of course, I'm going to want this, let's say the 12 o'clock position. So I can click back over to my selection tool, and then just like with any other drawing program, I can drag it over to where I need it to be. And you can see that as I'm dragging, some lines are starting to appear. There's one, there's one. These are smart guides that will help me get the line just to where I need it. And if I drag it right here, you can see there's a line horizontally and a line vertically. This is where it intersects with the top of the circle, which is what I want. I want it to be right in the center. The more you draw things, for example, a freehand, if you're doing sketches, if you're drawing something in a program like Illustrator, the closer things to get to being right, while just being slightly off, the more distracting it becomes. So it's very important to be specific about what you're drawing when you're drawing. And this is a great way to do it. This will let you know exactly when things are centered or interacting with something else already on your canvas. So if I let go here, you can see that my line has moved right to the top of the circle and in the center of it. Of course, a lot of clocks, the line doesn't quite touch the top. It might have a little space in between. If you look at a clock near you, you might see that that the 12 doesn't butt right up against the top or the notch. So we can go ahead and move that down. You can use your arrow keys while you've got an object selected to move it left or right, up and down. And that'll move it one pixel in any of those directions. One thing you can also do, and this saves me a lot of time, if I don't want it to move just one pixel, I can make it move 10 in any direction. And that's a great way to get it from one end to the other without having to just nudge it over so many times each time. So if I hold down shift and then press an arrow key, in this case, I'm gonna press down, you can see it'll jump 10 pixels down. It doesn't seem like it's a lot, but that gave me just enough space there that I really like where that's at. That's got just enough space between the border and the rest of the clock face. Now, of course, a clock has usually 12 numbers, some more, depending on the style, you may have fewer, you may have just four. One for 12, three, six, and nine. And that's what I'm gonna go for here. I kind of like a cleaner look. Depending on how large this illustration may end up becoming, I don't want to clutter it with a lot of other things. So I'm going to draw another line. Actually, let's do this. I'm not gonna draw another line. I'm going to copy the one that I've got. It's the right height. I don't have to just carefully redraw the same object all over again. So while I've got my selection tool selected, if I pressed Alt on my keyboard, you can see that my cursor changes to a double arrow as I move over this object. That means it's, when I click and drag, it's gonna create a copy. So if I click and drag on that while I'm holding Alt, you can see I've got a second line that's moving around. And the guides are still helping me move along. So I'll move it down to this intersect point just where it was on the top. I let go and now I've got a second line. And again, I'll bump it up 10 pixels by doing Shift and Up. Now I've got those two. The trick is now, how do I get it for the three and the nine o'clock? I could draw it all over again, but again, I have to be a little precise on that. And if I wanted the eight o'clock, the seven o'clock, those aren't as easy to draw in sort of 90 degree ways. So what I can do is this. I've got this object selected here at the bottom. This is my six o'clock. I press and hold Shift and choose the 12 o'clock again. Now I've got both objects selected. From here, I can group them together. And this means that if I click on one object, I click on both of those objects. They function as a single object until I tell it not to. And the way I can group them is either by going up into the Object menu and then Group. Or you can see there, it lists the keyboard shortcut. It's Control-G on Windows or Command-G on the Mac. I can let go of that. You won't see any difference, but they are grouped. If you ever need to check and see whether something is grouped on the right side over here, there's the Layers menu. And you can expand that layer and see sure enough, here's that group. You can expand that group and see sure enough, there's two lines in it. And you can see if I click off of it and onto the canvas and then click back onto it, I've clicked that first one, but it selected both. Now it's serving as a group. And here's the real trick. This is something that, drawing certain objects like this where there's sort of repetition within the object itself that I've struggled with until I found this trick. And this is one of my favorite illustrator tricks right here. Up in the Effect menu, you've got a lot of filters. And some of them you may recognize from Photoshop. For example, Blur and Stylize, things like that. We're not gonna be using any of those. We're gonna be using some of the more geometric filters. And specifically this one here under Distort and Transform, we have one just called Transform. First thing I do whenever I choose this effect, I always click on the bottom left is Preview. I choose this, you'll see nothing has changed. And that's right, that's what we want because we haven't told it to do anything yet. What we can do with the Transform effect is change the scale. We can move an object along the canvas. We can rotate it, do all sorts of things and including make copies, which is the most important thing we're doing here today. I've got a 12 and a six and I want at least a three and a nine and I may want the others as well. So what I can do is I can say, let's rotate it, let's say 90 degrees to begin with. I've chosen 90 and when I choose another field, now you can see that they've switched. They've moved from 12 and six to three and nine. That's because I haven't specified any copies yet. If I tell it one copy, move off of that. Now we've got copies in 12 and six, three and nine, that's great. If I want the other notches filled in, I can just lower the number, the angle and this is all math and I'm sorry, I didn't promise there wouldn't be any math on this but there is a little bit of math. If you think about this as a 360 degree circle, how many notches am I making will determine the angle at which I'm going to separate them. So if I choose 30, you can see they're much closer to where they were before and I can choose more copies. Now I've got 12. I've got spots for every number on the clock but that looks a little busy for me. I'm not so into that. I could make all but those four thinner if I wanted to and go on and so but I'm just gonna keep it simple. Let's keep it going with one copy at 90 degrees and that looks like a pretty clean sort of modern design for the clock and I'll press okay and now I've gotten those selected. Now just like with the group, if I click on the three o'clock position, I've selected all of them. It's because there is a filter in place that I can go back to later and change if I really want to. I won't be doing that here but it is still an option as long as you keep that appearance filter applied. So, but for now, that's all right but we're missing of course are the hands. We need hands to tell us exactly what time it is and I'm going to draw another line just like I did before over here on my line segment tool. I'll choose that and I want it to be right in the center because of course any clock, the hands are mounted to the center of the clock itself and that's what I'm gonna be doing here as well. And just like before when I was moving that line around and it snapped to the edge of the circle, I'm gonna be doing the same thing here. If you look very closely and this might be hard to see on your screen, there's a tiny blue X right in the center of that circle. That is the center point for the circle and that's my destination and if I can't quite see it, that's okay too because once I move there, it tells me with tiny little word center. Now I know I'm in the center and whatever I draw from this position will be centered. So I can choose any, if I click and drag from this position I can choose to go in any direction I want because of course that's where the hour hand will go. I'm going to say, let's say about somewhere between 12 and one and I'll give it a shorter hand because it's the hour hand and I'm getting these options here as I go, the length of the line. It's about 50 pixels pretty close, so I'll let go there. Now I've got an hour and if I move to that center spot again, you'll see I don't get that draw hand. I get an arrow which means I can choose to pull that end of the line down. That's not what I want, I want it to keep it centered. So if I choose my selection tool again and click away from it, now nothing is selected. If I click back to the line tool, now I can revisit that spot. It even lights up that it's anchored. That means it's touching the end of that line which is fine because I know that line is also centered. And if I move this line, let's make it longer. Let's say about 75 pixels almost. That's pretty good. You know what, I'm actually not happy with that because now it just looks like one long straight line. What I can do, as I mentioned, I can grab that point and move it along. Now it looks a little bit more like an actual clock. I've got an hour hand pointing in one direction and a minute hand pointing in another.  It's got the basics of a clock and I've only got a few minutes left to kind of spruce this up. So what I'm gonna do is add a second hand and kind of fill in that little gap in the center there. I'm gonna do that with the ellipse tool again, just like I drew a circle in the beginning. If I click that and then return to that center point, I can click and drag. Now it's not centered anymore. I don't really like that. I want it to be exactly centered. Here's where a couple of key commands will come in. If I hold down shift again, just like before, I get a perfect circle, so that's good. If I also hold down alt, this is where you're getting two handed, if I hold down alt, now I've got it centered and in the center of where I was before. That's what I want. Let's make it 20 pixels. That seems like a pretty good space. But I've drawn it just like I drew the clock face itself. I've got that thick blue stroke around it. I don't want that at all. So let's change the colors just like we did before. I'll choose the fill and I'll pick a color for that. Let's keep it with the dark blue. Now I've got a dark blue circle with a dark blue stroke. I want to get rid of that stroke. I click the stroke on the left. There's a little option down here on your color palette, none, that'll clear that value out. It's not white, it's not black, it's zero color value. Now I've got one there. Let me click away from that. That's a little more friendly. And what I can do is I can add another circle inside and I think you'll see where I'm going with this. Exact same spot, center. Let's do alt and shift again and I'll make it a little smaller, let's say half size. I'll choose my fill color again and let's make it orange. Now, last thing, I click away from it. I get one line coming from the center. Bring it way down, let's go about there. Now it has no color value associated. This won't show up until I give it a stroke value and I'll do that by clicking stroke, going to my colors palette, I choose orange again. Now I've got a second hand that gives the impression that there's some kind of motion. The last thing I can do because the hour and minute hands look a lot like these 12 and six markers on the clock face, I can change how these lines look. And this opens up a lot of options if you want a line to look like a pencil sketch, a charcoal, a paintbrush, it also gives you a lot of options for that. I won't be doing that today because it doesn't really apply to this but just know that lines don't have to be very blocky like this. If I choose this line by clicking on it again, this is for down here on the profile, I've got a lot of options for how the line appears. And if I choose, let's say this one, so you can see it kind of gets wide in all the center and then comes to a tapered edge on both ends, but it's going in the wrong direction. I can flip it and now it went in the right direction. I can do the same thing with this one here by choosing that same and flipping it. Now those look actually like clock hands. I can choose all sorts of other things if I want because all of these lines are still grouped together if I choose to bring the weight down on that, I can by making them, let's say six point. It's gonna be giving a little bit of a friendlier face and there's a lot of other options that I'm unfortunately running out of time to show you but that's at least the beginning of sketching out something like a clock face. The more detail you can add in terms of light and shadow, the more realistic and the more engaging your illustrations will be, but that's a great way to start with learning how to align objects, how to draw them and how to manipulate them all in the canvas. So hopefully that's a good place for you to start and I highly encourage you to check out our newest courses on Illustrator and some of our other creative cloud courses to really get from the absolute beginning stage to being able to draw some simple illustrations like this. So now that I'm out of time, I'm gonna pass it back on over to Jim Lynch for the latest roundup on what's new around TechSoup. Take it away Jim. All right. All right everybody, Jim Lynch here. I'm gonna share my screen. There we go. Jim Lynch here, I'm a senior writer here at TechSoup. I'm here to show you what's new. So I thought I'd just kick it off here with a little bit of Wes's work. We're gonna scroll slowly down here. You can see the kind of thing he does here at TechSoup. We just had Earth Day. This is Earth month of April for all of us environmentalists out there. Wes did kind of an extended infographic about our refurbished computer program here at TechSoup. It's our little online store to supply good warrantied, strong refurbished computers that are about half price of new for equivalent ones. This is the environmental benefits of that program since we started back in 2006. We've basically sold around 76,000 devices in our refurbished computer initiative and so you can see that we have some pretty strong environmental results from that. For instance, you know, it's the equivalent of, in terms of poundage of saving a space shuttle. And in terms of energy used, I don't know how many days, 23 days in Las Vegas in the hot summer, including the casinos. Water emission save and stuff like that. So this is Wes's handy work you can see going all the way down here, very nice. So because you're on this webinar, you probably want to know about our 20 days of Adobe. That's a promo campaign and it's all free stuff. So if you go to this site, and by the way, we're going to give you the links to all the things I'm showing you just now, we're going to set up every single day of this campaign. We're now on day six with free new interesting things that you can do with Adobe Creative Cloud. And it goes on and on and on every Tuesday and Thursday. We're adding new things. So that's a very, very fun thing that we're doing or just at the first quarter of that campaign. So keep checking back to this one to find more things that you can do on Adobe Creative Cloud. Here's something I've just launched and we're really happy to have this. It was a donation offer from a software company called Veritas, which is actually a Symantec company. And it's an on-premises, they call it, backup and recovery set of two kinds of software for this. This is incredibly useful for anybody who's interested in cybersecurity. So the important thing to know is we're all going to get hacked now or later or many times, that's just a fact of modern life. And backing up and being able to recover your essential information, including backing up your website pages is a super important thing. With this application, which is that you get it once and then you own it, kind of old-style application, you can store your backups on almost any platform. That's Dropbox or Box or OneDrive or you name it, any of those cloud platforms or actually a hard drive if you want to. So that's a pretty great thing. We're just delighted to have that back for you guys. Here we have some coursework that we just launched. Pretty great. So design for non-designers now has two modules. This is a set of courses that we're building. Oops, I think I'm wrong on that. But this is a set of courses we're building, designed for people who want to start working with your brand and applying design principles. And we teamed up with a design company called Elephant to supply with two courses. The first course, which is our 101 course, is just free for the getting. And the second course 201 is a nominal fee to basically cover our costs to bring this to you. So that's a brand new thing for you. And that's it. So back to Susan to wrap it up. Thanks so much, everyone. And thanks for your patience as we navigated through. We're all in the same room today, so there was a little bit of extra complexity. Thanks so much for your patience. And also a quick note that we will continue to help you view the screen more clearly. As I chatted out, you can change the quality up to 720, which is HDD. And I'll make sure I include that in our next mini webinar. And I will also put it in the platform. It's really a pleasure to have you here for 20 days of Adobe. We want you to join us next week. And we hope to see you then. A huge thanks to Wes and to Jim. And most of all to all of you. Thanks for your time. We know how valuable it is. Have a great day.