Today I propose to begin the analysis of mid-sep paper. I find in general that the performance has been okay, although some people still have problems in dealing with control structures and arrays. The first question was relatively a simple question. There were a series of conditions that were to be checked and you had to execute statements based on the condition. I have here a program segment which implements that control structure. This was actually straightforward. Such questions would not be there in my exams normally, but since I noticed that some students had problems in the basic control structures, I thought I'll give them a chance to demonstrate that they understand these. Fortunately, most of the people have answered the first two questions correctly more or less, although there are still some people and I would advise them to attend the extra lecture which I'll announce shortly to clarify these things. Certain simple things people still make mistakes on. Inside the if statement, whenever you are checking for equality, you have to use equal equal because that is the comparison symbol for equality, not just one equal. One equal to sign is used for assignment like this. So please keep this in mind. Similarly, it's a good idea to indent your if statements such that it is understood which if statement closes where, which else statement closes where and which if statement has the corresponding else. Ordinarily, I would have written this also in this fashion, but because it is on the slide, it is written like this. In the actual programs, which I will put up on the website, you will have these properly indented. The part B was another simple part where you had to decipher that you could use the for iteration. And that is because in the block diagram, what was stated was not just some equal to zero, but also I equal to zero. Some people have written I equal to zero here and still have this for iteration. It is not incorrect because that initialization of I equal to zero is superseded by the initialization that the for loop does. However, it is important to recognize that when I use the for instruction for setting up of a iteration, it does three things. The initialization before the loop, the increment after every iteration and the check for the final condition. Since all these three things are embodied inside a single specification, there is no need to initialize I equal to zero above this, although that is what was given in the flow chart. You were to convert the flow chart into an appropriate control structure, so this would have been the more accurate representation. You would notice that in the question one B, in the flow chart, there was a conditional iteration based on some value some greater than 32. What this particular program segment does is very artificial. However, the idea was to test whether you can recognize that that particular block could be implemented using a wild statement and that the wild should be nested inside the for iteration. So you have an outer for iteration. Within the for iteration, you have a wild iteration. Notice that some is reduced by three every time and this iteration will continue till some becomes less than or equal to 32. When some becomes less than or equal to 32, you will quit this and come out. And of course, when you come out of the wild, you will still go for the next time and you'll continue the iteration. These were simple questions intended to test whether you can quickly and correctly implement iterations because iteration and the conditioners are very fundamental control structures. Frankly, using these, you can implement any logic that you want, although there are some simplifications as we shall see in later lectures and even today. The second question again was simply to test whether you can convert a problem statement into an appropriate logic, which was pretty simple. You had to evaluate a new salary or a modified or enhanced salary given a particular salary value and the enhancement rules were stated as you have to increment the salary by 22% if the salary is less than 10000 and if the salary is between 10000 and 20000, you have to increment it by 23%. There is an additional condition that if the enhanced salary goes beyond 30000, it has to be restricted to 30000. However, if you analyze the problem statement, you will find that the question of 30000, etc., will never arise. Further, the question did not stipulate what exactly you should do when the salary is exactly 10000 rupees. For less than 10000, it specified an increment. For salary between 10000 and 20000, it specified another increment. But at 10000, exactly it did not specify it. Here is one solution where I check the salary. Note that I have to return a value. I could ordinarily return a value the moment I have computed it, but I may not know the computed value till the very end because my logic might have nested ifs and whatever. So, in general, it is a good idea that if you want to return a value from a function, you calculate that value in a variable of your own and that is why I have declared float new cell here. Notice that all of this is part of the function. I have not written the top statement function so and so. That statement, in fact, was given in the problem itself. So, here I check if the salary is less than 10000, I increment the salary by 22%. Not 22% can be most simply computed by multiplying the existing value by 1.22. Else if, that is, salary is not less than 10000, but it is less than 20000. Clearly, it is between 10000 and 20000, in which case new salary is computed as 1.23 into salary. Else, new salary is simply salary. There is no increment. So, that is the logic that is stated in the problem. However, to cater to the two special cases which I just mentioned, it might be worthwhile to put a comment in your program which says case of salary beyond 30,000 does not arise, which is a statement of fact. Similarly, salary of rupees 10000 included for 23% raise. You could have included this in this block itself by saying salary less than equal to 10000 is the value. And you would have been right because nothing has been stated. You have to make some assumptions. The idea in any software development is that specifications will always, always be incomplete.  Programming problems in real world are never like that. Requirements, functionalities that are desired by your program are generally very vaguely stated. In fact, as we shall see later in the course, when you start doing your projects, one of the early tasks that a programmer must do is to define those specifications from what one has heard or what one has read. And then get them weighted again. That is known as a software requirement specification document or SRS. Software requirement specification is a huge thing. And lots of people spend lots of time in just clarifying what is wanted. So even in such simple situations, when you are not clear on what is wanted, you must state those assumptions. And that is why these commands, which have nothing to do with the program, but they are relevant for any reader of the program who understands that the specifications were inadequate or inaccurate. And therefore you have stated what you have assumed. I suppose these two problems were very clear and simple. Addition and subtraction seems to be such a trivial matter. All of us learn it in the early days of our schooling. It is useful to remember that adding and subtracting very large numbers could be non-trivially complex. As a matter of fact, if we do not have a positional decimal system as we do now, the subtraction particularly and even addition could be extremely difficult. Let me give you an example. Are you familiar with Roman numerals? This stands for what? One. So you write two and so on. This is what? Five. This is ten. This is? This is? Yes? Okay. So I now write a number. How much is this number? 101. And I want to add to it, how will you perform this addition? How will you perform this subtraction? Any idea? Till the time that the positional number system reached Europe via Arabia, Europeans could not do arithmetic easily, even the educated Europeans. A positional system, whether the base is decimal as we use it now or the base is binary or hexadecimal or octal or whatever, requires the existence of zero. Without zero, you cannot have a positional system. A positional system such as means actually this is 400 plus 18 plus 3. You agree with this? This is the interpretation of a positional system. Each digit represents an integer power of ten, ten to the power zero, ten to the power one, ten to the power two, et cetera. And without this zero, you cannot actually interpret a digit position. And the existence of a zero permits you to use the notion of a carry or the notion of a borrow in any addition or subtraction that you do. Consequently, if you now look at these numbers, the numbers which are shown here, the input is given, first the number of digits is given and then this is followed by the actual individual digits. The another number which is a six digit number and the six digits follow this. Many of you have made a mistake of simply reading the number in some variable and then try to put different digits of that number into an array. Note that you just cannot do that. Any large number cannot be read in the normal variable of C plus plus because the normal variable of C plus plus has a limitation of so many number of digits. Whether you use int or whether you use long, it will have only so many digits and not more. So if you want to read a 70 digit number, there is no way a single entry of 70 digit number will get you anywhere. It's not possible. Impossible. We shall see later on the meaning of this limited capacity. In fact, it is this limited capacity that we deal with which permits us to say that addition and subtraction will take a fixed amount of time because two numbers are added by electronic circuitry. Whether the number is one digit or three digits or five digits, addition of two numbers takes the same time. But that is up to seven digits or 10 digits depending upon your procedure. Beyond that, there is no representation possible. If you want to really add or subtract large numbers, which is what you might be required to do in many mathematical operations, there is no way but to seek alternative representation. What was given was one such alternative representation and you are supposed to implement addition and subtraction. The original representation that I had thought of for the paper was this. A representation where you might have a long array, but the digits are aligned to the right. You will agree that such a representation will make it much easier to add or subtract numbers. As a matter of fact, logically at least, you will have to align these numbers like this. If not actually, then in terms of the index manipulation that you do because there is no other way of adding or subtracting numbers using positional system. So when you want to add these two numbers, what you will do, this is the way you will add these numbers. In the unit position, you will add the unit position. In the tenth position, you will add the tenth position and so on. Notice that this 7 plus 1 is 8, 5 plus 2 is 7, 5 plus 3 is 8, but 9 plus 6 is 15. So whenever you get a number which is more than 9, you are supposed to retain the last digit and carry one forward here. That carry 1 is added to 9, yielding 10, you retain 0 here, carry one forward. This 9 becomes 9 plus 1, 10. Again you put 0 and carry one forward. Since there is nothing else to add, you put that last carried one as an extra digit. This appears very simple. Let me further elaborate this process for the purpose of constructing an algorithm. We now understand how addition is done. So I have written these numbers back here and I have left some space here which I will say is the space for carry. Notice that I am going to store these digits into two arrays. So it is the array elements that I have to deal with. In general, whenever I am dealing with an i-th element, I will have to write it in terms of the i-th element of this array and i-th element of this array and the carry meant for that position. So it is better that I generalize my calculation mechanism so that I can set up an iteration. I can't do that digit by digit obviously because I don't know the total number of digits or priori. That number is stored in the first element of an array. Notice that this number is a four digit number. This number is a six digit number. My addition therefore will have to be carried up to six digits actually and there could be a seventh digit if there is an overflow. Consequently, the result array that I declare should preferably have an extra digit position in order to store that extra. Although that is not essential, you could always take the view that if there is an overflow, I am sorry I cannot represent that number and the overflow goes out as long as you detect that overflow and state that error. So consider two arrays that I am using something like m- this I call n- and the result array I call r- but I declare it to be of 101 elements. So I will have all zeros on this side. The number of digits in each number is given by the 0th element of m and n. However, in all way to align my algorithm correctly, since I know that I have to carry on this addition exercise, till the digits of the larger number are exhausted, I should calculate some variable called maximum digits or total digits or something and I should assign the value of the larger of the two. This has four digits, this has six digits, so the max digits should have a value of six. That much is obvious. In general, I will be adding not two values but three values. I will be adding the digit of m dash, digit of n dash and a carry. The point is I will know the carry for subsequent positions depending upon the result of the previous addition. But I do not know the carry for the very first position. Well, I actually know there is no carry because there is no addition performed. Now since I want to generalize and I always want to write this addition, so ith element of r dash, I generally want to say m dash i plus n dash i plus carry. This is the generalize statement I would like to make. Now obviously, to begin with, there is no value for carry. Carry will come out through my addition process, so I can initialize carry to zero artificially at the beginning and therefore I can have a generalized. Since I have stated that I want my array r dash to be one digit longer than m dash and n dash, I should not be putting this into the ith element if I am adding this here because the last digit of r dash 101 will be in r dash 100 and not r dash 99. So I might as well, when I want not ith element but i plus one ith element. Of course, if you are using an array which is 100 elements, r i will be perfectly fine. This is the logic which I want to implement and this is the way you must think about solving such iterative problems that I have to add digits, I have to add a carry except for the first digit there will be carry everywhere which will be either zero or one. Zero is a natural thing, it does not affect any addition and therefore I shall assume a zero carry to begin with. If I do that, then I can set up an iteration which will move from the last digit of the number to as many digits as are required to cover maximum digits and that is the end of my addition. Using this logic then this is the program segment which will add the two numbers. Here I have introduced the new statements max digits equal to m zero greater than n zero question mark, m zero colon n zero. This construction you have not seen earlier, so let me quickly explain this is a specialized version of an if statement where the if statement ends up in a single value. So depending upon the condition that you test that value could be either this or that. If such is the situation then ordinarily I would be writing this statement in the following fashion. I want to compare m zero and n zero. Notice that as per the specification the zeroth element which is the first element of the respective array contains the total number of digits. So in our case m zero will contain four and n zero will contain six which are the number of digits in these two example numbers. Now depending upon which one of them is larger that shall be the number of maximum digits that I have in the two numbers. So I am just comparing whether m zero is larger than n zero. If it is then max digits are m zero. If it is not then max digits are n zero. What happens when both numbers are equal? It does not matter whether you assign m zero or n zero to max digits because both are same. Effectively at the end of this small block you will have the maximum number of digits that exist in either of the two numbers. Now this logic may be required very often in your larger computational programs. You just want to set a value either this or this depending upon which one is larger or which one is smaller. Or if numbers are equal you want to give the one value otherwise you want to give some other value. To simplify the representation of this logic C plus plus permits you to write a different format altogether. It permits you to check this condition by writing that there is no if statement required. You want to calculate the value of max digits. So what you will do is you will simply write an assignment statement. You want to assign this value. You want to assign either m zero or n zero. Depending upon whether a condition is satisfied or not satisfied. So all that you are required to do is to write the condition here. In C plus plus this is actually a valid expression. It is called a comparison expression. As we know a comparison results in true or false. C plus plus beautifully uses zero and one values to represent true or false. So it has a numerical value also if you want to assign. However that is not the purpose here. The purpose here is to say please evaluate this condition and to indicate that this condition has to be evaluated you put a question mark. So this is called a question mark operator. While this could be a legal statement although giving meaningless value this is alone is not a legal statement. This is only part of a statement. This part says check question mark. Is m zero greater than n zero? Question mark. If the answer is yes whatever you write here will become the value of the whole expression. If it is no then whatever you write here will become the answer to the final.  It is not necessary to write only single variables or array elements. You can write expressions. The key initiator here is the colon. Between the question mark and colon whatever expression you write is evaluated and assigned it becomes the value of the expression to be assigned to the left hand. If this condition is false then whatever you write after colon but before the semicolon that expression is evaluated and that value becomes the value to be assigned. So in short this is nothing but an extremely simple way of writing in an abbreviated fashion exactly what we want to write here. This is well accepted as a standard notation for many things where you want to do such simple side. So is this clear? The question mark operator as it is known. Fine. Let's go back to the original problem. So if you look at the algorithm now if m zero is greater than n zero I would have assigned max digit as m zero otherwise max digit as n zero. Remember what I said I will assume carry to be zero. Now I have to run an iteration going backwards from the last digit. The last digit is 99th digit because the size of the array is defined to be hundred. From 99 how much backward do I go? I know there are maximum max digits. What would happen in case I have this smaller number which is n dash in this case and which has only four digits. I have assumed that the four digits will be stored in the last four positions. But can I assume that there are zeros in the previous positions? After all this is not the original array that I will get when I read it. So when I transform the original array into m dash and n dash I must ensure that all these elements are set to zero first and then I push the actual digits of the two numbers into the last positions. We shall see that in the subtraction example. But this is just to tell you how addition is done if the numbers are stored like this. How? That there are two arrays m dash and n dash and they contain the digits in the right justified fashion. The first digit still contains the number of digits actually but right justified fashion and the rest of the digits are assumed to be zero. That is the assumption in this algorithm. So I now start doing this and set up a backward iteration starting from 99 and going all the way up to 99 minus max digits plus one. Whether to put plus one or not to put plus one is something that you should check manually by checking what is the last digit that you are entertaining for the addition inside this loop. This is the correct representation by the way. Now what I do in every iteration? In every iteration I simply add the i-th element of m dash and the i-th element of m dash with the carry. Initially carry is zero so it does not matter and the result I am not putting in r dash i but I am putting in r dash i plus one because as I said I am assuming that I should provide for an overflow which might occur if two large numbers are added and therefore the result r dash array has an overflow. Now I have to check whatever I have calculated if this addition results in a number greater than line what does it mean? I have got a carry because the total added up to 15, 17, 18, 11, 10 even. 10 is a two digit number. So anytime I have a two digit number that is greater than 9 I cannot retain that number as a digit and I have to take a carry out. So all that I do is I set the number modulo 10 to be that digit. Obviously 10 modulo 10 is 0, 15 modulo 10 is 5, 19 modulo 10 is 9, 22 modulo 10 is also 2. However I know that I will never get 20 because I am adding two individual digits each one of which is less than 10. So even if I take a carry and I have two digits as 9 and 9 I will have 9 plus 9, 18 plus 1 carry 19 I will never get 20 or beyond. So I have no problems on that. As a result I put this modulo result in r dash i plus one and set carry to 1. On the other hand if I have a single digit then there is no carry equal to 0. Why is it necessary to set carry equal to 0 here? After all I did set carry equal to 0 here. Any suggestion? After all I did start with carry equal to 0. So why inside the iteration I am again setting carry to 0? The simple reason is that I might have a carry equal to 1 let's say in third position. But in subsequent positions even after absorbing that carry I get a single digit number and there should not be any carry further. If the carry gets set to 1 at any position it must not remain set to 1. The value of the carry will depend upon every individual addition and it is not a generic value. So remember that if I get a two digit number at any point the carry is 1. If I get a single digit number at any point the carry is 0 and I have to set it so explicitly. It is incidental that I am setting carry equal to 0 to begin with and this is done only to generalize this formulation so that I can have a single statement which can be iterated upon. I don't have to handle the case of first digit separately. That is the purpose. Is this logic clear? Some people have commented I got some several mails by the way on this some mails were very good. One particular question was that this question took a long time 3a and 3b and that 3 marks were not justified for that. Is that a unanimous opinion? Yes. Let me take a break for half a minute and explain the philosophy but you are right by the way the original question which I had said had the m and n represented in this fashion so what I have m dash and n dash is the representation. But I figured out that that problem could be solved very quickly and therefore I wanted to test the logical abilities of people to think on their feet and get either addition and subtraction done like this in spite of the representation being weird or converting that weird representation into this kind of representation carrying out the addition and subtraction and putting back the representation in the original format. I thought that will take some time. It did and it did confuse a lot of people. I am sorry for the confusion but these things happen as regards marks well the word including exams are never fair particularly my exams you will find this repeatedly. There will be some simple questions at the beginning which will try to test the basic understanding of everyone for those who have done a lot of practice and have talent to work out extremely complicated logic very well they might find those questions very simple do not forget that there are people who find even that to be difficult because they never had any background so it's okay you can solve those problems in two minutes there will be some problems which may take much longer such as these problems the acquisition of marks on the higher end is highly non-linear and skewed in my exams you can move very fast from zero to something then for every mark you will have to struggle and in the final exam you will invariably have at least one part of a question which nobody can solve at least I said a question like that and I am delighted I have not taught this course for 20 years but I used to be delighted that every exam there will be one or two jokers who will come up with brilliant solutions for that and then I would announce their names to the class so this is the program segment to add numbers subtraction is harder you all agree subtraction is harder how many people got question 3C correctly 1, 2, 3 no either two people are missing or they are not confident of their solution because I got 5 correct solutions of course they were syntax errors but people got the logic correctly let's understand the subtraction it's a very interesting thing I have given here an example of two numbers the first number is 1, 7, 0, 0, 5, 8, 2 the second number is 6, 7, 4, 9 I want to subtract the second number from the first number however I don't subtract numbers like this just like in addition I subtract numbers using a traditional system so therefore I would like to right align these numbers and after right alignment I would get the numbers as here 1, 7, 0, 0, 5, 8, 2 and then implicitly 0, 0, 0 here and 6, 7, 4, 9 this is how I will subtract you all agree this is how I will subtract so I deal with this representation so how do I do the subtraction here I do the subtraction the Indian typical style of subtraction that we study in the elementary school I put one more thing here for a borrow and a carry can I subtract 9 from 2 answer is no so I borrow 1 from here this becomes 10 this number becomes 12 12 minus 9 is 3 but since I have borrowed 1 I have to subtract that 1 from this this thing further so I put a minus 1 here just to indicate that not only I have to subtract 4 from 8 but I have to further subtract 1 which I had borrowed when I subtract 4 from 8 I get 4, I subtract this one again I will get 3 there has been no borrow here so I put this number as 0 I don't have to do any further subtraction again I find 5 is larger than 7 so I borrow 1 from here this becomes 15 15 minus 7 is 8 but I have borrowed so I have to subtract 1 from here I can't subtract 6 from 0 I have to borrow 1 from here this becomes 10 10 minus 6 is 4 4 minus 1 is 3 but I had borrowed 1 there is nothing here but there is a 0 implicit 0 I can subtract 0 from 0 but I cannot subtract 1 from 0 so I have to borrow 1 again I get 10 10 minus 1 is 9 I have borrowed so I have to put 1 here I can subtract this one from 7 so I get 6 there is no borrow here I subtract 0 from 1 and I will get 1 I cannot complete the subtraction that I do just to understand the signs correctly I might want to do the following I might want to propagate the negative sign to the second number which is to be subtracted from the first by the way I'm assuming that both numbers are positive and the first number is larger that is the assumption under which this program shall be seen however we can generalize it easy but I'm just trying to go through So what am I saying to say? I have to subtract 6, 7, 4, 9 from this. I will propagate negative sign to every digit position. So this will be 0, minus 0, minus 0, minus 6, minus 7, minus 4, minus 9. There is nothing like minus 0. All that I am saying is whatever is the digit I have put there, I will make it negative. I am assuming all digits are positive otherwise. Now this makes sense to me for subtraction because I convert every subtraction into addition now. I don't have to subtract. I will just add this with minus 9. I will just add 8 to minus 4 and 2 minus 1 if necessary and so on. This is a generalized mechanism that I can use. There is only one problem. In the case of carry, I knew when I had to carry a digit here depending upon whether the result was a 2 digit number or a 1 digit number. In this particular case, whether I have to subtract this minus 1 from the next digit or not depends upon what I have borrowed. My logic then becomes complicated that if I have borrowed, then I have to subtract minus 1. If I have not borrowed, I don't have to do anything. One of my TAs actually found out a generalization of this by saying why not I always borrow, whether it is needed or not. Now that makes a very interesting logic which I write here. Notice that I have decided that I will always borrow and if I always borrow, I always have to subtract something from the left hand side. Now I borrow here, this becomes 12. I subtract 9 from it, I get 3. I get actually 0, 3. I can get a 2 digit number now since I am borrowing unnecessarily. I treat this 2 digit number as a given and extract 2 separate digits from it. I retain in my result the value 3 and examine the more significant digit. If it is 0, then I indeed needed a borrow. So therefore I will put a minus 1 here because this was 0. Since I am borrowing again from here, this will become 18. I am blindly borrowing but I am not changing these numbers. I am simply adding 10 to each number as if I am borrowing everywhere. So this number will become 18. When I subtract from 18, 4, I will get 14. I subtract one more, I will get 13. I write here 13. Obviously 13 is not the correct answer. So I have got 2 digit number here with non-zero significant digit. Again I break it into 2. I retain 3 as the result and since I have got this digit as 1, it tells me that the borrow was unnecessary. I did not have borrow. I could have subtracted easily and therefore I will not subtract anything from here. So my carry this time is only minus 0. I will subtract 5, not 7 from 5 but 7 from 15 as I mentioned. 7 from 15 when I subtract I get 8. I subtract 0 from here. I get 0 8 here. 8 is the answer, digit for here. The second digit is 0. That means I needed a borrow. So I put minus 1 here. So whenever I have a 0 digit, it gets into a carry of minus 1. Whenever I have a digit 1, it gets into a carry of 0. This simple logic then becomes a uniform logic because for any individual position being smaller or larger, it does not matter. And I know that I can always borrow because I know the top number is larger than the bottom number. So under these assumptions, this logic will work. The logic is, actually there is an Austrian method of subtraction. The standard European method is slightly different where depending upon borrow, you subtract one from the top digit itself and so on. Indians do it like this. You subtract one more, you don't change the top digits. That's the Austrian method also. Those of you who are interested can look up either the Wiki or just search for Austrian subtraction. Not Australian, Austrian subtraction. You will get a logic. The Austrian subtraction logic and Indian logic are very similar. What my MTEGT has done is simply extended it and say don't waste time in examining whether you need a borrow or not. Just borrow. Keep borrowing from every digit and then you only need to work out the correct carry logic. If you have a single digit number, that means you needed a borrow so you subtract one. Here, here, maybe here. If you did not need that, you will get a two digit number. That means you will get a number in 2019. Notice that whatever you are borrowing only 10, you can never get the result to be more than 20 or equal to 20. Again, you can prove that. Using this logic, you can implement a generalized loop structure exactly like we did for addition and you can get a subtraction here. So, let me quickly go through this program statements here. First, there is a whole lot of commands saying what exactly you wish to do. Two high pressure numbers to be added, how the numbers are represented, etc. Since this is a program written for subtraction, it says specifically that the second number N, which is negative, is stored similarly except N0 showing number of digits is a negative number. All other digits are positive. Remember that is the specification that was given in question 3c. That the individual digits of the number are positive, but that the number is if there is a negative number, it will be represented by minus sign for the number of digits. Assuming that and assuming that M is larger than N, the following algorithm works. So, here are the two arrays M and N. As I mentioned, R is declared to have one extra digit. I read the two numbers in arrays M and N. I use an input flag, which is a generic flag which will be zero ordinarily if I keep getting the correct numbers and digits. But if there is some anky-panky, input flag will be set to non-zero and I will just exit from the program. So, I call it input flag used to check input health. I read M0 and I check whether M0 is less than zero or M0 is greater than 99. This statement is justified in the fact that I am assuming that the first number is positive and is the larger of the two. So, obviously M0 must contain a positive number. If it is not, I set input flag as one and get out. Otherwise, I read from one to M0 individual digits of the first number and store them in the array MI starting from one to the number of digit position. If any individual digit is greater than nine or is less than zero, I must cry out. Please notice, you cannot make an assumption that the input given will be a single digit. Somebody might by mistake type 25. 25 is not a digit, it is a number. Since you are reading a number, M1, M2, M3, they are all numbers actually. It is your mind which says each one of those elements will contain a single digit. The computer has nothing to do with it. The computer will accept any number. It will ensure that what you give is a single digit and therefore this check is mandatory that the number that goes in is less than nine and greater than or equal to zero. Less than or equal to zero. If it is not so, again you announce bad digit at such and such position, whatever, whatever and get out. You read the second number similarly. However, we have said that the second number will be given as a negative number if I want to subtract it. Therefore I am reading N0 which is expected to be some negative number between 1 and 99. So correspondingly the check is that if N0 is greater than zero that means a positive number or if N0 is less than minus 99 that means too many digits are specified. I will neglect all of that. Then of course I read the individual digits and notice what I am doing. I am setting up N0 as minus N0 because it was a negative number I converted into a positive number because that is the number of digits. I cannot afford that to be a negative value. However, when I read individual digits in N somewhere I will have to transfer them to my representation and when I do that I will associate a negative sign with them. So this is just the reading of input. These are just checks. First for subtraction I do a shifted representation. I define arrays M dash, N dash and R dash and I define a carry, borrow and max digits as usual. I put zeros in M dash and N dash and also in R dash and I put R dash 100 as equal to zero which is the extra digit that I will get in R. Now I am propagating the given numbers into these arrays and I am propagating negative sign to each digit of N dash. So notice what I am doing for all the first number in M I transfer the digits of M to M dash. For the second number in N I transfer minus of that digit to N dash. So automatically N dash has minus digits M dash has plus digits all aligned to the right and I am ready to get my algorithm. Before that I do this for max digits as per the formula that we just studied and this is the complete logic of subtraction. I subtract the second number from first starting from last position backwards. I say carry equal to zero. I said borrow equal to 10. The borrow will never change because of the extended logic by my TA. Now I go from 99 to 99 minus max digits plus 1 as usual I add M dash plus borrow plus N dash. Notice that N dash is negative number. So I am actually subtracting. Notice that borrow to begin with is zero but it may become minus 1 later in case the borrow was truly required. I put I check R dash I plus 1 if it is greater than 9 I take a modulo 10 and I said carry to zero. Otherwise I said carry to minus 1. That's it. Why am I putting plus borrow plus carry here? I could have said plus 10 here directly. Because I am borrowing 10. The reason I am not doing it is I want you to examine the possibility of generalizing addition and subtraction by writing a single function. You will notice you can do that by appropriately setting the values of borrow and carry depending upon whether you are adding or subtracting and therefore it helps to put a variable here rather than a fixed number. In fact it helps to put variables wherever you are putting constants because for example if your array was to suddenly become 200 digit long this 99 will come in the way. We shall examine these issues when we continue this analysis on the Thursday lecture. We will stop now. Thank you.


Kamegatiella fafii, Pichia pastoris, is a yeast species that can be used to produce recombinant proteins from crude glycerol, a byproduct of the biodiesel industry. It has the ability to use crude glycerol as a carbon source, making it ideal for the transition towards a circular bioeconomy. Additionally, the use of Pichia pastoris can help reduce waste and create new opportunities for the production of high-value products. This article was authored by Nuria Bernat Camps, Nuria Bernat Camps, Katerina Ebner, and others.


We've got some serious news here. To meet the needs of the world's growing population, we are going to need to double food production by 2050. Think about that. Double the world's current food production. And we need to accomplish this in a time of severely limited supplies of fresh water, intense pressures on energy, and increasingly scarce arable land. To make sure no one goes hungry, our food production system is going to need to see an innovation revolution. To address this grand challenge, the winner of this $10 million competition will demonstrate the food production approach that yields the highest output of nutritious and delicious protein at affordable cost from land or sea. The time is now to experiment with new approaches to producing food. We can harness recent advances in protein science and aquaculture, and that's the only way we can close the food gap. We have each been fortunate to be raised in abundance, and now we need to share that with the future. Together, we're going to feed the future.


So this might be the most unimium case that Deepcool has made and what we have here is the Morpheus case from Deepcool. It's got a few tricks up its sleeve, actually scratch that, not just a few, it has a lot of tricks up its sleeve and we're going to be discussing all of them. So before we proceed the standard disclaimer, Deepcool did send us this unit for free for review but they do not have a say on the content or the verdict for this review. So let's start with trick number one, the specs. It's an EATX case which is quite big at 528x250x551mm and with the case this size, you'd expect that there's a lot of configurations and clearance support but we'll get to that later.  It has two 3.5 inch drive base and three 4.2.5 inch drives. It has a whopping nine slots for expansion and speaking of expansion and configurations, it has a ton of fan support. At the front you can mount three 120mm, three 140mm, we'll get to that in a bit, two 180mm fans or two 200mm fans. Although there are fans already included at the side, you can mount up to three 120mm or 140mm fans there. You can also mount the same amount of fans at the bottom and if you're going to be using the PSU shroud, we'll get to that in a bit. You can mount three 120mm or three 140mm. For the rear as exhaust, you can either use a 120mm or a 140mm. For radiators, it supports basically everything at the front, top, side, and bottom and for CPU air coolers, you can get up to 195mm or 132mm in height, we'll get to that later. The maximum GPU length is 480mm. There is a PCI-E 4.0 riser cable included in case you want to vertically mount the GPU and for power supplies, of course it's an ATX at 180mm maximum. So basically this case supports everything you can throw at it. You might have noticed that there are a few caveats there and that's because of the nature of this case. Modularity is the name of the game here for this Morpheus case because actually it's trick number two is that it is three cases in one. Unboxing this thing, you'd see of course the case and there's a gigantic accessories box. It's gigantic because it does come with an interchangeable back panel and that is how you can configure this to either be a single chamber or a dual chamber case. There is a secondary single chamber configuration here which we'll talk about in a little bit and that's basically why this is called the Morpheus because it morphs. Of course we've seen morphing or changing or transforming cases before. Cases like the Evolve Shift X from Phanteks but that transformation is more on the size so that it can allow an AIO for example while this case changes its entire identity or form and I don't think I've seen that before to this extent. Another example is of course the O11 Dynamic which you can basically invert stuff or change mounting options for the GPU and something like the Frappel Terra where you can change the allocation for either the GPU or the cooler but again none of those are done to this extent. Let's talk about the forms. So out of the box it comes like this so this is your standard single chamber configuration where there's a PSU shroud so if you change the back panel here it goes to a secondary single chamber form by removing the PSU shroud at the bottom and then moving this bottom cover right here. So now you have a more open bottom here and then you mount the PSU at the top and last but not least its final form is the dual chamber form. So you do this by replacing the back panel and configuring the internal panels so that the dual chamber configuration is achieved. So we've all seen dual chamber cases before but it's not going for that fish tank look as the front panel is still a mesh panel and not all glass but you get all the benefits and all the looks of a dual chamber case and for me personally as well as our techs here this is our favorite configuration for this case. So trick number I've lost count for the included fans technically it just includes one fan because this has a singular 420 millimeter triple fan like I don't even know what to call it so it's basically three fans in one and you can put it at the side vents and with all its modular features you can also put a 420 millimeter at that mounting point it's such a unique fan set up and it just goes to show the creativity and the enthusiasm that deep cool is gunning for here with this case. So with that 420 millimeter monster pan if it's not obvious yet this case is all about the airflow all of its panels the front panels the side panels the back panels even the ones that's right across the motherboard at the back even the PSU shroud all of them have mesh or some sort of vent out there as if daring you to use your 4900k and 4090 GPUs and try to see if they will overheat. So another trick is the stats monitoring thingy just an LED display not the screen type and once configured correctly in deep cool's own software it will display CPU and GPU temps as well as usage. While it's not one of those advanced displays that we're used to seeing in AIOs and other screens personally I like the aesthetics of it the look blends well with the design choice of this case and frankly it's quite useful for what it is so it's powered via the motherboard you can control how and what it displays via the software from deep cool and for its last trick it has bits we've mentioned this with our cc360 case review have you talked about the aesthetic choices and the visual rebranding of deep cool basically they're all about this square pixel aesthetic and that's how they've designed the mesh panels so just for fun deep cool included these rubber bits that you can stick on to those vents and you can make all sorts of designs according to your taste so if you'll see here this is what we made it's the logo of deep cool and harvest sugar of course and they've got plenty more of those bits so you can make any design you want so you can put your designs up here at the front or at the top there's also some points at the back and also some inside the psu shroud if you're going to use it so finally how do i even review this thing if i review it for its function you know it's a pc case and if i review it as such i'd say that it's a very solid case it was a ton of fun building in it but having that mindset kind of does this thing a disservice because this is something very special so it's like reviewing a Porsche sports car for its merits under the context of transportation well yes of course it's going to take you from point a to point b this is a high-end premium enthusiast level case and i do think that this is targeted primarily towards thinkerers you know people who enjoy building the pc more than using it of course used as a case this is an excellent solid choice we haven't even talked about the inner features yet there's a gpu sag bracket already installed there the mounting points are solid all the panels are well built and its modularity is not super convoluted and i'd say that it's not even gimmicky there is an actual use for all its forms and this is a perfect match for pc owners who love building you know people who call themselves hobbyists like of course it's not a perfect case this has a couple of negative points in it like for example the single chamber configuration number two it's very hard to cable manage in that configuration especially the psu cables since the psu is mounted at the front where all the cables are sticking out where it's very hard not to be seen it's very possible though that we weren't just super creative with it so comment down below if you have a good way of cable managing the psu cables for single chamber configuration number two another thing that is negative for it depending on who you are is that it's really big this is a heavy case this is an e80x case of course and of course while this can fit a lot of configurations all the space here will be wasted with consumer level components so with a case like this you want the top-of-the-line motherboard gigantic gpu's as well as gigantic coolers as well as gigantic radiators or aios to cool your top-of-the-line cpu and anything lower than that will make this case super overkill this is going to be perfect however for those top-of-the-line high-end components with custom looping in mind we've actually recently had a custom order for an rog motherboard that has a built-in routing for custom liquid cooling so that's the systems that this case is meant for so i wouldn't call that a negative it's just a caveat or basically a recommendation for what system should go in here but all in all this is a very special case so of course with that having said it's no surprise that the pricing for this is apt for those high-end builds this is not a cheap case and of course that's because of the amazing engineering that went into this case the outstanding quality that they were able to achieve with all the features that this thing has it's an amazing special case and i'm happy that this thing exists recently the case market have been very stale lately with all the fish tank builds all the refreshes all the copycats out there but once in a blue moon one of these manufacturers will pull up something like this thank you for watching


All right, Adam, should we do some questions? Yeah, let's do some listener questions. We have one from Michael. He says, Dave, Pete, and Adam, welcome, Adam. I've listened to both Mac, Geek, MN, Maccast since the beginning. I guess that makes me old, but I've never been caught. That's a good thing. I need your geek wisdom on adding my desktop and document files to my iCloud Drive. My first question is, do any of you use it? Second, my main Mac is a work-issued M116-inch MacBook Pro with a 500 gigabyte internal hard drive. I use Dropbox and store almost all my documents there, except one work-specific folder I store on the hard drive on the MacBook Pro. We also use Google as our system at work. So much of my work-related stuff is on a company Google Drive. I backup my photos in iCloud Photo Library. What would the advantages and disadvantages be of turning this feature on in my situation? Thanks for all you do. Yeah, I use the desktop and document syncing on all of my Macs. Years ago, after upgrading to the two terabyte family plan, which last week I mentioned, I might need to upgrade past, because I figured, well, I have more storage than I need, which is getting to be less true. I thought, well, why not? But I am not using Apple's Documents folder as my main document storage. For that, I use Synology Drive, but that's kind of a material. You know, I use Dropbox, whatever. But still, having whatever is in my Documents folder synced everywhere proves useful every now and again, especially with the Files app on my iDevices. Yes, there are integrations for Dropbox into the Files app and Synology Drive into the Files app. I haven't found anything that is as seamless as Apple's own Documents folder in the Files app. Yeah, exactly. So when I need to get something to or from my, mostly from, like if I'm saving it from my phone or something, I will put it in the Documents folder and I just know it's gonna work. I don't have to clunkily re-log into my services and all that. So that works fine and that's convenient. Where this syncing really pays off for me is that I love having my desktop folder be the same on all of my Macs. You know, I use my laptop, obviously when I'm traveling, I have a Mac in the studio, I have a Mac in my office and just knowing that whatever I put into my desktop folder or a sub folder thereof is just there. I use my desktop folder for a lot of the, I have a sub folder of my desktop folder that I use for a lot of sort of in-progress files, like the agenda document for the show notes, where I actually track the timestamps and all that.


The world has changed tremendously. Eastern will meet West, North will meet South. We have not begun to see the full impact of the Arab Spring. Gender equality issues, energy security, cyber security. Today, we are fighting against corruption. This is a time for boldness, not for caution. We're all in this together. This is the beginning of a new era. Do more, talk less. Find common interests. Change your mindset. Find solutions. New definitions. Democracy in action. We're all in this together.


All right y'all here we go the cup case nine The cup case nine twenty twenty one Random teams check the results anytime elite sports cards.com Let's pull a shield A traffic for every goalie scored this year.  They're there. I think they're gonna make a playoffs Whether they they'll probably have to they'll probably do in a play-in game, but they'll do that without a doubt Whoever's gonna be Nice start senators got a rookie clash Josh Norris Josh Norris every go sends Jason Zucker penguins to 249 Jason Zucker penguins Rookie Auto patch for the blue jackets Calvin Turcoff 94 of 249 So some of the bigger names will be to 99 or less and then we're else like to do The 249 is still a true.  Just beautiful. Yo, that's going in a mag. That's gonna look great in a mag I'll take my Grinchlet canvas off of it and the Patch here Rookie class patch card Ian Mitchell Hawks to 49. So I'm Carl Dang first box, too. Yeah, I said we're gonna pull a Martian tonight, but I would take that over Martian. I think most people would Yeah, so nice He's got a good few autos in this one actually right Carl legitimately This is better than I'm at copper debt Chris probably one of the best Bruins Yeah For sure Wayne's just sitting in he just wants to watch Got a rookie Igor Korshkoff to 249 Leafs. I literally love the cup so much that I'm just sitting here watching it Devils Jack Hughes the 249 Man, even like the base RPA back. So nice poker face with this stuff. Well, he's gonna spoil everything Rookie Auto patch abs probably from coos Okay, that's a big one that one's from coos the 249 for the abs Do the audit on your bokeh pulled last night was wild Yeah, everyone's are tough to hit in this all the vets are fairly tough to hit for the most part So you get a lot of rookies in every every case Islanders here's a chase for you five of ten patch rookie auto Ilya Sorokin These designs are sick to Ilya Sorokin one of the best keepers of the class is like him out him and Ottinger pretty much I would say it's geez man like a couple Islanders Islanders Islanders I'll just have to hit in this too. I haven't seen a lot of Sorokin, which is kind of weird Nang s That's Gorge that's going in a mag two signature renditions is pay a suitor for the Blackhawks What up Ken? Now we've got a printing plate Vatali craft saw for the Rangers Cup Rookie masterpieces yellow printing plate authentic rookies No, this is all right There we go one of one for the Rangers now I'm running out of space Let's go. Let's see a shield. I have a feeling that's that one That's what this case feels like Working up to something right. I feel like there's a big card Not that those are small There's no there's no wiggling, you know, I mean You got a cardboard box holding the tin which holds the mini box Which has a layer of foam and then the cards Kevin Lankin and rookie Hawks to 249 Maybe only redemptions. I've seen so far. I think the only one I've seen the only two I've seen were both J-Rob Is he yeah Saber is Rasmus Dallin the 249. Yeah, my mmm Speaking of Penguin's rookie Auto patch is Anthony Angelo 238 of 249 pens this thing signature patches dual auto Marion Gabaric and Artem Anisimov Rangers congrats on that one. That's gonna be two game-worn patches also Gabrik and Anisimov Magnet to Geez man few teams getting out of the action. That's so Rangers is Sean M Carl. No, it's Dylan top-loading tonight. Yeah, Dylan. You got a Sean, Jr. Dylan's gonna be every night this week actually It's gonna be killing it Gabrik and Anisimov the 35 dual patch auto signature renditions and Nils Hoglinder for the Canucks and this is gonna be a random at the end Quads premium materials Alexi Lafferniere Conjure Miller Ilya Sarokin and keeper bellows one of five Geez man Dude Conjure Miller is having a great season. He got ejected even I he's spit on drew down here something like that Sarokin's a beast. Laffy still has that potential. He got bellows as well one of five random at the end on this one Hey, you're gonna harass him like Sean He might not have as good a comebacks He's not gonna like overreact to things that Sam says either It doesn't get under it as it won't get on a Dylan skin when Sam's like really won't call you three. He's like Funkadelic man Dylan probably won't even react to that. I don't just ran just have to wrestle for this card Yeah, I got a hockey fight No, that's random at the end That's a quad patch. So I don't forget I Might need it. You never know Rookie Philip Broberg for the Oilers Oilers Broberg rookie to 249 Mike Richter Rangers at 249 Mike Richter really he's actually really nice You gotta introduce me to him Hold it really cool. That's authentic actually last week. This is cool. There's a nice one here devils RPA tie Smith to 249 Devils RPA tie Smith good defender there And there he is Carille the thrill Patch auto signature materials wild 78 of 99. Oh, yeah, we're getting wild Congrats Minnesota three-color patch auto Carille the thrill What a case yeah, she's he did cause this is a great case this case has been insane had big vets big rookies now Too huge rookies too huge that card.  That's how they pronounce it. We should change your name It's expensive and it takes a lot of effort. Yeah, that's why we didn't do it It's they'll never be like that. Who do I was gonna say who do I kick off? I can't kick any of these guys off Probably yeah, but it looks too nice. All right. This is the best many cars as I had this is like Almanac right here Do the hockey all that would be insane It's so tough to get that many cars because it would just be all like Crosby card McDavid and Gretzky, that's like you do like it would be you could do like a five-case run Correll young guns. Yeah. Yeah, it gets a little less fun when it's you know nice cards, but Bobby or all-time alum did 249 Bruins capitals. You are Mary auger to 249 player coach owner of I forget what team it's in Russia though, right KHL You played in the game like it's like he's like 49 or something Trace is wearing a young Mary auger signed hat right now. Is he? Yeah, what's Lord of Panthers hat? Why is he wearing that? Jeez dude rookie auto-pag VTEC Vanna check for the caps to 249 nice hit capitals. I haven't seen a VTEC Vanna check yet I don't think in any of the case we've opened There you go caps Signature materials Nikolai Ehlers to 99 for the Jets Three color again vets are gonna be game-warning this We go Jets rookie outer-core jersey auto Rangers to Andre Miller to 35 Yeah, nice country like I said he is having his breakout season right now it seems like That was the only silver lining the cup coming out this late is that a lot of the rookies are a lot bigger now than they would have been Years ago quad jersey stars Jake Ottinger rookie foundations to 99 Ah check your public Excuse me. Sorry Last one last one Let's see if we can get one more that's deserving of a card stance Yeah, I was talking about that earlier. Okay spit on what it was drew dowdy wasn't it? I don't know man Conjure Miller your talent tip. I don't know the spin on drew dowdy is the way to go Dude is winning cups when you're in fourth grade Him and cope with our legends and quick. All right guys, here we go I don't know where that's gonna be. We got rookie class jake ottinger to 249 stars Yeah, let's go Bruins patrick waw to 249 Canadians Sure on the office one day do that rookie auto patch kustav lin schum to 249 for the redwinks I think joe's in the one that wouldn't Well, I don't think I would Well, I mean you Yeah, Dylan's learning now he's gonna be easily. Yeah, I know who that is Lin schum rookie auto patch for the redwinks. We've got a capitals two of eight patch auto tom wilson Everybody's favorite player tom wilson Yeah, game use good stuff there for the caps Rookie auto to 36 for the canucks only you'll levy They go canucks on the you'll levy Patches are never a napkin. It seems like No, they never are and Trio's premium materials for the penguins of guenny malkin jake gensel and chrysla tang five out of ten The only guy missing from there is I know it's kind of weird They don't have crossbie on there because do you know crossbie and latangum any other like 15 years or something like that? But it's all all four of them. That should have been a quad That would have been sick. Maybe there is a quad out there. Yeah, all three colors though great pens card here Malkin gensel latang That's so sick All right guys, we do have one random to do And then we're gonna recap The next case, you know, because I'm not saying we're gonna have the shield. Yeah That's how it goes. All right. We do have the Quad you like to do here two new york teams on this one Rangers islanders quad premium materials to five lafreniere miller sarocan bellows. Good luck on that one A nice rookie quad patch 10 times 6 and 4 Whoever's up top gets it 1 2 3 4 5 6 7 8 9 and 10 Islanders up top rats aisles All right recap time All right, so we've got all the relics up first the ottinger Ian Mitchell nicolai healers The penge trio there. That's a great one And then there was that quad that went to the islanders autos nils hoaglander pious suitor vtech vandacheck ty smith gustav linstrom anthony angelo hallow frankus a cop and turk off nicolai healers david perron a barabanov all you'll levy kondray miller And a tom wilson to eight and maggots guards we had a dual patch auto marion gabaric and our temanisimov the 35 for the rangers beautiful game war and dual auto there brilliant's auto bobby ore gold ink in front of that medallion there stunning looking cards those are A nice rookie patch out of ilia sarokin islanders five out of ten New york teams crushed it and signature materials rookie kareel kapri sov 78 of 99 for the wild Yeah, yeah But the kid reported the back so that fills the magapolar doesn't move around and that'll do it everybody. Thanks again One more cup one more cup case up next


This is Tim Nash, he's a security expert in forestry, works with daily which we've heard before, talk about how to make your websites faster, and Tim is going to talk about work mode, which is my understanding. Let's just check, who came for a security talk? Okay, other room, dosing Nigel, he's one of the Q&A panel, asking really complicated questions. You don't know ready complicated questions, you can spend five minutes coming up with something to ask him. That's my handle at TNF from Twitter, feel free to tweet sarcastic things to me. Normally when you do a talk, the best way to start is with a cunning story that will hook your audience in and make them get engaged with you. But this entire talk is basically ego driven and all about me. So we'll start with me, that's my finger pointing at some hardware in a data center in Manchester. And my name's Tim, I'm the WordPress platform leader for SP. As it's probably been mentioned in the government, I do stuff with security, I'm a former pentester. I co run WordPress leads and I've been involved with WordPress for a long time. I used to run a small dev agency, and I go around the country speaking about security. Why I'm here talking about productivity. So if I accidentally start saying scary stories, I'm really sorry it's just the normal pattern. So why am I talking about productivity? Well mainly because they didn't accept the security talk obviously. But productivity and being able to find more time, I described it as it's not about efficiency, it's optimization. I'm not looking to make myself better. I mean it's a good thing for humans to strive to make themselves better. But I'm quite okay with being okay. But what I need is more time. This isn't going to be a talk about too much about self-help. And I'm not going to sit here and tell you to go do yoga or meditation. Meditation is useful and I recommend the car map if you are going to. But it's a few years ago, if I started talking about the things I'm going to talk about today, I would have started looking like this. And I've mellowed over the years. And as I've mellowed, I've slowed down. Now I'm just lazy. And about a year and a half to maybe three years ago I realized I was getting very lazy. And I had quite a lot of projects that were just drifting away. I was doing starting, I should say, lots of things. But I wasn't necessarily finishing. And that was both in my professional life and my home life. I'm a tinkerer by trade. I like to fiddle and fix things. I like working with my hands as well as working on computers. My house is a lovely home automation. And I'm currently in the process of working with builders to build a new house. There's lots of stuff going on in my life. And I need more time. Now I spent a little bit of time making a time machine. And it didn't work. Now I need even more time. So I'm going to have to work out where I'm going to get it. Because I want to spend more time with my family. Thank you. But I do. I need to spend more time with my family. Before I am slightly concerned my daughter is going to start asking questions like, who is that man? But that's only because I cut my beard down. So the rest of this talk is basically about how I've gone from not being able to do much to doing more things. And I'm not perfect in any way. Any of the tips and tricks may work for you. They may not. But hoping there will be something in here for all of you. It's not going to go particularly dead focused. I'm going to talk about some tools and stuff that I use in my work life as well as stuff outside of my work life. And the critical thing and the thing that's really changed for me is planning. As in I do something now. Historically my way of doing things is wake up, wait until someone tells me to do something, do it. Especially at work. You know, my working plan. A lot of projects would be going on but I basically prioritise based on who is screaming at me the most. It's a very effective strategy. Because that way you feel like you're always achieving. Because the person stops screaming, that's success. They might not be doing you any good and you end up just running and always firefighting. So I've started to learn to plan. I have a small child and she screams a lot. So at home this meant nothing ever got done because we were pandering. No, pandering.  So planning doesn't just mean planning at work but planning at home as well and making sure we're carving out different activities and times. So I can't add hours and as we've seen I actually need to somehow use less of them because two and a half years ago I was sleeping four hours a night. Now, bad news. I had low, you know, other 20 hours. Bad news, you can't do that. Some people can but most humans we can't. Bad things happen to you slowly over time especially when you're doing 24-hour shifts going along and then doing an eight-hour catch-up two days every night. It just doesn't work. So step-on. Very simple. Measure tasks. By measuring tasks I mean measure everything. Try and work out whenever you do something even if you don't do it over time. If you're doing it for your first time I've got a new task. I need to do a presentation. Start timer. Look at how long does it take me to do a presentation. Put it all together. About 14 hours. Which is quite a lot. Write a blog post. About five hours from doing about 4,000 months. Once you know exactly how much time it takes to do a different thing you can actually plan it. Otherwise we're guessing. We're rubbish at guessing. Humans have no real concept of time which is ironic given it's completely artificial and it's something that we made up. We shouldn't at least be good at guessing it ourselves. So when it comes to doing any sort of estimate I follow our technical director's advice and go with the rule of pi. Whatever you've decided is the amount of estimate you're going to use times it by pi. And that will give you roughly where you should be. If you're talking to a client double that because it's way better to finish the project in half the time and look really good than it is to overrun. It's scary how accurate the rule of pi is. It's also worth emphasizing there is no such thing as a five second job. There is no such thing as a five minute job. In fact if you start to use the word five it doesn't go into take that long. But five second jobs are really always the things that are going to destroy you. It sounds weird this idea that you're going to do a lot of planning and thought thinking. I plan everything and I find that my mood and my personality can lead me down dark rabbit holes and sometimes they can lead me down rabbit holes where I cannot get out of bed. Then those days I absolutely schedule everything. Everything goes in a to-do list and I work my way through my to-do list. Every day I have a to-do list and I will work my way through them. I will prioritise things and I go through. There are different mechanisms for doing prioritisation. I like the one that is Eat That Frog which basically says take the hardest task you're going to do do it first. I modify it slightly by taking a very, very easy task that has to be as easy as pressing a button. If it's any more complicated than that it has to go down the priority list but if I've got a task that I can press that button and have a win, take that for otherwise Eat That Frog. As you're going through and doing your tasks and working your way through them when I say I put everything on a to-do list I've got two sets of to-do lists and Tim's okay to do list and Tim's in a bad place to do list and Tim's okay to do list has big broad things on it. Build a house. No, that's literally on my to-do list if each game is locked down page by page but on my other one my very short inversion is clean your teeth. Sounds so simple until you're in a scenario where you can't do that. Go for an exercise. Go for a walk, etc. Once you've started understanding your to-do list of things you have to realise and you're looking at how much you measure your time you need to understand what distracts you. Netflix. For example, if you work at home chocolate eating Twitter Twitter Twitter Twitter Instagram Pinterest that blog post I just saw over there pretty much anything on the internet which is really awkward if you work on the internet. So the point that one of the exchanges between me and my wife is ah you're coming to bed and now I got distracted walk by the internet again notice distraction work out what you're distracting out and try and block them out and I'll give you some tips for how to do that later on there's distractions are things that you cause they're mental things that you're putting in nobody is saying go to Twitter are there any social media managers in here sorry yours comes next you get a free pass to Twitter but for the rest of us no one is saying go to Twitter, go to Facebook, go to Instagram do this that's your brain doing that and therefore it's a distraction however when we're coming to planning we have another thing and that's risk now risks are things that are outside out of our control coming along and distracting causing our plans to be pushed along risks include your boss when it comes to making sure that your task will not be done on time your boss is so high on the priority list because let's say they're going to add another 10, 15, 20 tasks for you communication mechanisms Slack incoming and talking to you all of these things are risks send you off to make sure that your task never gets completed with distractions it's very easy to say block Twitter it's a lot harder to suggest blocking your boss I mean you could try you don't know how well it will go but even in an office environment there's ways around this head funds which is clearly the universal sign for right yeah I've never actually worked in an office and this has worked have you ever sat there with a head phones on and the person's gone oh no that person's got a head phones on oh I can't talk to them about this thing I'll just send them an email no they'll still come and tap those on but if you can manage the mitigating okay I need to do this dedicated piece of work that means I can turn Slack off that means I can turn this off put everything to one side and get your work done having done all of our project planning ahead of time and we haven't even done anything yet the next thing to do especially with bigger projects is walk away I never start the task but I just wrote in my diary so if I've written something down I'm going to do something I don't start it straight away because if I start it straight away I'm enthusiastic I think go head along into it and I will be all the way in the weeds so very very quickly and then I will realize that the weeds are not weeds they're tentacles and I'm being slowly but surely constantly sucked in because I didn't think through the consequences of any of my actions because I was too happy going yeah I'm going to go do this whether it's co-fixing something whether it's making any sort of decision it does have to walk away for a long but just walk away from the task for a little while so you can think through the consequences of your actions it sounds so counter intuitive I want to get things done quicker so I'm telling you to not start them and this isn't an excuse to not start them just you need to step away even if it's for five minutes give yourself and your brain a chance to go huh oh yeah if I do this if this and this that explodes and that's bad let me not do that if you can walk away you'll find yourself in a position when you do come to it that you have even if it's subconsciously started working out how things should be done so what does my day look like I am a morning person that probably doesn't shock many people I wake up about five o'clock in the morning lots of people just wake up mind you those people probably go to bed at 11 or 12 and I go at the u so it balances out I like myself in the morning I'm very productive in the morning by this time of day I'm starting to wind down I'm starting to slow down effectively we are in my evening nine o'clock I turn into a pumpkin it's really turning into a pumpkin maybe a mouse whatever to I don't know which part of the method I'm meant to be but I'm a horse with a carriage but anyway the general idea is I turn and I go to bed so we are in my afternoon a late afternoon then now we definitely get going to Miami so five I get up my daughter will be up between quarter to six and quarter to seven so I have this 45 minutes it is mine nobody else can take these 45 minutes away from me so what do I do well clearly I sit in bed on Twitter going ahhh and that's always what I use to do but now I get up and it's little simple things I for years and years have been hydrated I didn't know that but I just had weird skin slightly staining skin and I put it down to the next month simple thing like that like go drink water really hard to convince me to drink water I don't know why but when I got out of bed I didn't go I must drink water I went to the tap and got water I'd go I must drink coffee and go straight downstairs to go get some coffee instead now get out of bed go to the door by the door we have a bookshelf there's a thing of water on it I now pick up water drink it on my way out of the door it sounds like crazy optimization but all of a sudden I'm now drinking 500ml of water likewise in your own... whatever you're doing whatever you're doing those sort of micro-optimizations aren't just about speed and efficiency yes I'm no longer going to get the actual tap and turning on but because I do this every day it becomes a routine it feels part of it so the point there was a thing where for one evening I wouldn't do my normal bed time routine in the morning I woke up and slammed my hand into the wall because the water bottle wasn't there anymore and it's 5 in the morning and I'm not awake because it wasn't there to growl I just went straight into the wall on the first side this shows that I had built enough muscle memory and routine in there that this is good but you need to have some sort of feedback in testing the system because otherwise the wall gets hard so pick up on the water, I drink my water I take my pills again, originally I was just taking the water get down the stairs have my coffee we'll take some pills back upstairs do do do do do do so putting the pills there those 45 minutes are my reading time let's learn how I go through my reading routine in a bit but they're my reading time why I struggle to read effectively at any other time of the day so I only take those 45 minutes and that's peace and tranquility to read I do a tiny bit of meditation at the beginning but after that I just read for those 45 minutes with my cup of coffee for many of you that sounds wonderful can you imagine just for 45 minutes of your day you get to have a cup of coffee you get to read if people write facts or if you just get up a fucking night I had already read no truth so we get to 6.5 I then go to normally actually I'm a community manager so a couple of times a week I really want to find work on the trail because when I get to the office I'm not going to be able to do any work when I get to the office what happens is I go in and go morning and then half the office goes well actually there's normally only two of us in the office at 7.30 but we have a normally and then by about 9 we've already had 10 10 10 10 6 minutes did you break this no clean all through the day so during getting carried to some work I managed to convince people not to do any things with me until 2 o'clock I think my boss in the States thinks that's because I'm lazy and I'm not getting into work until 2 so we use the schedule in me until after 2 o'clock the reality is I want that by 2 o'clock I'm tired and I'd rather sleep in a meeting than I would actually do so I'll do my meetings 2 o'clock till 4 o'clock and back home I then get the train journey back my train journey has become semi-precious things but I can't read on a train so I tend to listen to podcasts and other bits my days work from home days those times become my ultimate productive thing because now I've gained back 1.5 hours in the morning and about 2.5 in the evening welcome to our train system it should combine those together I have a fair amount of time that becomes my hobby where I get to spend those parts of my day then I go off with my parents well yes with my parents, with my family with my kids get that love at last hour and a half she goes to bed at about 7.30 I go to bed at night I wake up the next day my day is pretty easy for me and I do that 5 o'clock wake up every day do you sound like me someday my day is not your day get your own days but seriously I get to come about that time because I get to spare and nothing's easy yours might be completely reversed you may be able to come about your evenings maybe your sister will be watching TV from 8 o'clock till 9 10 11 you're probably not healthy at this point 1, 2 in the morning maybe some of that can be prepped back so tools I use for products I'm in I keep a diary and I keep a journal I use a form of bullet journal and one thing I would recommend is get a decent notebook I this is a proper notebook this isn't my diary, this is just my normal notebook that I carry for writing notes the cool thing about something like this is that you can normally get one that you can buy or replace from paper inside and what I do with these notebooks is once I finish writing in them I put tape around them so they're completely sealed I do, I used to work doing payment gateway systems I'd have client details in here that I couldn't allow out but I probably didn't want to burn so I'd sealed them up and marked them as sealed and if I only needed to take and go into them I could then open them up and I could keep a record and I'd just kept doing that but get something that you want to use it says this is for you to pick get something you want to use cut spend a little bit of money on a decent notebook if you're going to do an analog way of doing things get decent pens if you're artistic go for it I am not and yet I can still build it journal because it's just writing it for simple things but I keep a diary every day I keep a journal my diary is not that of a teenage girl but it has feelings in it sad face happy face because I can track that over time because you know what you're sad and miserable you're not very productive I mean I'm a sad admittable I didn't think about such things I also have a big role in my house for all my my personal project are a post-it cam-ban board so a cam-ban board is a thing that anybody who's an agile stuff knows it's just different information you've got columns like to do backlog in progress and done and it's all done digitally in most places take the post-it and move it over there doing something so physical moving your things across really reinforces it in your mind if you didn't want to go digital these days I do almost entirely analogue my work requires me to do digital stuff but for all my personal projects they're all kept in notebooks and on good walks because of that physical activity reinforcing my mind positivity and things that I do but Trello's really good Basecamp's now got a free personal tier so if you've got a bit of your if you're looking for a really complicated product organisation Basecamp, if you're into like GitHub and things like that Co-BaseHG is like a British company and it's like not even GitHub they've got by far the most nicest integration for issue tracking I've seen and they've had that integration for 10 years it's just the rest of you that have not caught up they can do exception tracking, all sorts of stuff so if you're a dev and you're looking at doing anything with Git, go look at Co-Base for the day, I find that fantastic I think people do deploy HQ ATEC media even though I write out the tasks I must come through today in my diary I still use to do this because that keeps me on track and it keeps reminding me and saying hey, you have to do this, you have to do this and then my digital brain is noteworthy so if I'm copying and pasting things I do that in motion so how my daily workflow at work looks like I use just four applications 5G, 3K note this is where it goes a bit more devy basically I have a browser, I have a terminal I have an IDE and I have everything else browsers we all know what they look like one thing that is interesting about browsers really that I want to say is that whenever I find something I want to read I do not read it then I click Save to Pocket I have it pushed to a service called Pocket or if I know I'm going to read lots of things on this site I will save to Feedly which has an integration with Pocket I will then get my tablet in the morning which is my dedicated reading thing and the only thing that I have Pocket app on actually in turn that I read on that tablet and only that tablet that tablet is set up with colour contrast that allows me to read it much more easily so everything goes through the flow I won't read directly off the web I just go right I'm going to say that's Pocket push it through and read it that way I can then re-share it afterwards in terms of this item for anybody into the geeks I use the really minimal theme which gives a nice headless look for the real font nerds I use Pack Nerd font and for the ligatures the monoids which gives you really nice little effects if you don't know what any of those words are do not worry because if you want to be happy with it I also use a bunch of items scripting in particular I use items to open up every multiple windows to every single server that we have on our WordPress hosting platform and then so I can open up a real one click and have access to all of the WordPress hosting platforms made hosts then I can open my shift I I can start typing and I'm typing into every single one of them so when I type into our own minus RF backslash and hit enter I can destroy everything what do that on my terminals themselves I always use ZSH I don't have my own max anyway combine this with omis and ZSH again for people who are slightly nerdy and associate free in terms of plugins on there I keep it really slow low because I I don't want to every time you add a plugin on ZSH you just slap these down you can see I have virtually nothing on there other than really the disintegration which is important and colorize which gives you useful colored output for your ls command my editor of choice is piano after a room who are dead and geeks like it's not a pie all in I'm an old person so I use nano you can fight me afterwards but please don't in terms of Asim I can use my IDE I kind of show you my whole setup because I can't work on it on a white screen because there's lots of bits the poody bits in the middle file structure over here and I have a browser built into it so I don't want to bother going to a different browser because that takes time and I also have the terminal window down here all of this can be used with your studio code all of that works pretty well it's the same way one thing I really like about Asim is that you can use it as a tougher IDE so some of the plugins that I do use that Asim use to fight instantly fixes all my code just makes it look nice all you have to do in case you've got a solve don't do that IDE bit in there you can get this in both visual code and Asim graphic colorizer all it does is it changes the color of the brackets internally for each one so you can go oh that's in that block of code because that's green and that one's red and that one's yellow as deep as that sounds it'll probably take you hours rest of it all of that highlight the time a bit basically I only customize my IDE and under customize my terminals because they need to fit in the client's bottle Wavebox is a tool that just allows you to integrate slack telegram to do its color notion all into one application the great thing about this is I go click, gone turn it off and I also have a host file that I have a single command that says distract 3 which I use for second and it changes my host file to block out about 32,000 websites which is malware and a bunch of other stuff as well 32,000 websites I can no longer access it has every variation of a social media platform you could ever come up with except for tweet deck that could work but I can set tweet deck up in Wavebox we're not allowed to go in it except you post things it won't show me the columns it blurs them out for me Alpha if you haven't used it if you're a Mac user my colleague Keith was a really good Alpha talk but it really will change the life it allows you to do snippets and fast snippets so I can do things like back it through there we go 140 minutes not 30 perfect you don't want to ask me questions I just thought I'd tell her now before she starts panicking so snippets I can just go type flf and then a special character and it spurs out this whole line of code that allows me to find large files on a server even at the whole pack that I want to go to if I'm doing any real DPCLI it's just WPPL square bracket we'll also expand that out to DPC plugin list of it goes if you're using windows the windows one is asked something I don't even remember as far as I asked but there's a equivalent for windows is asked something and if you're which I think should be just somewhere the same as the windows and there's also text expanded as well the really cool thing about Alfred there is work load allows you to build out complete scripting systems to do stuff and for Alfred itself if you're just using specified hotkey brings up a little search box you can write your own search indexing so in my case I can write it and say I want to remember the thing blah blah blah blah and because I use notion for tracking notes digitally I have source and websites that I always go to set up I can have a customized search engine that is effectively my second brain which is good because my first one is rubbish so this is a much better idea if I make sure I get to keep that in digital as possible the final section is learning to improve myself and get that optimization I need to start learning things to take shortcuts and there are a few ways that when you get to a certain age learning is harder it is actually meant to you use harder you're running out of brain cells they are actually dying so learning and storing things is harder and harder likewise the difference between a senior and a junior there is to see that in Google so realistically I don't need to learn anything I just need to learn how to Google it and to a certain extent I know that's what I've done but there is a little part of me that doesn't need to have any some memory recall so I can tell you a lot about it I can do talks it's not because I'm an expert in every subject and demand just a few but it's not because I'm an expert in subjects but by researching by doing talks and by teaching other people I have to be able to put them into words and put them into context that they can understand which means I have to slightly understand it myself maybe not fully I can probably put it my way for most of it but I can try and so learning to learn I teach other people and if I can teach somebody else and they go I understand this I probably know it well enough I also write it down whether it's writing blog posts whether it's writing notes if I want to remember something if I write it out and I write it out in long form if I don't terrible if I remember it I write it in short hands because I can't read any of my writing I can't read it in long form I'm just working on hoping that I can make out enough characters when it comes to short hand stuff that I write I have no recollection half the time of what I actually want you can see a blog post on my site and it says something like today I went and did this that isn't me being kind to you that's me going I need to remember this I need to put it somewhere where if somebody else can remind me where it is and then when I go and Google it if I find myself I know it's the right answer it was the right answer finally I use flashcards how many people went to uni and wrote out cards on notes and you would go and ask you'd have like friends so don't ask this one Anki? Anki? I don't actually have to say this out loud this word it's basically a digital form of flashcards you set it up on your computer and I've had to delay it on this one and every so often it will just ping up and say ask me a question and I have to write the answer I use this for doing terminal bits so if I need to learn a new terminal command I will put it in Anki how do you change directories in a folder whatever folder I'm going to that's easy I can ask these questions make myself type of name until it becomes muscle memory the final bit of all of the puzzle is feeding myself back how do I know where I'm doing better well I'm monitor it's alright I'm monitor so everything I do makes stuff in my mind but ideally I write down how well I've done what I've done these I try to everything not toilet habits but twice too everything I do I use an application called Harvest it's really expensive unless you happen to be doing just one project so I have a project called Like it's gone over budget because Harvest lets you track by time and money it's gone way over budget no one called daughter no I said I don't want to track that and make small changes I tried making big speaking things it went really early for two weeks and then I burnt and crashed big ball you make tiny incremental changes so you're not a morning person but you want to get up at 5 you probably want to be a morning person you can start at 7 you can start at 7 20 half six 5 go backwards slowly but surely over weeks and weeks you want to learn something just repeat it over and over and over again and small changes really do make a difference and do change your life so I hope you've learned something I'm not sure if you have a stuffy else you've learned that I'm a very shame person and I get up very early and also probably learned that I'm about to go to bed anyway oh no there's an exercise that's me saying don't obsess about things but no you should just obsess no seriously don't obsess just make those little changes don't worry about it I mean monitor everything so this is all completely contradictory advice but if you're starting to get to the point when you're worrying about the things you're doing you're doing this well life's about enjoying things and going forward and finding more time if you're starting to worry about things you're then taking up time worrying and just becoming yourself to do some things so don't obsess about any of this if it's not working for you go watch that show on Netflix thank you very much look at what that white bar is up there which is rather alarmingly on the screen oh it's the history of my thoughts ok thank you what? how do you work on the train? like seriously it's like I mean I know northern rail ah no trans-Pennine it's open work ok I know trans-Pennine rail yeah how do you do it so I'm a horrible reasonable looking person the actual face is a raging bad person I can't even look at someone in the morning and they think ah no they go which we're not going to get a table to myself but yeah I optimize most of my train journey I know where the train is going to stop I know which carriage has reserved seats in it I know which carriages don't have reserved seats I know that if I get on the train and I go to the left hand side there's a table on the train in the morning that has a they've set it up so that you can reserve the seats ahead of time by texting I also know that SNFIS doesn't work on that particular train so I always know that those seats are going to be used free because there's a reserved side on them but nobody's ever going to sit in so I can sit in there safely I make sure I have tasks that don't require me to use the internet if I have tasks that do require me to use the internet I try to break down the box to the smallest things possible and stif over the bits that I can't do if I have to arrive at work and there are sections of my code that says to do this loop then I have that I go as my own train journey head trains on but basically you look as grumpy as anything I like hack that one of my friends taught me if you're doing really long train journeys is to get a bottle of white lightly pour it out fill it with water and sit on the train you will have the most peaceful train journey you've ever had as no one will approach you


The Bemidji Girls basketball team snapped a three game losing streak this past weekend with a 13 point win against Princeton. The Lumberjacks hope to build on that win in game four of their five game homestand tonight against Detroit Lakes. Lumberjacks trying to use their team defense against the Lakers who just had seven varsity players in the first half. Katie Alto with the steal in the backcourt goes up for the layup and she takes the foul. She finished with 12. In the second jacks up eight the ill-advised pass is picked off by Ashley Hofstad. She gets an open court in front of her takes it all the way bucket and the foul and a few minutes later jacks trying to close it out up 11 rumor flatness with the three the assist from Macy. Lindsay Hildenbrand led all scores with 16. Riley Jones with some great defense as the jacks win by 13. If you enjoyed this segment of Lakeland news please consider making a tax-deductible contribution to Lakeland PBS.


Welcome to the 2017 NCHA Summer Spectacular, I'm with the winner of the limited open Derby Final, Justin Chalmers, who rode HC Herd Boss and marked an excellent score of 225, congratulations to you. Thank you. How did you feel about, you know, this win tonight? You know, like, oh, this is my first final, so just going into it, I just wanted to get through a good clean run and just prepare for the semis. So, you know, it was just kind of like an added bonus, I guess. But... Can you take us through your run? Yes. When we were walking in there, there was a blackhorn moth that we really like and an orange moth, and they were both there together. The orange moth kind of ducked away just a little bit, so we went with the blackhorn moth and she was a good cow, she was a little soft, but it was just a good way to start the run off and, you know, didn't stay too long, but just a good building cow. Now you are, like, I think eight and a half points ahead of the field, ahead of second place and the rest of the competitors. That's quite an effort. How do you feel and what do you think the difference was today? I just focused on good clean cuts and just a good little accurate run. And, you know, I just was fortunate enough to cut three really good cows that just set up in the right spot and let that horse do what he needed to do. So I think that's what it was, just lucky to cut three good cows, you know. My help just had him picked out right. Okay, so it's a good set up for going into the semis? Yes, yeah.  Now, tell us about your horse. So he's by a horse called Herd and Katz, who's actually a Gelding, but Eddie and Barbara had that horse and then they raised this horse. And there's just one near of him. And yeah, he's just been a good little horse. Dan Edwards started him and I got him as a three year old and I've had him ever since. How long have you been training for these guys? Almost two years now. And is that the whole time you've been over here from Australia? No, I've been over here for, like, 14 years. OK, so tell us your story. Well, my dad had come over here when he was young and trained horses. And then he moved back to train horses when he was like when I was like 14 or something and then been over here ever since. So you lived over here as a child. Went back to Australia for how long? We were in Australia for 11 years. Yep. And then come back over. OK, so you probably spent more of your life over here. What did you learn about your horsemanship in Australia? You know, it was different. Like I was young and, you know, it's a bit different over there than what I've here. There wasn't quite the horses that there was over here, but a lot of good horsemanship skills, you know, just how to make a good a good horse. So yeah, and a lot of the guys I've worked for have been Australians. So it's just kind of went on with that. OK, you've won almost four and a half thousand dollars. How does that feel? Oh, it just feels amazing. Like, first finals come here and do this. I mean, just couldn't ask for it to go any better. Exactly. Well, good luck with the semis, too.