I am going to discuss the solution to the current lab assignment which I noticed that people are finding it very difficult. I am of course not giving any solution. All of you will have to figure out how to solve it using C++ programming language. I am just going to show you an alternative simple solution. We will then discuss pointers and with respect to pointers, we will revisit the function calls. Last time we had briefly discussed calling function by passing parameters by value and the alternative was to pass parameters by reference. We shall discuss that. If time permits we shall discuss character arrays and some features of character arrays. We had discussed this last time. We will take the discussion forward. There are several important announcements to be made. So I will close the lecture at least 5 minutes before that. The lab assignment for this week was that mid semester exam marks were entered in a text file. These are some sample records. You will all be familiar with sample records which have been put on the course model. Some of you might not have seen it if you have not seen the lab assignment already. But the idea here is that when you have large data, the people who enter that data into computer are completely different. They are typically data entry operators. In this case I got this data entered by my staff. Now they don't know the details about what role number means, what batch number means, etc. They enter the data in a spreadsheet as diligently as possible but they made several mistakes. From that spreadsheet I extracted the data into a comma separated record kind of structure which is what you see here. So for example if you take this record, there is a serial number followed by a comma, role number followed by a comma, name followed by a comma, batch number followed by a comma and mid-sem mark. This is the general structure but you will notice that in some cases some field value is missing. For example name is missing here. The batch is missing here. People who are absent were given negative marks. So since different people entered data, some people entered minus to some people entered minus one. Majority of the data is correct however. The problem for the lab assignment was given this data, you have to find the batch-wise average marks and class average. This is one of the assignments. Now your first target is to read this data correctly. Second target is to separate out the components corresponding to role number, batch, etc., etc. And then total of the marks according to batches. What I am going to discuss today is a simple method to find the mid-semester average marks for lab batches using a programming language called AUK. It stands for the initials of the three people who invented this language. This was invented in Bell Labs in 1970s. Alfred Aho, Peter Weinberger and Brian Carnegie. Has anybody heard at least one name, Carnegie here? Yes, Carnegie and Richie were the creators of C programming language from which has claimed C++ subsequently. All of them are great computer scientists. In fact there is a beautiful book by Peter Weinberger written in 70s called The Psychology of a Programmer. And the way he describes the human aspect of programmers, the observations are still valid today. If you get a copy you should read it. However, we are talking about this programming language AUK. Now this language was designed to be a very simple interpretive language which makes heavy use of string data type. It makes heavy use of associative arrays. You remember I mentioned associative arrays when we discussed the notion of finding out what we can say when we were discussing the image. We were looking at the pixel values and we were looking at the spread of the pixel values, the functions that we calculate. We used associative arrays there. Similar associative arrays but this time not with an integer index. We shall see what it is. And regular expressions. We don't know what regular expressions are. For the time being we consider them to be conditions on the data. There are some inadequacies in this language which led to further development of a new language called POR by some other people. However, we are looking at the programming language AUK. Let me quickly teach you programming language AUK in 5 minutes. This language actually can be learnt in 5 minutes based on whatever syntax and semantics you know about C and C++. So this is a language for processing text files. Text files are considered to be composed of lines. So each line is a record and a text file is record and record and record and record. Observe that the data file that you have to handle is exactly like that. There is one line per student and there are 850 student records. So each line is actually a record. What this AUK does is that it treats the file as a sequence of records and by default each line has a record. Then it breaks each line into what it calls fields. So effectively there are 1, 2, 3, 4, 5 fields. As you can notice in our data there are 5 fields. We shall see the details. Now what it is capable of is to read line after line, record after record, apply some pattern or apply some condition on each record and if that condition is satisfied execute an action that we have specified. If the condition is not satisfied nothing is done with that record. So simply it keeps on applying itself to each record as it comes. You can specify a series of conditions which are called patterns and for each pattern you can specify an action. The way in which you specify patterns and actions is rather simple. So let us look at some details of how AUK analyzes each record as it reads it. In our case each record is something like this. The fields which are separated by comma here, they could have been separated by something else. They could have been separated by vertical bar. They could have been separated by any symbol which normally does not occur within the value of any field. After all you want some separation to be indicated to the AUK programming language. Or for that matter to any programming language. Without such separation you can't deal with that data anyway. It recognizes each field by a dollar symbol followed by a numerical value. So dollar 1 means first field, dollar 2 means second field, dollar 3 means third field, dollar 4 means fourth field, dollar 5 means fifth field. If there are six, seven there are fields there will be dollar 6, dollar 7, dollar 8. What AUK does is whenever it reads a record it automatically breaks separate words into these fields. Ordinary field separated by the way is a blank. We can't use that because between the name there would be a blank and we don't want this to be considered two separate fields but a single field. So we introduce an artificial separator. We have to tell AUK that the separator of the field in our file is comma and not the ordinary blank. With this notion AUK separates out various fields as it reads records and assigns values to dollar 1, dollar 2, dollar 3 etc. So dollar 1 will be 13, dollar 2 will be 0, 9, D0, 7, 0, 1, 0. Dollar 3 will be Guru Raj Sureshwar, dollar 4 will be 7A and dollar 5 will be 44.5 which is the highest score in Midsim. Is Sureshwar here? Guru Raj Sureshwar? Yeah, let's give him a big hand. Well done. Now, I promise that I'll compile a list of all top score else. I've got lists from TAs but some TAs have said that the crypt sessions are still continuing. Anyway, now what do we want to do with such records? Remember the specification was that people who are absent have been given negative marks. Now those people are to be ignored in our analysis but everybody else has to be considered. So a simple pattern we figure out, dollar 5 less than 0. If any value here is less than 0, we have to neglect that fellow. Otherwise, we have to consider that person. One action we have to take, if this pattern is found, we should increment the count variable for absent students so that we can count the number of absent students. On the other hand, if this condition is not satisfied, that means the pattern is dollar 5 greater than or equal to 0, then we should take some other action. What is that action? Increment batch counts, increment mark totals and at the end print the accumulated results. This is roughly the statement of the problem. Let's look at how AUK solves it. This is the AUK skipped followed by execution results. This is half the program, the remaining half is on the second slide. And that's it. This program does everything. Let's look at what it does. It has no declarations, no, nothing, nothing, nothing. So AUK, whenever you use a variable, it assumes the variable to be whatever type is required whenever a data gets into that variable. By default, it's a text variable or string variable. But you can put numerical values. It will treat all the values as numerical values. Arrays, you don't have to declare arrays. The first use of array creates an array internally and the array is initialized to numeric 0 if numeric values are getting into it or it is initialized to a null terminated string if a string value is getting into it. So you see the simplicity at its best. Look at the first slide. When the AUK interpreter reads my program, it will say $5 less than 0k. Ups and count plus plus. This is like a C syntax. Notice we did not declare an ups and count variable as int or something. It automatically creates a space and it starts incrementing whenever any record matches this pattern. There will be a few which will match this pattern. Most, however, will match the second pattern. And what does AUK do when it encounters any record with second pattern? First, it updates one count variable. Obviously, this count is the total count of students who gave the mid-same exam because the ups and does separated out. For a negative mark, she will never come here. So count plus plus at the very end when all records are read will mean the total count. Count marks plus equal to $5. Remember this syntax? Count marks is equal to count marks plus the marks obtained. $5 is the fifth field which is the marks. So for every record, the marks which have been extracted here will be added to a variable called count marks which would have been created automatically by AUK. The key is here. That's count $4 plus equal to $5. Remember, I don't need only total for all the students together. I need batch-wise totals. Now how many batches are there? I know there are 40 batches but the AUK doesn't know it. AUK will determine the batches by the records that it reads. Consequently, the first record that is read, suppose that is batch 0A, it will create an array called batch total and it will index it with 0A, not 1, 2, 3, 4, 5. Suppose the second record read is that of batch 5D, then it will create a second element of that array and call it 5D and add 1 to it because all array elements which are created are automatically set to 0. Suppose there is a fifth record which comes up again with a batch 5D which was already there. AUK will remember that 5D element has been created. It will go to that element and increment that value. Consequently, when you have completed scanning all the records, AUK would have got the correct totals batch-wise in this array. It would also have the count of number of students in another variable array called batch count. This is an array where obviously you are incrementing it 1, 2, 3, 4. Why? Because you want to find average. For every batch, the average will be found by taking the batch total and dividing it by the number of students in that batch. What better way than to use an associative array where the index is the batch code itself? Notice that if there are 500 different batch codes, 500 elements would be created. If there are 5 batch codes, 5 batch codes will be created. How many batches do we have? 40. Okay, 0A, 0B, 0C, 0D. But wait, we just saw a goof up. Let's go back to the previous slide. And one more. Here we had a person, Shalind Sabha. Is he there? Shalind Sabha, what batch is he? What is your batch? Okay, fine. Well, this is not his mistake by the way. He had correctly written the batch on his paper. But my staff, when entering the data, did not enter it properly. So for no mistake of his, he gets eliminated from the statistics calculation. However, since such data may exist, what will happen is that this array will not have 40 elements, but will have 41st element, because Hock will think blank is a batch code, and it will allocate an element of the array to blank batch code, and it will count. So if there are 2 or 3 blanks, all of them will come together, and their average etc. will be calculated. Obviously, this is not exact result. However, this is very close to exact result. Of course, this is computation. The computations are done just by this one line for upset students, and these 4 statements for all present students all are attended records. There is a new pattern called end. End is a pattern here. End pattern matches with the end of file. What it effectively means is that when the file is completely read, and there are no more records, Hock says now I am expected to do something which is stated as axial along with the end pattern. So Hock will come here now, and it will do all these activities. What is it doing? For I in batch, notice we say for I equal to 0, I plus plus, I less than equal to something, when the index is an integer. Is the index integer for the batch count and batch plot? I don't know. The index is a batch code itself. We don't know in fact whether it is an integer number, or it's a text or whatever it is. We don't know how many elements there are, but Hock knows. So it provides a simple syntax. For I in batch, what it means is as many different elements in the array that you have created, and as many unique indices that you have, go over all those indices one by one. So for I in batch means I will be equal to 0, 0B, 0C, 5D, 6C, 1B, et cetera, et cetera. Not necessarily in the sorted order, but in the order in which they were encountered in the need. And for each value, it will do the following. What? Print I. Notice I is not integer. So it will print actually the batch code. They will print the batch count. How many students in that batch? And then it will print the batch top divided by batch count, which is the average. And for every element in the array, it will do that. At the end, for good measure, we ask Hock to print total students, which is count plus absent count. Number of absent is so much, and class average is so much. That's it, the program ends. To execute this program, I have to give a simple command like this. N Hock or new Hock. That's the current version of Hock. Minus F double code, comma double code. This capital F indicates the field separator. Remember, Hock takes blank as a normal separator, default separator. So if I have blank separated values, I don't have to say minus F anything. But if I have any other symbol, I can state it here. So minus F, this means comma separator fields. Minus small f, this means the entire Hock program that you just saw is available in this file. AnalyzeMidSame.hack. Could be any arbitrary file name that you choose. This will ordinarily work on input, and this is the standard input. But when I use less than MidsameMarkz.txt, that's your Markz file, the entire Hock scripts executes. And when it executes, it produces this result. Observe that this first record corresponds to the batch total of blank batch. And our friend is there in that batch. So the average here, because there is only one student, means the marks of that one. But if there were three or five, however, all subsequent records give you exactly the batch totals and batch averages. So batch 0D has 20 people, 24 batch average, batch 0B has 15 people, 30 batch average, batch 2C has 21 people, and so on, 3A, 2D, whatever, whatever. Notice that they are not necessarily in sorted order. And finally, after batch 0C, probably the first record was, for 0C came very late in the record file, total scoons are so many, number upcent is so many, class average is so much. Do you like this programming language? So Hock is so simple and works so well, so why don't we use it? Why do we have to learn complicated languages like C and C++? Why do we spend one entire semester learning a complex thing when in five minutes we can learn a language and in 20 minutes we can start using it? Remember the first quiz that I had asked you in one of the early lectures, how many programming languages are there? Most of you could not guess correctly. As I had said, there are more than 600 programming languages. Some 100 of them are used by a fairly good number of people. About 20 of them are used by a large number of people. But about 2 or 3 or 5 are used by a very, very large number of people. And there are reasons for that. The reasons, for example, for less usage of Hock, is while it is support for such problems, but it has limited capability to handle data of all kinds and to implement all functionality to solve general computational problems. Try to implement a multi-precision arithmetic of 100-digit multiplication or addition. Try to handle complex decimal numbers. Try to handle abstract data types with complex numbers and geometric figures and so on which object-oriented languages permit as we shall see. So it is good for certain type of activity, but it is not good enough. And that is the reason why generally we don't prefer it for generic purposes. The second thing is it's an interpreted language. We shall see the difference between interpreter and compiler later in the course. Suffice it to say that a compiler, like when you say C++ something, something, the compiler produces a machine instruction in the native form of the machine. Those machine instructions execute very rapidly. Whereas an interpreter does not create an object code or machine code. Observe that for your C++ program, after saying C++ something, something dot CPP, you are required to execute the resultant machine code by saying dot slash A dot O.  There is no such code produced here. Ordinarily whether you compile it first-hand and then execute the code or you interpret, which means you translate on the fly, why should it make a difference? Because all statements have to be executed anyway. The simple thing is in any iterative statement, suppose an iteration has to execute million times and there are four instructions within the iteration, all instructions would be compiled for once in the compiled language. But Auk will interpret each statement every time, million times to translate it into machine code. This is a simplified example, but that's one of the reasons why Auk is not very popular. So operationally it is less efficient. I spent this time just to make you appreciate that data analysis problem typically can be solved easily by such programming languages. However, since you and I are destined to discuss C++ and such features, we'll go back to our CC++. I will continue expanding on the notion of pointers which I introduced briefly last time. Assume that the machine is byte addressable, then the addresses of consecutive locations of these data objects in memory drivers will differ by four if four bytes is the occupancy of an integer number or a floating point. If something occupies eight bytes, it will differ by eight. Something occupies one byte like a character or a pointer as we shall see, it will differ by one. However, we generally will not be required to know how many bytes the size of a particular item is as we shall see. This is merely a sample layout assuming some arbitrary value of 10,000 for the location address of M which contains 573. N will contain minus 1, 2, 3, 4, 5, 6, 7 and the starting address of N, if N has been allocated memory in consecutive location after M then the address will be 1, 0, 0, 0, 4. Suppose on an array A of three elements and if the allocation is consecutive A0 will go to 1, 0, 0, 0, 8. A1 will necessarily go to 1, 0, 0, 1, 2. So, these addresses need not be consecutive where variables can be placed by C++ compiler anywhere in the memory. Array, once the base address of the first element A0 is decided all subsequent elements necessarily occupy consecutive storage and that is the reason why the pointers while dealing with arrays become extremely important and fruitful. So just remember this M has a value 573 N has a value minus 1, 2, 3, 4, 5, 6, 7. We can declare pointers which can store addresses of locations so that they indirectly point to the data values. So the declaration is done like this int star ptr1 star ptr2. Star ptr1 is a pointer but it is a pointer which will point only to integer objects. It will not point to a character object or double or float object. If you want that you will have to say float star ptr3 string star ptr4 etc. The way you allocate values to pointer is by using what is known as an address operation. So if M is a variable M cannot be assigned to a pointer because pointer contains address M contains value but when you say and M when you prefix any variable by and then that means the address of the entity is concerned not the value. So address of M will be calculated and it will be stored in ptr1. Similarly address of N will be calculated and will be stored in ptr2. If we go by the allocation of storage which you have just seen in the sample thing remember these are arbitrary allocations then in 10,000 if I have 573 value and 10,004 minus 1,2,3,4,5,6,7 not only I can access these values by referencing them as M and L but because now I have pointers in ptr1, ptr2 I can also access them using pointer. The way I refer to them is to say star ptr1. If I just say ptr1 it will mean the value 10,000. If I say star ptr1 it means the value inside the location pointed to by this pointer. So it's an indirect access. Star ptr1 effectively means M if that is what address I have assigned earlier. So I can see out star ptr1, star ptr2. I can even print out ptr1, ptr2 but they won't make much sense because the actual memory allocations will depend upon the memory addressing scheme of different machines and so on. But still let us look at an example. I have here M, N and three elements are A. I have assigned M as this, N as this exactly like in the example. I now get two pointers. I print out M and N just for the sake of knowing what I will get. Then I assign pointer1 to address of M and I simply increment this pointer by 1. I hope that this pointer ptr2 should point to N because I have declared them consecutively. I do not know that. Just to verify, I will print out the pointer values and I will print out the corresponding data values which are star ptr1, star ptr2. And let us see what happens when I execute this program. Are you with me on this? This is very simple stuff. What I get however is very interesting. This is the name of the file pointer example 1. I will put all these files in the website. And when I execute this program, M and N values are printed as we are asked it to print. The pointers are these values. It is very interesting to note that these values of addresses are usually maintained and printed in hexadecimal number system. What does hexadecimal number system mean? The base is 60. The 0x is not part of that number. 0x stands for hexadecimal number. So it is a qualification. Because if you just write bfcaf8ac, it could be a character string also. 0x means what follows the hexadecimal number. We need not convert it into decimal to understand what that value is. Suffice it to say that this is pointer 1 and this is pointer 2. And these two pointers differ by how much amount? This is ac. What is the next value? c, ae, af and b0. Observe that I added 1 to the pointer. But the difference in the address I find is 4 bytes. Why? Because the pointer was integer pointer and integer occupies 4 bytes. If there was a data item which occupied 8 bytes, I would have seen the difference of 8. So I have indeed the consecutive locations printed here as pointers. However, when I look at what is printed for star ptr1 and star ptr2, I am disappointed. I guess star ptr1 has 573, but star ptr2 has minus 10772, 17072. Does this look very similar to minus 1234567? No. What did it do? Quiz. Did it add some number? Did subtract some number? Did multiply some number? Should we have added not 1 but 4? What has gone wrong here? Why am I not getting the value of L? Any idea? The correct answer is that the reason I am not getting the value of N here because pointer 2 is not pointing to N. Remember, let us go back to the previous program. We assumed that when we added 1 to pointer 1, we assumed that M and N have been allocated consecutive locations. That is an assumption. Remember what I said. If there are other elements, there will always be allocated consecutive locations. But variables and compiler may keep anywhere. It so happens that this C++ number does not allocate the address of N next to M. It puts N somewhere else and that is the reason why we are getting something arbitrary. I would also like to point out that suppose in this location, suppose there was a value minus 1234567, incidentally at that moment in time, you would have got that print out and you would have believed that yes, by adding 4, I always get consecutive locations in my variables. That is incorrect. This luckily says that that assumption is not correct. So we do a variation. What we do this time? Same program, but just as we assigned N to PTR 1, instead of adding or subtracting, I assigned N explicitly to PTR 2. Now there is no doubt. PTR 1 should point to N. PTR 2 should point to N. When I execute this program, indeed I get 573N minus 1234567. However, if you observe the values of the pointer, forget the earlier part. This is 2C alright, but this is 2A. This is a completely different location and this location comes before this location, not after this location. So we have to remember that compilers are at liberty to allocate memory and therefore we should never insist on knowing or doing anything with the absolute values which the pointers contain. All that we should be sure of is that pointers will contain consecutive values provided they belong to elements of array. Here is an example. Continuing with the same problem, this time I assign values to my array A0, A1, A2. 573 minus 1234567 and 94. This time I have 3 pointers. PTR 1, PTR 2, PTR 3. I do what I did in the first example wrongly. This time I assign values of A0 to PTR 1. But now I want to PTR 1 to get PTR 2 and I want to PTR 2 to get PTR 3. This time I am confident that I will get it correct because I am dealing with array elements and I know that array elements will always necessarily occupy consecutive locations. Just to make sure, I print the pointers and I print the corresponding data value. I expect to get the same data values as this, this and this. 573 minus 1234567 and 94. Let's confirm. Indeed these are the original values. These are the pointer values and the corresponding data values are this, this and this. Correct values. Just to show you that the compiler could assign different memory locations every time I run my program I am running this program once again. I forgot to put a new line character but when I run it second time notice that the pointers are different. This time A0 was at 5C. This is this time it is at 1CC. This was B60, it is now 1D0. So every time I execute the program depending upon what memory is available at that time the operating system will load my program in that available memory. Assign some base address to the whole program and the compiled program will automatically find out where different data elements are to be kept vis-a-vis reference to that base line. It's an important understanding that we should develop. Is this clear? Now we come back to the passing of parameters to functions. So far we have seen parameters which are passed as values. We know that the only thing we will get back is a single value. So if I had an arbitrary function like 5x plus y modulo 10 then I can write int f and the function will be written as parameters int x int y f will be calculated return f. To use this function with integers a, b and to calculate the result function value in c I will read a and b. I will say c is equal to f of a and b and I will output c. This is well known, this is standard stuff. The point here is you are giving two values to the function a and b and you are basing your calculations on the resultant value which the function gives you. The resultant value type is defined here. It could be int, it could be double whatever. What do we do if we need to get back more than one value upon return? Consider this. I want to swap values of two variables x and y. Please note that if I want to swap these values I will ordinarily write a program like this. Int x y I will have a temporary variable. I will put the value of x into that temporary variable value of y into x and then finally value of temporary variable into y. This is a standard tactic of slapping numbers. What is the result of this? There is no separate result. X becomes y, y becomes s. That's all. However, if I wish to write a swap function we might try writing like this. Int swap, int p, int q corresponding to int x int y. I require a temporary variable. I call it int t which is declared inside this function. Now I do the same thing. t equal to p, p equal to q, q equal to t. What should I return? Well, there is nothing to be returned. I might as a return 0. It doesn't matter what value I return because no return value is expected. This function will expect the p to become q and q to become p because the way I will call this function is to say int x y, read x y, swap x y. Will this swap x and y? The answer is no, it will not swap x and y. That is because when we invoke this function swap what happens is a value of x is copied and given to that function. Value of y is copied and given to that function. The function is operating upon the copies of value. The original values of x and y remain intact. We don't want this. So even if the function swaps the copies, the original values remain as they are. They are not copied back. The resultant values are not copied back. So whenever we want multiple values to be brought back even a single value to be brought back through parameter ordinarily there is no mechanism to do that. That is where we use pointers. This is a program which does not work. Try to swap. I have written exactly the same thing one after another. This is the main program, this is the function. This is called by value. That is because x and y are transferred to try to swap as value copies. Values of x and y are passed to the function which initializes local variables a and b using these values. Updated values do not get back. Here is an interesting thing to note. Aside from the function, computation and parameter passing, I have used the word void here. Void means that function does not return any value. Obviously if I want to swap variables, there is no computations to be done to be returned. Invariably you will use the word void to indicate no value is returned. That is why the word return is used, not return 0, return 1, return something. Because nothing is to be returned here. This is incidentally an addition of information. Now passed by reference, the motive is how do arrays pass to a function come back with modified values? Remember a function which we wrote to read data from a file? There is a separate function. We sent an array to that function. It ran the data from that file into that array and when the function came back to us, we heard the array containing the correct value. How did array bring back the values? Why can't simple variables don't bring back the value? That is because the array is not copied. Instead, array name is automatically treated as a pointer to the first element of the array and then passed on as a parameter. So what is passed on as pointer? So whenever you are dealing with an array inside a function and if you are modifying any elements, please remember that the original elements of the array are getting modified because what the function is working on is only address pointers. For the simple reason that it is very costly to copy entire large arrays, people say let's pass them by pointers. However, you can pass other parameters also by pointers if you want to get the values back into your calling program. This is a program that works. I say why it swap all right? But the parameters are not int a int b. The parameters are int and a int and b. Remember what and a and b means? Address of a address of b. And then of course I work ordinarily as a temp equal to a equal to b, b equal to temp, etc. Calling wise when I say swap x and y, is this a correct difference? Okay, spot the error that is homework. Yes, you should not pass the values but you should pass the pointers to these. I am sparing time is because I have several important announcements to make. First, once again the last call. Most of you have submitted the four member teams to your lab tier. If you have not done that, this is your last chance to do because on this format I must get all the information. Remember that a fifth person only for some batches. That too when all students of that batch are accommodated. I understand that there are a few students who are moving around trying to figure out which batch they can join because since they don't know anybody in that batch well, nobody wants to keep them in that team. What I will do is at the end of this Saturday on Sunday when we meet as per the scheduled meeting all such people will be force allocated to some arbitrary batches. So it is better that you figure out and attach yourselves to the batches so that there is some coherent if possible. The schedule for this meeting, once again I repeat from 4th October, 10 to 12 noon. This is in the case it auditorium. The case it auditorium has capacity of 210. There are going to be exactly 200 batches, 200 teams. 5 persons, 4 persons per team, 5 teams per batch. So there are 40 batches and therefore there will be 200 teams. I want exactly one person from every team. It is possible that the team leaders may not be free tomorrow. I have come to know that some people have NCC or something like that. In that case, please send anybody from your team of 4 or 5. In case all 4 or 5 are going to do some parade on this Sunday please send some other friend with a placka and then I will belong to this batch for today. But I want every batch, every team to understand what projects they are going to do. There will be 4 projects which will be described briefly between 10 to 12 and between 12 and 12.30 each team will have to give a choice through the batch coordinator. So for every batch, the batch will give choice of one project 1, 2, 3, 4 in whatever order you prefer. And you will of course get one of those. The idea is that on any one day between 6.30 to 8.30 all students assembled in that lab will be working on these 4 projects. The next evening the same 4 projects will be done by other batches and so on. I will explain the project concept later. But this is important and there must not be a single failure. This attendance is for one's compulsory. But do not at all have 2 people from the same team coming into that hall. Because apart from these 200 people, about 40 lab TAs who are your TAs are also going to attend. Several of you will have to sit on the staircase but we can accommodate up to 240 people so that's not a problem. This is another important notification. Department of Computer Science is collecting feedback on all CS courses as to how they have been conducted so far from beginning up to midterm. This is an anonymous feedback. So your name or roll number etc. never gets recorded in that feedback. However, at the time of logging in your feedback, you are checked whether you have already given the feedback or you are a valid registered student or not etc. Please note this site. http colon slash slash 10 dot 105 dot 12 dot 100 slash feedback.  This is extremely important for us teachers. For example I do know several shortcomings which I get to know through the interaction with some of you and with my TAs but there are several other shortcomings which I may not know. There may be a few good things that are happening in the course which I may not know. The feedback is vital and other than to wait till entire course is over the department thought it fit and very rightly so that we should collect feedback for every course that the department conducts so that teachers have a chance to correct the direction in which the course is moving. So please do that. What I said before Monday is that Monday is the extended deadline. I did not know that you people have not been made aware of this feedback. What happened is that the mail circulated within the department. So the second year students, third year students, semotextiles everybody knows but since first year students do not belong to a department in fact they belong to many departments they did not know it. So please do fill up this feedback. It is absolutely vital and important for us. The last announcement. This will take about 3 or 4 minutes because it is a very sad announcement that I am making. I have thought that I will never have to make this announcement. You remember at the beginning of the course I said that people will come with varied background, people will come with varied skills and talent and there would necessarily be people who will understand programming very quickly and very well and some others who may not understand it very quickly and very well. Unfortunately that will reflect in marks. I have also assured you that as long as you work diligently nobody in this course will fail and in fact there will be enough chance with better work you can better your grades. The only expectation I had said is that you work on your own except when you are asked and advised to work in groups like in group projects. All assignments, quizzes, mid-sem exams etc. etc. are supposed to be individual work. Unfortunately it has been noticed that some assignments have been copied. There have been some tricks and such tricks have percolated very quickly. What we did not realize is that in your home directory if you just say cd dot dot you get to the top level directory and you can see all students home directory and then you can go to any directory look at the assignment whichever you like you may be tempted because you have struggled you have not got it right and you don't have much time so you may copy it test it and submit it.  Remember I had very specifically stated that this rule shall have no exception. Unfortunately if I had to fail 10 percent 20 percent of this class in the middle of the semester I hate it. I will feel very sad and of course those who will fail because of such thing will feel sadder. We are setting up an effort to automatically compare all the submissions that you have given. As we speak our TA's are picking up open source software some tools and writing some programs to do that. We will complete this work in about 10 days time. Once we find out all the instances of identical code portions there need not be complete assignments significant portions and I shall be the decider. I shall notify all the concerned students and the academic office. Of course if there are five identical copies it is quite likely that at least one is original because without original there could not have been copies and naturally our attempt will not be able to discover who is the original.  We expect the person who wrote that assignment originally to come back immediately shouting at us saying that no I have done this. In such a case personally I have to provide convincing arguments of his or her authorship of the program because it is not unlikely that the original author picked up that program from some other source on the internet. I need to be convinced that the effort is original engineering. If this does not happen people will get a fail grade. Now I thought a lot about it last two nights I practically not slept. This night I am not slept at all. Last evening I discussed with my TAs. They did say that they agree with this philosophy of punishing malpractices but they thought that because these are first year students and they could have yielded to a temporary temptation and they may not really mean bad. I am not convinced of that but I bought that argument and I am providing the following concession. Since it is likely to be the first exposure of such expectation that you have to do rigid self-worth some may have been tempted to take requests to copy. Such students on their own may submit an apology along with the following information. Your own number, name and lab badge, lab assignment number for copied program code, partial or complete and the source. This information should be submitted, written on a plain paper and the paper should be kept in a sealed envelope and submitted to any senior TA on duty in the lab latest by 20 to 30 hours on or before Tuesday 13th October. By Tuesday 13th October that is roughly when I expect our detection effort to complete. All such students who render an apology giving details will not get a fail grade provided they do something more. What is that something more? They will be given additional 2 weeks to submit these assignments fresh. Please understand the purpose of the assignment is that when you try them you learn something. When you copy you at most read that assignment you learn only partially. It is my endeavor and it should be the combined endeavor of all of us that each one of us learns as much as is possible. That is the objective of this course. So therefore all such students will be given additional 2 weeks to complete this assignment. The apology later followed by completed assignment submission the assignments need not work correctly that is fine. I always said you can submit partial assignment. You may not get one mark for that assignment you may get half mark. In this particular case because these have been copied the marks allocated to that assignment will be 0. The total marks are not very many by the way. I already removed 5 marks of the 10 marks of assignment there are totally 5 marks out of those 5 marks the best 5 assignments will be counted and this is already the 7th assignment or something I don't see any reason why all of you should not be getting 5 marks. But if any one of you has got 5 marks out of this kind of mischief then you decide to get 0 at least in those assignments which you have copied provided you apologize agree inform what you have copied and do the assignments. But anybody who either does not submit this apology or submit the apology but does not complete the assignment in additional 2 weeks will guaranteed get a fail grade. We will find it ourselves by Tuesday night and we will be working throughout the midnight there to find out later. By Wednesday morning all such people whose copies are caught should expect an email from me.  Because I am giving this concession this time I will not stop with fail grade I will recommend to the director of the institute because giving a fail grade is my prerogative but doing anything beyond is the job of the senate. I will inform the senate chairman that in spite of this warning people have not been forthcoming and they have not apologized stricter action such as explaining such people from the institute should be considered. I am very sorry to say but all of you I expect to be great leaders in your own fields when you pass out and one of the most important aspects of leadership to be learned now is basic ethics. If you can't follow basic ethics you are unlikely to do great things in life. Whether you want to do great things in life is your prerogative but in my course you will not do this nonsense. Everybody who has done that will get a fail grade now or even later for anything else. This is one thing I cannot tolerate I am sorry to have taken a lot of your time. That's it. Thank you.


Hello and welcome to Make Money Territory. In this video we will be talking about the latest update on Shiba Inu. Amidst the dynamic landscape of cryptocurrencies, Shiba Inu has recently garnered attention with its current price standing at $0.00008, securing the 18th position among digital assets. The substantial circulating supply of $589 trillion Shabibi contributes significantly to its market capitalization, which presently stands at $4.83 billion. Over the preceding 24 hours, Shiba Inu has demonstrated resilience. This short-term positive trajectory aligns with the broader trend as Shiba Inu has sustained an upward momentum of 1.57% over the past seven days. Moreover, the recent strength exhibited by Shiba Inu suggests a noteworthy investment opportunity backed by a surge of 3.5% in the last month. This growth has added a significant average amount of $0.000016 to the coin's value. This sudden and sustained upswing raises intriguing prospects for Shiba Inu, positioning it as a potentially solid asset should this momentum persist. Examining the broader cryptocurrency market context, investors are keenly observing Shiba Inu's performance and Shiba Inu price prediction 2040 and other years, considering factors such as its utility, community engagement, development, and strategic partnerships. As Shiba Inu continues to evolve and the ecosystem expands, potential investors may find compelling reasons to consider Shiba Inu as part of their diversified portfolio. The number of Shiba Inu, Eshib, tokens burned in the last 24 hours, reached almost $195 million. According to data from the Shiburn website, the amount represents a 2,287% increase within the period. Shiburn refers to the process of removing SHIB tokens from circulation and sending them to dead wallets. The primary aim of this mechanism is to create scarcity for the cryptocurrency while increasing the value of the remaining accessible tokens. In a surprising turn of events, South Korea's leading cryptocurrency exchange, UPBIT, witnessed an influx of Shiba Inu, Shibi, tokens today totaling a staggering 84 billion Shibi, valued at over $700,000. The transactions, typically associated with sell-offs, took an unexpected twist, raising intriguing questions about UPBIT's motives. Contrary to the norm, the massive Shibu transfers occurred within the exchange's own deposits, minimizing external influences. The prevailing theory suggests that UPBIT might be executing a strategic move to streamline its hot wallets, a process involving the reorganization of digital assets. The sheer scale of today's movements is noteworthy, constituting more than 25% of the total SHIB volume on UPBIT. This raises speculation about the exchange's underlying agenda. Prompting questions about whether Korean's major CEX is gearing up for a significant development related to Shiba Inu. Shiba Inu, currently holding 100th place among all trading pairs on UPBIT, boasts a trading volume of just over $2.7 million. The sizeable transfers today, coupled with the cryptocurrency's relatively modest standing on the exchange, add an element of mystery to the situation. As of now, the question looms. Is UPBIT laying the groundwork for a sell-off? Or could these substantial movements be signaling a forthcoming Shiba Inu-related initiative? With over $700,000 in play, SHIB enthusiasts should keep an eye on and await the next chapter in this unexpected twist within the SHIB saga on UPBIT. Beyond the transaction itself, the technical analysis of SHIB's price chart provides additional insight into potential market movements. A descending triangle formation was observed as the price recently fell below the lower trend line, indicating a bearish outlook. A technical breakdown could lead to further price declines if the formation continues. However, amidst this analysis, the role of the 50-day moving average as a potential catalyst for a price recovery becomes apparent. Therefore, the current level of $0.0008215 is an important support position. The market's reaction to the anonymous wallet's activities may lead to an upward price correction, offering a broader perspective on how the market interprets the wallet's accumulation strategy. SHIB serves as a token within the Shiba Inu ecosystem, a decentralized meme token established in August 2020 by Ryoshi, an anonymous individual or group. While Shiba Inu has drawn comparisons to Dogecoin, Doge, since entering the cryptocurrency market, the two coins share little in common beyond their meme coin status and occasional support from Tesla CEO Elon Musk. The project humorously references Dogecoin by incorporating the Shiba Inu puppy, aligning with their shared theme of dog-related cryptocurrencies. Despite this playful aspect, SHIB's developers have a more serious objective of addressing real-world issues. SHIB was introduced on the Ethereum blockchain as an ERC-20 token, boasting a total supply of one-quadrillion coins. In a strategic move prior to launch, developers transferred 50% of the digital coins to the Uniswap decks, and irreversibly disposed of the corresponding keys. The remaining half of the tokens found their way to Ethereum's founder, Vitalik Buterin. Taking a bold step, Buterin eliminated 90% of the SHIB tokens by directing them to a non-existent address, resulting in the destruction of 410 trillion tokens valued at $6.5 billion. Notably, in 2020, Buterin contributed over 50 trillion Shiba Inu tokens to the India COVID Crypto Relief Fund. During the transaction, the tokens held a value of approximately $1.14 billion. Additionally, Buterin pledged to contribute the remaining Shiba Inu tokens to charitable causes with a focus on sustaining longer-term initiatives. Looking ahead, the Shiba Inu project envisions evolving into a comprehensive, decentralized ecosystem, with plans to relinquish 100% of rights to the community. This approach aims to empower the community to oversee the protocol independently, eliminating the need for a centralized governing body. With Shiba Inu's potential growth in the coming years, we can have a more positive Shiba Inu price prediction 2024 and other years. According to our forecast for Shiba Inu, we project that the expected minimum, average, and maximum prices in 2023 will be approximately $0.000091, $0.0000156, and $0.000022, respectively. While the Shiba Inu cryptocurrency is anticipated to experience growth in the coming year, the rate of increase is expected to be moderate. According to our analysis, investors in Shibi may potentially achieve satisfactory returns based on our Shiba Inu price prediction. In the 2024 Shiba Inu coin projection, it is anticipated that the Shibi cryptocurrency market will reach a maximum value of $0.000025 and a minimum value of $0.0000174. Analysis of market sentiment and additional SHIB price predictions suggests that the average price of the Shiba coin could be around $0.0000212.


a couple of months ago, she's the senator. Me here today is my friend and colleague from New South Wales Parliament, Jenny Leong, who is like me and I acknowledge the sovereign owners of the lands that we gathered on, the Gadigal people, and pay my respects to elders past and present. For 200 First Nations people have been targeted by violent colonialism, by theft, by disposition. And I particularly want to acknowledge the harm and hurt that they have been put through over the last some months as conservative forces, as they always do, have run a campaign of fear, racism, and division. For truth-telling, the struggle for treaties, the struggle for self-determination goes on. First Nations elders, activists, and leaders is formidable. And we are here in solidarity with them today. Always one sense of sorrow, sadness, and a very heavy heart for the innocent civilians who have lost their lives in Gaza and Israel. My thoughts are with those who are mourning the loss of their loved ones. My thoughts are with those who are living the brutal savagery of the war in Gaza, perpetrated by the Israeli government. To make it clear, no civilian should be the target of the violence of war. That much is obvious, that much we have said before. Yet we are asked again and again if we condemn civilian deaths. What an offensive and abhorrent assumption that we wouldn't. Palestinians, Palestinians know better than most the violence of oppression, of occupation. They have lived under Israeli occupation for 75 years. That there is no place for any kind of racism, discrimination, anti-Semitism, or Islamophobia. You know what else we know and what else I know is the importance of telling the truth. I also know the harsh consequences of telling the truth, but that will not stop me from telling it exactly. And let me say this, I will not. I will never apologize for demanding an end to occupation, the oppression, and the crime of apartheid. The truth is this, the atrocities being committed by Israel are war crimes. The definition of collective punishment that Palestinians have borne for decades now. This is not new. This is not new. In Gaza civilians are on the precipice of annihilation because the blockade means that they have literally nowhere to go as they have been cut off from water, from electricity, and from other essential supplies. And as Israel continues its deadly bombing of civilians in Gaza, the fate of hundreds of thousands remains uncertain in the besieged strip. Millions, that's right. Israeli missiles have now been raining down for days on apartment buildings, homes, mosques, refugee camps, and there has been so much harm done to hospitals and schools as well. Health authorities in Gaza said on Friday that around 1900 Palestinians have been killed and another 7,700 wounded by Israeli strikes that have turned entire buildings and more than half of those who have been killed are women and children. Disgusting. People in Gaza are being forced to flee to the south of this open air prison as Israeli strikes continue to rain down. There is absolutely no safe place for them, nowhere to go. Yet, disgracefully, the New South Wales police and the New South Wales government have made shameful attempts to silence us to stop us from coming together to shine a light on the worsening crisis in Gaza. Any attempt to silence us is an unjustifiable abuse of political power. To speak up, we have a right to protest, we have a right to assembly. So thank you so much everyone for being here in unity and its supporters and allies.  And we will not surrender this right, we will not surrender this right to protest. The truth is this, my friends, the truth is this. The erasure of Palestinian suffering is a long-standing policy for both major parties in Australia. The bipartisan consensus on supporting Israel's bombing of Gaza and painting it as defence is neither surprising, sadly nor new. This enables and empowers Israel to continue the oppression of Palestinians with impunity. And that is an utter disgrace. Our government continues to shield the apartheid state of Israel from all accountability. We gather here to tell them that we see through their lies, we see through their hypocrisy which landmarks were lit up in the colours of the Palestinian flag when in 2014 Israel carpet bombed civilians from one end of the besieged Gaza Strip to the other with 2,000 of the Palestinian flag when civilians are being killed right now by Israeli bombing. With this dehumanisation of Palestinians we gather here today in solidarity with Palestinians who have lived through brutal occupation and oppression for 75 years. It's all Nakba every day for them. That's the situation. Finally the truth is this, Israel has signalled the genocide of Gaza. It is there for everyone to see. This horror is unfolding and political leaders of so-called civilised western countries who portray themselves as human right advocates are completely silent. They can see justice for everyone but not for Palestinians. They should hang their heads in shame forever. Born to say, I do want to say to all of you here today, to Palestinians here and around the world, some of us have the courage to speak out, some of us have the courage to turn up to rallies, some of us have the courage to demand justice for Palestine. So remember, you are not alone and there will come a time when there will be peace and when that time comes history will not look back kindly on this colonial government supporting another. To prevail there has to be justice, there has to be justice for Palestine and that means there has to be an end to the siege and blockade of Gaza. To the illegal occupation of Palestine, there must be freedom for Palestinians.


Hello and welcome to NewsClick. I am Samedha. We're in conversation with Prabir Purkayasta today. Thank you, Prabir, for joining us. We're discussing a huge story that is being brewing since the past two days. About 7.8 crore Aadhar data has actually been found in an IT raid at the company called IT Grids in Telangana. And an FIR has also been registered against that company. And this is a huge amount of data that we're looking at which has been found. And it is a huge cause of concern as well. So today, we're going to break down what this really means and what is the new story all about. And to give us a lowdown, we're starting with Prabir. My first question to you is, what is the kind of source of data? And first of all, explain to us what has exactly happened and where and how was this data found? Well, what has actually happened, we'll have to ask the IT Grids directors for that. But leaving that out, we can look at what the complaints are and what the police is saying. So the police is saying that from looking at the IT Grids documents and data that they hold, that they have data which is sensitive, what UIDI has always said is completely safe data, the data of the citizens, the Aadhar database. But it does not talk about the biometric data. So we do not know whether the biometric data has also been accessed, which is supposed to be behind 15 foot walls or 18 foot walls, whether they have been accessed. But it's clear that 7.8 crores of data which is held in Aadhar database about us has been accessed and is available to IT Grids. The police go a step further. They are saying that two states we know that data is held by IT Grids, but it's possible they hold also other states data with them. So this is a huge data breach as you have talked about which has already been public for the last two days in which UIDI admits officially that 7.8 crores of data items, records have been stolen from the depository either their central deposit, it's their complaint or it is the state resource data hubs which are also there where the UIDI authority has shared or shall we say created an instance of the database, the Aadhar database in that store. Now these hubs do something else as well. They use the Aadhar data, use the Aadhar ID to bring it to access data records from their different databases and therefore link all their databases to the Aadhar ID and that's why this gives a much larger amount of data for anybody to use that you not only get the Aadhar data which of course is a part of what companies could sell as data services in this case for elections but also election data because election data was also in the case of Telangana and Andhra linked to the other database but also other databases which exist in the state. So this has been one of the key problems we did focus on during the Supreme Court case as well that this is connecting all the data silos using one number and the Aadhar database always was the talk that you and I made was about its biometric data. It never said that the rest of the data is safe. It only said the biometric data is safe. Now we know that other data in the possession of criminals in this case a company was selling it to the TDP for a Seva Mitra or shall we say a way to target the voter that this is something which is a criminal act the various charges which have been levelled against them but this is only one part of the story. The biggest story is well what has always been said that this Aadhar database is not safe only the biometric data can be considered as safe we can discuss that some other day but the rest of the data is not safe. Today UIDI agrees that at least 7.8 crores of data is public or is being held by certain criminal elements held without any proper safety. It's posted in Amazon services abroad in violation of various laws and this is only one company. We do not know how many other companies also have access to this data and we do not know the state resident data hubs to how many of these have also been breached and what is the data that is held there and like in Gujarat are also the biometric data held there. So a bigger question like you said that there is this company IT Grids which is in the eye of the storm was managing services for TDP and they had started this app to reach out to the voter. So what are the kind of possible misuses that we're looking at like you said that there is a danger that there might be more companies as well that we have no idea about. So what are the kind of misuses of the data? You see the first issue is why do data breaches occur? You are sharing data with other entities so you are multiplying the risk. It's not one place the data is there it's being multiplied because it's there in multiple places. You also are sharing data with people who actually use the data services and it transpires that even those who are enrolling people into Aadhar had access to your personal data. So a huge number of people have access to your personal data and your Aadhar number. Now why is that dangerous? But that danger comes from the fact that Aadhar as you can now see links a number of independent databases and if your number of databases are linked then either a criminal or somebody else who wants to use for instance in this case hacked the election shall we say then can use this to do targeted campaigns targeted election campaigns in this particular case but also be able to guess a whole lot more about you than you would otherwise think. We had one case where the Air India database with using another ID could be looked into their security was very poor so their password could be taken out of the say the account of the people and quite often people use a common password. So now these are ways you see you don't have to find every person you need to search databases to see whose data is vulnerable and use that information to hack into the say the financial accounts or any other accounts. So you have to think not like a shall we say a normal citizen, you have to think like a criminal to see how do I use this information about people and how many ways then I can make this people vulnerable. As I said a relatively more benign use is targeting for elections. But having targeted for election means that the data which is supposed to be in the safe repository with the other authority went to the state then it went to an IT grid a company called IT grid where the data is open anybody can access this who's working for that company. So we have to assume that other database now at least for Andhra and Telangana is public information how many such databases are not public information we really don't know and that provides a huge shall we say treasure trove for people who want to hack us in different ways. Yeah and another major question about entrepreneurship Telangana has been the question of voter deletion that had happened which you initially mentioned. So two million voters were deleted previously when their Adha data was linked. So you know how is this going to play into that as well as we're going into the election season as well. So how do you see that? That's a very important question because that's one of the obvious misuse of Adha data that can be done. You have the link between the Adha and the voter. Now this is clear from what we have got already in Telangana that though it was not meant to be but it was linked. Now once it is linked I want to challenge the voter. How do I challenge? I'm a form seven which I fill up and he then gets under comes under question is he a legitimate voter or not? And then of course you can make challenges which are based on say caste, based on religion, based on other identities. And if you can then remove them from the voters list because you can have a compliant election commission officials, you can have prejudice against various people and you can then see that these voters get removed. The Telangana, the argument was a number of voters who belong to originally from Adha but domiciled in Telangana which of course election laws allow you to do. If we don't have citizenship certificate for states you have a freedom of travel in the country. So they were taken out of the voter rolls and that was charged that the pre the government, the government holding Telangana at that point, KCR party that KCR government also did this exercise in collusion with the election commission and with the shall we say the government direct agencies dealing with this data hubs. So if this is something which the charge was of the Telangana government this is something that can be done by any party today which wants to, which has the ability to raise mass challenges based on as I said caste or religious identities and therefore cause a huge number of problems for the election process and particularly deletion of voters. So this targeting of communities and surveillance as we have discussed is a huge problem. It's perhaps a very big danger to democracy. If you remember Sumedha we had an earlier story which talked about how weaker communities being financially socially weaker communities were much less represented than what the census data would indicate in various constituencies. Now that's also an argument that certain sections can be selectively weeded out or not enrolled. And that also could be something which the other database read in conjunction with the electoral roles plus other databases could allow us to do. So on that note and given the kind of challenges that it is posing to the electoral process and to the larger democracy of India as well we're leaving you with these questions and with these facts. Thank you so much for watching. Thank you Praveer for joining us on this interview. Thank you.


So I think CIOs who will succeed in the future, the next generation of CIOs, will be those who can get past the idea that their job is to keep the lights on and keep five nines up time. That's all going to be taken care of by somebody else. They really have to finally execute on this vision that we've heard for 20 years about the CIO as being a strategic part of the organization, as contributing strategic value. It's time now to execute on that vision.


I'm currently driving northbound through Israel. This time I'm going somewhere I've wanted to go for literally years. It's called Ghadjar. It is a border town that if you look at the map, its location is fascinating. It's technically half the town is over the international border between Israel and Lebanon. After three long hours of travel from Jerusalem, we have made it to the village of Ghadjar. This is really exciting because it used to be not so long ago. The last time we tried to come here about a year ago, there is an IDF checkpoint, an Israeli army checkpoint at the entrance to the village. It's still there, but now that Israel has opened access to civilians, you can get further. Now, what's also interesting is that just a little bit past that IDF checkpoint and pretty much where I'm standing, all the stuff you can see in the background here. So for those interested in Israeli borders and yes, border spotting is the thing. Generally, you can get right up to borders between Israel and its neighboring countries for reasons of security. Typically, those areas that do really, really about the border are called closed military zones and only the IDF can go in them. So this is typically what it looks like. The fences all have these numbers on them, barbed wire, stuff that tells you you're approaching a border. So where I am recording this video from is just at the entrance to the village. The blue line, I'm going to pinpoint exactly at what point we cross the blue line. It's about probably 50 meters up that way. This road actually crosses the blue line and the blue line is effectively Israel's de facto border with Lebanon. The countries are technically at war, so it's not a border that's been agreed upon, but that serves as the international border. So where we are at the moment is the entrance to Rajar. People are coming in and out of the village. It's an al-await village. We're going to check out a little bit of stuff that is in on the Israeli side. We're going to check a little bit of stuff that technically is in Lebanon. One more thing I will say, there's signage up from the Israeli army, from the IDF asking for visitors to treat the local residents with respect. So I'm trying my best despite holding a microphone, not to make too much of a spectacle of this, but if we can get anyone to talk about their life in the village, that will be amazing as well. So where I am currently standing at this point in Rajar and this road, according to Google Maps, I'm standing almost exactly on the blue line. The side of the village this way was the Clalit Health Clinic. One of the health funds is located on the Israeli side. And if I swing around this way and I start walking backwards for about 10 meters, trying not to get in the way of traffic, I'm now crossing into Lebanon and on the Lebanese side, the blue line. As you can see on Google Maps, I'm now over the blue line and in Lebanon. So clearly the blue line itself, the de facto border is not demarcated in Rajar, but you can pass between the two sides freely. And that's what makes this, for border spotters, one of the most interesting villages in the world. So I'm recording this video on the lookout point in Rajar. And what you can see behind me, all those houses in the distance over here and also over in this direction, located across a riverbed, only probably about 100 meters away, those houses are in Lebanon. Now I was wondering from my limited abilities to research this place on Google Maps, how Israel could have taken control over the entirety of this village while half of it being a Lebanese territory. The answer is that there is a sort of, I guess, de facto border fence running around this village, which is physically cutting it off from the rest of South Lebanon, which otherwise would just be somewhere you could walk into from any point here. And it's crazy to think about. The history of Rajar is fascinating, like many places in this part of the world. It's changed hands many times over the course of history. Most interestingly, perhaps since 1967, in 1967, Israel conquered the Golan Heights or according to lots of international community members occupied the Golan Heights. And when that happened, the village of Rajar was for two months effectively in No Man's Land. It used to be part of Syria, now integrated into Israel. The villagers petitioned the Israeli governor of the Golan, the newly appointed Israeli governor, in order to be integrated into Israel. Even those Alawites, they feel their identity is more towards Syria. Now, of course, given the blue line demarcation, the fact that this village was halfway over the line was problematic and has been the subject of a lot of disputes since. Also worth pointing out, you can see behind me as well in the background, a couple of UN stations and the UN blue line, which is the de facto international border between Israel and Lebanon, is actually marked out with these kind of little blue cylinders. And the exact course of the blue line itself is a matter of dispute. There's a UN mission, UNIFIL, the United Nations, Interim Force, Lebanon. A major part of their mission is coordinating the exact route of the border between the Lebanese armed forces, the LAF, and the Israeli army, the IDF. Video blog from a location on the road here in Israel. I'm currently in Matullah, which is the northernmost town in Israel. And where I'm recording this blog is located exactly 479 meters from Israel's international border with Lebanon. I've made a few videos before on this channel about my sort of fascination with international borders.  But in the course of exploring interesting places along Israel's international borders, I chanced upon the town of Matullah and discovered this is actually more going on here than you might think. It's a town of only about 1,000 citizens, but it's very, very much has a really, really interesting history as a border town, especially in Israel's early development. Now, the border is located exactly, as I mentioned, 479 meters in this direction. And the lights you can see in the distance there are actually off in Lebanon. Tomorrow, I'm going to check out, there's a couple of bars we're currently drinking in a bar called Ayuni, which means my eye in Arabic. They have a really, really good selection of Lashuf. So you wouldn't think that like literally 500 meters between Israel and Lebanon, there's a bar with Lashuf, but this is what there is. There's another bar called Hakura. And there's a couple of nice hostels and accommodation options in the town as well. So tonight, we're checking out some of the Matullah nightlife. And tomorrow, we're going to see what else this interesting village ski resource in the Golan has to offer. Bringing you another video from another international border in Israel. If you didn't think borders were interesting before, perhaps subscribing to me on YouTube, I hope I'm slowly changing your mind. Borders are the fault lines between countries, the tectonic plates. And in this part of the world in Israel, they're not just separating between countries, they're separating between completely different ideologies. And in this case, the border here I'm in front of, which is the Israel-Lebanon border, or technically the blue line I'll get into that, is the dividing line between two countries, which are officially at a state of war. So where I am today, specifically according to Google Maps, there is 87 meters between where I'm standing and Lebanon. That village you can see behind me in the distance is the village of Qvar Kila, which is immediately a butting Matula. And we just visited a really interesting memorial here. It's called the Andernet Gederhatov. Gederhatov in Hebrew means the good fence. And basically this is a memorial to Maronite Christian fighters who were fighting effectively alongside or on behalf of the IDF between 1982 and 2000 during Israel's protracted operation to ensure a security buffer in southern Lebanon. Gederhatov, as I said in Hebrew, technically just means good fence, but it's a nickname for the official border crossing was called the Fatima Gate. And this was basically where the Fatima Gate was. As I mentioned, this is about 80 meters before the border and those houses, there's one here about 50 meters away, you can see a mosque. These are all in Qvar Kila. Qvar Kila, just to emphasize how close all this stuff is, is a Hezbollah stronghold with the Hezbollah army base, at least 20 arms depots. And when the IDF uncovered a couple of years ago attempts by Hezbollah to dig under the border in order to plan their very, very elaborate operation to have a land invasion into these border towns in Israel, one of the tunnels was found entering Israel, very, very close to where I'm standing. So the border was called Fatima Gate because Israel from 1977 until 2000 had a de facto policy, a soft policy of allowing Marini Christians to come into Israel for various good things. That's why it was called the good fence to kind of, I guess, conjure up the idea of goodwill. A 1.1 third of the patients in the nearest hospital here in the Ophthalmology Department were Lebanese people. They used to be able to come through the border freely in order to work in Israel, in order to access medical treatment in Israel and then return back into Lebanon. And also I mentioned the border briefly. I'm going to just mention the technicalities. People get very fussy about this word. For me, a border is a dividing line between two countries, but technically an international border, to be worthy of the term, has to sort of be agreed between the two countries on the other side of the border. So what you have between Israel and Lebanon is more like a demarcation line based on where Israel withdrew to following its withdrawal out of Lebanon. And now an international organization, Unifil, the United Nations Interim Force in Lebanon, are responsible for sort of enforcing the separation along this, what's called the blue line, and is literally marked out by blue cylinders. As I mentioned in my last video at nighttime, his Bilal are now using their latest technique, is using little laser pointers to attempt to blind drivers on the Israeli side of the border, put lasers into their house, and potentially cause it. It sounds like a trivial thing, but actually has the potential to cause lifelong eyesight damage, including potentially all the way up to blindness. So this is Kfar Kila. On the other side here is the beautiful town of Matula, which as I mentioned is the northernmost community in Israel, surrounded on all sides by Lebanon. And over there in the backdrop again is the fantastic, beautiful view, which I'll include a few seconds of in this video, of the Hormone covered in snow. Israel is only a ski resort and also shared with Syria. A Hageda Hatov was sort of the nickname for it. It was officially called Shafatima. It was an exception to the otherwise rule that there really is no border crossings, regular border crossings between Israel and Lebanon. And in the year 2000 when Israel concluded, it's withdrawal from south Lebanon and unified the United Nations, Interim Force in Lebanon, which whose mandate is to create a buffer in this part of Lebanon, Israel, whereby the IDF doesn't come north of the blue line, Hisbalah doesn't operate to the south of the blue line, although their success in that mandate really, really should be drawn into question after a number of tunnels being operated by Hisbalah were discovered, literally where they're supposed to be. But this is exactly where we are and how close the two countries are at this point. And as I mentioned, although it's a beautiful country site here, the Hormone, the lovely village of Matula, this is very much a border with that constant activity going on. Bringing you another video of intrigue for us as strange folk, the border spotting enthusiast. In my defense, I actually came to this place not to spot a border, but it's quite hard to go very far in this part of Israel without encountering something related to borders or the like. What you're looking at behind me here is actually Israel's border with Syria. Now, to be a bit more technical about it, it's actually the DMZ, the demilitarized zone, which is comprised of a little small patch of land located between Undof Line Alpha and Undof Line Bravo. Undof is the United Nations Disengagement Observer Force, and it's one of the UN missions like UNIFIL, UNSO, UNSCO, it does get a bit confusing, who have a presence on the ground here in Israel. And just across the border, so you have the DMZ, and then the border is, I'm just going to step out of the frame for a second, is Al-Qunaitra, which is in Syria, and has been a site of shelling between Syrian rebels and pro-government forces. And we're so close at this point that you can hear occasionally explosions across the border. A few words about where I am located, this rooftop. So it's labeled on Google Maps as Syrian Army Headquarters or the Syrian Headquarters in Hebrew Habinyan Hamoudi'in Hasuri, which means that the build is slightly different, meaning the building of Syrian intelligence. This was built in 1962 by a Russian architect, and it was built very well. The reason that we know it's built very well is firstly, I mean it's still standing, so there's that. But it was actually bombed repetitively by Israel, and it has stood nonetheless. But you can actually go inside, it's an abandoned building, the corridors at the moment are kind of full of water and icicles, but you can actually see the stairways are sort of bombed out, metal poking out of them, that kind of stuff. So you can see a little bit about its history. This building actually played a very important role during the Six-Day War, because it was a command post for the Syrian Army. There are a couple of theories that this was actually firstly constructed as a hospital, but from what I understand from talking to a tour guide downstairs and from reading on the internet, the consensus is that this was always built as a command post, effectively a forward command center for the Syrian Army in the Golan. Now during the Six-Day War, Israel bombed this because it was a site of strategic importance to the Syrians, and it bombed it a couple of times. Ultimately the building was abandoned, and when Israel came here, they planted the Israeli flag on the rooftop I'm standing on, and found a treasure trove of documents that proved a huge key to Israeli intelligence. During firstly the course of the Six-Day War, and afterwards as well the Israeli military intelligence, which is known as AMAN, gained a lot of information from this post. A couple more details about it that I think are interesting. It's on the Eli Cohen trail, Eli Cohen, of course being the legendary Israeli spy who was ultimately killed, hung in Damascus, and about whom an excellent Netflix series has been produced, and he was in this building. Now the question is why was Eli Cohen Mossad operative in a Syrian military command post? So the answer to that apparently has to do with the fact that he needed a permit from the Syrian Army in order to access the Golan. Obviously strategic now as it was then, and in order for Eli Cohen to look around this area under his cover, he needed to get a permit, and the fact that he was able to literally do this, walk into a military headquarters is regarded as testimony to firstly how on the kind of terms he must have been with the Syrian Army, how effective he was as an intelligence operative, and basically how much he did in service of Israel and played a huge role undoubtedly both in the Six-Day War and intelligence that has informed Israeli operations for all the time since then. So this is the Syrian Army headquarters. Just if you are, there are families visiting here, but it's a little bit staircase without railings, that sort of thing. So if you are going to come here, just do be careful a little, some hazards definitely, and come up to the roof. If you're interested in borders and look towards this side, the side where you have all the wind turbines on, and open up Google Maps and you can see where you're facing, and this is, as I mentioned, we're looking into Syria. For veteran border spotters, one clue that this is a border is those yellow fences are typically are where closed military zones are right next to the border. And if you can zoom in on my, I'll zoom in on my camera, but you can't really see it with the naked eye. There is the border fence there and some warnings as well, and a couple of eyed posts on the other side. The Syrian Army Headquarters is located two kilometers to the west of Kuneitra in Syria, but if you want to visit this, you have to come from the Israeli side, so it's close to Har Bental, Mount Bental. We're here now in the Nahal Ayun National Park. It's a national park here in Matula, along the eastern edge, one trail, and there are three different waterfalls to see, but we're only going to get time to see one of them this morning, but marked by the trail markers. So here we are. So this is the conclusion of my three-day trip in Matula, the northernmost town in Israel, and I'm in Nahal Ayun National Park, which is a beautiful national park on the east of the village. There's four different waterfalls to see. The waterfall you're seeing behind me is the Ayun waterfall, and there's three others that are bigger, and there's trails continuing for a couple of kilometers, and where we are geographically is just on the eastern edge of the village, hugging the border with Lebanon, walking around there. So this has been a really interesting trip. This is one of the highlights for nature lovers, hiking lovers of this part of the country. Of course, it's also an incredible place, although Matula is based in the Galil, the Galilee region of Israel, to explore the Golan, which is not so far across the country. It's a terrific base, and yesterday we saw a Syrian abandoned Syrian command post, fascinating place to see, and there's lots, lots more to do in the area. There's also a main street in Matula with a fun bar and pizza venue called Ayuni. There's a little bank, there's a little post office. It's truly one of my favorite places in Israel. It's a small town of only about 2,000 people, but there's a few different hotels, accommodations, and as I said, it's a really great base for doing some exploration of the beautiful north of Israel. Thanks for watching the video, and if you want to get more from me, do subscribe to the YouTube channel.


Your Excellency Minister Abdullah, President Ghani, Excellencies, Distinguished Guests, Ladies and Gentlemen. It is my privilege to represent the International Organization of Migration at today's event, particularly knowing the critical role that migrants and returnees have played in the recent history of Afghanistan and I'm sure will continue to play in its immediate future. Afghanistan is a migration tapestry. Since 2012, 2.7 million Afghans have fled the country, while an estimated 3.9 million Afghans have returned and almost 4.8 million remain internally displaced, while another 5.5 internally displaced have returned to their homes. Nothing important like peace comes easily. If the peace process is realized, the Afghan government and the international community must be prepared to provide the humanitarian support for mass returns, as well as supporting development interventions that make best use of the skills and experience of those returning. Not only is this critical for a strong domestic market, but the effective integration of returning Afghans, including former combatants, into communities will be critical for future social cohesion and the preservation of peace. It will be of utmost importance to manage the transition to peace effectively, make no mistake, migration and migrants will be central to this. How well we understand and respond to the migration context today will have ramifications for many years to come. However, with escalating conflict over the past year, vulnerability to natural disasters, and of course the impact of the COVID-19 pandemic, the peace process faces unprecedented challenges. But let us not forget that the people of Afghanistan are the best architects of solutions to those of the country. Regular labor migration pathways will be important to ensure overseas remittances transcend the country economically, and it is important not when they estimate the contribution that can be made to peace building and economic prosperity by the African diaspora, including refugees through international and regional trade cooperation. I am confident that the government of the Islamic Republic of Afghanistan recognizes the need to plan for displacement and return, and to incorporate migration in general into its policy making and governance as the UN Migration Agency. IOM stands ready to further support those efforts to build a better future for the country through safe, orderly and dignified migration. IOM has been central in humanitarian response and sees a way forward in preventing forced displacement through stabilization and transition efforts. To be clear, now is the time to redouble our efforts to support the transition to peace and ensure that Afghans can choose rather than being pushed to migrate and that those who live abroad in fear will be free to return and contribute to the future of their place of birth.


Alright, so let's check this out. We got the lift, boom, okay, cool, cool, and then we got actual view here, boom, yeah, cool, all right, so let me check what you have in your mail. The main thing you see here, 218 to 229, okay, hold on, the friend counter is tiny, tiny, 218 here, 229, alright, 218, 229, okay, maybe you're talking about this section here. Talking about the elbow popping. Oh, this guy, there you go. Okay, I get it again. If you think I should try something completely different because I can't control the elbow, I see. I mean, I don't know the rig. I don't know if the rig has bend bows or an elbow snap thing where you would just have to go frame by frame and shape that change so that you can get rid of the pop like that. That would be one thing. Or it's like this. What if that arm is further out? Let me see. I mean, I think I mentioned that last time. That's something you could do is where you have the lift here and then watch out. There's also the sore kind of pops into a spot and then kind of stops abruptly and even here a bit of a whee, a bit faster through there. I mean, generally, I would say it's cool. There's some moments where, like through here, I see some spacing issues in the upper body where it kind of suddenly locks like it goes forward and then it locks, almost pivots in screen space and then goes to the left. Whoa, it goes to the right. Whoa, then hits a wall, goes to the left again, stops right there for a little pivot, continues to the left and then back to the right. And then even here you have forward, a little bit of a stop forward again. I think the general thought I have for this version is just spacing clean up and just getting rid of pops and even stuff like this where that sore drops. There's something where like this comes up a bit floaty coming up here and then just kind of drops and it feels like it's very isolated in the forearms through there where I would have a bit less through there but then a bit more in the shoulders. It feels more like this goes down but it affects the rest up here as well. It's definitely showing weight. Yeah, I just see the hiccups through there. Love the forward momentum. I think that's still great. And then watch out after she drops. I mean, again, you have spacing issues where it goes down and then suddenly pops right there. It's a small, small, big one. And if this was, again, it's a longer drop into something heavy. But the thing is, this is heavy and it feels like it pulls her down. Everything goes down. And then suddenly it's getting lifted with this. But that's a massive, strong forearm muscle with bicep tricep muscle there. It's lifting this because it's not a lift through the upper body with extended arms. It's lifting this really heavy. It's not resting on the leg where maybe leans forward and the thigh props it up. Like this is only lifted up right through there, through this section, through the arm. And I just don't quite buy that because you're going through so much to show how heavy this is. It's nice. Definitely heavy. Boom! But then I'm just not quite buying that on through there. Once we're here, what I'll be careful about too is that given that this is so heavy, you might have to lock that arm, but you know, there's so much weight on this arm that maybe there's less of something like this, some flexing or that might be too picky. I think to answer your original question, what I would do is through there, you start extending that arm out so that there's a cleaner silhouette of elbow and arm swings over. And again, that arm is up here. It's like a really big broadcast of I'm going to grab this with this arm and then that arm could come from here down to here. That makes sense, right? So it's up there and then down to this. So you're avoiding that flipping because the elbow is not so close to the shoulder and body. That arm is actually up in the air and the sword is only held by this arm. To really telegraph, I'm going to grab this. Imagine if that's your pose like this, imagine a previous pose could just be forearm or upper arm. Forearm, you know what I mean? Where it just does an arm flex down into this pose. Even here, imagine that arm before that was here and now it's here. We're just kind of going down and all this happens in a way only with one arm. I know it might be tricky with the rest here, but I think that would be one way to avoid that flipping. Again, watch out. It feels like this suddenly pops up a little bit here. And then this, I would also be careful just weight-wise because it is so heavy. Character is, like this is heavy, pivot here, lifting, but right now there's nothing really that can lift that sword except this. This would be your, I guess you're tricep at this point, right? So this is like a pull through the arms, but then whoa, this is suddenly really strong to get this into this position, but the body hasn't really moved forward. All we're having right now is a stronger upper body move forward. But in order to swing this, I think the character would have to be in this position, meaning that I would go a bit longer with the sword is here, pivoting here. Now that leg here pushes the body up, where you can almost have that maybe a bit straighter. I'm just thinking out loud here where it's almost more like that right head is here. And now that arm is straight and it's the body here that pushes this up. So that at this point, the sword might still be like this. Again, it's so heavy, gravity is going to keep it down. And the only way this is going forward is the upper body root leg does this. Now you suddenly have upper body momentum that thing can swing those arms and that prop over. Even then you might, instead of this, I wonder how this would feel if she was like that. I don't know if I'll be able to break with this, but I'm wondering if you want to, we're going to see curve into a reversal and that swing over. That's really going to pull those arms into this. And then the same thing here is that this is now so strong. You're going to have really broad momentum so that arms are extended and then getting a bit more extended. And then here, extended, right? To here, extended. That makes sense. Because to me, it feels like now this is so heavy, we have all this momentum. Why is the sword going from here to here to here? Oh, suddenly dropping into this. I know we want to make this like a strong, I get it. But I think you still have to observe that forward momentum. And at that point, those arms, this is also be broken with the wrist. So it's going to help you by shoulder up arms, arms, and the sword will be here. And then also again, silhouette might help you keeping this cleaner by having it more like this, right? And since that's the end anyway. And I will be careful with how much bounces. Let's see, hit up, down. I know, this is super picky, but taking that last one out, getting rid of that little extra wobble, I think it's going to help you as well. Because again, this is now so heavy, but also a cut into the ground that it might just be stronger. And just sticks in the ground. I would potentially even reduce how far this sword goes out, given how deep we're in here. Just the thought for the end, it feels almost too wobbly. But overall timing is cool. I like all the rhythm of it. Like that, you know, that forward move. I love still this is great. Yeah, still picky notes here and there, but I like it. All right, there's an email you can sign up. You can start whenever you want. Submit whatever you want to get 16 submissions. Either way, a like and subscribe would be awesome. All right, thank you.