Sean Hannity of Fox News, otherwise known as Fraud Hannity, he went on an anti-media rant that is so ironic. I don't know how he said the things that you're gonna see him say with a straight face, because he's going to complain about media bias. He's gonna complain about other news pundits shilling for political parties. Not even kidding. And he's gonna say all of this while not acknowledging that he's the biggest shill and political hack in America, hands down. I don't think you're gonna find a bigger media hack than Sean Hannity, but he's going to pretend as if, you know, this is a problem that affects everyone else, but not him. Let's watch. Now, if we're up to the so-called journalists, there are none in the mainstream media, none of this would ever get reported. Biden would never be fully vetted, just like in 2008 with Barack Obama. Remember, this show investigated Obama's ties to, yeah, unrepentant domestic terrorists, Bernadine Dorn, Bill Ayers. It was us on this show that were digging into his deep personal connection to Reverend Wright, the church of G.D. America, and Black liberation theology that so inspired him, and Acorn, and Alinsky, and community organizing, and even the Chum Gang, and so much more.  And most of the members of the media are nothing more than shills in an extension of the Democratic Party. They don't care about you, we, the people. Things have improved so much under Donald Trump, and they hate him. Why wouldn't they be championing success for the American people first? Interesting question. This was perfectly exemplified during the president's recent trips to South Korea, paid very close attention. All right, the president goes to the DMZ. President Trump met quickly after he tweeted out to North Korean dictator Kim Jong-un. He became the first sitting U.S. president across the DMZ. President Trump, let's see, he offered no concessions to North Korea. He sanctions are still very much in place. In other words, President Trump did not try to bribe the North Korean regime like Bill Clinton did with your money in the mid-90s and tells this is a good deal for the American people. Nor did President Trump drop $150 billion in cash and other currency on a tarmac to mullahs in Iran, like Biden and Obama did during their failed Iranian nuclear deal. No, this president won't try to appease bribe dictators, but he also hates unnecessary wars. So that's about all that I can stomach of Sean Hannity. Once we get past, like, you know, three minutes, I start to get physically ill hearing this dipshit speak, but think about what he's saying. This president is altruistic. He just wants to, you know, stop unnecessary wars. He's saying this while not acknowledging that just a couple of weeks ago, we were this close to war with Iran, this close. And why were we this close? Specifically because Donald Trump has continuously escalated with Iran. He withdrew from the Iran deal, reimposed sanctions. We were this close because he kept poking them. So spare me this speech about how he wants to end unnecessary wars. He's the commander-in-chief. If he wants to bring the troops home from Syria and Afghanistan, he could do it right now like that. But he's choosing to not do it because he is easily influenced by neocons in his own administration that he chose to hire. So spare me, Sean. Additionally, Sean Hannity says this president won't try to appease bribe dictators. He says this after Trump just last year refused to cut off an arms deal to Saudi Arabia when he knows the weapons we're selling to them will be used on children in Yemen. And this comes after Saudi Arabia was proven to have murdered a journalist. So he's not going to bribe and appease dictators. Are you sure about that? Are you really sure about that, Sean?  They are a totalitarian regime where women are third-class citizens. He's going out of his way to appease them. So I mean, what do you call that? But we have to remember this is Sean Hannity and this is his Trumpy we're talking about. So his Trumpy would never do anything wrong. Heart emoji.  But here's where the irony really comes in. The crux of his problem here with mainstream media is that members of the media, you know, they're more shills and an extension, you know, for the Democratic Party. So they don't care about you or the people. So Donald Trump can do something that is beneficial, foster peace with North Korea, crossover into the DMZ. But they're just going to be opposed to what he does, any and everything he does, because they are political hacks. They would have definitely given Obama credit for this while simultaneously criticizing Donald Trump. And look, you've got no disagreement from me there. That's true. The media are hacks and journalism is dead.  Nobody's a bigger hack. Nobody's a bigger shill for a political party than Sean Hannity. But he won't tell you that when even people in his own network, his own colleagues, are willing to admit, yeah, you know, we are going to give Trump credit for this when we absolutely would have called out Obama for doing it. I don't, of course they're going to attack him. That's what you would do. And let's be honest, if it were the adversary, an adversarial from your party on the other side doing it during, we would do the same thing.  Exactly. Exactly. Yeah.  Because no network is a bigger shill for any party, any extension of a political party than Fox News.   And a compilation put together by now this of Fox News and the way that they reacted to, you know, fostering peace between Obama and Trump, it tells you everything you need to know. Would you, as president, meet with the leaders of a country like North Korea? Obama extraordinarily said, I'd meet with him. Senator Obama made his intentions crystal clear on the campaign trail. I will meet, not just with our friends, but with our enemies. President Obama likes talking to dictators. He would meet with some of these madmen without any preconditions. You know, I'm going to reach out to these crazy people around the world and try to get things done. I think that's a mistake. Obama is bowing and scraping before dictators. What is Team Obama doing, establishing formal contacts with these people? A remarkable turnaround in relations between two historic adversaries. The Commander-in-Chief's leadership is now leading to a major foreign policy breakthrough. Another stunning Donald Trump breakthrough. President Trump's scoring a big win. It's time to celebrate a great victory when it happens. President Trump proves the experts wrong again and scores a stunning diplomatic triumph. How about this? The fact that all he wants is to get them back to the table as a precondition. Sure. If you give up your nuclear weapons, then we'll talk. Why would the administration think that this is a group they could do business with? You know, I have no idea.  And a hatred for America is never going to go away. It is a definite win for the president. And it's a huge win for this country. It's breathtaking. It's audacious. It's bold. It will be historic. I'm juiced about it. It'll be magnificent for the people of Korea. It'll be magnificent for the world. Obama would personally negotiate with leaders of terrorist nations like Iran and North Korea without preconditions. Wow. The world will probably be a little bit safer. The media should be giving President Trump credit for that. I'm not sure there's any real discussing issues with Kim Jong-un. He may be the one president who would actually do this, who would go meet with North Korean leaders. Look, it's a bad idea for the president to speak to Kim Jong-un. Why wait till the end of May? Let's do this by the end of March. The current president truly believes that he's the chosen one, cannot deal with criticism. We are really in danger of living in a sort of pretty little dream where Barack Obama thinks the power of his personality is going to have this incredible transformative impact. He's crazy. President Trump made the decision himself to meet face to face with Kim Jong-un. This guy has a very unique quality of leadership. He is so charming. He can deal with people. He can get along with people. I think that this will only work out well. The idea, which has been fanciful from the start, that we could talk North Korea out of its nuclear weapons program. You cannot make such a promise, not when you're dealing with these madmen who do want to destroy America. Is he going to stop on his way in Oslo to get the Nobel Peace Prize? If it works, he should get the Nobel Peace Prize. You give that man the Nobel Prize. There's no question. But let's be, I mean, the chances of that are right around zero, I think. We'll always be fair and balanced with not the left wing destroy Trump media. Quote, the media are nothing more than shills. Sean Hannity. The irony just, you know, flew right over his head. Let's not pretend as if you're not included in that same category of all these other media shills.  Now I want to stress, I'm not trying to debunk the notion that, you know, media aren't shills for political interests. Because I think that cable news pundits, these are owned by large corporations, multi-billion-dollar companies. So of course there's a conflict of interest. There are underlying biases and agendas that are being driven here. But with that being said, talk about the pot calling the kettle black. I mean, Sean Hannity, of all people, you should not be speaking out about this because what's the obvious rebuttal going to be? Look in the mirror, dipshit. So I'm just honestly a little bit taken aback that he'd have the confidence to say this so boldly and call out media bias while not being introspective about his own overt bias. And it's not even, you know, to say that Sean Hannity is biased, that would be an oversimplification. You could say that I'm biased because I talk about how I am a progressive and a democratic socialist and I'm supporting Bernie Sanders. So you can say that's political bias and I'm telling you my bias so you know, you know, the way that I think and how I'm influenced. But Sean Hannity isn't just biased. He's a shill. He is doing the bidding of Fox News's advertisers, which also happen to be donors to the Republican Party. So it's not just about political bias. This is about shilling. This is about a conflict of interest. You see, because even if Trump did something that goes against his own political biases that are inherent to his core ideology, he wouldn't speak about it. But for me, someone who tells you where I stand, if Bernie were president and he did something I disagreed with. In fact, I've already openly disagreed with him on issues like Israel Palestine, reparations, drones. I call him out. And it's because there's a difference between bias and being an outright shill. And Sean Hannity is firmly in the shill camp. So he has the nerve to call out anyone else's political bias.


Data visualizations are often used as a means to communicate complex information to the public in ways that cannot often easily be done with words. So what's involved in the creation of these? Today we'll look at the different types of steps and operations that are often used. Hi, I'm Chris Davis, and I'm an assistant professor at the University of Fronion. In this video, we'll look at the steps that are used for data visualization analysis.  You'd have an understanding of how you could apply these steps in your own work with data. When you do data visualization and analysis at a very basic level, you have to get the data, be able to process it, and create the visualization itself. There are often a lot more steps than this, and a good overview of what often has to be done is provided by Ben Fry in his PhD thesis on computational information design. In this, he talks about the steps of acquire, parse, filter, mine, represent, refine, and interact. The link to the original PhD thesis can be found on the platform. We're going into more detail about these steps in the next few slides. While you can think of these steps as being part of a linear process, or once you're done with one step, you can move on to the next. You could also conceive a situation where each of these steps can loop back and change the output of the previous steps. For example, while people are interacting with visualizations, they may filter out a different subset of the data, or select options that alter how the visualization represents the data. People may want to even load in new data sets, given something that they discovered using these later steps. This whole process of creating visualizations is a mix of science and art. Fry argues that this whole chain of steps draws on skills from different backgrounds. As you progress through the different steps, you're using knowledge from fields such as computer science, mathematics, statistics, data mining, graphic design, human-computer interaction, and information visualization. To start, you of course need some way of acquiring the data. When acquiring data, it's generally good to automate the process as much as possible, especially if you expect for the data to be updated in the future. While you can just go to a website yourself and download the data, you can also set up a program to download the data directly from a URL, which allows you to easily repeat the process in the future with new data. For the next step, parse, there needs to be some way to read the data so that the computer can understand it. There are actually several components to this. First, the format of the data, second, what the data means, and third, what the data really should mean but doesn't, currently due to errors. Regarding the format of the data, there are different file formats that the data may be written in. A key thing to remember is that in whatever programming language that you're using, there should be some library or piece of software already written to help parsing the data from common file formats. The next thing to be aware of is what the data actually means. Specifically, there are numerous data types that represent things such as text, dates, numbers, and geographic coordinates. One thing that you'll likely experience is that parsing dates will sometimes cause problems. For example, a date that looks like this, 8.1.2016, may actually mean 1.8.2016, depending on if you expect the day or the month to appear first in the date. Dates such as August 2016 may also be ambiguous if the computer expects a day of the month to be specified as well. Even if the data can be incorrectly interpreted, there may still be issues with incorrect values in the data, such as inconsistent units of measurements being used. For example, you may find data that is listed in units of millions of euros, but also in euros, or maybe easy to spot the values in euros, since they are so much larger than the rest of the reported values. One way to deal with this would be to set up your program so that it spots these issues and automatically fixes the data. If there are a lot of diverse types of issues in the data, you may want to use a free open source tool, such as OpenRefine. The developers of OpenRefine describe it as a powerful tool for working with messy data, cleaning it, transforming it from one format into another and extending it with web services and external data. In practice, this is a very useful tool for dealing with data that needs a lot of cleanup in order to be useful for later visualizations. On the platform, you will find a link to the OpenRefine project page in a tutorial that demonstrates the different operations that you can do with it. The next step is filtering, which is relevant if you need to extract some subset of the data instead of using all of it. The key question to think about for this is what attributes of the data need to be filtered on. For example, are you looking at categories or classes, numeric values, ranges of dates, geographical areas, or a combination of multiple features? For the mind stage, filtering may not be enough, and we may have to use very statistical techniques in order to find patterns of interest. We may be interested in highlighting outliers, showing what average values are, or identifying what appear to be clusters in the data. What is shown here is a part of a reference sheet for the DePlyer library for the R programming language. We'll discuss this in more detail in a later lecture. As you can see, this provides many functions by which you can summarize data using statistical functions. This also allows you to join datasets together based on matching variables among many other features. For the represent stage, it's a question of how you would like to visualize data using different techniques. For this, we show a reference sheet for the ggplot2 library for R. This highlights several techniques that can be used for plotting one variable or two variables. Just from this, you can see different examples, such as histograms, bar charts, scatter plots, stacked area charts, density charts, and so forth. For the refined step, this is a question of how to change the visualization to highlight things of interest. And this step can also relate to the output of the previous steps. For example, when selecting a subset of the data, you may want to make the rest of the data more transparent in order to de-emphasize it. They also want to create objects that become larger when you place your mouse over them. The final step of Interact applies if you're doing dynamic visualizations instead of static ones. There are many free open source options for software that can help to create these. If you're used to programming in JavaScript, you can use libraries like d3.js. For R programmers, there's a Shiny package, which allows you to write your data processing code in R and have it interact with a dynamic web page. The interaction with the data should allow the user to explore some complex issue in a way that helps them to understand it better. A good example of this is a visualization that gives people options for balancing the budget of the U.S. national government. The links to this can be found on the platform. This is a very complex issue where the amount of media coverage a budget item receives doesn't necessarily correspond to its overall size. This visualization helps people to give people more insights into the complex trade-offs that have to be made. It helps them to understand some of the difficulties that are involved. All of these steps that have been mentioned are part of the storytelling process, which is to a large extent what data visualization and analysis is a part of. There are several very famous examples of this. One relates to a cholera epidemic in London around the 1850s. At that time, people thought that cholera was caused by bad air. A physician named John Snow decided to actually plot the homes of the cholera victims and the locations of the water pumps. In doing so, he was able to locate the water pump that the disease was spreading from. Another famous example was done by Florence Nightingale, who created a visualization showing that during the Crimean War, surprisingly, most soldiers were not dying of wounds from the battlefield, but rather from preventable diseases. Through this work, she was able to argue that improving sanitary conditions could go a long way toward saving lives. As we have seen, there are many diverse steps involved in performing data analysis and creating data visualizations. Furthermore, each of these steps also requires different skill types. Ultimately, this is about storytelling and about using techniques that allow for us to communicate complex data to the public. In a later lecture that I will give, you will be able to see actual examples of how this works, and you can directly see this through the link in the footnotes on this slide.


Hello everyone. So in this video I will introduce you to a new concept which is that of linked lists. So linked lists are challenging but important concept in computer science and they are going to be your very first custom home-built data structure in this class. So you're gonna learn a lot from this experiment and this assignment. Just a quick reminder of some really key terms that we talked about before. An abstract data type or an ADT is a conceptual thing that is comprised of two things. One is the data that it stores and then also the operations that you can perform on this data. So the example that we gave of an abstract data type before was an unordered list. You can create them, you can append to them, you can access things by index. That's an abstract data type that exists in every language. You also learn about stacks, queues and decks. Those are also abstract data types. Data types without the abstract are concrete implementations of ADTs in a particular language. So you wrote Python versions of stacks, queues and decks. You created those data types. Finally there are data structures and these are the internal, the way that the computer or your program organizes the data internally inside the data type. So the only data structure that you have been using so far is the array-based list and we talk a lot about how that array-based list works in previous videos. I'll remind you here again in just a second. But everything so far. So here's a summary of the ADTs and the data types that we have talked about so far in this class. Well now we're going to fit in something brand new and totally different. So we're going to once again implement the unordered list abstract data type. So unordered list, search the list, remove from the list, append to the list, insert into the list. The list you know and love is an unordered list. But you are going to be creating a new data structure called a linked list and unlike the array list, that was like hard coded in Python. You didn't have a lot of control over how that thing worked. You just used it. This, you're going to write it from scratch and you are responsible for implementing all those list behaviors. It's going to be challenging but you'll learn a lot from it. At least I hope so. Okay. So just as a reminder, an unordered list abstract data type is a collection of items, the data, where each item holds a relative position with respect to the others. So the items are kept like in the order you insert them and remove them in the list. They're not ordered and they're not sorted. There are other abstract data types where as soon as you put a thing in, it's kept in a sorted order. That's not this. This is just the generic list that you know and love. So when we go to implement a linked list, and we'll get to that shortly, you'll be able to, you're going to write Python code that creates this new list class and then you will be able to call its length. You will be able to add items to it, which is like inserting at the front. You will be able to append items. You will be able to pop items. Popping is removing from the end or if you pop given a position, you remove an item at a particular index. You can search for items by value and you can remove items by value. These are all things that you can do with a Python list as well, but you're going to write the code this time. Okay. Now why in the world would you go through the hassle of writing your own list data structure when you can just use Python's ArrayBased list? Well, the ArrayBased list, while very powerful, also has some downsides. Remember when we talked about queues in an earlier video. If you were to use a Python or any ArrayBased list as the data structure for a queue, it must be the case that either the N queue operation or the D queue operation will be big O of N. Right? And this is because if you add things at the front of an ArrayBased list or remove things from the front of an ArrayBased list, then everything that comes after it needs to either shift down a slot or shift up a spot to maintain that contiguous block of memory. Okay. Well, that can actually get very expensive if the list grows and grows and grows. So if you need a queue, but you need like high performance, like a network switch that is processing millions of packets per second, they're coming in, getting stored in a queue, and then coming out of the queue, it can be a real problem. Right? So let me demo the real life pains of this. Okay. So I'm some code here. And I have written a queue data type. I'm calling it queue array. And this looks very similar to the queue that was requested to be implemented in the last assignment. Internally, the queue holds its data in a list. And I am enqueuing at the end of this internal list, ArrayBased list, excuse me, this internal ArrayBased list. And I am removing from the front of the ArrayBased list at index zero. Okay. So which one of these operations is big O of one? And which one is big O of N? Well, to answer that question, you have to know how the ArrayBased list works. And as we went over in a previous video, adding or appending to the end of an ArrayBased list is big O of one. Whereas dequeuing from the front here, when I pop zero, that pops the item at index zero, removes it and returns it, well, everything that comes after index zero needs to shuffle up a spot. Right? So that's the big O of an operation. Okay, so I've got a queue. This is just a queue based on an ArrayBased list. Now I'm going to show you some timing code. This is the timing code very similar to what I gave you before and posted inside of Canvas. I'm creating a new queue here, one of my own data types. And what I'm going to do is I'm going to count how long it takes to nqueue one million random numbers. So there's a million random numbers in this text file. What they are is an important, what I'm demonstrating is how long it takes to nqueue a million things. Python doesn't really care what those things are, just how many there are, right? That's the essence of kind of big O of n. How many things? What is the size of the input? Well, there's a million items in here. And I've got my, I'm grabbing the start time of this operation. And then I open the file. And for each line in the file, I nqueue it into my queue. Nqueuing those going to be big O of one. So this should be pretty fast. And then I stop my stopwatch down here and I print out how long it takes. Now my queue is full at this point, right? I've put everybody in there. And I'm just going to remove, I'm going to dequeue all the items, all million of them. And so I say while the queue is, you know, the length of the queue is greater than zero, that means there's still something in there, just dequeue it. And then I also have some code here that's going to print out how many items are left in the queue. Okay, so this is going to be the time the expensive operation, because my dequeue operation here, my queue is popping from the front of the array list. Okay, so let's, let me run this. Nqueuing a million items, okay, it only took half a second to Nqueue that million items, read them from a file. So that's not too bad, right? That's pretty quick, right? But now you can see I'm dequeuing. And this is considerably slower, right? This is that big Ovan operation. Every time I dequeue something, I've got to move, you know, a couple hundred thousand items up a slot in memory. I've got to copy them up a slot in memory. And that takes time, right? So, you know, if you are a network router, and you've got a million packets in your queue, that you need to process just as quickly as possible, you may be able to process the piece of data at the front very quickly. But now you've got to shuffle everything up a slot. Not fast enough, right? Just not fast enough. If you're a router used in array based lists like this, you would be mad, right? So, yeah, we're kind of crawling toward the end here. I don't know if you can see it or not, or you've noticed, but it's actually, it speeds up really quick at the end, right? So, it took me well over a couple seconds over a minute to dequeue my array based list. Not good to take a million items to dequeue it. It took me over a minute. Not good, especially when it only took me, you know, what was it, like half a second to enqueue that million items? Not great performance, right? But we can do better. Now, again, the problem right here is that we are using an array based list. If data structure, if we use a different data structure, we can improve dequeuing, okay? So, I'll just demonstrate that to you very quickly. So, you may have see up here at the top, I am importing a class called linked list. So, this is code that I wrote and that you will write in your next assignment. But it is the linked list data type that kind of wraps the linked list data structure. And I have some code down here, I'm just going to uncomment it. And what I do is I make a different kind of queue. In my queue, I can still get the length, I can still enqueue, and I can still dequeue. And in fact, if you look at this code compared to the array based list, it's exactly the same. Except, let me unqueue or uncomment it, the code for the queue array, and I'll share this with you, though it won't really help. The queue for the array and the queue that's based on a linked list, the only thing that's different here is this. I'm using my own custom data type, whereas before, I was using Python's built in data type for a list. So now I'm going to run that exact same experiment, except I'm going to use my queue with my linked list instead of Python's array based list. And let's run it. Exact same experiment. Enqueuing a million items takes a little over two seconds. So I've lost some performance there. But I have gained performance in dequeuing. So before this was half a second for the array based list. Now I'm almost five times slower. That's not great. But before, this took 67 seconds. Now it takes 2.3. So what, 30 times faster to dequeue. So which one of these do you need to use in a high performance setting? We can actually optimize this more and get these numbers down. But clearly, this one's going to work better for you, because both enqueuing and dequeuing take the same amount of time. And the reason for that, again, is because I'm using this thing that is called a linked list data structure. And you're going to implement one. And we'll talk more about what that looks like here in just a second. So let me switch back over to my slides and let's get back to where we were. So why was that array list not so great? Let me get rid of myself so you can see everything. Why was the array list not so great for the queue? Well, remember, reading and writing a list element when you're using an array list data structure is simple thanks to math, right? We can just multiply by the size, excuse me, we can take into account that this object header takes the fixed amount of space, we can take into account that the length variable takes a fixed amount of space, and then use some math based on the length value to figure out where we append things, where say index one is in this list, it's all very fast array based arithmetic. But inserting and removing from anywhere, except the end is big O of n. And that's what we're doing in the queue. We're either insert, we're based, usually we're dequeuing from the front of the queue, right? So we're adding and removing. When I insert zero at index zero Paris, what has to happen? Well, these guys have to move down a slot. And that's the expensive part. I've got to copy everybody down, and then I can insert. There's another problem with the array based list is that I run out of room sometimes in my list. So if I have a list and it's taking up this part of memory, but maybe my Windows or Mac operating system has put something else here, after it. And I need to append here to my list, Charles. Well, I can't write Charles in this slot. Something else is there. If I overwrote it, that's a memory issue. That's a security issue. Really bad juju is going to happen if you overwrite stuff that you're not supposed to. Right? So what does Python do? Well, if it detects that there's not enough room in memory, it's got to find new place in memory that does have enough room, and it's got to copy everybody over, right? This is also an expensive thing. Okay, so the process, the copying process is big Oven and arrayed lists for this reason usually double in size, every time they reallocate so that they're not copying constantly copying to new locations because that copying is very expensive. All right. So array lists are great for some things, but they're not so great for other things. Let's talk about the linked list data structure. Okay, a linked list is an alternative way of implementing an unordered list. Inside a linked list, there is a concept of a node. Okay, so you have to, you're going to have to know what a node is. It's a term you're going to hear a lot. Okay, a node is, it's going to be a Python class. The node itself will be a Python class. And inside the node, it really just holds data. That's its job. It holds the data item that you care about, right? So, you know, list sub zero gets Sally. Sally is the data item. It can be whatever, an integer, a string, any object, just like in a Python list. What's the data that goes in the index? Or what's the data that goes in the slot that you care about? The node also stores a reference to the next node that comes after it. In other words, it's got a variable inside it that points to the node that comes after it. And the way to think of this is as a chain. Okay, a linked list like chain links, a linked list is comprised of these nodes. Each node has a value in it, the data item you care about, and then a reference to the next node, the link in the chain. Okay, so this is the way that the list is kind of connected together. Okay, now when we go to write this, and we'll switch to some code in a later video, there are two classes involved. One is the linked list. Don't worry too much about the slide right now. But there are two classes that are going to be involved. One is the linked list itself. It's going to have the wrapper.  I need to remove an item by value. I need to look up an item by its index. You will give that to the linked list class. But internally, inside the linked list data type will be these nodes that are kind of forming a chain together. And all the linked list will know is the beginning of the chain, which we call the head, and the tail of the chain, or the end of the chain, which we call the tail. And then it also knows how many nodes are in the chain. Right? So just bear in mind, as we're talking about this, you're going to be implementing two separate classes. One, for the individual links in the chain, and two, for the linked list, the whole chain itself, and the operations you do with it. Okay? So let's visualize this. You have a handout at your disposal. But linked lists are pretty easy to visualize, actually. So a node. Here's our visualization of one node in the chain. One node in the linked list. It's got data. That's the values that you're storing at each index of the list. A node holds the value at one index, one particular place. Okay? One data item. And then the next. Next is going to be a variable. Right? And it is going to refer to the next node in the chain. Okay? So the visual is a, the linked list itself looks like this. You have a head of the list. That's the first item in the list. That's going to be the item at index zero. Okay? The head of the linked list. This is a term you have to know. The head of the linked list is a variable that refers to the first node in the list. Okay? In this case, that first node in the list is a node containing the value Paris. The node containing the value Paris then points to, this is a reference to the node containing Alice. Now what is a reference? What is a pointer in Python? It very simply is going to be a variable, and the variable value is going to be this node. That's it. Okay? We're not introducing anything new here. Remember, variables in Python are references to an address in memory. Okay? So this is a sudden variable, and it knows where Alice's node lives in memory. That's it. That's it. It's a variable. Okay? The next node has the data value Alice, and hit its next points to the node containing Bob. Okay? Nexts in the node are always going to point to a whole node. They don't point to just like the value to Bob. They point to this whole thing. Again, envision a chain link. It is linked to its next node physically, the whole node. Okay? Bob is then linked to Charles, and Charles is what we call the tail. Okay? Charles is the end of the list. He is the item at index negative one. He is the last node, and he has no next. Right? His node is nothing here. His node's next value is none. Nothing comes after Charles. Okay? So this is the linked list, and these references are the links. Okay? So let's visualize these linked list operations. Try and concretize what we're talking about. So I'm going to switch to showing my document cam, my whiteboard here. Dig out my marker. So we're working with this here worksheet. Right? And we're going to conceptually draw our linked list just to make sure that we've got a fairly good idea of how the linked list is manipulated conceptually. Right? Now the code's going to be a different animal altogether, but conceptually it's going to be good for you to have a real real clear idea of how the linked list is changing when you do different operations. So that's let's explore that. Okay? So the linked list. All right? Step one on my linked list is I create a new one. A new empty list. Okay? So for step one, when I create a new empty list, the linked list itself has two three pieces of information in it. Okay? Three pieces of information in it. The first is the head. The head of the list. Okay? That's going to be the first node in the list. The node at index zero. It has a tail, which is the last node in the list. The node that's going to be index negative one. And then it also has a length. I'll write the length over here. Okay? Now when we initialize the empty list, there's nothing in it. So the length is zero. Hopefully that's obvious. But what are the values of the head and the tail? If you're thinking in code terms, well there's nothing in this list yet. It's empty. How can you denote the absence of value in a python, in the python language? Well there's a special value to denote the absence of value and that is none. Okay? So both head and tail start out at none after we've done step one. We've got a new list. It's empty. We're basically saying create some space in memory for this and now we're ready to use it. Okay? So let's move on to list dot add harry. Okay, so what is adding to a list? Add is not a method that python lists have, you know, the array-based list. What adding means for us in linked list terms, adding says add to the front of the list. Add to index zero. Or, using linked list terms, add to the head. Okay? So when I add harry, okay, I'm going to draw a node and the data value in the node is harry. Okay? It's a string. That's his data. In fact, let me let me write the word data up here. Okay? That's the data. Now a node has two pieces of information. It's got the data and it's got what comes next. What comes next? Okay? Well, I have added to an empty linked list. My linked list, my list, now has one item in it. That's this. Okay? So there there actually is no next because nothing comes after harry. He's the only thing in the list. So I'm going to draw a little x here. But anytime I draw an x, x equals none. Right? If you're thinking in code terms, none. Harry has no next. None next. Horrible grammar. Right? But that's it. Okay? Now I've added an item so the length of my list is now one. I'll lose them a marker here. But the linked list keeps track. The linked list itself is defined by two variable values. The head of the list and the tail. So where is the head of the list? The head of the list, it's a variable. The head of the list is going to point to harry. Right? He's the only thing in the list. The list starts with harry. And where is the tail of the list? Well, the tail of the list is also harry because he's the only thing in the list. Okay. Remember, the head is the beginning of the list. It's going to be the item at index zero. The tail is the item at the end of the list. The item at index negative one. So the tail is also harry because there's only one item. All right. Let's move on to step two in our worksheet. Uh, oh, I'm sorry. We've just completed step two. Okay. We've just completed step two. All right. So now we're going to go on to step three, which is adding Hermione to the list. Okay. I'm going to move my steps over here. So I am adding Hermione. What does adding do? Adding kind of adds to the front of the list. Add is the equivalent. I write down here. Add is the same thing as insert at index zero, some value. Okay. Add is the same as inserting at index zero. Okay. So I want to add Hermione to this list. I want to insert her at index zero. Okay. Well, where does she go? Okay. Well, conceptually she goes before harry. Okay. So Hermione's got a long name. So I'm going to abbreviate it. Okay. H-E-R-M. Herm, that's unflattering. Um, okay. So I make a new node with Hermione in it. Conceptually though, what's going to happen? She's up here. And because I have added her to the front of the list, she is now the new head of the list. She's happy for that. Right. Hermione is now the head of the list. Right. Because we, we added her to the beginning. Okay. The head of the list is super important. In a linked list, the head of the list must always refer to the first item in the list. Okay. The first, the item at index zero in the list. So we have to update the head here. Okay. Now, um, something else has to happen. There's no link between Hermione and Harry at this point. We need to create the link. So who comes after Hermione in the linked list? Well, it's Harry. So Hermione's next, her next here. Here's her data. Here is her next. Hermione's next needs to point to Harry. Okay. Very important. This is creating the link. You have to create the link and you have to maintain the links. We're going to get into the code of what that looks like. Don't worry. But you have to conceptually maintain these links. If you don't put the link between Hermione, who is the new head, and Harry, who is already in the list, Harry kind of like floats off. You chop off the link and you've got actually two linked lists. And that's not good. That's not going to work. It's not like a Python array-based list where everything is packed together. Each node needs to know where the next one is. That's what makes this work. Okay. It's also what makes it fundamentally different than an array-based list. Within an array-based list, everybody knows they're all packed right in this little contiguous block of memory. A linked list, that's not necessarily going to be true. They could be all over the place. And the thing keeping them together is going to be these references. Okay. All right. So we've added Hermione to the head, or to the linked list, and we've updated the head to point to Hermione, because she's the first thing. Harry is still the tail, right, because he comes after Hermione. And our length is now two. I have to find myself a new marker here. Our length is now two. All right. Okay. Step four. Append Ron. Okay. So we're going to append Ron to this list. Well, where does an item go in a list when you append it? Okay. It goes to the end. Right. So let's first create Ron, or a node for Ron. He's down here. Ron is going to be at the end. Okay. So what has to happen? Several things have to happen. First, we're not changing the head, right, because he, Hermione, is still the head of the list. Then Harry. Now Ron. So three things have to happen. The first is, why don't we do the simple thing first? Let's update the length. We've now got three items in our list. Now what needs to happen? Ron's here floating off by himself. Harry needs to know that Ron now comes after him. Okay. So we've got to tell Harry's next variable. Harry's next. We need to create the length down here to Ron. Okay. So Harry comes after Ron in the, or excuse me, Ron comes after Harry in the list. We also need to update the tail. The linked list always knows who its head and who its tail is. And so the tail is no longer Harry. It is now Ron. Okay. Okay. So we had to do three separate things there, right? We had to update the length. We had to point Harry's next to Ron. And then we had to update the tail to point to Ron too. So this is all work you are going to have to do, right, before Python kind of took care of it for you. But now it's up to you to do that, to implement. There's also something else that's kind of interesting here. Let's say that you are interested in getting whatever the value at index one is out of this list, right? How do you get to index one in this list? Well, the head is index zero. The tail is index negative one. The only way to get to index one is to start at the head and follow the link. We have to start here and go here. This is called walking the list, reversing the list. We'll talk more about it again when we get into some code. But there's no way to access Harry directly, right? There's no pointer to Harry. And actually there's no fancy math we can do here either. It won't work because the linked list is not going to be stored in a contiguous block of memory. So the only way to get to Harry is going to be start at the head and go down the list, walk the next until you get there. And that's what's going to be the challenge, the big challenge in implementing linked lists, okay? All right, let's finish off here. So let's go to step five. Step five says, pop the item at index one. Okay, well how do we do that? We start at the head. We're going to start at the head, which is index zero, okay? And we're going to go to the item at index one, which is Harry. And now how do we pop it? What does it mean to pop conceptually? Okay, it's going to be a very complicated operation in code. I'm not going to lie to you. It's going to be tricky. We'll walk, we'll talk through it. But conceptually, just looking at this, what happens? I pop Harry. What does it mean to pop something? It means you remove it and return it, okay? So if I pop Harry, okay, the value for Harry comes out. Okay, I'll return it. And let me just go ahead and remove him. Let's get his note out of here. Oh, Harry's gone. Now you got a problem. What's the problem? You've got Hermione at the head of the list and you got Ron like hanging out down here. The link between Hermione and Ron has been broken. Gone, okay? So what we will have to do conceptually is we've got to create that link again. Because Ron comes after Hermione, okay? So we need to update this Hermione's next to point to Ron, okay? That's going to be tricky in code, but you know, we'll get there. Conceptually though, this has to happen. I took Harry out. I have to maintain the link to the next item. Okay, there's two items now. So we update our length. It's only two items now. But we've got to maintain that link, okay? We don't have to update the head or the tail in this case, because if I didn't remove them, I didn't do anything like that, okay? Now list.pop0, step six, okay? Step six. So what's going to happen here? I want to pop zero. Who's the item in index zero? That's Hermione, okay? Well, it's relatively easy conceptually to get rid of her. I just get rid of her node. She is gone, as is her link to Ron, okay? I'm popping zero, which removes and returns, okay? But now who's the head of the list? Well, the head of the list, again, the head of a linked list always points to the first node in the list. Who is the first node in this list now that Hermione is gone? Well, it's Ron, so I got to update my head to point to Ron, okay? All right. Makes sense. We got to know, get really, really, really comfortable with how these linked list operations manipulate the conceptual list. Updating the head, updating the tail when necessary, updating the length, and updating the links between the items, okay? Have that in your head, conceptually, because the code is going to be pretty tangly and messy for this. It's okay. We'll get you there. But if you have a good conceptual view of how these things are changing when you add and remove items, that'll really help you a lot when you go to debug this thing and to write this code, okay? All right, finally, final step for list.removeHarry, okay? Step seven, list.removeHarry. Harry is not in the list, is he? Right? So what do we do? Well, frankly, the list does not change, right? We're trying to remove Harry from the list in step seven, but he just isn't there, okay? So we don't change the list. In code, what are we gonna do? Well, what I invite you to do is to go into Python terminal, make yourself an array-based list, and try and remove something that's not in that list. What happens? You get an exception, okay? We are going to have exceptions occurring, as well, if you try and do things like remove Harry from this list, okay? And we'll implement that in code, all right? So be comfortable with conceptually how the linked list gets edited and manipulated from these various operations. Next time, we're going to talk through some Python code constructs we're going to need, some hopefully straightforward stuff, and then after that, we'll get into talking about the dirty, nitty-gritty details of implementing this new data structure. See you next time.


The idea that our private choices have cosmic significance, that one way to frame it is that God sees everything, that that idea seemed irrational in the old story. It seemed profoundly unscientific. And that set up a conflict between science and spirituality and therefore between activism and spirituality too. Now we are understanding, we are taking on a new story in which it's no longer unscientific because if every part is a holographic image of the whole, then any change to any part corresponds to a change in the whole. Rupert Sheldrake articulates this really beautifully in the theory of Morphic resonance that says any change that happens in one place creates a field of change that allows the same change to happen more easily somewhere else. But I have another way of looking at it and I want to address this kind of feeling of futility and despair that comes from just one separate individual, what I do cannot possibly matter. We need another reason, another reason to do these things besides it's going to somehow make a difference on the grand scheme of things. Another reason, another map, another compass to follow. One time years and years ago, I was, this is 10 years ago, I was fighting with my wife, big arguments. In my memory she was doing most of the shouting, but one time I was, and I had a story that said she was emotionally abusive and so on and so forth. And anyway, one time I couldn't take it anymore. And I left the house, probably slammed the door, went for a walk and I'm like, I'm done trying to make peace. I'm done trying to make this work. I'm just going to go nuclear. I'm going to let her have it. I'm not going to hold back. I'm not going to restrain myself. Boy, that felt good. But then like this kind of calm but very serious knowing came over me that if I went nuclear, there would be nuclear war on this planet because I was making a declaration and a prayer and a choice of the nature of the universe. And so I went back, I didn't go nuclear and here we are today. But this is actually a paradox because it's not saying that my choice and not yours has kept us still alive and still hopeful today. And that paradox is irresolvable when we see ourselves as separate. But I will offer this to you as that other reason to be an activist. And this could mean a big activist. I'm not devaluing the big picture political action. And I'm not saying to do the small personal things as a substitute for that. I'm saying that they all come from the same place. They all come from the same place of trust and fundamentally in order to really change the world. They have to be arising from a different story and a different motivation.  And I will just leave you with just my appreciation for this conference actually. Part of this rising water table of a new story offering us reason to live prayerfully, to live as if each choice in each action were a declaration of who you are and what world you want to live in and a declaration that is heard, that is heard, that is received, offering us an intellectual framework in which that knowing is no longer irrational. Here we have the union, the reunion of heart and mind. Thank you.


so guys i am back with another power world video and today guys i showcased you a secret vendor i've just found hidden away in a cave i mean absolutely no idea it was there i just saw a little glimmer by this actual cave and then they said like a hidden mine i thought oh i'm going to explore that isn't it guys is a black market vendor who sells contraband yes it is today guys we're getting to it all how's it going guys my name is dpj and if you do enjoy the video leaving a like really helps out and if you like what you see and want to see more be sure to subscribe so here i am guys just flying around a map looking for certain powers that you haven't already got and i come to this area right here so actually it ain't far away from the starting point you start literally guys about there now the sensitivity on my map so high it's weird but yeah you start basically here of this flown down to where i am here guys you can see where i am right here um so not far away whatsoever and there is a vendor here a secret vendor now what i'm going to do guys i'm actually going to mark this on the map i'm saying my my my thing's so it's so sensitive you know it's probably just easier i could just do it with my mouse okay so i want to put a marker there so here my keyboard it is so i play i'm playing actually on my mouse so there we go so we're going to put i don't know which one here classes as vendor but we're going to put that there so there we go so that is exactly where this is guys so you can see where i'm at um if i fly up i guess you can probably see a little bit better you may come from a different angle to me which is fair enough so you can see where i'm at exactly where i'm at now there's a few bandits down here a few guys that are trying to take you out but if you come this way you can see that little glimmer of light that's what i saw that's what got my attention i thought oh what's that over there so come this way guys now you will need a torch because it's pretty dark in here i'm not gonna lie so uh yeah come this way and he sells contraband pals like what but yep and i'm guessing is is uh stock will rotate i'm not sure how if that's confirmed with vendors in this game i mean i've purchased a bit but haven't really been back to notice and notice anything about the black market here these two right here guys i trade in any kind of power whether it's stolen powers or even prohibited in types people take a look yes sir okay so we have five for sale here i've only got eight k but this one right here is robin crows kind of getting my attention i'm not gonna lie because of the work suitability this thing offers it's quite beastly in consideration to what else is here i mean this one ain't too bad but this one right here guys offers that plant in its handiwork it timbers it i think that one's i'm not even sure what that one is actually but then we've got there's quite a few here so i'm probably gonna purchase this bad boy you know why not i mean it's only gold at the end of the day so there we have it now sold out now i will come back at a later time and check if these do restock i can sell things to i can sell in my own pals what do these sell for that's probably so let me just quickly check so if i select a chicken can i sell it what's it sell for no i'm not selling that jesus louises okay so you can select or you can highlight oh okay so so you get 112 gold for that and these are just things i've just randomly caught so you can actually sell your pals as well nothing major here uh some of the better ones do go for more money what about this boss so you don't go for that much more what about uh some of my higher level ones what about this dude 624 so so yeah not bad but i'm definitely not selling them but yes guys they black market here this is actually real early game too like i said you see what i'm out inside of this little cave system i don't think it goes any deeper i haven't had a proper look i'm not gonna lie i'm just seeing loads of things which you don't want to be a part of that's for sure so yes if you weren't aware we have vendors in this game i didn't actually know your vendors that sold powers uh to this kind so we're gonna actually go and check out this pal someone's gone back to my base i cut the video come quite a distance away so i'll fly back to my base and then guys i'll zoom when we get back because this dude is obviously in the army which is unfortunate because i could show you me right here okay so i'll cut the video guys on my back in a quick second okay so it's coming up tonight so i'm just gonna go to sleep actually oh i've got a dump here let's see what's in this bad boy then let's see what's in here yeah guys one i don't have two so we will check that one out while we're here we may as well we may as well check that while we're here uh so i'll swap you out for let's see i'm outpacker pick up this she's while i'm here people come on workers do your jobs so i'm gonna quickly go to sleep because you know we don't like the night time now when i'm trying to showcase to you guys i'm good you know i mean okay so now we're no i'm climbing up my wall in my house what's going on there okay so let's just go this way i'm gonna check this guy out i'm just chuck him out oh my life he's badass come on in attack oh my life he does the dukes so this is a badass looking pal i'm not gonna lie let's have a look at him in my power deck no oh look how sick he is oh she is i've never seen this must be one of the real ones because i've never seen this dude in fact i haven't seen any of the ones he's sold there i haven't seen any of the ones he's sold there so let me just go down there it is right there rubbing quill a power that is very similar to humans you will hunt and live in the forest it may prove to be a key for understanding what powers are sorry and how they diverged from humans so long ago so it's basically an evolved human is that what you're telling me say what wow so where is actually located also the located i'm guessing within that cave system we were just at hmm interesting for sure okay so planting offers handiwork a lumbering medicine production who nice transporting that was that's what that was and gathering okay so you're quite the cool little pal i'm not gonna lie i'm liking you i get to work and get me some woolen meat beast it's damage is unreal i'm leveling you up you are coming with me i'm so glad i found that that that vendor and so let's quickly have a look at what this guy is all my life can be written to travel on water while management stamina depletion while moving on water i'm guessing and he to unlock his saddle which is gonna be i'm i'm thinking here yeah quite a long way down oh no it's only there it's only a level 10 so that's cool it's actually quite easy to make i'm gonna do that because i need to travel across that water sometimes i've all got an air let me see what you like attacking wise going oh oh quite good quite good we're liking it we're liking it guys but yes that vendor make sure you check that thing out because it i don't know if this will be there for you i don't like i said i don't know if he's stuck we all taste well if he doesn't please let me know down below may go there on another character to check jesus louises people it's probably the best pal of gut so far so i'm just gonna go level him up now i can probably apply i've got a few more abilities on him let me see what abilities he's got so far so i've got an empty slot i can definitely i've got ability stacked up in my um my house up there so i can definitely go on apply something to him i can go back to the skill tree which if you don't know where that is guys it's all over across that way across there uh there's actually you know what i'll quickly show it you because it won't take me longer with my flyer so if i drop you out there we go we've come this way there's actually a tree not many people know about where it drops skill fruits these skill fruits you can collect and this thing resets like all the time i think i've actually not long collected them uh but if all guys can come back here and go up you know i'm just gonna grab this chest one here too why not we don't leave anything shiny we don't leave we don't leave anything shiny so you can see where i'm coming to are you coming down pal what are you doing flying about the trees you stupid thing come here okay so come this way and i'll show you on the minimap when i get there uh but you actually come up that way you can't get to it unless you've got a flyer you have to actually have to go around and climb up so you'd go around down there so you go around that way guys you need to climb up so go across that water climb up there and come up on the other side so again let's you got something that could jump far you ain't getting across that gap and this is the tree here so this tree will have skill fruits on it and they reset over time i think it offers three at a time they're random each time but you can pick it all three and then you can apply these skills i don't think i got any on me no i haven't got any on me you can apply these to your your pals obviously certain pals take certain things but yeah you can get lucky with your favorite pal and get some of the best abilities for him it saves your time i mean sometimes obviously you'll get them when you upgrade your pals too you'll get abilities but for instance if you haven't got a if you want an ability to show off the bat you may get lucky there with that tree so just keep that in mind guys against you right need to still show you where that was on the map i don't think i did because i'm an idiot but yeah it's literally guys where am i you can see where i'm at it's on that corner there on the edge of that cliff so that's basically where it is you can see the start of the game you're right here the very first fast travel point so yep come to there simple as that guys and there we have it guys if you did enjoy the video leave a like really helps out subscribe if you want to see more pal world more secrets uh and way more guides oh shit i did not want to fight you oh yeah please leave me alone yeah but yeah do subscribe for more and hopefully guys i will see you on that next one


Bismillahir Rahmanir Raheem, As-salamu alaikum. Today we are going to talk about Google documents. Before I get into the details what Google documents are, I would like to tell you what is Google Drive. It is basically a service that is provided by Google, which allows to save files online and you can access it through cloud. What is a cloud? It is actually a virtual space where you can save all your online work and you can access it through different web applications. Okay, let's see what Google documents are. Basically, these are free online programs that helps you to create a document or a presentation or a spreadsheet file, which can be saved online and it can be accessed by anyone who has a Google account and other people can edit and make changes into the document and then they can save that document as well. As you can see over here, the image is given. We can access Google Drive by logging in into our Google account. Once we have our Google account, we can access Google Drive. When we click on the icon that says Drive, it comes to open to such interface where you can see there is a red icon on the left side of the corner which says Create. When we click on that icon, another dialog box opens that shows a multiple list of options that says document, presentation, spreadsheet, or a drawing. It means that you can multiple things while using this particular software. Okay, in order to, just for example, if we want to create a Google document, we click on that particular icon and another interface will open which looks like this. It is just similar like using a Microsoft Word. The only difference is that it is online and it automatically saves. So for example, if we want to change the title of that document, we have to click on the untitled document and once we click it, another dialog box opens where we can change the name of that particular document. You can change it to whatever your document is about. I'm not going to get into the detail how you can create a document since I believe that you must be aware how to use Microsoft Word. So it is almost similar to that particular software where you can create anything that is required. Okay, I will just tell you that why these Google documents are very important because we can create anything online and the best part of using Google Docs is that we do not require a specific software for that. And also the great thing is that multiple people can share and edit and make changes into that particular document. And the best thing is this, that it automatically saves. So it means your data is not lost and the best part is also that you can access it from anywhere. For example, if you have a file in your system, you can only access through your system but if that particular file is created on Google Docs or it is shared on the Google Docs, then you can access it if you have an active internet connection and you have your Google account. So you can access it anywhere and it is easily accessible for you. I can add that since we are working in a world where all the technological tools are there to support us, Google Document is one of the tools that helps us to create multiple documents. We can make online presentations. We can make online documents. We can share our spreadsheets and we can work offline. And it is something that you can access remotely and if you're not present at your own system or your own laptop, if you have internet connection, you can work offline and you can make changes in the documents wherever it is required.


Llyfrin, y byddwn i ddweud y Gwyrwyr yn ymddiad yma ar hynod y byddai'r ysgrifnegol a'r ymddiad. Llyfrin yn ei ddweud y bydd y byddol ar y dyfodol yn cymdeithasol yma, ac mae'r ysgrifegau gwirionedd yn y ddylogodd ar y cyfan yma ymgynghoriad hynny, a'r ysgrifegau gwirionedd ar y Stryd Paeth yn Obujag. Mae Llyfrin yn gymdeithasol yn y ddweud cyffredinol ar y Nigirion. Y bohari's assessment comes on the heels of criticisms from the opposition parties accusing his administration of poor handling of security challenges and the economy. The president, however, said his over seven-year reign had not been without tremendous successes in areas of agriculture, economics, infrastructure, security, health and anti-corruption, with over 3,800 kilometres of new roads built throughout the nation. Now, on the aspect of the economy, he restated that the country had witnessed seven consecutive courses of growth after negative growth rates recorded in the second and third courses of 2020. Joining us live to discuss this is Sheaw Musa Gabam. He is the national chairman of the Social Democratic Party, SDP. Thank you so much, Mr Gabam, for joining us. Mr Gabam, you've been in the political scene for a very long time. You obviously have been there from the beginning of Mr President's reign in 2015, up until now. You obviously live in this country. You have seen the trajectory of whether growth or retrogression of this government. So I'll start by saying Mr President has said that he has done a lot, especially on high impact projects. Do you agree and what are some of these projects that you can attest to if there be any? I've been to Kano, from Kano to Jigawa, and I can tell you, without fear of any contradiction, is one of the worst roads any human being can fly to. The poth halls are terrible. I've never seen this kind of terrible damage federal roads like what I've gone through in the last two weeks. I heard about it separately, but I witnessed it firsthand. I went through it. It was unbearable for any decent human being. Number two, if you go to the south, actually there is not any road that this government have embarked upon and have completed, including Ibadun Legos express roads. The road that is ongoing from Abuja, Awkwanga, and so on and so forth is still uncompleted. Now, if you are talking about infrastructure, I believe road is one of them, which is critical for citizens, for movement, for convenient movement of goods and services, and so on and so forth. In terms of roads, projects, I don't know how this government can score itself excellent or even good. It is bad and it's remained very bad so far. What I see till the end of the administration possibly is likely they might complete the road. The sofa is very bad. I witnessed it. I flagged the road. I know what it is. Now, in terms of other projects like the railway, I think so far it is only Legos, Ibadun, rail that are working, and I heard there is one between Inugu or somewhere that is functioned. But the road from south is cut off. People cannot fly. I had a workshop last week. People couldn't come to Abuja because they need a railway to come down to Abuja. The road movements are close to impossible. Apart from the kidnapping insecurity and so on and so forth, the road cannot, you know, the road is a passion, absolutely passion. And the President knows this. His ministers knows this. Every Nigerian knows this. So I don't know why a government should score itself in something that can be assessed physically. It is not as if it is invisible projects. These are visible projects. These are seeable projects. So for me, it is OK for the government to write itself that if you ask every Nigerian based on your grassland locations, they will tell you no, it is not right. In terms of agriculture, I haven't seen it. Actually people are sleeping without eating in most of the day. If they eat in the morning, it is hardly for them to eat in the afternoon or in the night. As somebody who buys food for orphans, I have more than 30 orphans that I take care of, I can tell that. I go to market, I buy food, I know the cost of things. And if the timing they are talking about the rice, which they have said that they have a habit in surplus, the cost of rice has not dropped, rather it has gone higher. So either way, I don't know how anybody can say that you have achieved a landmark in agriculture, whether we have food supplied at a sufficient in the country, given the boundary, given the level of destruction of food talks with the people in the villages that have farmed their food. And right now, we are having a lot of flood all over the place that have consumed a lot of farm land. So, so on and so forth. For me, I haven't seen that, but it is OK for the government to write themselves. Normally, you know, government will scold themselves very low, they have felt a lot of human endeavour in terms of security. I don't need to speak about that. I believe the government can also say that they have felt in terms of security. Yes, there is an attempt now to restore law and order, but it is still meant to be seen. It is not very effective as expected, but there is an attempt to restore normalcy around areas that are highly security vulnerable. Many people would say that maybe because you are a member of an opposition party, you are on the SDP, you probably might not see what the president is seeing. But I would like to give you some background to some of the projects that the president is making reference to. Let me just say, he talks about some of the notable achievements to include the completion of the 326 kilometre Itaque Ajaucuta Warri rail line and railway and silvery facilities. The completion of over 156.5 kilometres Lagos Ibadon standard gauge railway modernisation project with extension to Lagos Pot and Apapah. He goes on to talk about road projects in the administration which have been constructed, they constructed about 408 kilometres of roads, 2,499 kilometres of Sukuk roads and maintenance of 15,961 kilometres of roads across the country. They talked about key projects like the Niger Link Bridge, Anambara and Delta States with 10.30 kilometres road approaching their approach road. Now they also talked about the rehabilitation and construction of the Lagos Ibadon dual carriage. Then they talked about the ongoing rehabilitation of the Abuja Kaduna Zaria Khanu road among others. Now you're saying to me that these roads that you've been plying and some people you know have been plying are not good, but this is what the government is telling us. So maybe the government is using a different road and you're probably using a different one. Is that what it is? More of this project that you have mentioned is the same thing I have said that they are not completed project at all. You mentioned Kaduna Abuja Road, idea you tomorrow fly that road and you will tell a different story as a journalist. Most of the project they have mentioned they have not been completed, they are ongoing project and I believe if you complete a project that you can talk about a project. Some of this road project they inherited it from PDP government and they are completing it, which is okay, the railway, one or two of them have been completed. The Abuja Kaduna Road has been completed, the train we are flying before the bomb that interrupted the railway movement. So most of the other areas they are talking about there was nothing as if the project has been complete, the road is smooth, it's safe for anybody to fly the road. So if completion of project means that ongoing project, then that is a different thing entirely. I'm not being partisan in what I'm saying. I believe in national projects and once a national project is being completed, it's not for the benefit of either people in government or in opposition or outside opposition. It's for the benefit of the cities of Nigeria and of course to be in my own interest to appreciate the government for completing projects reducing the suffering of Nigeria. But I tell you that it is just two weeks ago I flew a Abuja and it's terrible and anybody who fly that road ask him, he will give you an accurate assessment of what I have given you. So yes, the project is ongoing but it's not completed, the suffering remains the same, nothing has changed. The delay remains the same, nothing has changed. Okay, let's move away from infrastructure. Let's talk about health. He made mention of the economy. He talked about COVID-19 and how many people have been vaccinated. He talked about the economy, which is something that I would want to dwell more on. But let's start by talking about the health sector. We've had in the past six months a total brain drain in the medical profession in this country. We're still seeing that happen every other day. Doctors, nurses, health walkers at every level fleeing this country to countries even like Saudi Arabia were seeing them in the UK walking in the NHS. So again, let's talk about the health sector and what this government has been able to do and then of course we'll pivot to the economy. Well, and then of the health sector, I believe that this government has injected some of the sources to rehabilitate the health sector. They keep some of the hospitals in Nigeria even if it is based on regional basis to produce one of the best hospitals that can serve as a referral hospital in the country that would have saved some of the situations Nigerians are going through. But even the state house clinic that's supposed to pay maximum attention to the president himself, the president travel after medical attention. So I don't know how anybody can make any suggestion in any way or manner that there's an improvement in our health sector. If you visit virtually every hospital I live in Abuja, visit every general hospital in Abuja.  I've been visiting hospitals, I've been seeing patients in my relative friends that are in the hospital. If you go to any government hospital, you will shed tears with the kind of management, the public relations, the attention of the doctors, the equipment they are using. Then for me, I feel that maybe it's either the president have been wrongly briefed by the ministers in charge of the health sector that there's great improvement if there is what are the facilities that have been installed. These are clear things that can be seen. These are physical equipments that have to do with the management of health of an individual. So in the absence of having that, and in the absence of having a government hospital that you can classify as not even the very best on the average, that can immediately attend to people health challenges. You can say, yes, these are effort. The last hospital that I can tell you that have been equipped fully or not fully, but a reasonable answer you can talk about was to read Ubers on your side. When I was the minister of FCT, for example, all the general hospitals in Abuja were fully regigled, re-equipped, reorganized, reclaimed, if we enter general hospitals. So plus politics, we still have with us the national chairman of the Social Democratic Party, SDP Shayw Musa Gaba. Musa Gaba, before we went on the break, you were just trying to wrap up your thoughts on what's happening in the health sector. But quickly, let's quickly go to the economy. And I want to mostly talk about the oil theft that we have had to witness over the past few months, the alarm that was raised. And now, of course, the billion-dollar contract that was awarded to Tom Polo and the very interesting revelations that have been made by Tom Polo. And we also saw the destruction by the army and the lack of investigation in that area. Let's also not forget that Mr President sits as the minister of petroleum in this country. And this has one way or the other affected the economy. Don't forget that OPEC has also decided to reduce the output in terms of oil production. So, again, these are all of some of the factors that are affecting our economy. But how well has Mr President done because he gave himself a pass mark in that department? Well, as I'm talking to the oil casting, the oil casting in Abuja, I don't know what that part of the country. But I know that the oil capture authority now that IQ is virtually everywhere. That's number one. Number two, the oil delivery in Nigeria has been unprecedented in the history of this country. And it's not as if the security agencies are not aware or the intelligence agencies are not aware. It's the conspiracy of people that are in government who are the security agencies that led to this kind of very terrible way of grounding the economy. Few individuals were given a leverage or opportunity to loot the country unchecked on hinders. Otherwise, nobody on earth can convince me that the level of treeryy of our oil in connivance with foreign partners that our intelligence agencies are not aware. Most of the oil sectors or areas are being monitored by security agencies. The Navy, the Air Force and the Army. Another security agencies and so on and so forth. It is absolutely impossible as somebody who has worked in government for anybody to convince me that the security agencies are not aware of this. Or the government officials are not aware, or the NNPC are not aware of this. I have heard the MD of NNPC saying clearly that government officials, religious leaders are involved and security agencies are involved in the Caterham. He mentioned it himself. So if it is an indictment, the MD of NNPP have indicted the President, the President and the Minister of Petroleum. And the President have not as understood himself so far. I heard the MD of NNPP yesterday clearly saying that the level of treeryy have reduced. They are not in control of most of the crime and criminality sector of the oil pipeline and so on and so forth. Was it that they are not aware until alarm was raised? Is that the level that we have attended to as a nation? And the President, the Minister of Petroleum, is accountable to that sector apart from the subsidy, the so-called subsidy to which the President himself, when he was campaigning, he said there was not a last subsidy in Nigeria. He said everything is fraud. Yet that fraud has not been established. Yet the people are taking away the subsidy. Yet the economy is going down. The purchasing power of Nigeria has gone close to zero left. Inventors are leaving the country. So I believe the Minister, the President himself, who is the Minister of Petroleum, knows exactly what the truth is. There is no remittance to the federal government account at all. None. The country is rooted by the grace of God. Period. Period. And that's it. Well, Mr Gabam, I wish that time was on our side to continue this conversation, but I must appreciate you for being part of the conversation. Shayw Mosa Gabam is the National Chairman of the SDP. Unfortunately, connections did not let us have the best of time. But thank you so much for being here. Thank you. All right. Well, that's it on the show tonight. But before I go, I would like to give you my take before we say goodbye. Stay with us. Whether it's smoke, the singles, election, if nothing else, serves as a test of our capacity for good judgment. Now, the electorate is made up of three main types of voters. There is the psychopath, too drunk on a cult personality, falling through the haze of self-serving lies. This statistician is the second who complies, you know, or compiles information and facts to justify their long-held choice in a candidate. And the last but never the least is the emotional voter, the one who's certain beyond any logical argument that they are presented with, that their instinctive choice is the right choice. Now, that is the interesting thing about elections. Our choices are completely down to our impulses. No matter how much homework that, you know, we do to inform our choice, we cannot sometimes control the candidates. The process is as much a role of the dice for us in that, that our chosen candidate will do as he or she has promised, you know, if what the said candidate said he will do, so that he will win his race. Now, so while as individuals the power we have over our outcome is limited, what is still and always till the very last minute before we cast our vote is our choice. In every relationship that ends badly, the end is never truly unforeseen. The red flags line, you know, they align the road towards that end. We just have to be willing to see it. So when a candidate for one party publicly without regard, you know, for our parents of their actions, supporting candidates from an opposition party, that is definitely a burning red flag, bellowing red smoke, as clear as day. Well, make of that what you will. I'm Mary Anacone. Have a good evening.


Run final, second time of asking and I'll tell you what, the man in blue, he had a little nibble there, Yanovsky, but it's Saifutinov who has the lead. Now watch out for Wufordnip on the inside run, but it's Saifutinov who has the advantage here. Yanovsky is in second spot, Wufordnip will try the inside run, they're all bunched up. Can Saifutinov hold out under pressure from Magic Yanovsky here? Brilliant stuff again from Saifutinov, the inside gate working retreat. There's no question that Yanovsky was certainly unsettled on the start line and had a bit of a nibble at the take, but Yanovsky's got lots and lots of speed of the inside, he hits the front. No question about it, he's at that speed all evening long and now he should set sail for the checkered flag. Wufordnip just hasn't had the speed and he's tailed off in third place, but for Yanovsky out in front, he is absolutely flying tonight. Look at the speed he's got, a bit of magic from Matse Yanovsky in Poland. He's down the back straight, he's going to take the victory in the Marqueta Stadium in Prague and Matse Yanovsky takes the opening round of the World Championship after a super night of racing in the Marqueta. Matse Yanovsky first, Evel Saifutinov in second and Ty Wufordnip takes the bronze in the opening round of the 2021 season. Yeah, smashing right from Yanovsky, he's looked fast all night. He had one blink where he ran into trouble in the first corner when the track was really heavy, but there with the track just a little drier after the semifinals, he was able to work the track and he was able to display how fast he was. That was a fabulous performance from him. Evel Saifutinov also will be delighted a whole hat full of World Championship points, but for Yanovsky now he's producing that sort of form of Grand Prix winner once again. He's won plenty of Grand Prix's before, but he needs to do nice now. He needs to come back tomorrow and do it again to show the consistency at the highest level, but what a classy performance from him. Absolutely out of the top draw tonight, Yanovsky. Matse Yanovsky, the winner of the opening round of Speedo Grand Prix 2021. Well, that was massive attack in the final hit. You must be very proud of yourself. It was a great performance of yours and the historic win in Prague for the very first time. Yeah, you know, for the last couple years I've been struggling on this track, but today I feel great and my team was working great and the bike was so quick and I really enjoyed to race today, so thanks to my team. I love you guys.