Hey everyone, welcome to this week's video update recording this Sunday morning April 7th. Hope everybody's having a good weekend Quick talk about the markets and then we'll jump into the trades for the week So obviously the big news of the week was the sell-off on Thursday the first part of the day We're kind of grinding higher. It looked like we were gonna push to new all-time highs and then things just fell apart When right around the time kashkari one of the feds were speaking Big sell-off Big bounce back bigger bounce back on Friday certainly than I expected But I still think we're not ready to go back to all-time highs. I think I think we've got some more downside here in this little short-term at least just my opinion, but the big thing for me is Ladies and gentlemen, we have VIX back over 16. So hopefully we can sustain that a little bit keep these premiums juiced and Give us some opportunities to have some fun with a little bit higher implied volatility It's pretty much same story in all the indices the Russell Not as big of a bounce back on Friday gold continues to push new all-time highs, you know I just I I don't think this inflation things over my friends Commodities are exploding gold silver Cocoa, you know, I mean across the board commodities are exploding so I Expect there to be some surprise issues here coming up that You know the Fed is is is acting like do not exist. So Just a feeling just my spidey senses Thinking that this this inflation thing is not quite over Notes and bonds down 10 year yield popping back up almost to 4.4 oil up for the week Natty gas I'm not gonna go through these other ones, but we'll end on Bitcoin Bitcoin settling in at about 68,000. All right, so let's jump into the trades for the week a little bit of a red week for me I Did not take advantage enough I feel like of the down move and Then I got hurt a little bit on the bounce back because I wasn't expecting such a big bounce back So a lot of those were just in my opinion-based trade. You'll see I'm like my directional futures I I took a pretty heavy bias on those and got smoked pretty good, but Not a bad week certainly not in tune with the first week of the month that I've seen in Previous months this year. So that that's a that's a good thing But here's zero DTE. So a small red on zero DTE. I'll break these down a little bit More individualized so my AM ratio trades Three of those two were losers minus 6k on those My challenge portfolio continues to do really well Regardless of the environment, which is kind of cool So plus 11 8 in my challenge portfolio If I look at each one of those individual Strategies, we've got the want my 1 DTE Three out of four winners plus 3,000 my one to one Plus 3200 my 3 2 plus 1100 My pH only got tron to one and tron to two because toss was having some issues Tronch three would have been a winner as well but plus 2400 on those and then my ricks One small winner or excuse me one small loser that was actually a bot error my bot fired and it shouldn't have so I Turned around and closed it So that was minus 225 then the the other real one was plus 2100 That continues to do well My end-of-day magic my home's trades continue to do well now some of these I'm starting early Like this one that wasn't a true end of day like I teach it, but Still worked out really well, and then $2,000 one there so plus 4500 on my my home's trades for the week No FOMC Doing a 1 DTE hedge now I'm using rut a little bit red For the week, but that's that's doing well JSP's One was Mechanical and that was good for plus 1500 one was discretionary minus 4400 That goes in line with what I was saying about taking an assumption on Friday Indie X A little bit red on the week minus 2500 pH Let's just do all my pH is here. So this is my power hours not including my challenge portfolio Minus 7000 Actually that That is not including. Oh, I know I remember so I had some PM iron condors and some PM tranches that kind of got mixed in with my With my power hour, so actually let me just include those and that'll give a better picture. Yeah, so Still not showing All right, I gotta go I gotta go sort a couple things out here in Trader Sink, but regardless red minus 19 The PNL is all correct. I just got to re-categorize some of these trades because they got grouped together By mistake.  I think just yeah the two one loser one winner small red All right, so that's it for zero DTE Let's go to Directional futures. All right, so these were a these were a source of pain One of my size too large the other ones just I mean, they were just losers I had one big MOC loss minus 5k The others were kind of my Discretionary directional futures so took a hit in that account to the tune of 12k on the week Let's see ducks Yeah, no closing trades. Just a couple of opens Dynamic butterflies One winner one loser. I Actually closed this one thinking it was up. They're tosses having some issues with their PNL display. So I actually I was in a hurry and I didn't have time to Actually figure it out and I thought I was closing that for a winner ended up being a hundred thirty dollar loser, but net net on those two small green and Then dynamic calendars a little bit green for the week Had a B&B 12 small loser just all kind of small losers small winners Nothing nothing even over a thousand bucks on those I do have some good size on that I put on Friday heading into next week So hopefully those do well My calendar Account back at new all-time highs Not all due to calendars, but I'll go over that on the monthly Option selling on the option selling. Yeah, no closing trades there And then lastly portfolio margin Just one closing tray that was a winner as a golden shark the rest of these are still open So that's it my friends everybody have a good rest of your weekend Look forward to some fun trading this week with VIX above 16. Take care. Talk to you soon


The next item of business is a debate on motion 8600, in the name of Alison Harris, on the writers for the Signate, Dependence and Unity Fund, amendment Scotland Bill. I invite members who wish to speak in the debate to press the request to speak buttons. I call on Alison Harris to speak to and move the motion. Ms Harris, six minutes, or they're about, please. Deputy Presiding Officer, I'm pleased to open the parliamentary stage 1 debate on the Writers to the Signate, Dependence and Unity Fund, amendment Scotland Bill. I would like to thank my colleagues Tom Arthur and Mary Fee for their work in getting the bill to this stage. The bill was introduced on 18 May 2017 and is being promoted by the trustees to the Writers to the Signate, Dependence and Unity Fund. This is the third private bill to be introduced to this session and the second to be discussed in the chamber. I thought it might be helpful if I gave members a little bit of background to the fund before I outlined the purpose of the bill. The Writers to the Signate have a long history. The Signate was a private seal of the Kings of Scotland and its first recorded use was in 1369. Writers to the Signate began as clerks to the keeper of the Signate and were those officers of the court entitled to work on behalf of the Crown. The Society of Writers to Her Majesty's Signate in Scotland, the WS Society, was established in 1594 as the professional body of Writers to the Signate. I mentioned earlier that the Writers to the Signate have a long history. The Society believes that it is the oldest professional body in the world. Today, the WS Society is an independent professional body of solicitors. The Society is a not-for-profit corporation for public benefit and provides legal training, support in the form of library services, research and drafting services and charitable trust administration. It owns and operates the Signate library in Edinburgh. Historically, the WS Society looked after Writers to the Signate and their widows by making ad hoc charitable donations. The fund was formalised by private legislation in 1803 by providing for the payment of annuities to WS Society members' widows. The legislative rules governing the fund were updated by private acts of Parliament in 1955 and 1965. In 1982, the Writers to the Signate Dependence Annuity Fund Order Confirmation Act was passed. The 1982 act provided for the change of name of the fund from widows fund to dependence annuity fund, recognising that women were by then admitted as members of the WS Society and to reflect the opening up of the fund to orphans as well as widows and widowers. Most recently, the fund regulations were updated to cover civil partners of contributors to the fund. The fund is administered by a collector who must be a contributor to the fund and is elected annually by other contributors at the fund's annual general meeting. The committee heard that the number of contributors to the fund is 538. The youngest are in their early 50s and the oldest is over 100. There are currently 141 beneficiaries of the fund, known as a newtons, with possibly over 500 potential annuitants. Predictions suggest that the fund will continue to pay annuities into the 2040s. The promoter's memorandum states that the value of the fund was £55.5 million in April 2016 and the value of the current annuity is £8,400 per annum. The decision to close the fund to new members in 1989 was based on changes to the tax regime as a result of the Income Incorporation Taxes Act 1988. That made it more difficult for the fund to compete as a tax-efficient way of saving. Clearly, the closure of the fund meant that the pool of eligible contributors, from which a new collector can be elected, has diminished and will continue to do so. One of the objectives of the bill is, therefore, to remove the requirement that the collector be a contributor to the fund. That change opens up the eligibility for the post of collector beyond the contributors to the fund. The second objective of the bill is to amend the definition of actuary, as defined in the 1982 act. That would reflect the merger in 2011 of the Faculty of Actuaries in Scotland and the Institute of Actuaries. The promoter's legal advice is that it is not strictly necessary to change the definition as any court would interpret the term to reflect the merger of the two organisations. However, the promoters have included that provision for the avoidance of doubt. On the basis of evidence received, the committee is satisfied with the promoter's view that there are no alternative solutions that would address the problem presented by the existing requirement for the collector to be a contributor. It is also content to update the definition of actuary, as set out in the 1982 act. I move that the Parliament agrees to the general principles of the writers to the Signate Dependence and Urity Fund amendment Scotland bill, and that the bill should proceed as a private bill. Thank you, Ms Harris. I call on Tom Arthur for minutes, please, Mr Arthur. Has there been a change of plan for which I have not been informed? Well, I cannae guess. I now call on Mary Phee for minutes, Ms Phee. Thank you, Presiding Officer, and apologies for the mix-up. Can I start by thanking the convener, Alison Harris, for moving the motion today? As this is only the second private bill that is debated in the Parliament in this session, I thought that members might be interested to have some brief information about private bills more generally and why they are necessary. A private bill is introduced by an outside promoter and is about making specific changes to the law, affecting the promoter rather than about changing the public and general law. Traditionally, many private bills are about updating bits of private legislation that were passed some time ago, which have been increasingly outdated. In this context, there is always a right for people or organisations who consider that a private bill would adversely affect their interests to formally object to the bill. However, in some cases, including this one, no such objections have been received. Nevertheless, the Parliament has an obligation to scrutinise the bill and to satisfy itself that the changes to the law that the promoter is seeking are both reasonable and appropriate. As with public bills, most of the detailed scrutiny of a private bill is undertaken by a committee. However, there are a number of important differences between the two types of committees, including the fact that private bill committees are always ad hoc committees set up to scrutinise a particular bill, and any MSP who has a close connection to the area affected by the bill is prevented from serving on the committee. The first stage of the private bill committee process is almost equivalent to stage 1 of a public bill, and it is known as the preliminary stage. There are three aspects to the committee's task at the preliminary stage. To take evidence and reach a view on whether the general principles of the bill should be approved, to reach a view on whether the bill should proceed as a private bill, and to give preliminary consideration to any objections. If the Parliament approves the general principles of the bill and agrees that it should proceed as a private bill, the bill goes on to consideration stage, roughly equivalent to stage 2 of a public bill, and then on to final stage, where the Parliament debates whether or not the bill should be passed. The committee is pleased to support the promoters of the bill in their quest to remove the stipulation that the collector is a contributor to the fund and to substitute a new requirement that the collector shall be an individual. That would open up a wider field of potential experienced candidates for the post of collector and would ensure that the fund can be administered effectively in the longer term. The committee unanimously supports the change in the definition of actuary as laid out in the 1982 act to reflect the merger in 2011 of the faculty of actuaries in Scotland and the Institute of Actuaries. Thank you very much, Ms Wee, and please forgive the confusion. I do not know where it came from, but we will find out. I now call on Tom Arthur to close the debate, please. Four minutes, Mr Arthur. Thank you very much, Presiding Officer, and I apologise for any part that I had in the confusion. I would like to begin by thanking our convener, Alison Harris, and the committee colleague, Mary Fee, for their contribution. I also placed on the record my thanks to the committee clerks and SPICE for their support. I wish to use my contribution to expand on the issues that the committee considered when it heard evidence from the promoters, specifically in relation to the provision about the identity of collectors. I will cover this by highlighting three particular areas. First, the committee asked if the writers to the Signature Society had considered any alternative approaches that would enable the fund to continue to meet the existing requirement for the collector to be a contributor. Solution such as reopening the fund or changing other eligibility criteria for the collector were suggested. The deputy keeper said that there were no alternative approaches and referred to an actuary report that advised against reopening the fund to new members. Essentially, the reasons that prompted the scheme closure in 1989 still apply. We, as a committee, are content with the explanation and agree that there is no alternative to widening the eligibility for the post-off collector. Secondly, the committee asked why the collector had to be an individual and whether employing a firm to undertake the role would provide greater flexibility and expertise when an individual. The promoters stated that the provision was based on consultation with the contributors who wanted to have a named individual in the role. The promoters stressed that however the contributors recognised the role can only be undertaken with the support of a professional firm behind the collector. Indeed, we were told that all collectors in living memory at least have had the support of their solicitor's firm. We did inquire further as we wanted to satisfy ourselves about the legal responsibility for any work undertaken by the firm, but the promoters have assured us that this relationship, which is akin to the solicitor-client relationship, is one that all contributors are familiar and content with. The promoters confirmed that legal responsibility for all the functions carried out by the collector, whether carried out directly by them or on their behalf by colleagues rests with the collector. We are content with the explanation and note that all the contributors, as former solicitors, will be more than familiar with the solicitor-client relationship. Finally, we were interested in what longer-term plans the promoters have in place for the management of the fund when the pool of contributors is significantly diminished. The promoters spoke about the likelihood that, at some stage in the future, the fund would be converted to cash and annuities bought. At that point, the fund would be spent and so wound up. We agree that that would seem the most appropriate way forward. With those assurances, the committee recommends that the Parliament agrees to the general principles of the Riters to the Signate Dependence and Unity Fund amendment Scotland bill, and that the bill should proceed as a private bill. That concludes the preliminary stage debate on the Riters to the Signate Dependence and Unity Fund amendment Scotland bill. It is now time to move on to the next side of our business. I have a short pause before we move on.


Hello everyone, welcome to the second lecture in this week on finite time stability. So, what were we looking at last time? In the previous bit what we have seen is the need for looking at non-Lipschitz systems or systems which have non-unique solutions at the origin. So, that is how that is what we formalized that the Lipschitz property essentially means that solutions exist and are unique. However, because we are looking at notions of finite time stability it is not quite possible to have unique solutions from the origin especially in backward time and therefore we do not require it even in forward time all right. So, that is why we settled on the notion of having uniqueness in forward time everywhere, but at the origin. So, this is the notion that we choose to work with while defining the notion of finite time stability. So, that is the system we were working with it is an autonomous system there is no explicit time dependence. So, it is of the form y dot equals f of y and on top of that we have that f is continuous in the entire domain containing the origin f is locally Lipschitz in the domain, but excluding the origin itself and f 0 is 0 this is simply the standard assumption that is required to ensure that 0 is the equilibrium of the system right. Now, this essentially guarantees that solutions exist for all initial conditions in the domain and this Lipschitz condition essentially guarantees that the solutions are unique for all initial conditions in the domain, but at the origin yeah. So, we do not want to deal with the origin because there is possibility of non-unique solutions at the origin if you are demanding finite time stability yeah right. Now, we also defined the notion of finite time stability and how do we define it? We say that the origin is finite time stable if there exists a neighborhood n which contains the origin inside the domain D and a settling time function which maps the neighborhood to some time 0 to infinity and the settling time is exactly what you would understand from it it is the time at which the solutions go to 0 ok. So, obviously as you can imagine if you start at the so, so this settling time function essentially maps initial conditions to the time in which these initial conditions go to 0 ok. So, obviously if you start at 0 since you are already at the equilibrium you would expect the settling time to be nothing but 0 itself and we also want that T x 0 actually converges to 0 as the initial conditions converge to 0 right. So, notice that we never say equal to here right because we do not want to look at initial conditions at 0 because our assumptions are on sets that exclude 0 or the origin yeah. So, therefore, we always talk of convergence to the origin and so on ok. So, the second requirement is the second requirement of finite time stability is exactly the convergence the finite time convergence it says that if your initial conditions are in fact, in this neighborhood excluding the origin then we have unique solutions right which depend on initial conditions on this time interval which is closed on the left and open on the right. So, it is from 0 to T x 0 and it is important to note that the solutions are never 0 in this interval, but as time goes to this value yeah we do not say equal to again right because this is not part of the interval. So, as time goes to this value T x 0 we say that x actually goes to 0 ok alright. So, again we are carefully excluding 0 from the mix yeah we still want to converge to 0, but we never want to start there and so on. I mean if you are starting there that is considered as a special case where you are starting in the equilibrium and staying in the equilibrium. So, there is no notion of I mean we do not have to the finite time that we get is 0 anyway right the finite convergence tend that we get is 0 anyway that is what is encapsulated here right, but we do not want to start at 0 otherwise ok and we are always looking at converging to 0 yeah. So, limit also means converging to 0 right and this last requirement is obviously Lyapunov stability that I am not going to repeat we have already seen that Lyapunov stability is a requirement of SM dot x stability as well and therefore it is, but natural that finite time stability notion would also have Lyapunov stability as one of the requirements ok great. Now that we understand finite time stability we have a few conclusions that can be directly obtained again I am not going to prove any of these things in this course this is a very short introduction to finite time and sliding finite time stability and sliding mode control right. So, we are simply going to state a few results so the first sort of proposition which is an almost like saying an outcome of finite time stability is that is what we state here 0 if 0 is a finite I will just say if 0 is finite time stable for one or the system that we already considered and let and we therefore have this we already have this neighborhood n and settling time function t corresponding to this finite time stability definition then what is understood is that a the solution what is understood is that the solution is uniquely defined and most importantly it is understood that x t 0 x 0 is exactly equal to 0 for all t greater than equal to tx all right yeah. So, once you essentially how one would say this is that is uniquely defined for all x 0 in the neighborhood n ok what this is sort of trying to say is that once you fix an initial condition you have a very uniquely defined path and the important thing to remember is that I mean it is sort of understood just from the second piece here that once you that you will reach the origin in this time tx 0 and what happens beyond time tx 0 well you are already at the equilibrium so you are not going to move unless there is some disturbance but we are not considering the disturbance cases here this is for the purpose of defining for a disturbance free or a noise free situation right the notion of finite time stability therefore once you reach the origin which is an equilibrium we are never going to move therefore that is what is essentially said here that once you reach the origin you will always stay there for all time beyond right it makes sense so this is not a very complicated motion ok. The next thing to remember is that the solution the way this is written is has to be careful here actually there is a dot here which means that the purpose of writing this dot is it is uniquely defined with respect to the time right and in here we say that x t the solution is actually this is fine I will just keep the time here it is evident that it is uniformly defined in time right and here I am going to say it is continuous for all x 0 in a neighborhood of the origin uniformly in time ok. So, the first one says that the solutions go to 0 and will remain there forever the second one says that the solutions are continuous in the initial conditions ok this is important ok and the final assertion of this proposition proposition is that t the function t of x 0 is unique and again continuous in x 0 ok. So, these are the important sort of outcomes from the definition of finite time stability ok. Now, what do we want to do? Obviously, we have always seen that these notions of asymptotic stability these definitions never really helped us right. So, what we really want to do is to sort of have some Lyapunov like conditions ok. So, that is really what we would like to do have some Lyapunov like conditions to characterize finite time stability as well ok and so, that is sort of what we are moving towards right. So, let us see how to state this I am wondering if all right all right that is fine. So, I will just call this Lyapunov like characterizations ok I am just looking at Lyapunov characterizations for finite time stability ok all right let us see let us see. Now, suppose I am going to start with a more but I am just going to directly jump into the simpler case where and we already know the notion of v and so on and so forth at the Lyapunov function itself. So, we define as before v dot of x as del v del x f of x for v in c 1 right. So, if you have a continuously differentiable function v then you can actually make this kind of a definition for v dot ok all right and and this by the way this works even for this sort of special case where you have solutions which are you know unique but not at the origin and unique in forward time all right. So, this Lyapunov derivative idea is still valid here yeah that v dot turns out to be exactly this all right. So, what we need to understand is that important v dot is well defined in d removing 0 right because our solutions are well defined in d removing 0 ok all right. So, what is the main result? So, what is the main result? This is let me see Lyapunov I just call it Lyapunov theorem right I will just call it Lyapunov finite time theorem and what does it say? Suppose there exists a v which is continuously differentiable and has the following properties v is positive definite right this is a standard requirement I mean v is just seen as a function of some x therefore, we just need to verify the positive definite of v we already know how to do this. Next v dot is continuous well v dot being continuous is already evident from the fact that v c 1. So, v dot is negative definite on the deleted neighborhood right on the deleted neighborhood of the origin right. So, it is negative definite, but you need to verify only on the deleted neighborhood of the origin. So, yeah so you do not need to. So, if you remember negative definite has had two properties that you check has had two conditions to verify one is that it is the function is 0 at 0 and it is strictly positive for all nonzero values ok. So, in this case you just need to check that it is strictly negative for all nonzero values of the state and that is it and finally, we want to you need this special condition right that there exist k positive and alpha in 0 1 and a neighborhood v inside d right of origin such that v dot plus k v to the power alpha is less than equal to 0 on this v deleting the origin ok. If you have this if you have these properties then apologies then 0 is finite time stable also you can actually find or upper bound the settling time function right as t x 0 is less than equal to 1 over k 1 minus alpha v of x to the power 1 minus alpha for all x in n where n is as defined in the finite time stability definition ok. Now, it is important to sort of try to understand this result right I mean the first one I mean the Lyapunov finite time stability theorem is not too different from the typical asymptotic stability theorem. In fact, the first and second look rather similar right. So, we require that v is positive definite and v dot is negative definite on this deleted neighborhood on top of that we have this kind of a funny convergence type of a condition which is that there exists some positive scalar k and some exponent alpha between 0 and 1 yeah strictly inside 0 and 1 yeah never 1 and never 0 and a neighborhood v inside d of origin such that v dot plus k v alpha less than equal to 0 right. And if you have these three conditions we are in fact claiming that you have finite time stability ok. In fact, if you would understand that from a and b you would be immediately able to claim some kind of Lyapunov stability yeah I am not claiming I am not saying that I am giving a proof of this theorem, but I am just trying to indicate why this might work yeah. So, from a and b itself it is not difficult to see that you would have Lyapunov stability the only thing that is left for us is to conclude the finite time convergence and for that we can actually focus on this third statement right. If I try to look at this sort of third statement a bit more carefully yeah it basically says that I have v dot is less than equal to minus k v to the power alpha. And if you see this is a scalar differential inequality yeah it is not differential equation, but it is a differential inequality right, but it is not too difficult I mean you can deal with this in an exactly similar way as you would deal with inequality right. So, this will be something like and simply again this is because of the fact that v is positive definite that we can all do this. So, v is scalar value so it is actually scalar differential inequality right. So, I can actually do things like this and integrate both sides right and if you see v alpha is less than 1 right. So, I will get something like I will get something like v 1 plus alpha I guess divided by 1 plus alpha. I am just trying to see if I am doing this right no I apologize this will be v not 1 plus alpha, but 1 minus alpha because alpha is in the denominator right. So, this is 1 minus alpha and this is going to be less than equal to minus k t yeah and so if I solve from here for the value of v what am I going to get? I am going to get v is actually less than equal to minus k t or minus k times 1 minus alpha t and this to the power 1 by 1 minus alpha right this to the power 1 minus right right I believe that is okay I believe that is okay right and because so this is 1 over 1 minus alpha this is fine and you know that 1 minus alpha is strictly positive by assumption because alpha lies exactly between 0 and 1 right. So, this is strictly positive and therefore, this is strictly positive as well right. In fact, one can very easily show that 1 minus alpha lies between 0 and 1 as well right 1 minus alpha strictly lies between 0 and 1 okay. So, this is something that is right right right okay and now if I want to if I try to equate this to 0 right suppose I equate this quantity to 0 what happens all right. So, okay so I see that the expression here has been given in terms of the v itself all right all right. Let me actually try to see so the left hand side would have more terms that is what I am missing here so what I am missing here is like a v0 right. So, where v0 is equal to v at x0 right. So, in fact I am going to erase this and rewrite this carefully because I am going to have v to the power 1 minus alpha is less than equal to k v0 yeah that is what it makes sense right. This has to be v0 minus k 1 minus alpha to the power t correct right this is exactly it. And now if I make sure that if this equal to 0 happens then I know that v is obviously positive definition it can never be less than 0 right. So, I know that v will exactly be 0 right we will exactly be 0 right and if v is exactly 0 by positive definiteness I also understand that my states will also exactly be 0 right. So, that is sort of what I am trying to yeah yeah exactly exactly. So, this is exactly what it is 1 minus alpha this was also 1 minus alpha. So, I should not miss this exponent here as well right. And now from here from this condition I know that the t I need will be actually equal to v0 to the power 1 minus alpha divided by k times 1 minus alpha right. And that is exactly this bound yeah in fact this should be not x but x0 yeah this is not x, but x0 right this is a function of x0 right. So, that is exactly what we get from here okay. So, this so obviously this is the time we get and this is obviously conservative because all Lyapunov analysis is conservative we already understand that and that is why we say that the settling time is always upper bound yeah you never arrive at an exact value of settling time function, but you usually always almost always arrive at a upper bound for the settling time function okay. So, I hope you understand now that from the first two you get the Lyapunov stability that was the first requirement and the next requirement was of course that your finite time convergence which you get from here and in fact the expression for the settling time function is also rather easy to obtain just by integrating this scalar differential inequality condition right that we have written here. Just by integrating it carefully I was of course not doing it properly to begin with, but now that you have done it carefully there is also the value at time t and the value at initial time right at 0 and then divided by 1 minus alpha. So, this is this integral evaluates to this in fact right. So, this will actually be from yeah if you are being careful this will be from v0 to v and this will be from 0 to t right this definite integral and that is what we have done here now and you just get a minus kt and once you have that you know that you just need to equate this guy to 0 because that means that this is going to be exactly 0 because v can never be less than 0 and once you have that you know that the t can be calculated like this all right okay great. So, we are left with a little bit of the converse theorem and we look at a simple example in the next session.


Welcome, everybody. So today I'm going to talk about Clang and how we can use it on Embedded Linux. You might have heard of it being used on Android and iOS. So today I'm just going to present what I have done for it to work on Embedded Linux and what the limitations are and what different advantages and disadvantages are. So this is essentially the agenda. And feel free to ask questions or if you have any comments in between. I would love it to be more interactive session. So we'll talk about what Clang is and what the project's goal primarily are and how we can do cross-compiles using Clang. And how far we can take it to make a system compiler for Embedded Linux. And I've primarily worked with Yocto as my framework. So essentially I'll also talk about how Yocto could be used to generate Clang-based SDKs and use them. And then I'll go over some of the additional tooling that Clang provides in addition to the static compilers. And of course it also has runtime and the compiler runtime. And then I'll also go over how that runtime can be used instead of GCC runtime in your applications if you wish to use it. So what is Clang? Clang is actually a front-end for CC++. And it uses LLBM infrastructure to generate the back-end and the code generation. Primarily it is CC++ and Objective-C. So there aren't many other front-ends. And LLBM is actually a long-living project. Clang was added afterwards. So it's a reusable infrastructure to do various compilation technologies. People have used it for dynamic compilation for various other use cases. The latest release is 3.9. Most of my work is based on 3.8. And some people pronounce it as C-Lang. It is actually Clang. So I've included how it is pronounced. So the goals of the project are to be GCC-compatible. In fact, it implements all the extensions that are documented by GCC. And some extensions which are used in softwares and are undocumented, they were missing. But some of them are not implemented because the project thinks that they are not used as commonly and they are hard to implement. So we'll go over a couple of those extensions which actually came up in Linux kernel. And it intends to be IDE friendly. So it integrates into or it has one of the goals to integrate into different IDEs like Eclipse and QT Creator and others. And it uses a BST-like license, a LLBM BST license. Nowadays, there's a discussion actually going on to relicense it under Apache 2. And so if you are interested in that discussion, it is going on mailing these days. And it conforms to ISO CCC++ primarily. So it doesn't support Fortran or any other language front-end, if you wish for. So it's actually library-based architecture. So the whole compiler is consisting of several libraries. And the reason being that they consider themselves to be embeddable and pluggable. So you can write tools basically and invoke all those libraries in your code, if you wish to. So its pluggability is in core office architecture. If you want to design more tools for code analysis or any other tools, then it's very easy to use it and extend it. So you will see that everything is lib something. So if you have a parser is lib parser and you have front-end as libcfe and everything is a library there. And user-friendly diagnostics. So this is one of the goals that they always want to be very friendly. Many of you who do C++ would be knowing that you get very cryptic messages sometimes. Error is elsewhere. And the messages coming are very cryptic, very difficult as a user. So it tries to be very friendly to pinpoint the error messages when you are compiling the code. And it also actually offers fix it hints when it can. So it will actually point you what you could do to fix the code, which I find pretty cool. But so one of the side effects of this goal has been that GCC also has improved its diagnostics quite a lot. Starting 4.9, 4.8, the whole diagnostic framework was rewritten. And a lot of new diagnostics were added. And even color, you can have the color diagnostics in GCC now, which was a big taboo in the past. So even today, actually, I compiled a program not long ago. And I see that Clang still has pretty good diagnostic support. So if you can see. So I have actually a small test case there. So it's intentionally written wrong. So there is a semicolon missing after you declared the structure. But now, if you compile this, for example, using Clang, then you get the pinpointed error. So let's try what G++ tells us. So somewhere the error is there, I know. But right now, I cannot scroll it. Oh, you want to know the version? I don't know. It's not 2.96, for sure. So I'm finding it a little challenging to see. I think the Clang is 4.0, which is upcoming release. And GCC is 6.0. 6.2. So it's actually Arch Linux. So whatever Arch Linux provides me. So it's fairly recent, both of them. So one of the goals they have is to use less resources and speedy compile. And so one of the tasks I did with that is I used the WebKit. Actually, there is a WebKit for Vellan project. So I compiled it using Clang and GCC, Clang 3.9, and GCC 6.2 again using the Yocto framework. And I didn't draw the graphs and percentages, but you can do that yourself. So Clang, it spends 2,297 seconds to compile. And with GCC, it spends 2,838 seconds to compile it. So that's roughly, I don't know, maybe around 30% probably or something like that. So it has also got some of the options to split your debug information such that it can speed up the linking time. So obviously, I didn't use that option to compile WebKit there. But if you use that option, I guess the linking time would reduce even further. So you can get it even better than 2,297. So minus G split dwarf is an option that you would use if you want your link step to be a little faster. So who is using Clang today? Debian Experimental has it as an optional compiler. So you have around 90% of packages in Debian Archives which can be compiled using Clang. LLVM Linux project was initiative to get the Linux kernel compiled with Clang. And so they have done a lot of work on both sides where they made the kernel compile with the LLVM Clang as well as there were patches that were required for Clang. Free BST uses it as a system compiler now. And OpenMund revised one Linux distribution which has done a lot of work. And they have switched since 3.7 version of Clang that now Clang is their primary system compiler. And we'll cover some of the open embedded work that what we have done here. And it's being added there as a external layer as well. So the current norm, we have embedded Linux is primarily cross-compiled. And GCC is a primary compiler. And it supports many architectures. And it's a very strong point for GCC. And if you use one of those architectures, it's a very to-go compiler for all those. There's a long list if you go there. I listed a few of them here. But this list is more ever-growing. So whenever there's a new architecture, it shows up. But primarily, if you have a wide variety of CPUs to worry about, GCC is a pretty good choice there for that. Clang right now has a limited set of architecture support. Primarily, it has ARM ARM 64, X86 X86 64, PowerPC 64 MIPS, and MIPS 64, Cold Fire. And there are a few others that I might have missed. But it's not as extensive as you will find in GCC. So be aware of the fact. So how are the tool chains organized? So just the sequence. What are the components involved? You've got binutils, which is your binary utilities. And then you've got the cross-compiler, which provides you the CC++ or any compilers. And then you have a standard system library. You have a choice between G-Lib C, UC-Lib C, Masso. And then you have debugger. Pretty much GDB is in the game. And the build sequence looks something like this. So you have to have all the prerequisites. So prerequisites include all support libraries that you need to build the compilers and the supporting tools. Once you have that, you build your binutils. Then you bootstrap GCC. Then you have some portion of kernel, essentially the API headers. And then you have Lib C headers because there is a bit of cache-22 to solve.  So you can build GCC. That's where you do a full cross-build. So GCC can do shared libraries and stuff. And all this is done to make the GCC's build system happy. So it is faking all those things underneath to enable all that support. And then you build full Lib C. And then, of course, you build runtime and stuff. So that's how the whole tool chain I explained in two minutes. But it's a complex process to put together a cross-tool chain based on GCC. Clang comes, actually, with a cross-compiler. So you use a single compiler, actually, to compile everything. It's so cool. I've been doing cross-compiling for long.  And it knows that it has to do cross-compiling. So I don't have to do all the cross-compiled builds and everything. In fact, the compiler I just showed you on my Arch Linux. I can turn it into a cross-compiler without any issues, just creating sim links, which are like ARM, underscore, Linux, Clang, and whatever. So in the grand scheme of things, if you look at the build sequence I just described, we still remain same. But it's actually going to simplify the build because we don't have to do the full, these two-stage GCC bootstrapping and stuff. So finally, it looks something very simple where you build the b-nurals, you build the Clang, you build the headers and libraries, and then actually this libc header should go away. And the full libc, and you have everything. So it simplifies the tool chains themselves, essentially. And if you care for more than one architecture, then you don't have to have two different cross-compilers. You can just have one and use it. So if you want to do cross compilation on your desktop for embedded Linux distributions, you can install Clang on any distribution you use. And then you could download any of the pre-build tool chains from either Yachter Project or Linaro, which put together the cross tools for the architectures that Clang supports. And Linaro does, of course, for ARM. And you would then just install these tools. And yeah, I have it in very small font, but I hope you can read it. And then you just specify the target and a GCC name. So there is an option to Clang. And you tell it what your triplet is, and that's it. And you are able to cross-compile the applications using Clang. Why you install the cross tool chain is we'll cover it slowly. But there are certain components which are still missing in the whole sequence. For example, it does have a built-in assembler, but it's not yet fully, it can't do everything right now. So many times, many applications wouldn't work. So you tend to use the BNutals provided assembler. Linker is the same way. It does have a LLD project, which is still under development. So not everything would work, but you can fall back to use GNU Linker. And that's why you use the cross BNutals to complete the gamut of the things. And of course, in this case, we are using the compiler runtime also from the GCC tool chain. That's why the cross tool chain provides that when you're building the application. So this is just application only. And as I just said, that you will use GNU BNutals. And you could actually use the same setup. Now you have actually a cross tool chain. So essentially, you can build anything with it if you want. You can build the kernel. Most of the kernel work can be done using this cross tool chain as well, where you will deploy Clang to compile kernel. And so it's very easy to use in this way, it to do cross development. So not everything yet is compilable, as I mentioned. Linux kernel, there is a lot of work done by BN and others from Linux Foundation. And all those patches, I think most of them have been merged. So there are certain patches, I guess, which are still remaining. But I think most of the subsystems, they are able to compile using Clang. And X86 kernel, I think they ended up booting also. But there is still some work left there. System C library, G-Lipsy, there is a work that is under progress to use Clang to compile G-Lipsy. But it's not yet complete as well. So there is a wiki page if you want to contribute or look at the status, you are welcome. But it's still work under progress. G-Lipsy community is interested in getting that option to compile G-Lipsy using Clang. So a hybrid approach is needed. As of now, you will need two compilers if you want to create a full embedded Linux platform. Chromium OS has done similar things. They have a Clang overlay. And very similar to what we will see, what I did in Open Embedded, where you can choose which compiler compiles what. And that works during the sporting times when everything cannot be compiled. So you can effectively choose which applications you would use one compiler or other. So all this work for Open Embedded is in an external layer. Some of you know Open Embedded. There can be extra layers that you can layer on top. And so this is called MetaClang. And all the work is housed there. It has added a variable you could set called toolchain. And you can choose if you want your application or your package to be compiled using GCC or Clang. And then there is a global default. If you don't specify anything, then you can also set this globally. So it defaults to that. So you can also say, I want everything to compile with GCC, but just this application, I would like to use Clang. Or you can do the vice versa, where you say compile everything with Clang and just stick to these few packages to use GCC. Then there are certain packages which don't compile with Clang. So they hard code the toolchain variable in there. So they don't offer the option for you to compile them with one or either. So that is the current setup at high level. So building it is easy. You can all just clone the Yachter project repo here. I've used the Pocky, but you can use Open Embedded Core or any other distribution which are based on Open Embedded. You just have to add the MetaClang layer. And that basically brings the Clang into your build. So you can then easily build it. So there are some things that are non-Clangable yet. And there is a list I have towards the end of my presentation that I'll show that the list of packages that are yet not Clang ready. But there are a few common use cases that you find which are not supported in Clang. And you might find those. So some specific GCC extensions that are not implemented in Clang. VLAs is one of those. And there is explanation why they don't support it. As I said earlier, they think that it's very less used, but it's very complex to implement in the compiler. So that's the reason why they don't implement it. Nested functions, they were always bad. So they were not specified in the standards either. So Clang doesn't have it. So most of the time, people ended up cleaning up their code to not use nested functions. And it also has one problem where it pretends to be, it defines GNU-C to be 4.2. And that's actually a very old compiler. And it supports way beyond that. So if you define GNU-C to be something newer, to like 4.9 or something, then it behaves a lot better to compile your applications. But the problem is not that it should do it this way. Probably the application should look for the features they are looking for rather than checking the GNU-C version and deciding whether what's supported or not. But yeah, you will see that why application is suddenly disabling or thinking that my compiler doesn't support a feature. The most probably reason is they are checking for this underscore-underscore-gnu-c variable and making that decision. So the right fix is to really check for the feature you're looking for. So many of the fixes we have done either have been submitted to the packages upstream directly. And they have been accepted. And some we have hosted on the different open embedded layers because either there is no interest in upstream or they are not accepted upstream. So we keep following up with the upstream on a possible solution for those kind of portability issues. Some of them have been fixed. They are upstreamable, but hasn't been upstream just because of laziness. So you can build images. What you can do today if you don't do anything, you can build basically graphical images as well as console images, fairly complex images using Clang. Although it won't be 100% Clang which is compiling everything in there. It will use a different compiler for G-Lib C. It will use GCC. And then there are other packages that will be compiled using GCC. But somewhere around 80% to 90% packages you can compile using Clang when you consider the system. You can also generate SDKs actually using Clang Open Embedded. So what it will do is it will generate the SDKs with both the compilers. It will have GCC as well as Clang in there. And it exports to new variables called Clang CC and Clang CXX. So if you want to use that SDK and you want to keep it portable, which means you want to use one or another and you want to test it, then you can just define your CC in your environment to Clang CC and vice versa so you can switch between the compilers easily. So that's the reason for this to be there. So all these are in the SDK environment. When you install the SDK, you will get all those variables already in your environment. So I've done a little example here, the GNU Hello World. So it's fairly simple to compile it using SDK and setting CC to Clang CC. And you can easily then compile using a cross compiler based on Clang. So you can also use same to build a kernel. So I tried the LLVM Linux kernel, which basically has all the patches. And I tried to build it for ARM64. But I ran into some compiler errors when I tried. Maybe it is fixed now. I'm not aware. But there you go. You can start contributing patches to kernel if you're right there. So I didn't myself bother to submit patches. But I think it's a good opportunity for some of enthusiasts here who might want to use Clang. So talking of Clang, we have more tools there actually. That's one of the strong factors that you will get with Clang LLVM. And one of them is the Clang has a static analyzer. And you can easily build it along with your rest of the Clang tool suite. And I've just shown here how you would run it on muscle C library package. And it actually produces a very nice HTML output. And you can basically go through it nicely, look for all the issues it reports. There are a lot of false positives you will get. So I have uploaded actually a result there. So offline, when I upload my slides there, you can go and look for those. So the muscle scan, I did report to the muscle community. And at least two fixes came out of it. So that was not bad. These fixes were applied to the muscle upstream. There are more analysis, more tweaking can be done, and probably more issues can be figured out. But it's easy to configure for any of applications that you might be interested in, at least from the static analysis point. It's worth it. So it has more tools. Given the API nature of Clang, there has been a slew of tools that has been written around the infrastructure. So there is a Clang check actually. Many places that I've worked and maybe you already are doing that as well, people have syntax checking. So people will always say tabs versus spaces and all kind of stuff. So Clang check actually helps in that sort of scenarios. You can deploy Clang check and get rid of all those problems. And it can be easily integrated into ID, stuff like that, if you have IDs. And it's very prompt in also it uses this fixit mode that I just explained that it can warn about those. So it integrates into that infrastructure. And it nicely tells you, hey, you got a space here where you have defined it to be a tab or something like that. So you can easily fix your code as per your coding policy, whatever you have. So you can encode that. So Clang format is actually a little bit more. It reformats your source code files. If you have that, again, the commit policies that you like to enforce, and you want to convert in large projects over there, Clang format helps with it. You can reformat all your project and start from there and then deploy a Clang check on every commit. And it also have a lint too called Clang tidy. So you can run Clang tidy for your development. So there are more tools, so I'll not cover all of them. So it's also providing some runtime. And we'll talk about the runtime a little bit more here. And there is some sanitizer work that is pretty cool as well. GCC also has got sanitizers now, but Clang has got more. And they started with this long before. So they are now actually getting into much advanced stages of the sanitizers. And they are becoming quite useful. So Libc++ is actually a C++ runtime implementation that you know Libstead++. So it's a direct replacement for that that is implemented by the project. And it comes in two different libraries. One of them is the Libc++ ABI and alone is Libc++, which implements the STL. And there is another library for unwinding support called LLVM Live Unwind. So as you can see, you could specify minus STD option to Clang to choose which C++ runtime you would like to link to. And you can choose STD Lib to be Libc++ or LibsteadC++. So it's a nice way to toggle between those two. One thing you have to be careful is that it's not ABI compatible with Libstead++. So if you have an application which then loads another library which depends upon Libstead++, then you might not get it working together. So if your application needs standard C++ library, it can be either Libc++ or it can be Libstead++. It can't be both. So given that you just do that analysis internally, you can get it to work. The good thing about Libc++ is that it's almost 50% smaller and 30% faster in execution. So and GCC has changed the Libstead++ ABI in GCC5. So that created more problems for Clang, which they actually fixed in Clang 3.9, so which is now it can deal with the GCC5 transition from the old Libstead++ ABI to the newer ABI. In order to support the newer C++ standards, GCC has to do that. So the other component it provides is called Compiler RT, which is the C runtime. So it is providing you all the compiler built-ins and it has a full support for LibGCC interfaces. And then it also has runtime for sanitizers that I'll just cover in the next slide. And also for profiling, there is support for supporting the profiling and coverage collection. So there are several sanitizers here. Address Sanitizer is pretty good. And Thread Sanitizer, so look through those. They're easy to configure. And basically, there are just options that you will invoke with Clang. And you can utilize them. But many of them don't work on all architecture. So that is a work in progress for many of them. But if you use ARM and X86, you are pretty much covered most of the time. But if you are on MIPS and PowerPC and others, then they lag in getting all those implementations a little bit right now. And so Lib Unwind is actually a replacement that you could do for LibGCC exception handling library that you have. So you could use the Lib Unwind, the LLVM Lib Unwind as a replacement for that. It implements the HPE Lib Unwind that we all know, all those interfaces functions. So what I did is I tried to create a binary that would basically have no lib straight plus plus or any of the C run time from the GCC compiler suite. And I was able to manage to get a C plus plus application with exception handling and unwinding in there to work by linking to the Lib C plus plus for STD Lib and compiler RT to do the C run time. And Lib Unwind to do the exception handling and unwinding part. So I know the fonts are a little small there, but what I've shown there is I've linked the application and dumped the needed sections of the library. And you would see that it doesn't list either LibGCC in there or libstreet plus plus .so in there. So it can essentially replace the whole run time. You wouldn't require that in there. So the limitations, not all packages can compile with clangable. We talked about that. So I have a link here, at least for open embedded. There is a certain list of packages that are non-clangable right now for various reasons. And the integration into the IDEs that we use in embedded Linux in general is work in progress. It works with Eclipse to a certain extent, but then there are others that it can get integration into. And upstream kernel doesn't yet compile. Those are few of the ones that I know of. And but every day you see that packages are getting compiled. So this list is shrinking as we move into future. So that's all I had. So if anybody have questions or rants, yeah. A kernel address sanitizer, which is a user space address sanitizer, which is used in the kernel. And now GCC allows that. Yes. What about the clang? As I see, this feature is an advantage of GCC above clang. That is true. I think, as I said, it doesn't yet provide that for kernel. There has been some, I think, one discussion on that. I'm hoping that it will get that implemented sooner. But I think I don't have any updates on whether this will get in there sooner or later. But good point. Yeah. So you said that some patches set up strings were refused by upstream packages.  They are still under discussion. You can put it that way. Why do they discuss? Well, most of the times, because it works, right? So it works, and if you don't have any other use case, then why do we make my life hell by changing the working code? So you have to understand that he may not have the means and stuff to test it out. So he doesn't feel comfortable taking such patches. Any more questions? Yeah. So I plan to do that work when I go home. So I don't have constant experience with doing the performance analysis, runtime performance analysis. But I would encourage you to look at what Fronix does. So whenever they come out with a newer version of either clang or GCC, they run all this kind of benchmarks. So you can see the progress that has been made in there. So I guess right now, if you believe those benchmarks and if they are done correctly, it's another subject. But I can just talk about the numbers. The numbers has been improving for clang over the period of time. And right now it is in a position where it doesn't matter. I think it outperforms other compilers in certain benchmarks. It doesn't in others. But if you look at the progress it has made from 3.0 onwards up, you will see that it has been getting better and better at a much faster pace. Obviously, being a new compiler, I think that always happens. Yes? Why do you have to invest in another compiler, two-chain, and not the effort to invest in making GCC better? If you ask me. So actually, redundancy and that is one thing that can do better. And you see it does not compile as a source to be added. And so if you take the best of the other one to GCC, there is a lot of effort based on that. Yeah, so you have more choices, right? So essentially, it's about also I like tools. So for me, I like more compiler technologies. So I like GCC. I like Clang. There will be a third one. I'll look at that too. So I think essentially it gives you there are certain advantages as we talked about, right? It's embeddable. So many people like it that they want to embed it into their own tools. And there were certain restrictions or stuff like that that a lot of users had felt in the past. And essentially, GCC code base is a little older. So rewriting those, I mean, you could have done that, obviously, but it's a similar amount of work than going out and doing it in a new environment. But I believe that it's a good thing to have multiple tools. So you don't have a single point of failure. And it actually also improves certain packages. It improves portability. So if you take a package and you compile with both of them, so I didn't cover here, but there are several cases where Clang found errors. It basically people were using subscripts as characters. So they will say, A, and then they will expect it to convert that character to whatever the numerical value is. And all those kind of things, it found so many hidden errors that were there forever. So in a way, it's a good thing. I think it's a better place being Clang on the sites, not so bad. If you look at it, it also provides some level of competition, so other tools improve. And overall, the whole community benefits. That's my perspective. You may not agree. More questions? So I guess, no more questions.


If you want a better, faster, more stable internet connection, don't worry, this isn't deja vu. It is the same topic as yesterday. Then you're gonna wanna watch this video for a slight update. Hello, welcome to Take One Tech, my name's Alec. And in this video, we are talking once again about Speedify, which we did cover yesterday, and I covered it in quite some depth because it is a great app. And Speedify, what that does is it basically lets you combine all of your different internet connections and then harness the power of them all together, but also provides a failsafe so that if one of them fails, it just seamlessly switches over to the other one, which is great if you are a live streamer, if you talk on the phone, on FaceTime, if you use Zoom, Skype, or any other VoIP products, Microsoft Teams, whatever it is, or if you just don't want your, frankly, internet to go down and maybe you're in the middle of a Netflix movie, something like that. Speedify can help with that. Now, I did do a video all about this yesterday, and so I'll leave a link up into the top corner, but somebody asked me a question, and I realized I had missed out a big part of it, or rather one crucial part of it really. And so this video is essentially just to consider an extension of yesterday's video. In case you weren't aware, my channel, Take One Tech, I do all of my videos in one take. To be honest, with no real planning, I just described the apps that I'm using as if I was explaining them to a friend, and then I upload the videos, and that is it. I don't do any editing, any post-processing, or anything like that, but one of the downfalls of that is occasionally, just occasionally, you realize you've just left something out, and that is actually what happened now. So I'm gonna put that right, and I'm gonna show you what I'm gonna talk about. I'm not gonna talk about everything that Speedify does. That was covered in yesterday's video, which I've linked up in the top corner, but what I want to show you is something quite important, really, because one of the things about Speedify, what it actually does, is it does combine all of your different network connections together, so you can have multiple wifi, multiple ethernet, if you want, if you've got more than one ethernet connection, and it combines those all together to give you the maximum speed and maximum performance, and as I say, has this failsafe, and one of the ones that I mentioned was about tethering to a mobile phone. In fact, I'll just come back while I tell you this, shall I?  One of the use cases I mentioned, or one of the ways that I use it, is I do have my computer tethered to my mobile phone. Now, I should point out that I have got an unlimited data plan on my mobile phone, which can be tethered, and in Thailand here, that cost me about a thousand baht, what's that? Around about $35 a month, something like that, is my mobile plan, which gives me all my mobile, and then also, as I say, unlimited data that can be tethered to my computer. So what it means is I could actually just do everything on my computer, on that data plan, and it wouldn't cost me anymore. So you do have to be careful if you are gonna add a mobile device to your computer as a failsafe backup, because if you have got data caps, for example, then you're gonna want to be careful. If you don't have a data cap, but you just get charged by the amount of data you use, then definitely this is something to be very considerate of when you're doing it, or rather take into consideration when you are setting this all up. That's the bit that I missed out, because you can actually set all of these things up in Speedify, and so that is what I want to show you how to do today. So I think I've covered myself there, haven't I? I think I've given enough sort of disclaimers and apologies and things like that. So let's get straight into the Speedify app. You saw this probably on the video yesterday, so here is where we've got different settings and things like that. I showed you how we've got different stream saves, stream urgency saves 28, the number of seamless failovers is now 33, so where it went from one connection to another. Seamlessly, the amount of data downloaded, or transferred rather, 17 gigabytes, top download speed, top upload speed, and so on. The crucial part that I didn't show you was for each of these Wi-Fi connections, not Wi-Fi, for each of these network connections, you can click on each one, and then you've got some more things that you can do. So first of all, you can set the priority. Now, the priority is basically, as you might guess, is how Speedify is gonna prioritize your connection. If you're using Ethernet and you've got Wi-Fi as well, and maybe you've got your mobile as a second, as another option, so let's say you've got three different connections, you would want to have your Ethernet as your set, as your primary. You would then probably want to have your Wi-Fi set as your secondary. Now, both these primary and secondary, it will actually use those simultaneously, but it's just showing you which one is the main one. But you've also got this backup here as well. And that basically is, as a failsafe, it will resort to that if the others won't work. But you can also set never. So it will look at all the different connections you have on your computer, and then use all of those that you've got available for Speedify. So if maybe you do have tethering set up on your computer, but you just don't want to have it be ever used by Speedify, you can totally discount that from being used here by clicking on this never. Or you may want it as just a failsafe so you could click on the backup. And it does obviously tell you about these here as well. So this is basically primary, I always use this connection. Secondary is use this connection for speed boosts and failover, but less than the primary. So as I just mentioned, and the backup is only use this connection for a failover when no other is available and does not do bonding for speed. So it's least used. The never one is obviously don't use this connection. So that's basically as I just explained. The next thing down though is we've also got data caps. So if you do have a data limit on your phone or whatever service you are using, then you can actually set these here as well. So if you've got multiple connections and some of them do have limits, you can set either a daily data cap. You can also set a monthly data cap. And that's simply if you just come in here, monthly data cap and then just click on the little toggle and then you can set the amount that you want and when it will reset sort of every 30 days or rolling or whatever you want to set that to. So you can see obviously here you can just set the particular date of the month depending on when your billing cycle is. And then here you can change the amount of data you've got just by clicking on it like that. So that is how you say change the monthly data cap. Just gonna actually toggle that off before I forget. Cause I'm unlimited on everything, fortunately. And the next thing is the over limit behavior. So when you hit that limit, what you can do is you can actually set a either you can either stop using it. So basically when you hit that data limit it's gonna stop using or you can have a amount. So basically you're gonna change the basically throttle your network basically. So that is the way that you can do that. And again, you can do that on a case by case basis on each of your connections. The other thing you can do is, so that is on an over limit. I forgot to turn off notifications there. Sorry if you heard that little email bomb coming in. So that is basically the rate limit sort of on the over limit behavior. You can obviously just send it so that it stops using it. So if it hits your limit then it just stops using the connection altogether. You can also set a just general rate limit as well on a connection by connection basis. So that's the same thing you just toggle it on and then select the megabits per second. So that might be something where you want to have for example, if you're connected to a mobile signal you do want to put a limit in that so that even though you may have some data available you don't want it to suddenly start but burning through it at a really fast rate if you, you know, I don't know if Dropbox kicks in or something like that. So that is how you can set a specific rate on a device by device basis basically. So that is essentially what needed to be covered which was not covered in the other one because it is quite crucial really. You might want these different rates on different things and I should say as well that this works exactly the same on the mobile. So you would have seen from the video yesterday that the mobile interface actually looks pretty similar to that and I should also clarify that the mobile application and this application on the desktop are completely separate. They don't necessarily, or they don't talk to each other. So you can set up this one on your desktop and then you have the mobile one that you can set up on your mobile to optimize your connections there whether you're using your cellular data you can also obviously use your wifi connections that you have and multiple wifi connections on your phone. The other thing that you can also do is if you've got the camera connection kit on a mobile that also enables you to plug in other things and one of the things you can plug into that is an ethernet connector. So using the little dongle on the bottom of your phone or the little connector on the bottom of your phone you can actually plug an ethernet cable in. So you could in theory have a mobile device that had a ethernet cable plugged into it also had cellular data and you could also be connected to multiple wifi connections as well and that would enable you to do that all on the phone of those all running through Speedify but they are as I say separate standalone applications between this and that. You get them all as part of your Speedify subscription but it's just that to know that you can set those all up separately and you don't have to worry that if you suddenly install Speedify on your mobile then somehow that's gonna start downloading data through or your computer's gonna start downloading data through that. So I hope that that is clear as well. Well, I hope that that has cleared up any confusion. If any of you were confused, I know some of you were. So I'm sorry about it not being more clear about that and I'll try and remember to cover everything in more detail next time. So if you found this useful then don't forget to hit the like and subscribe button you know where it is by now. I don't need to put my little graphic and if you didn't catch the video yesterday by the way as I say I will have linked to that at the beginning and I'll also put a link to it in the description as well. And I'll leave some more great videos over on the right-hand side. So don't forget to check those out as well. And until the next time, have a great day.


Now you will know the process of transformation. When we become part of social practices in a COP, we are labelled. We get identities. These identities define ourselves. How this process takes place, let's try to understand it. These ideas have come that we are defined, we are given meaning through social practices by joining local groups at micro level. They are micro cause, many societies in other words. We can't relate directly with larger society. This is a way to get connected with larger society that we join COPs. So these ideas which we are talking about in this module, they have roots in anthropological linguistics. What is that? The study of language in relation to social groups are COPs. These ideas of COPs and on the basis of COPs to understand gender, identity and other social categories, all these things have discussed by anthropological linguists. We participate in multiple COPs. The process starts from here. First of all, we get membership at a given time and over time. This is not one time joining. We come, join a COP, we live there, we leave it and then we join another COP. Sometimes simultaneously we join multiple COPs and it does not happen at a particular time. Rather it goes on throughout our lifespan. We are a member of a family, a support team, a religion and so on. Simultaneously at the same time we are members of these multiple COPs. These communities offer different forms of participation for men and women. Now on the basis of gender, how gender involves in these participations?  Its level is decided. Our view of gender is constructed in such participation. So this is how as a man and as a woman, we will understand ourselves and others. Sex differences are constructed through linguistic and social practices in COPs. In the previous modules too, we have said that when we take part, active part in social activities within the COP as a player, as an athlete, we are part of our team. We take part in sports actively. We know how to play certain games, how to know their norms and rules. This knowing takes place through language, through instructions. Our coach uses language to tell us all these things. We construct ourselves as different from and similar to others. So when we are involved in COPs as men and women by using different language patterns, different language styles and going through different, on the basis of gender, different social activities, we understand that we are different from others, why we are different from others and if are the same, why we are similar to them. For example, we may understand I am a heterosexual, middle class, Pakistani, professional and man.  I belong to middle class, I may be socio-economically related with a white color class, middle class people. I, by nationality, I am Pakistani. I am a professional person doing some job. So all these things are constructed through language and participation. This is the way, what you are doing, this is your definition. You are giving meaning to yourself, this is what is meant by the topic of this module, constructing meaning, constructing self, you construct your meaning, meaning of yourself by joining COPs. Gender is not matter of two similar social groups. Now through this participation, rather participation, we know that gender is not a simple state forward dichotomy, dichotomy that you are male, you are female. No, it is a complex of social categories because gender is not isolated. Gender comes through, comes to physical form through race, through age, through all these factors. So if we want to study gender, we have to study it as a complex of factors. These categories, what would happen? All these categories, they would make us kinds of people, types of people. They would categorize us, they would give us identity, they would give us meaning. Language is a tool that provides labels for these kinds of people. When you classify people into kinds on the basis of these social categories, definitely you need some label. It is language that provides that label. For example, language calls you hippy, druggy, phony, shoy person, and snops, liberals, and the khiladi, and jaleh, etc. So this is how language provides you labels. It defines yourselves. These categories are not directly visible. We create them, maintain and transform them when we join some COP. When we take part in social activities of a social group, that group may be our school, that group may be our club, that group may be a sports team. So through these activities, we create such categories. And we maintain them through these activities and through our talk about them. And we transform them with the passage of time. These categories are not static, they are not defined once for all. They go on changing and then language labels them. The categories are often, sometimes you go to COPs to define these categories, to get some label for yourself, and sometimes these categories themselves become basis for a COP. On the basis of these categories, COPs are formed. So this is again a mutual relationship between an individual self and a COP. To conclude, we can say that language labels us and labels give identity and meaning to us. We have talked about this process, but practically I want to involve you in some reflection through this task. People categorize and judge us through the labels they give us. Labels like Khiladi's, Jala's and Hippie and Druggie etc. which we have talked about in this module. Now recall your school days to agree or disagree to this statement. How in your student group, student COP in your school, how you labeled each other and how these labels led you to make certain judgments and opinions about each other. With the help of this task, you would understand the practical forms of what do we mean by this constructing meaning and constructing self.


What's going on guys? It's your boy dpj here today ridden by destiny video until today We have top five sniping plays of the week now if you guys have got anything bad as to submit submit to the email I just linked in the top of the video description. Hope you guys do enjoy the video Do hit that like button. I do really appreciate the support and I'll catch you on that next one.  I'm going off on them Look at them fall Victory imminent This is a mate This is a mate


Center for Neuro-Technology, creating access for all. Access ERC is a project funded by the National Science Foundation. It's actually a supplemental grant to the Engineering Research Center at the University of Washington also funded by the National Science Foundation. And there are about 15 of these centers across the country and we were funded to help the other centers recruit and employ and engage individuals with disabilities in everything they do. When we are organizing events, you know, we try to make them accessible to all. We ask people for their accessibility needs and I work really, really hard to make sure everybody feels comfortable with whatever they do need. The website is the first entrance into our program into what we do and if that population cannot access it, what good is it? So another aspect of this space that we really enjoy is the flexibility in the furniture. We can set it up in many different configurations to engage users but we can also clear it out of the way if we have an event where many people with assistive devices are present. It's really an element of universal design. I've worked in diversity for quite some time and sometimes the conversation about diversity can focus very much on one or two particular groups in part racial minorities and women and not as much be discussed about persons with disabilities. ERCs are designed to have huge impact in society by solving some of the major challenges in engineering that society is currently facing and in order to have that kind of impact and to solve these important problems we need to include every section of society including people with disabilities in all aspects of ERCs. To learn more about how you can incorporate accessibility and universal design in engineering research centers visit the Access ERC website hosted by the University of Washington. Washington.edu-doit-programs-access-erc Access ERC is a supplement of the Center for Neurotechnology National Science Foundation grant number EEC-1028725 Any opinions, findings and conclusions or recommendations expressed in this video are those of the authors and do not necessarily reflect the views of the National Science Foundation. Copyright 2022, University of Washington permission is granted to copy these materials for educational non-commercial purposes provided the source is acknowledged.


Where are you going in life right now? Are you heading off to school? Or are you just graduating? Are you settling into a new job? Or wondering if it's time to move on to the next thing, wherever you are right now, in the data of your journey. I can take you to the next step. I can take you there.


Welcome to today's episode of the Mindset Mentor podcast. I'm your host Rob Dyle. If you have not yet done so, hit that subscribe button so that you never miss another podcast episode. And if you're out there and you love this podcast, please do me a favor, give us a rating and review, however you listen to us, some more positive rating reviews that we get, the more that those platforms show this podcast to people who have never listened to it before. And the more that more people are able to find this and this podcast is able to grow and we're able to help more people. So if you would give us a rating and review, I would greatly appreciate it from the bottom of my heart. Today, we're going to be talking about your pain. And I'm actually going to teach you number one, why pain is a good thing.  Because most people think that pain is a bad thing. When I say the word, if I were to go to somebody say, do you want some pain? Nobody's going to say yes, right? They're all going to say no. And so pain, when you feel pain, like if you, let's start about physical pain first, if you feel physical pain, that pain is just a message to your brain. It's a message that your brain is receiving to stop doing what you're doing, to make a change, to pay attention to the pain and to do something different. So I'll give you an example yesterday. I was trying to cook something.  I don't cook anything well, but I was warming something up inside of the oven. And I had my little glove on and it was all cool. And I took it out and I was moving the thing around that I was supposed to move around. I wasn't paying attention and my thumb and my forefinger both went, the thing started to shift the pain that it was in. And I grabbed it with my thumb and forefinger real quick. And it was like, it was like a half of a second and immediately pain shot up through my fingers and into my arm and into my brain.  Right? That's pain. And that is a message going from my fingertips to my brain saying, do something different. You need to take immediate action because there is pain right here. And if you don't change it, it will only become more painful. That makes sense, right? It makes a whole lot of sense.  I think I need a back eotomy, right? Your back kind of hurts. What is that pain telling you?  You're not supposed to be sitting for so long. And so that's a message from your lower back to your brain. Do something different. Don't just stand here. Don't just stay here. Get up, move around, do something different.  Of course you're barefoot because you got sand on your feet, right?  I didn't realize how hot this cement is and you feel pain at the bottom of your feet. And now you're in the middle of the parking lot. What is that pain telling you to do? It's telling you to get off of the parking lot. It's telling you to put your shoes back on. It's telling you to run to your car or to run back to the sand to do something different than you are currently doing. That's all pain is. Pain is a messenger for you to understand and stop doing what you're currently doing. But pain can also be besides just physical pain. As a human, we can experience many types of pain. We can experience emotional pain. We can experience a physical pain. We can experience sadness. We can experience worry, frustration, and you have to ask yourself your fear. If you have worry, pain, frustration, anxiety, what is that pain trying to tell you? Now you might be thinking, okay, if I have anxiety around something, it's telling me that I shouldn't do that thing. Oh no, no, no, not necessarily. It might be telling you that the way that you're viewing that thing is fearful and completely incorrect. You actually need to change the way that you're viewing that thing.  Stop doing what you've been doing and do it different. That's what the pain is trying to tell you do something different change because the same way that if I were to keep my fingers on that hot pan for longer, the longer that I hold it, the more pain I'm going to be in in the long run. Interesting, isn't it? So you start thinking about like, oh, I'm feeling pain, I'm feeling worry or sadness around my relationship.  I don't know what it's telling you because I don't know your life circumstance, but all it's telling you is what is happening right now is not okay and it needs to change. And the longer that you do not change whatever you feel in that quote unquote pain around, the more painful it will end up being in the long run. It will only get worse if you prolong the pain. You just got to stop doing it. So are you getting the message? Are you getting the message of something needs to be different to stop doing what you're doing to make a move to do something completely different? It is in my opinion. This is the way that I see it. It is God or the universe or something that is out there telling you change change now or it's going to be more painful later. You've heard me if you've been listening to me long enough for the idea of the of the the the feather, the brick in the truck, right? It's like the universe speaks to you very quietly. It's like a whisper.  You kind of feel it, but you have to be really paying attention to notice it, right? And I believe that all of us are getting messages about what we should and shouldn't be doing all day long.  That's that doesn't line up with my vision of what I'm supposed to be doing. And so you get the feather and the universal kind of speak to you that way. And it's a whisper and it's whisper. And then it gets a little bit louder if you don't listen for a while. You don't listen for a year or two years.  Then you pay an attention. And then if you don't pay attention, you're just still not listening, still not listening, still not listening.  And that's the point that you don't want to get to. And I learned this from one of my friends who told me about his father used to always say this and his father was it was a guy who was in jail for years and years and years came out of jail. And he said he could notice in his lifetime before he ever went to jail that it was like the feather, the brick, the truck. And he would start to, you know, got arrested when he was younger and got off or was in jail for just a few days when he somehow got off and then got a little bit worse and a little bit worse and worse. And he knew that what he was doing, he needed to do something differently, but he didn't do it differently. He continued to keep going. And then what happened, he got ran over by the, by the universe, the truck ran him over. He was in jail for like seven years. And so it's the example of are you listening to the messages that are coming through cause pain is a message. Inspiration is a message. Your energy, if you feel a lot of energy towards something is a message to follow that energy. Pain is a message. It's a message that where you are is not right. It's a message to what you're doing is not what you're supposed to be doing. And so many people feel the pain and they ignore it. They kind of, yeah, I know, but they, they have this job and they hate their job and, but they're like, yeah, but I mean, I went to school for accounting. I've been in accounting for seven years. What am I supposed to do? I'm 37 years old. I've been doing this for now for so long. I don't want to be doing this, but I'm kind of just stuck. And because of that, it gets more and more painful. It becomes harder and harder to get yourself up, get yourself dressed, get yourself to feel even good on the way to work and becomes more and more and more and more and more painful and stop listening to yourself. And so it's not just the physical pain that I'm speaking about, but it's also the emotional pain. When you think about your relationships, when you think about your friendships, you've got to start asking yourself what messages have I been getting that I'm just kind of ignoring that I'm not paying attention to. There's also intellectual pain, the pain of not living your purpose, the pain of working a job that you don't mind. I even hate your job, but it's just not fulfilling. It doesn't feel like the thing you're supposed to, but it's okay. It's pretty good actually jobs pretty good, but it just doesn't feel right. Oh, but I can pay my bills. Oh, but I've been doing this for so long. It's the pain of not not doing it's the pain of knowing that you're with the wrong person. That can be an emotional and an intellectual pain.  And it's a small dull pain.  It's not something that's completely going to debilitate you and you won't be able to at this point, not going to completely debilitate you, but it's something that gets a little bit louder and a little bit louder and a little more painful, a little more painful. And it's not just like one week, it's not painful. The next week, it's extremely painful. It's like slowly, but surely it starts to get more and more painful. I remember when I was, it just as an example, when I was working my last job that I worked before I left and started my own business and the podcast and all this stuff, I remember like I was making way more money than somebody at my age should have been making at that time. I wasn't working hard. I was working from home. So I was able to be at home and not work really hard and hang out with my dog and all this stuff. And I read a lot of books during the day, but I could feel the only way to describe it is I could feel my soul slowly starting to die. And it was, it wasn't like I woke up one day and then the next day was just way worse. It was like, it was like a best way to describe it in my head, the visual that I'm seeing. It was like, if you take one of those little cubes of salt and you put it inside of water and it just slowly dissolves, it was like all of me that my soul, my purpose was just slowly dissolving into this thing that I was waking up and doing every single day. That's an example of what I mean by it. And I think so many people like I don't people that are in their 60s that have been doing something that's been soul crushing for 40 years. And they're just numb. They're just numb to their job. They're numb to their family. They're numb to the world. They're numb to their own happiness. They're just numb because they have learned instead of actually feeling the pain and making a difference. I'm going to numb myself. I'm going to dull everything down because you can't dull down the lows, the pain and make the pain and numb that and not numb the highs as well. I believe under my opinion that the universe is always speaking to you. It's always coming through. It's always coming through. But the question is, are we allowing ourselves to be silent enough to get those messages to come through? Are we doing meditation? Are we sitting down with pen and paper and journaling through what we want our life to be? Are we trying to actually just be in some silence versus always, always, always being stimulated by something in this universe? Then you know, if you think about it with the example of the feather, the brick, the truck, you can think back to your life. I'm sure there's many of you out there listening that can think back to certain aspects of your life where you didn't listen and they got stronger and stronger and stronger.  You can be fired from the job. So many people got that in 2020 fired from a job that they hated. And then they had this free time this time to kind of self explore and some people self explored and completely made a difference. But some people self explored and then just went right back to the same thing. It was your opportunity to make a change or you lose a loved one or you just wake up one day and you realize that you're completely unconscious in the life that you're living.  And it's not something that the feeling of this is not something that should paralyze you when you feel the pain. It's not something to paralyze you make you stop. It is a message that you have to do something different. It's a message that maybe you should start thinking and listening and having some quiet time and being like what do I want in this life. And actually what's funny about is that most people actually it's not funny at all. Most people don't know what they want in their life. They haven't asked himself that question. And to ask himself that question becomes very tough because they're like I don't know the answer because I've never actually paid attention to what I want. I've always done what I thought I was supposed to do. I've always done what society told me to do what my parents told me to do. And so to ask himself that question is a little bit scary and to start to go through. And the beautiful thing about it is this is I've said this many times because I've gotten many emails of like Rob your podcast was so inspiring.   So if you do feel like there is a transition if you feel like you're getting messages that you've been you've been looking past the thing that I really want you to do more than anything else is to take a step back reflect journal through and say what am I being called to do. And if you are being called to like quit tomorrow. OK. If that's what feels right to you but what I would really like is for you to figure out some sort of way to transition out of what you're doing. If you feel called to leave your job can you transition out of it over time and be able to still pay your bills. And instead of leaving today leaving in a year or something like that. Same thing if you're in a relationship. If you're being called to leave the relationship now. OK. Do that. But if you've got kids if you've got a family if you've got a house you've got all this stuff maybe what it's requiring is for you to actually have an open conversation with the person that you're in a relationship with and maybe they're feeling the same way and maybe there is a transition to either transition out of the relationship or to transition the relationship in the way that both of you guys are showing up. So the real thing I want you to start asking yourself is are you getting messages in which I believe the answer is yes you're always getting messages but are you listening to those messages. Are you feeling a little bit of the pain a little bit of the worry a little bit of anxiety a little bit of frustration and you don't know what to do with it or where it's coming from. If so take a step back take a weekend off go to rent an Airbnb outside of town and just go there and sit in some silence and put your phone away in journal and think about what you want for your life and figure out the direction that you actually feel pulled to go to not the way that you've been pushing yourself to go but the direction you're feeling pulled towards because pain and those messages are always coming through just the same way that I burnt my two fingers yesterday. It was a message for me to do something different to stop doing what I'm doing. Anytime you're getting that pain coming through it is a message to do something different and to stop doing what you're doing. Ultimately you need to take the step back and figure out what the next best step is for you which you need to stop doing and then what you need to start doing in order to create the life that you want. So that's what I got for you for today's episode. If you love this episode please share it on your Instagram stories and tag me in it Rob Dial Jr. RBDIALJR. I love going through and seeing all of you guys. I don't share every single one of them but I do see every single one of them of where you guys are.  So if you would put up a picture or screenshot however you are listening to it and tag me in it Rob Dial Jr. I'd greatly appreciate it just so I could see what's going on in your lives and be able to connect you guys and I'm going to leave the same way I leave you every single episode. Make it your mission make somebody else's day better. I appreciate you and I hope that you have an amazing day.