Right guys, how we doing? Welcome back to another video. I'm actually really enjoying this.    So It's probably It's probably best that I don't bring him on because I'd just be absolutely shown up in pretty much every aspects But either way guys We're looking at Oscar Robertson number 13 on the top 30 NBA players of all time Oscar Robertson and I'm assuming by the looks of the photo I mean The refs are wearing fucking pants. The refs are wearing long Trousers that's something else. All right guys. I'm assuming you played in the 60s But all of the more will be revealed let's have a look at his blurb before we get into the video Holy shit, it's it's long strap in guys get your popcorn While we can argue all day and night about the value of the triple double in today's position less game positionless game positionless Does that mean every player can play all positions? I'm assuming that's what that means when I think of triple double. I think of Russell Westbrook But when Oscar Robertson became the first player in NBA history to average a triple double over a season It was nothing short of monumental point guards weren't supposed to be six foot five scoring machines They could get a bucket from anywhere on the court like the big O could the big O big Oscar Robertson 65 point guard that's Sizable Nor were they expected to rip down double digit boards on a nightly basis But Robertson broke the mold almost 20 years before Magic Johnson made his debut He almost averaged a triple double his rookie season before his iconic campaign during the 61 62 season When he was good for 30.8 points per game 12.5 rebounds per game and 11.4 average assist per game per night We all know Russell Westbrook Shit, I do actually LeBron James I know him to and at least a handful of other stars can mess around and get a triple double practically whenever they want You know as much as I hate to believe that's actually probably true whenever they want doesn't matter LeBron James can score. He's obviously gonna score over 10 points if he wants rebounds I mean he can stand in the paint more than normal and get 10 plus rebounds if he wants 10 plus assists. I mean he can drive to the basket and flick it out to some other count who can you know Geez I guess that does much. Yeah, I guess that's probably true They can do it whenever they want either way But only Westbrook has put up the seasonal averages three times in fact to match Robertson's brilliance and Russ Isn't anywhere near the offensive juggernaut Robertson was the big O was a nightmare matchup because he scored in Ways few were able to figure out and this is in the early 60s guys the 1964 NBA MVP the 1961 rookie of the year a 12-time all-star and 11-time all NBA selection NBA 75 I Can keep going But I won't his college career is practically unmatched But since we're talking professional basketball here know that he was the only player other than Wilk Chamberlain and Bill Russell to win an MVP between 1960 and 68 Holy shit. Well, that's the big three. Isn't it? He also played a huge role in the NBA Instituting free agency when he bought a lawsuit against the league in 1970 that challenged the legality of the league's proposed merger with the ABA the merits of the draft and the reserve clause that prevented players from pursuing contracts with any team they wished Okay, so he's a man of the people He's a man of the people. I've forgotten his name. I'm really sorry guys These you know, it's it's these first moments when you come across a name come across a player put a face to the name That you can forget them relatively quickly. All right, Oscar Robertson highlights here. We go Are we gonna see some color? Apparently we will until I'm impressed. Let's go Actually, sorry, I've got to go backs. What was his height six six five six five averaging a triple double All right Sometime the draft is not very kind to certain basketball players Because they'll put you with a team and they want you to win Oscar knew he had to work harder because Cincinnati was not isn't it a baseball team on a big team as in the A teams go No, when you go on the average 31 points 12 rebounds 11 assists, but not and you don't win. What else can you do? Not much Look at this footage this must be remastered. It has to be have a look at it. This is as smooth as as silk Basketball Oscar Robinson of the Cincinnati Royals as good and all a little bit of a baseline move Nice. Nice. I like it. Anyone who ever stepped on a basketball floor Well, if you had to slam that down like dr. J You know this this video would be completely over, but he didn't as a player So he likes the figure figure roll that was a call it. Oh, yeah, bit of a big-range jumper Have a look at this footage that's insane. How have they done this? Don's shot rims the basket and Robinson rebounds for the east Another super fast break Sam Jones. I'm the big old super fast Super fast Have a check. I Guess I need to see when am I gonna be impressed? I'm not quite sure Assist another assist He's an assist machine every look at that Winner of the league's playmaking title for the fourth time last season He still managed to be third. Oh the hustle.  So look that We're gonna call it quits here. Thanks for watching and I'll see you soon


The Benwood State Governor, Reverend Father High Centre Lee, Alia, has lamented the kidnapping of his commissioner of information culture and tourism, Mr. Matthew Abo, and a former council chairman of the local government area, Yeowah Shema, Ruka, among others, saying that those embroiled in it would be allowed to continue to perpetuate it as long as it remains governor of the state. Governor Alia spoke while addressing a momot crowd at IBB Square in McCurdy during the governorship election petition tribunal victory celebration organized in his honor by the All Progressive Congress APC in Benwood State. He noted that the victory at the polls and its recent affirmation by the elections petition tribunal is the will of God and that of the people of the state. Benwood State is no longer what was happening before May 29. Benwood State is never a dumping place for criminals, for bandits, and for killers. For those who kidnapped, our commissioner for information, art, and culture have limited hours to bring that gentleman back. On behalf of all the security apparatuses we have in the state, let everyone from grown territory in Napa, you have no window, not top much, or less of room in Benwood State. Father was out of the state when this happened and when he chose to come back today, the escort said, this is a matter which we cannot just ask him to go to secretariat alone. Party royalists and supporters should be aware that he has gone back victoriously. This is why we are here. Father, we are proud of you. We support you and we can trust that we hope and pray that you will lead us for our development. Thank you.


So today what I would like to talk about is something different than what we've been doing before. You heard in Janik's talk that we've been working a lot or increasingly with market squares like this one for example. But today I'd like to take a slightly different approach and focus on something more recent and something that's not been done that much actually or not in Flanders anyway and look at the town's edges. So this is today's presentation and I'd like to just tell you that this is still kind of work in progress. Some of the analyses are still ongoing but I'll tell you about these in a little while. So here what you see is the town of Iper and some of the English speaking people here might know it as Wipers where you go on Pilgrimage to see the last post to see the World War graves. So the town is located over here quite close to the North Sea coast and this is a map from the 16th century where you can see the first town rampart or the earlier town rampart around the town and on this one, it's not the best picture, but you see the cadastral plan of today underneath the 17th century reinforcements or rampart. So this is where we are and we have looked at two sites. They were dug in I think 2015 if I'm not mistaken. That were in the time that we're interested in not yet part of this town wall. So there was an actual urban fabric on there, but we do see consistency for example with this road. So you have to kind of think away this ditch and rampart for the time that we'll be looking at in this presentation. So as I said, we have two different profiles and something went wrong with my plans here, but that's okay. Basically we have section 25 which sits down here and if you go back to the previous plan you can see that's around this area. It's a section through a profile. I'll show it to you in a minute. And then we have another section that sits over here. As you can see, there is still a road running through a current road. There was a road probably back to the 12th century. This is our hypothesis anyway, and that's what came out of the excavations as well. So these are those two sections that I was showing you and you'll see these a lot again. So I apologize for all the gray and the brown, but it's just what we have to work with in a temperate climate. And that's what it'll be. So this is the section that's more to the south. This is a section that's alongside the road. And basically the main questions the archaeologists had when excavating this site was how to understand the darker, so the homogenized deposits on site. For instance, this one and this one. And also some of the more homogenous deposits in the other section. So that was one of the main research questions. Also, is there a difference between these dark earths, between the different locations on the sites? And then another question were these walking surfaces or what archaeologists hypothesized were walking surfaces that you can see are darker here, here, and in this picture it's not that clear, but again here, here, here, they could just see them, but they were actually quite thin, so it was difficult to identify them in the field. So those were the two main questions for the micro morphologists. And what I'd like to do for the rest of the talk is just take you through these sections from bottom to top for each location and kind of build up the story through time. So we'll start with our section 25, so the left one. And there we see that in the bottom. This is actually quite special because we don't find them a lot nowadays is a relic pre-holocene soil that was created like this. So you see these features, these vertical tongues and these cracks that were created because of permafrost. So this was quite interesting to find on site underneath a town. When we go up we see a few interesting features, so we're looking at this first dark earth now. This dark earth was found in both of the sections. Sorry, it's a bit confusing. That's basically the first moment when something is going on. And then we found that actually in both of the locations the same thing was happening. And we had basically an agricultural topsoil and some of the evidence we have for this are, for example, these cut marks that you can see in thin section and a lot of bioturbation, of course. One of the things we didn't get as much as you would expect in a manured horizon was a lot of anthropogenic materials. So we didn't have that much evidence for, for example, household waste being dumped or anything like this. We had some charcoal and that was pretty much it. And actually in this part what we would like to do is have an additional analysis of the phytoliths in thin section to determine which types of crops were kept here. So this is the first part of the site and this is currently not dated very well. So I can't tell you exactly when this is happening. The first thing I can tell you or a bit more in a bit more detail about dating is when we get to this first dark lamination and this is only in the the location of section 25. So now we'll be looking just at this one location and then we'll move to the one closer to the road in a bit. So what is going on here? Basically what we see in this part of the thin section, which is about, let's say, this is about one centimeter and a half. We see kind of a succession of alternating lenses of charred material and and more clean sandy sediment. So you can see this here, a darker lens, a lighter lens, darker lens and basically this part is full of that. With very distinctive compositions and what we also see is a horizontal orientation of all of the components and also traces of trampling. So we've interpreted this part as indeed a walking surface, but we could say more than this. It's not just a walking surface. It's actually a protected environment because all of this is very well preserved. So our interpretation is now that it's an in situ house floor, so a domestic floor, which dates probably somewhere in the 12th century. So this is our first evidence of occupation in this location of the site, which is really on the edge of where the town was at that moment. And in this section here, you can see the charcoal, which is quite distinctive and occurs a lot in house floors, also of different times, different places. And underneath it, you see the remains of again charred remains of plants, but they are all very horizontal, as you would expect. And underneath we have some partially molten phytoliths, I can show you here. So here you see the remains of a dendritic phytolith and here they will molten through so that could testify to the use of ash, for example, plant ash, as a floor cleaner, for example, or to keep it dry, because we are in a very wet general environment in Flanders. So what we have here is basically different parts of a floor and what we often get here is like a preparation layer that is more sediment rich where you won't be finding many artifacts, for example, or many interesting things even in thin sections for what people are doing on the floor, but then in the dirtier parts or in the more charred parts, that's if you're lucky enough to have them, that's where you'll find the more interesting artifacts and so on. So we can try to imagine it, for example, a little bit like this. Don't mind the material culture, I just want you to look at the floors. The material culture is all wrong, but we have this kind of dirt floor that's accumulating, being renewed through time and so on. And on top of this, we get what I just said, one of these preparation floors. So it's possible that in between some layers are clean, swept away, and then we get a preparation layer that is very sediment rich, very clay rich. Here you can see the birefringent clay inton section and also some reddening. So we could have some in-situ burning going on, but it's very difficult to tell because oftentimes, again, these are truncated and a new floor is deposited on top or used on top. And that's exactly what happens here. I don't have a separate slide, but basically here you have this preparation layer and a very, very thin lens of active floor, as we would call it again. So then the next part is one of these famous dark earths, what's going on here. Again, we have a lot of evidence for an agricultural use, so we have a cut mark right here. That's a very clear one, again, the bioturbation. And here we are getting a little bit more material from clear manuring or clearer manuring, but again, phytolith analysis is really needed to understand it better. So we have probably a crop field on top of this house. A house layer is truncated, a crop field on top. What happens next? Again, one of these indoors trampled house layers with some organic material. And in this case, what we found throughout this whole area were these semi-preserved continuous bands of wood, of woody tissue. So we are hypothesizing that these might have been wooden planks that decayed in situ afterwards, but those were actually present. So this is for the first location. So a wooden floor, this is not an archaeological one, this is my own, but just a wooden floor. Now if we move to the next section, I want to see if I can show you on the big plan. No, I can't. I'll show it to you on the big plan a little bit later, but we're now in a completely different context, even though they're close to each other, this is not comparable at all. So apart from this bottom layer, which was used for probably agriculture, we are seeing a very different surface. And what is happening here, it's basically these four top thin sections that I want to walk you through really quickly. We get three kind of different types of deposits alternating. So I'll just explain these to you briefly, and then I'll give you the overview of what was happening. In the first part we have, again, a covered surface. Everything is quite well preserved. It's a different kind of activity surface or floor surface than we were getting inside the houses. This is actually much more organic. It's anomalously rich in all kinds of organic tissue. So it's wood chips, stems, barks, anything you can get. And here we have interpreted this as either like grass matting or more potentially or more likely an animal's stable, but an indoor animal's stable. What we didn't get was evidence of coprolites, but that's not really uncommon to get in microbiological studies. We've seen it before in different stables that we don't really get the coprolitic material. We get more of the plant base. So this is the first thing you can imagine. We don't know which animal was there because we don't have any coprolites, but we can imagine different things. Next up we have a very thick layer that truncates this stable and that again is a preparation layer. It's deposited by humans. It's very sediment rich and there's not that much going on. But then on top it gets more interesting because here it's completely different. We're encountering an outdoors area for the first time or for the first time where it's in an active, interesting, town-like phase. And what is going on here is that we have a gradual input of organic material that is trampled against walking surfaces but also different types of anthropogenic inclusions. And now this, I don't know in how much detail Janik has told you about the marketplace of Veer, the closest comparison we have to this kind of accumulation is actually a market square. So there is some traffic, intensified traffic going on, people are doing things in the area. And what we sometimes also get here that we didn't get in need was a small-scale dumping of ash. So not just spreading it on the floor but really dumps in different phases. And you could imagine this and I just want to show you the location. This is where it gets interesting. We are now close to this road. So we could imagine this actually as a type of maybe street market or a road people are passing through. This is convenient for people to sell things. So this is potentially how you can imagine it but with less sun and of course different material culture. We are in Flanders. So imagine this in a drizzly wet muddy context without sun, more clouds. So actually we have some renditions. It is from Lear, not from Iper from the 16th century. And here you can see how it would be potentially busy market stalls, things falling around. Again, they're drawing it sunny. You should imagine it cloudy. So I'll just walk you through these surfaces because they kind of repeat each other. What we get here is again a small-scale dumping of ash, waste material, mostly combustion waste. And then outdoor area with more fresh organic matter. So we see kind of differences in what is going on but it stays this kind of heavy traffic, outdoor street area for all this time. And then on top here we get another leveling layer truncating this dumping. Again, more dump of combustion material. We stay outdoors. And then there is one more thing I want to show you in this sequence. And that's the top of the top thin section where we see something different going on. And I've actually never seen something like this in outdoors area. So we weren't completely sure if this is actually outdoors or indoors. We get a very thin stratification of sediment and of organic lenses. But these are actually continuous bands of wood or bark. So this is looking like very gradually built up walking surfaces. And we've counted at least 21. So we think we have at least 21 individual walking surfaces going on. Whether this is inside or outside, that's maybe something for the discussion. Or if you've ever seen something like this, we can talk about it a little bit more because we do have some channels going through. My time is up. So I'll just conclude with at the end, basically the whole sequence was really rapidly buried both in section 15 and in 25 by just a clean level layer of sediment. And potentially we could link this to the context of this ditch and rampard formation that you saw in the first historical plan where things really change in this environment. So to conclude, we have seen two very different sequences quite close to each other in an area that is typically not considered very interesting for these types of analyses. And it's actually well worth studying them. And it would be very interesting to compare these much more detailed or better understood sequences to what we're finding in the center of towns. And specifically in Ypres, it would be a very interesting comparison, for example, in the 12th century. Also to evaluate agriculture in towns, animal husbandry in towns, different functional aspects. And as I said, we still want to do or need to do some additional analyses. For example, look at the fight list in the 10 sections to determine the crops. Look at granulometry and also maybe do some elemental analyses to determine how fertile the soils were and really strengthen our hypotheses of these agricultural layers. So that was it. Thank you very much for your attention.


Hello, this is Christian. Welcome to episode 4 of this PHP Stocks application using PDO. In this video, we're going to process the text file and insert this data. We're going to sanitize this data and insert to our database. So let's go and see this is done. Now, in the previous video, I've mentioned that I wasn't able to see the second row here. Actually, it's there, right? If you notice it one time, I actually able to highlight it, you can see there. The error is because we forgot to change the CSS in here. So let's fix that first, just do one of the errors in here. So the index file, and I also noticed I did not forgot to close my div tag here in line of 43. So after this for loop, I want to just close it. So close the div. OK, so now in the CSS, right down here, the last one, although I mentioned in my talks, I did not actually change this to be an even. So it should have been an even number here. And the one more thing here, the TD here, I know this will apply for every table. But if you want to apply only for the stocks table, then there's also, say, stock and then TD here, table ID. Yeah, those are the changes I needed to make in here. And just to see if it works now. So there we go. And the counter, I forgot to increment that. So it looks good. And just to make sure we can do, just add one more here just to make it really, really works on that support here. TD, TD, and then just some test data. So OK, and there we go. Looks good, right? So I like the color. OK, let's do the counter. And then we can move on to the next one. So the counter is in the functions right here. The counter should increment that. You can do it like we increment down here if you want to. Or just do here one time. You would just do that dot. You got to escape out and then go into PHP mode. Because you cannot put plus plus inside the string. If you do that, it's just going to treat it as a character. So it won't work. OK, so that would now increment the counter. And we can move forward with that one last time. OK, there we go. All right, so now let's go back and delete all the data. So go to the DB level and then click on this empty here. So this is the truncate function. We're going to delete that. And our index will be started back at 1 again. And that's what we want. And then now when we go to the get data, we're going to process this data and put a appropriate message. OK, so let's go and do that now. So right in the functions file, I'm going to have a function down here. And the first thing you want to do is to see if you can read the file. So you can write a function to like maybe you can not get the file, can get file, and then you pass in the file name. And here I'm just checking if the file exists or not. So you're not doing any processing here yet. If it does, it'll return true, otherwise return false. So this file name here can be a directory too. It doesn't be a test file name. We can also check for directory. So here I would say if the file exists right here, it's called the file name. If that exists, then return true, otherwise here just return false by default, right? Very simple like that. And that's all we need here. Really just simple here. OK, so that's done, right? That's pretty quick. Next one here is a function to actually process the data now. So we do the actual reading here. So we still need the file name and we need to pass it to the database. So I need the db object. Now this is the db handler, right? Not the class itself, but the actual db we define in here in the config file. If you remember, this guy right here, we pass it to the function. We're going to process the data here. OK, so before we do here though, I want to go to the index file and perform the logic up here first. The very top, if you remember, when we do a reset, if we do something, we do the stocks, this is when we load the data, right? So what should we do here? What should happen when we click the stocks and we load the data? What should happen? Well, the first thing is we go into read the data, right? From the file. When we check, we can get the file first. I want to say here, let me just put a comment here. Check if file exists, right? That's what we need to do. So we're going to put here a result, is SFN can get file, right? And we pass in the file name. I'm hard coding here, you should not do this, but you should put it into a string. Actually, we should do that. Maybe way up here in the file here. You could put the file is stocks TXT, okay? Yeah, so we put that there. And then so you're just passing the file name. If that is true, right? If it is true, and then we can go in and process the data. So now we say, I'm going to send to the process data file and I'm going to check to see if it's successful or not. So I'm going to return a true and false value back again. I'm going to do an SFN, process data. Here we're going to pass in the file name and then the DB handler. Okay, so if both of those are true, then we can emit a message successfully added, otherwise have an error. So you can check here, you can say you expect to be no error. So no errors, yay, right? So if the result is true and the success is also true, then we can display a message saying all data, the stocks data added, something like that. Otherwise, because there's an error. So the error will be, we add it to the error array. It would be, you know, couldn't insert data. So we know something failed. And you don't want to throw the message to the user because you don't want that to be shown either. So, and then we are good here. So basically this is it for this one, right? And so let's go and do the process data here. We have the file name and the DB. So back in here, we have the file name and DB. So what is the first thing we should do here? If we have the data, then we want to read the file name first, we already got that, we checked it already, that means it already exists. You could check it in here, right? Notice I did up here, I did it separately here. I could have done it inside the file in the process. And so maybe that's better, right? So let's do this, take this out and put it inside this function here. You check it in here, right? You check it, you can say if this, that function, right? If that's successful, if it's true, then only then will you proceed, right? Otherwise you can just say, oh, I couldn't do it. So in that case, I had to go back and change it. I don't have a result here, I'm successful. Just result, that's successful now, okay? So go back in here again and say if result, then I'll continue, right? Else you're gonna return a false, okay? You can do that or I'm gonna do a couple things in a way. Yeah, we'll return false here. If it fails, then we'll stop here, right? If it's true, then go ahead and process the data. So now what do we do? We're going to read the, open the file. So I'll do a fp handler to open the files, f open, and you just pass in the file name. And then also a mode, the mode will be for us, we just read it, so you put R here. Now again, I'm hard coding here, okay? Usually you put this into another variable, like a mode, and then you can pass that and you can use it for different purposes, but here we're just doing read, so that's fine. You can put out a variable and then you pass it a function as a mode, okay? But it's good for now. So if we're able to open the file, then put a comment here, open a text file for reading, right? And then now the next one is we're gonna read each line, read each line. That means we're gonna do a loop, right? We don't know when is it gonna end, so use the function called f-e-o-f and you check the fp. And if we reach the end of the file, then we're done. If it's not, so you put the not symbol here, if it's not the end of the file, then go ahead and read each line, right? So here we have the first line, it's gonna be the f, it gets, it gets here and the s means a string, and then we're gonna get as a string, so we can get the first line of the fp. So every iteration, this gets it, it's a cursor, okay? So cursor means it's gonna point to the first line of the stocks here, points that, it reads that in, and then now we have access to the variable inside the line here. So this line has this text here now, okay? So what do we need to do? Well, we need to parse it, we need to break it at each of the separator, the semicolon, and then put each of these elements into an array and then we can process the array, right? So here you would do a data equals to, you can use the explode function, explode function would do exactly that, takes two parameters, the first, as you can see, is the string, which is the delimiter with the separator, us, it's just a semicolon, okay? Again, I'm putting, I'm hard coding here, this is not ideal, so usually you could do something like this, I'm just gonna make it work, you can say here, mode is R for reading, and then here the separator, s, e, p, or the whole thing is the semicolon, okay? So that you can change up here anywhere else, you could just change it. So here then I change this to the mode, so this is actually better coding, right? The separator, and then the string would be the line. Okay, so it's gonna break this into an element of array inside this data here. So this data will contain one, two, three, yeah, three, four, five elements, all right? So I'm gonna show you what it looks like line by line. So at this point, this data array looks like this. I'm putting an array here. So the first one looks like that, and then put a comma, the second here, and then the third is a string, and then fourth, and then the fifth. Okay, so this is our array now, so you can see it's an array, so you can access it using the index. And again, we're gonna ignore the first index because our ID is auto increment, right? That's where our data, if you remember, when we process it, when we pass the data of one, two, three, and four, we skip the first one, all right? So here we go, we're gonna go in the process of data. We're gonna insert the DB, and if we're able to insert it successfully, then we'll keep going to the next one. If it's not successful, for whatever reason, if you fail at any point, then you wanna terminate the entire process, okay? So we're gonna check to see if it's successful. So if the DB insert record, this is what we call, right, insert record. Yeah, insert record, the table, and then the data. So insert record, the table is just our table stock. The data is this data here, right, this local data. If it's successful, then we do nothing, we go to the next one. If it's not successful, then we're done, return false. This will stop execution here. We'll exit out the well loop. We'll exit out the function and returns back to the success and we get a false, so before we have an error message, right? But before we do this return though, we want to close the file because we open here already. So that means we have to close it. So f close, the fp, and then we'll return the false and we're done here. And if it's not, no errors, then we go to the next line until we're done. After that, if the well loop is done, that means we're successful. So here we can again close the file. And then when we're done, we're done. And then we skip that and all the way here, you could return true down here, or just return true here, okay? Either way. Because once you reach here, or once you reach down there, then we're done. So you could return true as the default here, or right below here. Again, it doesn't matter where you put it. In this case, I put it in the bottom as a, it's gonna go down here anyway. Okay, so I think that's what we wanted, right? We turned something like that and then we're done. So when we check over here, we check for successful or not. If it is, all the stocks added and so forth. So let's go and give it a run. So back to the browser and okay, cross your fingers. Whoops, nope. SFN at line 70 didn't work. So line 70, is it in these functions? Like 70. Oh yeah, now SFN, it would be the, just can't get, sorry. Didn't catch that. The reason we call this because we're in a class, right? You have to get the, can get filed through this object. Okay, thank you IDE. Okay, okay, it says all stocks added. Okay, we can make sure it's there. There it is, ooh, lucky. Okay, so everything's all here, as you can see we should have 50 of them. All right, you can also verify the database. Just again, just refresh or just browse it. And there they are, all 50 of them. So notice it starts at one again, right, the ID. Now if I go back, if you see if I go get stocks again, I did another add. If you go view again, now if you go scroll down, you'll see that we have more than 50. So here we go, we have 51, all the way to 100. So basically you double the insertion here. We don't want that, right? We just want to add the first, that 50 I want to text file. So what do you do? Well, we have to wipe out the table first. Either that, right? You don't have to wipe it out. Or just check if this OD data exists. Because you have two options, right? Because the reset will do that, wipe out the data and then the get will be, you can check it. If it's OD data, then just don't do anything and otherwise you can start it. So let's go back and clear our data first.  Okay, so now we should have no data. Okay, good, let's go and just do that little process there. So here, right before we do the success here, before we process the data, you want to check to see if there's OD data, right? So you can do something like here. Okay, let me just undo that and go up here. I can say check if data already exists, okay? Then you can say the result, you can say exist, yeah, well, result is fine. Can make up my mind. Okay, so get all the records, okay? The table is table stock. Get the records, you check if there's any record or not, right? So you check the result and then the row counts. If the row count function has more than one record, that means there's OD data, right?  So we're going to move that all the way to the end of this block right down here, okay? So you would do only if there's only additional data. If there is, you put message here. Say something like stocks, data already added. Okay, so we know that there's already data. Oops, too many punctuation marks. Okay, so let's give it a try. And, all right, so let's do that really quick. So if I add stocks, there should not be any, right? So add all the stock data, there they are. If I do it again, and there it is. This is stocks already added. Cool, huh? Okay, so the next part is reset. Reset is we're going to just truncate the data. And then that should be a really simple one. So let's go to the reset here. Now, what do we do here? Again, back to the process. What do you do? What's the first thing you do? You can just truncate it, right? You don't care. You can say if the data is already empty. You can do this again if you want. This could be a put to a function. Okay, put to a function and then you can check that to see if it's already or not. If it's not, then you can go ahead and then truncate it. That's another option too. You can do that if you want. But, or you can just go ahead and truncate it. If you don't really care, just go and truncate it, then just go truncate it. And I'll use the truncate to get the rows back, okay? So rows is, let's see, what do we do for the truncate? What do we get? The truncate, I mean the DB truncate. When we truncate, we return a query. Okay, so the query we turn in the true or false. Okay, so, is that right? Yeah, I think so. Yeah, so we're gonna do a truncate. Either successful or not. So we're gonna do a truncate table, pass in the table, call stock, okay? If, I shouldn't call a row, should just do success. If successful, then we'll just put a message saying, all data removed or reset. Maybe I better stop using this exclamation mark. Sounds like I'm mad. Otherwise we have an error, right? Some kind of error. So errors, we're gonna patch that with the error message, say something like could not delete or truncate. Something like that, so we have a message. Maybe just say could not delete, however. Okay, let's save that. And I think that's all they have to do it, right? You just do it. I'm forcing it to be truncated. Again, I mentioned earlier, you could check to see if there's any records first. If you do exactly the same as this, if the count is greater than zero, go ahead and truncate, otherwise you say nothing to truncate, okay? But this should do fine. So let's go and give it a try. Here we go, reset, all data removed. If I do it again, I get the same message, right? Because that's what it does. Now if you go view it, there's no data. I get stuck, and here's my stuck added, and there's my data, okay? I do a reset again, remove, and there we go, right? You notice when I add it back, my data always starts at one. I mean, if you look at the, this is not what it's like counter is different, but in the table, you see it all starts at one again because of the truncate, right? Okay, I think that's it for this one. So I hope it was helpful. If you have any questions, let me know.


Now here's the best reason to get involved. It's a hundred seventy-one and counting There's a there's a website called 99Bitcoins.com and they have a section called Called the obituary files. You can search it, right? So ever since 2010 and we're talking about Forbes money magazine all these all these experts, right? That have predicted Since the beginning. Oh, it's gonna. It's gonna crash anytime now, right? The experts That people listen to To me, that's the biggest reason to get into it And they're scared now. Do you know the guy that that fucker Who runs J.P. Morgan Chase? Yeah diamond that Yeah, yeah So that fucker sits there and says it's a fraud and everything While Chase is buying Bitcoin as it's go as it's crashing because of his words now in my view You know if I was if I was a law abiding citizen I'd say he should be prosecuted and and put in prison since I'm an anarchist I think some people ought to go deal with him, but I'll leave that to your imagination Imagination right He you know well, hopefully everybody just laughed at it and hold when you see shit like that From the experts just hold right so and and that's a good thing to get into my trading philosophy My personal trading philosophy You should talk to Jolly over there. He's running a Cryptocurrency hedge fund now that he just started up, right and he you got into it 2011 fucker, didn't you? Right, so so you should talk to him. He probably knows a lot more than about it than me But but for you guys you I abs in less you're made of money And if you're made of money then fine do what you want, right?  If you're not, how do you get into it? fault small stakes and you know read In a seam to lab Nicholas and seems a lab, you know fool by random this black swan if you're not familiar with those With those works, but just follow his simple thing Hey, 80% and save stuff and since we're still in a fiat world the safest absolute thing you can be in is is Treasury notes really, you know absolutely safe 80% in that 20% in speculation, right the for the for the big the the big rewards for little risk So you can afford maybe you can afford to lose 20% of your net worth, but maybe you hit it big right small stakes diversification, so Okay, just let me give you an example. I have I have I Have one account that I created another one for something I'm gonna tell you about a little bit, but I have like I have most of my at least a Third to a half of every time I buy goes to Bitcoin because that's the reserve coin currency, right? I don't care about the price. I don't look at the price, you know people say it could go to a hundred thousand It could go to a million. I don't know But I just I know that we're kind of moving that way So I wanted to accumulate more and more of it. So I did but I diversify so I want I have some I have some that look good I'm So it's speculation It's rational as a metric risk-taking so As a metric risk-taking is buying a lottery ticket Rational Asymmetric risk-taking is saying is there something to this and I can hold it It's not like oh the the drawing is next week.  So it's rational as a metric risk-taking. So I want some coins that trade for a few bucks I want some coins that trade for maybe a hundred two hundred bucks that are good like Ethereum light coin You know Monero has been good. I'm making I'm making my best gains from What is it token coin right now? Just to drop some names of these things and I have a thousand pot coin and the reason that's my that's my one silly Deal is because that you can get them for like six cents or nine cents I'm getting them for like six and nine cents. I have like a thousand of them But you know all this all this legalization thing if that goes off and a lot of these people are unbanked because Banks and credit card companies won't deal with them. Who knows right? So I so if it goes to a thousand bucks I'm a I'm a pot coin millionaire Okay, so So a lot of people they they're into these ICOs I I'll look at them I'm like, but I just put them on a watch list because I see like look at I Was talking to to Jolly about Zcash. I mean it they did their ICO and It went to some insane level Then crashed now it's stable, but so there was a huge volume Right, but it's right at the early stages. I want to see I was looking today this morning And there was like ridiculous so you've got all these things all these guys that are that are that are like You know down or up, but there's like so little volume You want to make sure there's trading you want to make sure there's a market for it, right? It's a and it's inflation heads look at the Bitcoin chart that trades against dollars. Okay, so How do you learn more?


The next item of business is an urgent question. Miles Briggs. To ask the Scottish Government what its response is to reports that under-reporting of any waiting times has taken place across NHS Lothian, and how will it ensure that people responsible are held to account? Shona Robison. The findings from NHS Lothian's final internal audit report, which I received over the weekend, are very concerning. As the member will know, I have instructed an independent investigation to be carried out by the academy of medical royal colleges led by Professor Derek Bell. I think that it is important to await the outcome of this independent review and its recommendations. In the meantime, I welcome the interim actions taken to ensure practices in NHS Lothian are brought into line with ISD's guidelines to ensure accuracy going forward. My officials will continue to work closely with the board to ensure that recommendations are fully implemented as soon as possible. Miles Briggs. I thank the cabinet secretary for that answer, but when was the cabinet secretary first made aware that NHS Lothian waiting times had been unreported across other A&E facilities within the health board area, not just at St John's? Given that it is only a few years since NHS Lothian was involved in another waiting time scandal, when it was found to be marking patients as unavailable to artificially reduce the number of breaches of waiting times guarantees, can the cabinet secretary say whether she has the confidence that NHS Lothian has the leadership to make sure that these sorts of things never happen again? Shona Robison Let me give Miles Briggs and the chamber a little bit of background. On Wednesday 11 October, a member of staff from St John's hospital wrote to the chief executive of NHS Lothian and to me outlining allegations of bullying, intimidation and altering of waiting times in St John's A&E department. I was very concerned about that and asked that an investigation was immediately put under way by NHS Lothian to find out whether there was the veracity of those concerns and to look into the matter in detail. What then became apparent from the internal investigation was that the concerns were not just restricted to St John's but were an issue across the acute sites within NHS Lothian. Essentially, what was happening was not adhering to national guidance. The national guidance is very clear about how the four-hour target, for example, should be recorded. Those were not being followed within NHS Lothian and, rather, local operating procedures were being followed instead. That has now changed, obviously. As I said in my initial answer, we are expecting and making sure that NHS Lothian is now following the national guidance. I also felt that it was important to go beyond the internal look and to make sure that there was an external look at the issues in more detail. We will look at some of the issues that Miles Briggs is hinting towards, around where were those instructions emanating from and what was the governance around that. Those are all issues that the external review will look into. I would expect to have that report early in the new year and, of course, we will publish the findings of that in due course thereafter. I think that we should await that report and then we will be able to see what further action is required at that stage. Miles Briggs. In this case, it is quite clear that local guidelines have been put in place against what should have been taking place. What is important is that NHS Lothian's problem is exposed, but maybe it is not just here in Lothian and Edinburgh. What assessment has the Scottish Government made of how waiting times are being recorded in every health board across Scotland? In order to reassure patients across our country, can she guarantee today that no other health board is also locally producing such guidelines to underreport any waiting times? Shona Robison. Of course, I have contacted chief executives of other health boards to make sure that they can assure themselves and assure us that the national guidelines are being applied in their boards. We have no evidence that national guidance is not being followed in those other boards. It is important to recognise that the issues that are being raised in Lothian are a very strong performance by our accident and emergency departments across Scotland. Certainly, the work that has been carried out by the unscheduled care team has led to a sustained improvement of our accident and emergency departments. As they face winter pressures, we should make sure that we send out a very clear message of support for all our hard-working staff in our emergency departments across Scotland, who will face winter pressures that are beginning to emerge in our health system as they are elsewhere. I can reassure Miles Briggs that we will not just look at the internal review but the external review, as I have said, will answer some of the wider questions about NHS Lothian in that regard. As I say, I am very happy to make sure that that is published once I have received it. A few members have pressed their buttons to ask a question. I will try and get through them all. Thank you, Deputy Presiding Officer. Those findings will be of huge concern to patients and staff. While performance continues to decline impacting on patients and staff, the one positive has been the ability to rely on detailed and perceived accurate statistical analysis. The fear will now be that this is not an isolated case but a deliberate attempt to game the statistics, meaning even poorer performance than previously feared. Given that, will the cabinet secretary today, given undertaking that she will instigate an urgent nationwide independent review of reporting procedures and undertake to come back to this Parliament with the outcomes of that review, also outlining what additional resources will also be provided so that we meet our expected patient treatment standards. Our overworked, undervalued and underresourced NHS staff and Scotland's patients deserve nothing less. Shona Robison I think that what our staff and patients deserve is that due recognition of the huge efforts that our A&E departments have put in over the weeks, months and years to dramatically improve the performance within our A&E departments in Scotland. It would be quite wrong to assert that what has happened in Lothian is an issue anywhere else in the rest of Scotland. There is no evidence that any other A&E departments are not following the national guidance. Chief executives have been clear about that and have been clear with us. In terms of making sure that the interests of patients are at the heart of that, and the external review being led by Professor Derek Bell will be looking at whether any patients have been impacted by the issues that have been brought to light within Lothian. That will be part of the work that Derek Bell and his team are undergoing. We have also made Scotland aware of the issue and will now discuss the findings of the full internal report with them and in the light of the on-going external review by the academy. Derek Bell, I should add, has also been very involved in the work of the unscheduled care team in making the improvements across our A&E departments in Scotland. This time, more than any, as we are approaching winter, I would hope that members will get behind our A&E departments, because they are facing winter pressures, as they will be across the whole of the islands. I want to put on record my thanks to the hard work and efforts that each and every one of them puts in to keep us safe during winter. I welcome that Professor Derek Bell, who I note is also president of the Royal College of Physicians, will be carrying out the review of the allegations. Can the cabinet secretary outline what the remit of the review will be and can she confirm that it will report as quickly as possible? Shona Robison and I could ask members to be aware that we are still in session and to keep our conversations down. The remit of the external team is to make sure that they leave no stone unturned in looking into what has happened within NHS Lothian. Importantly, where the governance was around this and to look at whether there was any impact on patients during this time. It is also important to say that, of course, we have made sure that, going forward, NHS Lothian and all its acute sites are now adhering to the national guidance. As I said, I am expecting that independent review to report early in the new year. The findings will be published in due course thereafter. If there are any wider lessons to be learned for the rest of the system from that report, then, of course, those will be applied. Alex Cole-Hamilton, followed by Colin Smyth. Reports in the press suggest that revelations about NHS Lothian's reporting of A&E waiting times came from a whistleblower. Given that confidence in the mechanisms around whistleblowing in the NHS are not high, will the cabinet secretary instruct this independent review to expand its focus to other health boards, perhaps issuing a confidential staff survey to other A&E departments, so that we can ascertain whether the problem is more widespread? Shona Robison. I confirmed to Alex Cole-Hamilton that, indeed, the whistleblower was in contact with me directly as the whistleblower was in contact with the chief executive. The whistleblower has been kept informed of the process going forward. It shows that, where people raise concerns, they are listened to and, importantly, acted upon. That sends out a very important message to the staff within the NHS that, should they raise concerns, whether it is through the whistleblowing helpline or, indeed, directly with me as the cabinet secretary, those issues and concerns are acted upon promptly and swiftly and with determination to get to the bottom of what has gone on. It should also be noted that, of course, we are strengthening the whistleblowing processes. Just this week, we have announced the work around the independent role with the national officer where whistleblowing concerns can be raised. It is important that we make sure that the message goes out to staff that, if they have any concerns in whatever setting within our health service, they should be reporting those and, importantly, they will be acted upon. If we speed up a wee bit, I will manage to get the last three questions in. Colin Smyth, followed by Alison Johnstone. Can the cabinet secretary say whether this underreportant of accident emergency waiting times by NHS Lothian would have been picked up by the Scottish Government had it not been for a whistleblower? If not, will the Scottish Government be reviewing its own procedures for gathering, monitoring and scrutinising waiting time data to ensure that the Government does not have to rely on a whistleblower to make sure that its own figures are correct? Shona Robison As I said my earlier answer, if there are any lessons to be learned around how we make sure that we monitor any changes and fluctuations that need further investigation, then I think that Colin Smyth makes an important point and that will be picked up by Derek Bell and the external review. In terms of what the impact has been within NHS Lothian, we need to wait for the external review to give us an indication of what impact that has in terms of its reporting figures, so we can see that the scale of that. I think that just to give further reassurance that that will not have had a huge impact on the overall national performance of our A&E departments, which continue to perform very well. As we go into winter, I think that it is very important that we give our support to our A&E staff and understand the winter pressures that they will be under over the next few weeks. The cabinet secretary provides assurance that the review will investigate any suggestions of bullying and harassment and whether staff have adequate time for CPD and ensuring that they are familiar with best practice. While we wait for the arrival of the national whistle-blowing officer, what additional support will be put in place for whistleblowers? Shona Robison As part of the internal and external review, it is important that staff are interviewed in a way that they feel confident in being able to raise any issues. Of course, that is a process that is on-going to make sure that all the issues that have gone on in terms of what staff have felt and any concerns that staff may have, we absolutely fully have the opportunity to raise those in a confidential environment, and that is important. My officials are supporting that process and making sure that the work that Derek Bell and his team are getting on with has the full support in order to take that forward as quickly as possible. As I said to other members, to re-issue any recommendations that are emerging from that external report will be implemented not just in NHS Lothian but appropriately elsewhere. That concludes the urgent question, and we now move on to decision time. There is one question to be put as a result of today's business. The question is that motion 9241, in the name of Johann Lamont on petition PE1517, on polypropylene mesh medical devices, be agreed? Are we all agreed? The motion is therefore agreed. That concludes decision time. We will now move on to members' business, and I will give members a few minutes to vacate the chamber.