In this video guys I'm going to showcase you this amazing build sent in by a subscriber which is Otterly OP, I mean you guys want to play Hogwarts of Legacy and feel like an absolute beast, this is for you. Now if you have a build you'd like to share with the world, hit me up on my discord and we can work on something together, that is linked down below. So this build belongs to Angelo Diabolus and is quite the way forward, this thing destroys so let's check it out. So the build is an OP one but it does require you to be at least a level 22 to set up properly. So first up I will showcase to you the talents used for this setup, these you can see on the screen now, first up is what's used and selected within the spell talents. Now guys we have those dark art talents and lastly the core talents, so if you want to take a note of these pause the video guys, take a picture on your phone, screen shot it, do what you gotta do. Now with regards to gear, under neck wear we are using the cruelty 3 which significantly increases damage with Crucio, Crucio is going to be a main factor in this build. Under roll we are using the destruction 2 which increases damage with Confrungle, on the outfit we are using that cruelty 3 again, on the hand wear we are using that ancient magic focus, this increases that ancient magic flow rate, on the face wear we are using the same trait and on the head wear we are using cruelty 3 again. So with the traits and talents all set up, this is how the build works and how you can optimise it best. So there are 3 spider diamond setups here for this build, one diamond consists of Levioso, Accio, Desendo and Depulso, this is a very low cooldown setup great for mid air combos and to fill up that ancient meter fast. Combo 1 you can see on the screen now which is Levioso, Accio, Desendo and Depulso. Don't forget to get the advanced versions of these spells too with those upgrades applied via those talents, so damage is unreal here. Combo 2 here with the spell diamond is Levioso, Desendo and Accio, with the Desendo upgrade too, with that grand slam it creates a shockwave that affects other enemies which is quite deadly. Spell Diamond 2 is Confrungle, Bombardo, Defindo and Incindio, so here the combo normally consists of Bombardo, Defindo, Incindio and then Confrungle. This combo of spells is definitely more deadly than the first with this build and the spells have a decent enough cooldown too. This is probably the gold too that all round spell diamonds you should probably be using. The third spell diamond consists of Curse spells and Expelliarmus. Now this is definitely the most deadly here, Crucio here is the true workhorse of this build and it is devastating. If you have a big health barred enemy, Crucio them and then just use that basic attack and it deals staggering, staggering damage and it deals this also to multiple targets due to the traits and talents selected within this build. With this diamond also, with the Curse spells coming into play and with the talents selected to mark multiple enemies, the basic attack alone can reach damage numbers in the thousands. So yes it is quite deadly. So yeah guys if you are interested in this, try it out, again this is not my build I've just witnessed what it can do and I thought I'd show it with you guys. The creator of this build would know that we've seen lurking in the comments section So if you have any questions for him, do drop a comment down below and I'm sure he will reply. But yes guys, a short but sweet video, a decent build when I do recommend you try it out because it is absolutely deadly. Me personally I'm still working on my build, I'm still trying to perfect those traits but it is coming along nicely. But guys if you have an amazing build you'd like to share with the world do hit me up on my discord and we'll try and work something out and get a video out on it. But guys thanks as always for stopping by, hopefully you enjoyed the video and hopefully I will see you on that next one.


another first-time chat by 0485 do you have some wheat plants over there i have some cannabis i've got lots of weeds all over the place like there's weeds in here and stuff but i got cannabis here we got four cannabis plants the nice bud is on this one this one has good bud see that if we get another two weeks of sun we're gonna have some nice buds oh it smells amazing it smells as good as tomatoes i love tomato smell i've got tomatoes growing here too we got basil lots of basil growing we got lots of stuff growing oh yeah baby that's money in the bank right like i'm growing money like if you have a garden personal finance if you have a garden you're growing money right like organic tomatoes cost it's so expensive in my part of the world right here i'll take this one now organic tomato right i couldn't let it ripen more but i wanted to show you guys right beautiful we've got lots of green or green green tomatoes here and they're gonna ripen slowly in the next month or so that's money right personal finance advice you want to be frugal grow your own food healthy organic fantastic right


It's my pleasure to now introduce Eric Mann. He's the host of Voices from the Frontlines, heard on KPFK FM 917 radio in Los Angeles here. He's a veteran of the Congress of Racial Equality and Students for a Democratic Society. And he's director of the Labor Community Strategy and co-chair of the Bus Riders Union. He's the author of Playbook for Progressives, the 16 Qualities of the Successful Organizer. I just wanna thank Aaron for having Rachel and myself on his show this Tuesday on KPFK. Eric, you there? I hope so. Hi everybody. This is deeply moving experience. You can't hear me, right? Okay. Deeply moving experience. You know, I was like most of you, I think, very active in some way in the United Front to defeat Donald Trump and to elect Joe Biden and Kamala Harris. It was a tremendous victory in what we would call United Front against fascism. But it was not a United Front against imperialism. And now we're faced rapidly with the Biden administration moving even in a more hawk-like fashion than the Trump administration. In fact, he ran on saying that Trump was soft on dictators from Venezuela to Russia to China, so we're now in a very difficult situation which I think the Biden administration is trying essentially to integrate a multiracial imperialism to shore up some of the weaknesses of the present empire, but also carrying out the most extreme anti-Asian violence as we speak with just recently, Antony Blinken and Lloyd Austin and Biden have threatened China in the most fundamental way. Imagine that the department of so-called defense is involved in creating a new US power in the Pacific. Now, I come out of the tradition where the black movement and the anti-imperialist movement were both integral and that the black movement drove the anti-imperialist movement and vice versa. So the first thing was important to understand is we believe that black people were a nation inside the United States, that Chicanos were a nation, indigenous people were an oppressed nation. We did not believe the United States was capitalist but we believed it was imperialist. And therefore, when I joined the Congress of Racial Equality and SNCC, MFDP, there was all talk about black nationalism, black liberation and therefore Vietnamese liberation and black liberation would be integral. The white movement was very important. Dr. Spock, the great Daniel Ellsberg, but there's no question the black movement was the cutting edge and must be again of any successful anti-war anti-imperialist movement.  It was Dr. King who said, the US is the greatest purveyor of violence in the world. It was Malcolm who said, we will not fight in Vietnam. It was Muhammad Ali who said, the Viet Cong never called me the n-word. It was German Carlos and Tommy Smith who raised their hands at an Olympic and basically said, we don't represent the United States. We represent the third world in a black nation. That's, and it was Fred Hampton and the Black Panthers, if you read the book Blacks Against Empire. But that's a great story but we have to see the other side of it. Dr. King was assassinated. Malcolm was assassinated. Fred Hampton was assassinated. SNCC was repressed. Every one of us was repressed. Paul Robeson was repressed. The Rosenbergs were murdered. So when the Rosenberg simply said, we don't wanna give nuclear weapons to the United States but not also to the Soviet Union, they were murdered for being peace organizers. So the reason I say that is because the teach-in cannot simply be an exposure to the Cold War but has to be a challenge to each of us to answer the question, what are we willing to do about it? Which is what my life has always been about. So interestingly, in the real world, in the present, brother, friend, Jenny Martinez from the Labor Community Strategy Center but running independently, he ran for the city council in the 10th district in Los Angeles, not even a majority black district anymore because of the genocide that the United States is carrying out against black people, including the liberal Democrats of Los Angeles such as unfortunately Mayor Garcetti. But he ran on no police in the schools, no police on the MTA buses and trains. 50% of all new jobs must go to black applicants, open borders for all immigrants, free public transportation, no stop attack on black passengers which in itself was phenomenally radical but then he said, US hands off Venezuela, Russia, China, Iran, Iraq. And here's something important. The United States is not simply a ruling class. It's an imperialist country in which the majority of white people in my opinion are directly involved in national oppression. They're not simply confused by about their active participants and the effort of the United States through its armies, through its prisons is trying to organize everyone to be a pro-imperialist block. Now Channing got 5% of the vote. If you know anything about real elections that's phenomenal for a first candidate and he got 10% of the black vote. And what we say and what I teach is set the edge, split the room and then move the room to you. And what we saw is when you're at a candidate's night talking about these issues intelligently and thoughtfully, people who are pro-imperialist start to move because the logic of the argument, the morality of the argument. So one reason they wanted to keep the communists out of the trade unions, keep the communists out of the schools is because even in the midst of all this institutional power they can't win the damn argument. They have to keep us out because if you're good organizers and you know how to work with people not pontificate but communicate and listen, these are very compelling arguments starting of course with black people who have been enslaved and indigenous people and Mexican people. So it's critical that the anti-imperialist movement be an integral part of the social reality of this country and not somewhat on the outside. Now, Michael Murphul did a great job about books deeply moved by the book, The Jakarta Method which is terrifying about what the United States did in Indonesia after the Bandung Conference by the way in Indonesia. Then there's my book, Comrade George, An Investigation into the Life, Political Thought and Assassination of George Jackson. Another one of my books and it's interesting called Katrina's Legacy, The Black Nation and the People of the World Confront. The U.S. imperialist white settler state and its genocidal climate crimes. I think we have to go beyond talking about white supremacy to talk about a white settler state as integral to the country that we're trying to change. And then there's my book, Playbook for Progressives, The 16 Qualities of the Successful Organizer because if you're not an organizer as Marcy Winnegrave is, you can't succeed. And I wanna end with a very encouraging story which is difficult. In September of 1969, I organized a demonstration against the Harvard Center for International Affairs. I had already been part of SDS at Columbia, where we took on the Institute for Defense Analysis. This was not a friendly demonstration, this was Henry Kissinger's Center for Death.  Ho-ho-ho-chim in the honor of a go and win. And my good friend Howard Zinn said that was a very good nonviolent demonstration because no one was attacked except for us. However, I was sentenced to two years in prison for that demonstration and I served 18 months. Now when I got into prison, four prisoners came up to me. The first day I got there and I said, Eric, we decided to become communists. I said, well, that's terrific, I didn't even get here yet. What led you to that conclusion? He said, well, you know, Charlie Kraft speaking for Jimmy Drummy and the other said, you know, I was in the cell and Joe, the screw, the guard, said to me, hey, Charlie, we hate communists, right? And I said, yeah, we hate communists. He says, good, because there's a guy coming, we gotta hate.   No, I think he's one of those jubies. You know, he's one of them.   He says, yeah. So we don't like him, right, Charlie? Charlie said, wait a minute. The person who's locking me up is telling me that I gotta unite with him because we're both anti-communist but if he's locking me up and he's anti-communist then it must be logical that I must become a communist. And I'm gonna tell all the other prisoners that apparently this guy coming in must be a real threat to them because the guards are trying to organize us.  Because that's what I think you need to understand is this country is locking us up and at the same time encouraging us to lock up the people all over the world. I believe we have a real chance to win. If you like this point of view, check me out at infoatthestrategycenter.org. It's an honor to be part of this conversation. Thank you so much, Eric. Wonderful testimony. It's going in the record.


With those with those with those who are already on the show, I want to give you a preview of what Llanelli is rolling out of your story. Hello, everybody! I guess in some ways the premise of my talk is kind of similar to the last talk you've just seen. When fun with Lambdas, you saw Corey restrict Ruby to use a subset of the functionality and look at what this did to the language. I'm going to do a similar thing. I'm going to restrict Ruby to be a subset of this functionality and see what it means for the way we can use it. I'm going to turn Ruby into a pure OO version. Now, the inspiration for this came from another talk you've seen in this conference. It was Sandy Metz's excellent Nothing Is Something talk. I saw this talk about six months ago at a conference called Bath Ruby, in the English town of Bath. I was struck really on by this slide. This is the point where Sandy says that the if keyword is not necessary in Ruby. Now, when I saw this, I thought, this is really weird what's going on. When I think about languages with small syntax, I don't think about small talk. Maybe I should do, but I don't. I think about list languages and, I guess, in particular, scheme. Now, if you try and write a list language, you need to get lists working, but after that, there's only four things you need to get working. You need to implement these four basic functions. Now, the syntax for scheme is much bigger, but it can all be built out of these four fundamental ideas. Of course, one of these is if. When I saw Sandy's talk, I was thinking, well, I think if this is fundamental for the way programming languages work, so how can you take it out of a language? It's a shame I was thinking this rather than paying attention to the talk, where Sandy was explaining how it works. I had to go back afterwards and look at the video. I forgot about this after a while. There were much bigger ideas in Sandy's talk, and I didn't think about this anymore, until a few weeks later, when I was creating some content for a company called Pluralsight. Pluralsight do training videos for developers and other technologies. I'm creating a course for them called Ruby Beyond the Basics, and part of this course is looking at Ruby's object-oriented model. In particular, I was creating a video that looked at what we might call the primitive objects in Ruby. These are things like numbers and strings and arrays that come built into the language. We often say that these things are objects, and they do behave like objects, and we can send messages to them, but they're special kinds of objects, and they're special because they've got a special local state. To understand this, let's look at an example. Let's imagine we're creating some kind of object model for this conference. We might start by creating a speaker object, and here I've given the speaker a single attribute of age. For some reason, we want some of the age of the speakers. Age is just an attribute inside Ruby, and this is what I'm going to call the local state of this object. When we instantiate this object, let's say we create a speaker to represent me, we're going to set the age to something, so we'll set it to 21, because 21 is clearly my age, right? When I say we set the value of this age attribute, what I really mean is we create a reference to another object, and in this case, the reference is to a fixed num object. We say fixed num is an object, and it's got this local state of 21, right? But this can't be a reference to another object. If it was, it would refer to another fixed num, and this would repeat forever. There's something very special about the local state of fixed nums. Now, when I was recording the video for this, I said something along the lines of, you can't have pure OO numbers, and I think this is a really interesting observation. It's also completely wrong, and I knew it was wrong as soon as I said it, and I had to go back and re-record the video to ignore this issue. And this reminded me of Sunday Met's talk. I thought, you know, I thought if this fundamental language, it turns out you can take it out, and I thought you have to have, you can't have pure OO numbers, you've got to have some special representation, and that's not true, either. So I got kind of interested in how far we can take this idea, how far can we go towards creating a pure OO version of Ruby? Now, before I start looking at this, I just want to set some ground rules, because we all kind of understand what OO means, but we might have slightly different interpretations of it. So I'm going to define OO in terms of four simple rules. There's only four things we can do here. Now, first of all, we can define objects. It wouldn't be much of an OO language if we didn't have objects. And when they say define objects, what they really mean is in Ruby, we can create classes and we can add methods to those things. Once we define objects, then we can instantiate them. And we do this by sending the message new to our class. I guess more specifically, we send allocate. It creates some memory and then it remembers which class it belongs to, so it knows which behaviour it has. Once we instantiate objects, well, we can remember them, we can store references to them. And in particular, object can store references to other objects. And then finally, we can send messages to our objects. And of course, our objects can send messages between each other. Now, when I said we can define objects, it's important to note that this has to follow the same rules. Okay, so when we're writing a method, we have to follow these rules. We can't just do whatever we want. We can only instantiate things, we can remember where they are and we can send them messages. And nothing else is allowed. This actually cuts out an awful lot of Ruby. So for example, we can't use the built-in classes like fixed num and string and array and so on, because these don't meet the rules. We also can't use nil, although to be honest, this is something of an improvement to Ruby. We can't use the built-in control flow structures like ace and case and logical hands and ores. And in fact, we can't use true and false because these also don't follow our rules. We can't use blocks or procs or landers. And this is really annoying because we can't use these handy methods like each and map and inject and so on. We can't use Ruby's built-in notion of equality because this doesn't follow our OO rules. We can't use puts and in fact, we can't use any IO structures at all because again, this doesn't follow our rules. And all this taken together means we can't use kernel. Pretty much everything in kernel will break our rules. And indeed, most of the standard library in Ruby will also break these rules. So can I still use Ruby? Well, yes, I can. All of the code you see is going to be Ruby code. It just might not be the kind of Ruby code you normally write. So let's get started and let's start with numbers because this is where I began. So how do you build a pure OO version of numbers? Well, there's not much we can do. Our rules are quite restrictive. But one of the things we can do is we can define objects. So we can start doing that. We might say, okay, we need the number zero. So we'll create a class for that. And then we might say, okay, we need the number one. We'll create another class for that. And then two and three and four and so on. You can just imagine it's continuing forever. So this is kind of good because it follows our rules. But it also kind of sucks. And there are two big problems with this. The first is that there are an infinite number of numbers. So I want to build a number system this way. I would have to create an infinite number of classes. And that would make the most boring talk you've ever seen. But even if we could solve that, even if we could all agree that we'll just use the first 10 numbers, we still have a big problem because these are not numbers. These classes have got the same English name that we normally apply to some numbers. But that doesn't make them numbers. They don't act like numbers. There's nothing numbers about these things. So this approach doesn't work. So then how do we solve pure old numbers? Well, it helps to step back a bit from the problem and think about what it is we're really trying to model. So I've written out some numbers here, the number zero to four. And you can just imagine the sequence continuing forever. Now, when I create some classes like zero and one and two and so on, I treated these things as discrete objects. There's no relationship between them. But that's not how numbers work. There was a relationship here. In fact, these things are in a sequence. And this is kind of handy. This means that we have the notion of zero. We can use that to give a definition of one. We can just say that one is the number that comes after zero. And this works for other numbers. For example, two, we can say two is the number that comes after the number that comes after zero. And this works for all of our numbers forever more. This turns out to be a surprisingly powerful concept. So let's look at how we write this in Ruby. Okay, so I said we got zero. So I'm just going to create a class for that and I'm going to call it number zero. And for now, I'm not going to do much. I'm just going to add an inspect method so you can see what's going on. Okay, and inside here, I'll just print out string zero and that's it. Okay, now I inspect and the string that I give back are not actually part of my pure old language. I'm just putting them in here so you can see what's going on so you can follow along. It means I can write things like number zero and create that and then run the code. And you can see it prints out zero. It's just a utility thing. I could remove all the inspects from the code at the end and the code would still work. It just means that you can't follow along. Okay, so that's zero. What about other numbers? I'm going to use a single class for that. Okay, I'm just going to call it number. Now, numbers are a bit different. When I was talking about numbers like one and two and so on, I always said they come after something like one comes after zero, two comes after one and so on. So when I create these objects in the initialiser, I'm going to pass in the thing that they come after. I'm going to call this predecessor and store it in, and that should be called pred for now. That's short. And then I'm going to inspect with them here so you can see what's going on. And in here all I'm going to do is inspect our predecessor. And then on the end of that, I'll just put a little dash so that you can see that this thing is here as well. Okay, so we have some definitions. Now let's create some numbers. So we can say zero is a new instance of the number zero class. Okay, and then we can say one is the number that comes after zero. And like I was going to say two is the number that comes after one. I run the code and you can see this works. You can see it for one. It prints out zero with its predecessor, then one dash. And for two it prints out the predecessor and then two dashes. So this is kind of cool. This idea of being the number that comes after is something I use quite a lot. So I'm going to create a helper method for this.  So I'm just going to add a method inside here called suck. Doesn't take any arguments. And all this does is returns its successor and the successor is the number that comes after this one. And we do that by saying number.new. Let me just pass self in here. Okay, and I'm going to add the same method to the other numbers as well. So like the successor one is just the thing that comes after one. So it's going to have the same definition. And then down here in our code, our definition of zero stays the same, but we can now use a shorter version for the other numbers so we can say one is the successor to zero. And likewise, we can say two is the successor to one. I can keep going with this as far as we want. So we can say three is the successor to two. And four is the successor to three. And then on the code, you can see it works. We have ways of creating three and four and so on. And this is already kind of cool. This means I've got two classes I'm done here and we can create this infinite sequence of numbers. That's pretty good. It's solved one of our problems. But it still doesn't really act like a number. We can't say this is a number yet. This is just an infinite sequence. So we need to add some behavior. And I'm going to start with addition. Addition is a kind of fundamental concept with numbers. So how do we add two numbers together in a pure older way? This is kind of a hard problem. Maybe it's too hard to solve in one go. One of the things I like to do with a really difficult problem like this is find the single simplest instance of that problem that I can find and then solve that and see what I learn. Now, the simplest problem to an addition I can think of is adding zero onto things. Okay, so we can create something that says, for example, zero plus zero. And we would expect that to give us back the answer zero. We don't know how to add numbers together. And I can say zero plus one and I can expect that to give me back the value one. And I can say zero plus two and I'd expect that to give me back the value two. In fact, zero plus anything just give me back that other thing. It doesn't modify it in any way at all. Now, not modifying a thing sounds pretty easy to do so I can just go and implement that. I'll add a method up here to zero called plus. It takes another number and then just returns it. It's just the identity function. It doesn't do anything to it. Go back to the code and run it and you can see that this works. Zero plus zero is indeed zero. Zero plus one is indeed one. And zero plus two is indeed two. So that's great. What about other numbers? What about say one plus two? Or maybe two plus two. How do these work? Well, we can't use this in trick. We can't just say we'll return the other number because that's wrong. One plus two is not equal to two. We can maybe think, okay, one plus two is equal to three. That's a successor to two. So maybe it's called successor but that doesn't work for two plus two. So how do we solve this? Well, again, it helps to stop. Take a step back and think about what it is we're doing. So here's the same thing as our original numbers. So here we're trying to add one onto two and I don't know how to do this yet. This is pretty hard. Do you know something about the top line here? We've got the number one and I know something about the number one. I know it's the number that comes after zero. In fact, if we look at the predecessor of one, we would end up with this addition zero plus two. Now, the nice thing about zero plus two is, I know how to solve this. I know this gives me back the answer two. We've just seen this. That's kind of cool but it's the wrong answer. But it's the wrong answer because I had to take a step back towards zero to get it to work. So I'm going to balance that out by taking a step away from zero to get the final answer. That is, I'm going to call the successor on the answer it gave me back. And that gives me three, which is pretty good because that's the correct answer to one plus two. Okay, so that's one. What about adding two onto two? Well, again, I don't know how to do this yet, but I can use the same trick. I can say, what's the number that comes before two and this is the number one? And that's great because that gives us one plus two and we've just solved this. We know how to do this. This gives us back the answer three. Now, we need to balance this out again. We took a step back towards zero so we're going to balance that by taking a step away by calling the successor. That gives us four, which is the correct answer. And in fact, this works in general for adding positive integers together. So it's going to add it to the code. You go down to our number class down here. I can add a new method called plus, takes another number and all we need to do is add it onto our predecessor. Whoops. And then call the successor on the answer. Okay, we go down, run the code, say it in action. You can see that this works. So we can add one onto two and we can add two onto two. Now, let's just stop for a second and look at this. All I'm doing is defining classes, instantiating them, remembering where they are and sending them messages and yet just using this, we can rebuild a number system and we can make them add together. I think that's kind of amazing. There are other behaviors of numbers we might care about, things like multiplication, subtraction, so on. I don't have time to define them all here today but they all work in a similar kind of way. Subtraction is a little bit tricky but they all kind of work in this way and we can rebuild a number system. There is one other behavior I want to look at before I move on though and this is the idea of equality. So I expect people to say something like, zero is equal to zero and that should come back and say, yeah, that's fine, that's true. But if I say something like, well, zero is equal to one, I'll expect that to come back and say, no, that's wrong, that's false. Now, a little bit of a problem. I don't actually have true and false yet I need to go and build those things. So I'm just going to quickly go to another file and define them. We're going to come back to these in a moment but for now, all I'm going to do is create a class called true. It's not going to have any behavior yet, it's just a placeholder for what it means to be true that we'll come back to later. For now I'll just add the inspect method so we can see what's going on. I'll get the print out true. I'll do the same thing for false. I'll add an inspect method in here, I'll get the print out false. Okay, and that's all I'm going to do for now. You go back to our numbers file I'm just going to pull this class in so this was in a file called booleans. So we can use it here. And then we can look at the idea of equality. I'm going to start with zero again, zero is quite an easy thing to start with usually. So let's have the method called equals equals. Let's take some other number. How do we know if something is equal to zero? Well, it's kind of easy. If the other thing is also zero then we know the two things are equal. So how do we know the other thing is zero? It might be kind of tempting to think well we can look at the class but looking at the class is not one of my four rules. We can't do that. It turns out it is even easier than that. To know if something is zero we just go and ask it.  So we can say to the number R U zero. And then we return whatever that gives back to us. Now I obviously need to implement this method. So for our number zero class we can say R U zero and the answer is trivially yes. So it returns a new instance of the true object. Now for other numbers, numbers that are not zero the answer is obviously going to be false. So we can just add a method to here called zero. It doesn't take any arguments. Just return to the instance of false.  Zero is indeed equal to zero and zero is not equal to one. That's pretty cool. Let's look at the other numbers. So I should be able to say things like one is equal to one and that would come back and say true. But if I say something like one is equal to two well I expect that to come back and say no that's false. Okay, how do we compare numbers? Well we can just say are you non zero because that would make one equal to two that would be the wrong answer. But there's something interesting about looking at the quality of numbers. I can say that if two numbers are equal then I also know that their predecessors are equal. So if I say is one equal to one I look at the predecessors both sides I say is the predecessors one equal to the predecessors one which is is zero equal to zero and we know that this works so we can see the code above. And likewise for one equal to two well we same thing we look at the predecessors we say is zero equal to one and we know this comes back as false. So actually equal is pretty simple. If you want to know if two things are equal we just look at the quality of their predecessors. So I'm going to implement that. So this is the number class and just add equals equals they take another number in and all we do here is you say is our predecessor equal to the predecessor of the other number. But to make this work I just need to add a quick attribute reader method which is pred. Okay but then that's it I can go down and run the code and it gives us the right answer. One is indeed equal to one and one is not equal to two. That looks like it works it's a bit of a problem. If I can say one is equal to two I actually will have flipped that round and say okay is two equal to one and it should come back and say false. When we run the code it says ooh exception it's all gone wrong. So what's happened here? Well it helps to think through the code we just wrote. To compare two to one I'm saying okay I'm going to look at the predecessor of both houses of that. So the predecessor of two is one I'm going to say is that equal to zero? Now to work with that out we look at the predecessor again we say is the predecessor of one which is zero equal to or what the predecessor of zero we don't have a concept of that yet and this is why it's breaking. So to make this work to go back to our zero class we add a new method called predecessor. So what is the predecessor of zero? Well I guess we've got integers here so we could say maybe it's negative one but we don't have negative numbers here we haven't built those things. Now it would take me a little while and actually it's quite unnecessary. The only thing I need to know about the predecessor of zero is that it's less than zero so I can just do that. I can say it's a new instance of less than zero. Okay, now we go back up here obviously we need to find that class so we'll find less than zero. The only thing I really care about here is equality and equality all works off by checking to see whether or not something is zero so the only method I need to add here is zero question mark and we just return false. So down here on the code again you can see this now works we can check equality. Now there's another little problem if I say is four equal to one? Run it, it blows up again because it gets all the way down to less than zero and called predecessor or not. So how do we define predecessor for less than zero? Well again this is actually quite easy. We could worry about things like is it minus two how does it compare to other numbers but actually I can just say that the thing the predecessor of something that's less than zero is still less than zero that's all I care about at this point. I'm going to just return self. Down here run the code again you can see it now works. So equality is now working for us and we put this together it means we can write things like this we can say one plus one is equal to two. I can run the code and it comes back and says true. Now this might look a bit funky because I've got this inline plus and equals but actually it's just sending messages it's just pure OO code. So for example I can rewrite this by just sending the message plus passing in the value one sending the message equals equals to the result of that passing the value two run the code it comes back and says true as you'd expect because it's exactly the same code. Now this is kind of amazing we just rebuilt numbers in pure OO way we don't need some prior definition of numbers or how they work. There are lots of other things in Ruby we could look at but I don't have time to do everything the thing I want to look at next is this concept of if. Now we saw this in Sandy Meister's talk and she said we don't need if statements and it's probably true but I quite like having them. I'd like to be able to use some if like construct in my code. So how do we make this work? If you remember this Boolean class we have before we've got true and false. Now I would like to write some Ruby S code I would like to say something like if true then return to value one otherwise return to value two and then that's it. So I'm going to turn this into some pure OO code and get that working. Now we can just translate this pretty easily we can create a new class called if we'll instantiate it we'll pass in the concept of true and we'll say okay well if it's true then we'll return one otherwise we'll return two. Okay so that's our pure OO equivalent of the Ruby code above so we can chart that away now we don't need it. So we need to define if and how is this going to work? Well actually if is pretty simple to write. You can see that it takes a single argument this is either going to be true or false so I'm going to pass this in to the initialiser and I'm just going to call it the conditional and the conged and for now I'm just going to remember it. The next thing we need is a method called then and then it's going to take some kind of value. Now if the conditional is true then we want to return that value otherwise we want to wait for the else clause. This is a bit of a problem how do we write if when to define then we also need if we get this kind of circular problem. It turns out it's really easy to solve we don't solve it here we just pass it down to the next object. So if it just becomes a wrapper around the conditional we just call then and rely on that to do the right thing. So this means we need to define then for true and false. Okay so inside true we'll take a value and if the conditional is true that's the value we return we should just return this and it's kind of tempting to just say okay that's what we'll do we'll return it but if you think back to the example we had above on top of the file you can see that after we call then we then call else so whatever we return has to respond to else and of course our value in this case one doesn't return to else it's not elseable so we need to return something else that wraps up our value but lets us call else. I'm going to do that by just creating a new class I'm going to call it true result and I'm going to pass in the value that we were given. Okay to find this class is really short. Go to result it's got a single, oh in the initialiser you can see we passed in the value okay so I'm just going to store that for now and then we need a single method called else and that takes an argument but here we don't actually care about it this is a true result so we're going to use the then branch so the else branch we don't care about it we just throw the value away and we'll return the original value we were given okay and down here for false we'll do the same thing obviously the logic is going to be reversed so we have then takes an argument we don't care about it we'll return a new false result I'll just find that quickly there's no initialiser here we just need a single method called else takes a value and again it's just identity function it just returns that thing okay so let's see this in action okay so here's our if statement that we built and they're pure away we're going to do just look at the result of this so assign it to variable and then I will run the code and see what it produces and it does the right thing we say if true then 1 1 is what is returned is 0,4 by a signal dash and I can change this to say if false and run the code and you can see it now returns the else branch it returns 2 so it looks like we solved if but actually we're not quite done yet it's a bit of a problem and to see this I'm going to write a slightly longer piece of code imagine we've got some code and inside it we're storing something called a threat level and during the execution of a code just get set to the value 1 now based on the threat level we want to decide some kind of action so you might say ok our action is equal to well if the threat level is equal to 4 then we're going to launch some kind of preemptive strike here so we'll say launch nuclear missile bit extreme otherwise, well this is a pretty creepy piece of code actually we'll do nothing we'll just take no action and then we run this code and we look at the result and unsurprisingly it says ok we take no action because our threat level is only 1 now let's write the same thing in a pure OO way so again we can set the threat level but we'll set it to our OO version of 1 this time and we can say the action that we take is equal to our new if construct and here luckily we can say is the threat level equal to 4 if it is then we'll launch our nuclear missile again nuclear missile is really hard to type never pick this for an example ok otherwise we'll take no action so we need a class to represent no action no action it's not going to do anything we'll just get it to print out something useful so we can see what's going on ok and then this is our pure OO version so we look at the value of action when we run it it's ooo what's happened here it's all gone wrong in fact it says uninitialised constant nuclear missile and that's kind of weird it's like it tried to run the den branch but we just saw that when the value is fault which is what comes out with 1 equal to 4 that it doesn't run the den branch it runs the else so what's happening well actually our if code is fine it's something else going on here it's Ruby's fault Ruby's got this thing called eager evaluation and when it sees a method called like then and then some expression between the parentheses it tries to be really helpful and it goes and evaluates this thing for us and it gives us a result which means that even though we didn't use the value for then it goes and evaluates the nuclear missile code and then we throw it away and that's really not what we want to do it's all this in Ruby by using a block you use a block to delay the execution but I can't do that I don't have blocks so how do I delay execution here well actually the answers are always really easy there's not much I can do what I'm going to do is create a new class and I'm going to call this class option 1 I'm going to give it a single method called result and inside here that's where I'm going to put my nuclear missile at new launch code and then that's it and I'll create another class called option 2 and again I'm going to give it a single method called result and inside here this is where we're going to do our noaction.new let me change the code in here so rather than actually launching a new commercial straight away we're just going to create a new instance of option 1 and then in the else part we're going to create a new instance of option 2 okay now we run our code it says it says I've made a typo somewhere anyone got any ideas something's coming in as a fault this is the example something's coming in as a fault this is the thing I get all the time when I type a let me just delete that code so class called option 1 single method called result and it says nuclear missile.new.launch and then down here new class called option 2 method called result it's going to be noaction.new does that help no okay I'm going to skip over this bit sorry not yet it should give me back the option class first and you can call result in it line 7 is going to be a lie somewhere else these things are horrible to debug I'll just have typoed somewhere sorry no it's not result yet I'm going to call result if this worked have a call result later what's going to happen is it's going to give me back either an instance of option 1 or an instance of option 2 and based on that I'm going to have the wrong thing so I would call result based on that and get the internal thing out of there and use that now getting it to work isn't actually that important what's really interesting here I think is we've had to stop and step outside of our pure OO model and think about the underlying thing think about what's happening behind the scenes we had to think about the machine underneath us now the machine in this case is a ruby interpreter and that's forced some constraints on the way we've written our code normally I would say at this point but it works, obviously here it doesn't work but imagine it did ok I'm going to move on from here I'm going to look at something else, I'm going to look at strings now strings are kind of a context thing because they're actually two different concepts ok strings are lists of characters so we need to solve lists and we also need to solve characters now I don't have time to do both but I've already written a list class in a pure OO way so I'm going to look at characters because something interesting happens here ok so I know I want to create a character class and what is a character? well it's really just a representation of some kind of thing that we see printed out and typically we use codes to represent this and in this case I'm going to use ASCII codes so I'm going to add an initialize method here it's going to take a code I'm just going to store it in a variable for now then an inspect method I'm just going to inspect that code ok and then that's it that's all I'm going to do so to make this work or to use it I can create for example the character H and I said these are going to take ASCII codes so the ASCII code for this is 104 and E again is going to be a new character and this time it's going to be 101 L is a new character it's going to be 108 I hope and O is a new character which is going to be 111 ok so using this I can now start to build a string I can say a string is equal to list.new now list is the pure OO version of lists I built and the way it works is you instantiate it then you stick things onto the end of it so I just append H onto there and then E and L and then L again and then O then we look at the string we should say hello and there we go perfect that's not very useful is it now it does work I hope you can see I include this class called more numbers that's because I needed to find some really big numbers ok so I just call successor this class file just really sucks an awful lot but it does have some useful utility methods inside there I can turn my pure OO numbers back into normal Ruby numbers by calling to I then I can call character inside there and that's going to turn it back into the Ruby representation of the character so if I run that you can see it does print out hello but to get that out I had to cheat I had to use built in Ruby things that are not part of my OO language we put it back to inspect we get this horrible thing come out again and this is not very useful and this raises an issue about strings and characters because they're not just representations inside the machine they're actually things we use to communicate with the outside world and we can't really talk about strings we like talking about input outputs now input output if you go to Wikipedia this definition of it it says it's a communication between a computer and the outside world I think this is a pretty good informal definition of IO now this does cause some problems for me because it's got this concept of the outside world this doesn't mean I need to model the outside world somehow well I can model the outside world because it doesn't fit into my rules it's not an object and this means that I can't send messages to it and this causes me problems because it turns out that our OO language, IO, is impossible it's impossible because it needs a concept of the outside world and you can't represent that in a simple object this makes me sad and it makes me a little bit worried as well because we've been doing pretty well so far well in the run-through they're pretty well we can do numbers, we can do some conditionals we can do characters and strings to some extent but we find out that we have a failure we can't do input output and this raises an awkward question what else can we do in normal Ruby that we can't do in our pure OO version well handily the answer is not to be nothing there's nothing we can do apart from IO in normal Ruby that we can't also do in our pure OO version and that's cool but how do I know it's true I haven't written every single Ruby program and converted it into my pure OO thing and yet I'm confident to stand here in front of 500 people and say there is nothing apart from IO that you can do in normal Ruby that you can't do in this pure OO version so how do I know it's true it might be a good point to admit that this isn't really a talk about OO programming it's about something much more fundamental something much deeper now to answer this question about how I could be sure there was nothing we could do in Ruby that we couldn't do in our pure OO version I went back and looked at a question I skipped over earlier I probably should have stopped and asked I said something like this you can't have pure OO numbers and I said this is untrue and I knew this was untrue as soon as I said it but how do I know it was untrue I've never seen someone build this kind of thing before so how do I know it wasn't true well there are two possibilities here either I'm some kind of crazy genius I can look at the problem and think oh here's all the code that solves it or I copied it which one do we think it's going to be genius or copy it come on genius now it always happens I never get to be the genius it sucks so I've seen it before but where have I seen it before I've never seen someone do this kind of talk before so where have I seen this kind of pure OO numbers before well let's stop for now let's park this thought for a minute take a little diversion and talk about lambda calculus now lambda calculus is one of these things that a lot of people find kind of scary they think oh it's fundamental computer science it's not for me it's too hard and actually lambda calculus is one of the simplest things you'll ever come across there are only three parts to lambda calculus three types of things you can have so you can have variables things like x and y and later it can be longer than this and these act like variables in your normal programming language you can assign things to them when you use them it'll use the original value that you assign to it later on now the next thing that looks a bit scary these things are called lambda obstructions look at this funny lambda symbol and then a variable then a dot and then a body now in this case the body is just the same as the thing that comes before the dot that doesn't have to be the case it can be any other valid lambda expression in there now at lambda obstructions we typically take so here we could say id is equal to lambda x dot x okay now lambda obstructions actually are just functions we can write the same thing in Ruby by saying def id takes a single argument of x now this is the thing that comes before the dot then the method body is everything that comes after the dot in this case it's just a simple x okay the final thing is lambda application now this is two lambda terms side by side a lambda term is just one of the three things we've seen so it's a variable and another application application is a bit like calling method it's a bit like calling the method t and passing in the value s that's great why am I telling all this why do we care about it terms like lambda calculus is really powerful and we saw in the last talk that we can build lists with it we can also do some kind of boolean logic with it we can also do numbers we can do all sorts of things and in fact lambda calculus is chewing complete which means that anything we can do in Ruby we can do in lambda calculus it's really funny I'm sure we're all very happy for lambda calculus but why am I telling you this rather than shutting up and letting you go for coffee well here's what gets interesting for me in our pure over Ruby we can implement the lambda calculus which means it's chewing complete which means it can do everything that Ruby can do except for I O that's pretty cool I want to show you what I mean by saying it can implement the lambda calculus so we had some lambda term we had something like id equals lambda x dot x we can mechanically turn this into some pure over Ruby code and the rules are as follows when you see a lambda abstraction this funny lambda symbol I'm going to create a new class I give this class the same name as the variable this thing is stored in so in this case it's stored in a variable called id now I'll always create a single method inside here called call this takes a single argument in this case I'm going to call the argument x to match the lambda abstraction above and then the body just follows the thing after the dot so I'll return an x and that's it now this doesn't just work for simple things like the identity function we can look at something a bit more complex so in lambda calculus we could say true is equal to lambda t dot lambda f dot t now you don't necessarily need to worry about why that's the case I just want to show you that this is more complex but we can follow the rules and convert it ok so the rule says we create a class we give the same name as a variable it has a single method called call it takes a single argument in this case t to match the thing above now the body of this is a little bit more complex before we set a simple variable we just wrote the variable name and carried on here it's another lambda abstraction but that's ok because we have the rules we'll just follow the same rules now this inner lambda abstraction is not assigned to a variable so I'm going to use an anonymous class inside here very class.new.do ok and inside here we follow the same rules we have a single method inside here called call takes a single argument in this case f and then we want to return t now we have a bit of a problem as soon as we created the new class we broke the outer scope the outer scope is no longer available to us so we can't just use t so what we're going to do instead is add an initializer inside here I'm going to pass in the value t and remember it and then down in our definition of call we can simply return that value then we'll instantiate it straight away and pass in t so it has access to it ok so this means t.new then we can call call on it I'm just going to pass in the symbol t for now then we can call it again and pass in the symbol f and hopefully this works it'll come back and say t this is the first time you've passed into it now you might notice this looks a little bit similar to the way we defined true before we can say true then something else something else and that's no coincidence these are both concepts of true this is great we can take the lambda calculus and turn it into pure or ruby we can do this with other fundamental forms of computation like Turing machines or iota or all these kind of weird things I haven't got time to talk about those now but if you are interested in this I really recommend you read this book understanding computation by Tom Stewart he goes through a lot of these different forms of computation and how they're related and all the examples are in ruby so you can follow along of course you might not be interested and if you're not interested in this I recommend you read this book by Tom Stewart understanding computation because it's a really great book and it may get you excited about it so we can take lambda calculus we can put it into pure or ruby and then we know it's Turing complete but a bit of a problem lambda calculus is really hard to use it's a very simple concept but it's hard to get it to do things so here's an example of 1 plus 1 is equal to 2 this is the same thing written out in lambda calculus now we wrote this out in our pure or ruby earlier and this is the same thing and it's horrible I don't really care that it's long and scrolls off the page what I care about is that I would hate to work with this it's really really hard to see what's going on you get blinded by all these funny symbols on the page and it's really hard to work out the intention so much of the code is concerned with just trying to get the thing to work that the original intention of the code is completely lost so when I wrote my pure or ruby version I didn't just take lambas and wrap it off inside objects I translated them into better or ruby codes because even though our pure old thing in lambda calculus are computationally equivalent they can both solve the same sets of problems they're not equally expressive a quick sub by side example we have the value 1 in lambda calculus it's defined as lambda s dot lambda z dot s z if you want to get the value 2 we use the successor function which is lambda n dot lambda s dot lambda z dot s of n s z okay now I know this works and I've tried this several times but it's horrible I would hate to work with something like this every day we've got the same thing in ruby you can say look one is just the number that comes after zero and two is just the number that comes after one and we get to feel very smug about this because this is much more expressive this is a ruby conference not a lambda calculus conference so we get to be the guys with a great language this feeling of smugness is nice but it's also kind of fleeting because it's not going to be long and it comes along and says look just use two that's the right answer all this thing we were doing with number dot new is just a distraction this happens all the time we think hey we can use this really cool thing to solve a problem I mean it confused into thinking this means we should use this thing to solve a problem and I think the reason we make this mistake so often is because we look at these things as systems of rules and we think rules are there to be obeyed we must always follow them and the calculus I gave you some rules for my pure ruby I gave you some rules and you think I must follow these rules but it applies to many things it applies to things like the null object pattern we think these are rules that must be obeyed or solid principles we think these are rules we must follow them or microservices or whatever else and they're not rules that we must follow they're just tools to help us do a job and they might not be the best tools for the job you might be better off rethinking the problem and solving it in a very different way and I do this all the time and I catch myself doing it and I go from thinking hey I'm some super smart developer I can solve any problem in lambda calculus to realising that I'm just the worst kind of idiot I just don't know what's appropriate so I'm not saying you shouldn't care about lambda calculus and that you shouldn't try and build pure OO objects because there is something really amazing about the computational power of lambda calculus and I think there's something really amazing about the computational power of pure OO Ruby I've practised this talk so many times and every time I can rebuild arithmetic just by sending messages I'm amazed by it I think there's something really amazing about the fact that lambda calculus and our pure OO Ruby have got the same computational power I'm saying these things, what I'm really saying is that there's something really amazing about programming I learned a programme a long time ago when I learned a programme it was on one of these I think I said expectrum and one of the ways you learn to programme on these is you buy magazines now you probably don't know magazines but it is like printed out things like printed out webpages and you could flick through the magazine and there would be a programming section inside there and it would have a description of the problem and then a code listing and this code listing is on the right here and it goes on for a couple of pages and what I would do as a kid is sit there and copy this thing out diligently retype it all and if I hadn't made too many typos like I did earlier I would run the code at the end and I'd go well that's kind of cool then I'd go back and fiddle with it a bit tweak it a bit and initially I'd do something kind of boring I'd get it to print out like hello John at the beginning but after a while I would do more interesting things I'd change some of the values to make it work in a different way or change the control flow or I'd take some statements out or put some new statements in well I came to realise there's a few rules here that go over and hide this thing works and once I'd learned those rules I could use them to create this endless array of programmes this is an amazing thing it means I can take these ideas, these things in my head and I can follow the rules and turn them into code I can feed this code into the machines and the machines that add electricity to them and in that moment they become alive and in that moment I become like Frankenstein and these are my creations and it is an amazing feeling and it's the same idea that's to create the most amazing pieces of software today and the same idea that lets it touch the lives of thousands of people and it all comes from these simple ideas it all comes from following a few simple rules and I think that this is part of what it means to be a programmer to have this realisation to understand that the few fundamental relations being true certain other combinations of relations must have necessity follow combinations unlimited in variety and extent this is a quote from Ada Lovelace it was written in raw in 1842 what I find really amazing about Ada Lovelace it's not that she was the first programmer I mean anyone could have done that it's that she realised this over a hundred years before the first computers were built she saw this fundamental truth about computing she saw this fundamental beauty in programming and this power in what we do and it's these ideas that got me interested in programming in the first place and it's these same ideas this fundamental truth about the powerful beauty of programming that mean I still love doing it today my name is Joel and I've been programming for 25 years and this is why I love programming thank you very much


We've spoken in a previous video about general writing principles as well as tips for preparing to write and the revision process for writing, but writing happens in a variety of contexts, each of which requires a slightly different approach. In this video we'll talk about professional writing in action. We will focus on guidelines for effective written communication in business, including things like texting, business proposals, and resumes. First, let's focus on texting and emailing, which have become increasingly common forms of business communication in recent years. Although we use text and email frequently in our personal lives, it's important to first remember that texting for professional purposes should take on a different tone and style. Be sure that any texts or emails sent in your professional capacity reflect that distinction. We should also be on guard to anticipate and head off potential misinterpretation and miscommunication. Text and email are both channel lean forms of communication, meaning the receiver doesn't have the benefit of supplementing your words with your nonverbal behaviors. As such it's very easy for the other person to come to a different conclusion than the one you intended. Finally, be careful not to overdo it with texting and emailing. On one hand you want to be sure that you're not overwhelming the person on the other end with too many messages or messages at inappropriate times of the day. Additionally, it's important that you unplug yourself from time to time. While it can be nice to have the ability to touch base or catch up with work when it's convenient for you, it's not entirely healthy to be connected 24-7. Another form of communication in written form used in business are memos. Memos are typically used for communicating policies, procedures, and other such official business with an organization. It sort of has a mass communication feel in that it's a person or a small group of people sending a message to a wider audience. Whether the purpose of a memo is informative, persuasive, or something else altogether, there are a few guidelines that memo writers should keep in mind. As with virtually all writing for business purposes, the writing in a memo should take on a professional tone. As we discussed before, there are differences between a professional tone and personal tone in writing. Next, a memo should be direct. The purpose of the memo should be made clear right up front and the information should be communicated in a straightforward and concise manner. Papers should also be audience-oriented, keeping the potential interpretation of the reader at the forefront of the writer's mind at all times. You may also find yourself in a position to write a business proposal. Business proposals are documents intended to persuade an audience to achieve a specific outcome that often times proposes a solution to a problem. You may be sensing a theme when I tell you that the first tip for writing effective business proposals is to be professional. It's important to use a writing style that is appropriate for purposes in order to have your proposal taken seriously. Your proposal should also present a fully formed idea. A business proposal is not the venue for brainstorming or floating ideas. Finally, your proposal should be thorough, including any information that the reader might need for understanding and making a decision regarding your ideas. While business proposals generally include a persuasive slant, reports are designed to simply record or convey information to an audience. At the risk of sounding like a broken record, the first principle for writing effective reports is to be professional. In addition, it's important for the writer to know their purpose in constructing a report. Reports are typically related to a specific topic, a specific audience, and or a specific function. Report writers should identify and stick closely to the intended purpose of their document. Finally reports should present information as clearly and concisely as possible. Save your fanciest prose and your $10 words for proposals and other documents. Another common type of professional writing involves creating a resume. A resume is a document that summarizes your education, skills, employment history, and work experience for potential employers. First and foremost, a resume should, say it with me now, be professional. A resume should also be written from the perspective of a potential reader and take steps to make it as easy as possible for that person to quickly understand the information presented. People in a position of reviewing resumes are not likely to look positively on a resume that requires them to do mental gymnastics. A resume should also be easily browsable. On average, people reviewing resumes will spend less than a minute on the initial examination in determining whether or not you are a candidate that bears further consideration. It is critical that the most important information in your resume stand out clearly in even the most cursory review. The final type of professional writing that we will discuss here is the sales message. A sales message is a persuasive message intended to include information to persuade and call an audience to action while hopefully closing the sale. It should be no surprise at this point that the first guideline for effective sales messages is to be professional with all that entails. Effective sales messages should also balance Aristotle's modes of persuasion, ethos, pathos, and logos. We've discussed these principles in previous videos which you can consult for more detailed breakdown. In short though, the message should convey the credibility of the writer, employ emotional appeals, and also provide sufficient logical appeals. Finally, effective sales messages depend on identifying and speaking to the target audience for that particular message. As the old saying goes, when you speak to everyone, you speak to no one. Any sales message should be tailored to the specific target audience for that message. This is by no means a comprehensive list of different writing contexts. Hopefully you're taking away though a few helpful tips for some of the more common types of professional writing. However, the key takeaway, apart from be professional of course, is that all types of business writing require slightly different things. It's important to identify and write for the specific context for whatever circumstance you find yourself as a writer.


Now, you know that it's unlimited and it's all predicated on how much you want to put into it I don't think they're gonna do it man Yeah, I went I went to the bank I talked to them and They said they don't do that anymore and I said well I'm gonna take all the money out of here because this is the only reason why I'm still banking here Lord Ricky crew Hey All right, what's the number to baby net she said that the manager was gonna call me when she got out of her meeting She was with some people right then and they haven't called me back yet. So I'm kind of I'm really pissed. You know what I'm saying Wow Ricky, we are playing phone tag here. Give me a ring back Is that not you? Really? Yeah, so the one letter makes the difference well, I was gonna put it in showing time anyway But yeah, I'm gonna show y'all one bit in there. Yeah, and he just said hey, I'll see a three two can we get in there What are y'all doing Y'all want to be on my vlog Figure out the focus on my camera I just downloaded All the contacts I'm gonna call you that using geo leads with red X It's really easy. Just put the address in Boo and then you know preview and make sure it's the owners around that address Since you want the phone numbers for and then go boom And it'll just download all the others and phone numbers they can find Out of that group And then I'm gonna use the storm guy there with red X to call It's super And you guys can use the link in the description to save the hundred fifty dollars startup fee. It's the greatest You know piece of technology Out there for real estate agents because conversations are in and this is the best part of technology that gets you closer to that Conversation close to their relationship closer to that deal Small rig Okay, what property is it I do what's the price? No, both of them on her over a mill got you man Yeah, what I don't want to happen is us to go in at a higher price and then the same thing happen, you know So that's that's my only worry.   So I'm sure it would be something you get some a couple more speakers You know and stuff you might actually have something that couldn't win it


Alright guys the NEC XM29 is finally finished. I've got the restoration completely done. The monitors put back together and I thought it would be just perfect to pair this with an actual NEC console. So that's what I've got up here is my NEC core graphics console running to RGB through a little dongle that's made by Insurrection Industries. It's just a little pack you slap in the back of your core graphics or other turbo graphics system and it does output an RGB signal that will sync up with this monitor without any extra sync processing. So that's very cool and it looks great on the shadow mask. Kind of something about this style of game and era specifically looks awesome on the shadow mask. Now let's talk about the screen. You're always going to be limited when you're working with larger CRTs and then you might run into some things as far as the convergence in the top corners. That was still a little bit out especially in the extreme portions of the corners and that was because adding additional strips with convergent strips with magnets in them did not help. It would actually make every time something would look worse by adding more strips. So that wasn't going to solve the issue. We were able to dial everything in the center of the screen really nicely so that convergence looked great but the corners didn't look as great. It was definitely a way big improvement. The geometry looks a lot better than it did when we started but back to that convergence issue some of these things were problems where the yoke could have used a fresh reseeding. However, the yoke plastic was extremely brittle inside and I was concerned that too much wiggling and working with the yoked would actually cause damage to the plastic and when that happens I've had that happen before in a five inch pvm and you lose the yoke and the yoke rings they just crack and shatter and unless you have a replacement yoke you're in big trouble because then you'll lose the entire like one third or a quarter of the screen you'll lose convergence completely and it's easier to mitigate on a small monitor but on a big monitor like this it would pretty much ruin it. The settings for geometry and things like that you also have some color palettes they're really simple to get into there isn't a sub menu you simply press the button on here and over across the right hand top are all your settings that are available so the first one is brightness and contrast but if you scroll through them you'll have the next three will all be different geometries that you can use and I would recommend just spending a lot of time working with those because they're not you know they're pretty simple to work through but it's not the easiest process it takes a little longer than it would with say a pvm since you're scrolling through with just those two buttons and there's not an actual number setting when you save it it just goes by like a volume bar almost so it's a little bit trickier to adjust geometry on but it's still very able to do that you can also adjust things like your screen tilts even so you don't have to worry about a yoke tilt on this crt ever it does have a very nice high quality remote that does give you a lot of geometry controls just from the remote not all of them but a lot of them and it also gives you like digoss volume controls there are speakers built into this monitor stereo speakers and then you have the option to go stereo out and one quick thing let's talk about was the fan modification and there was a lot of great feedback on the fan modification and some questions about it so I thought maybe I'd clear things up yeah there's I did discuss things about first off my idea for how thermals could maybe be better and people brought up good points to combat that with saying you know you don't want to bring in air over the components you know you could get around that by adding a dust filter in the back in front of the fan so when it sucked things in you could just have a filter there and then you clean the filter periodically so I think that you could still get around that if you wanted to go to extra step and install a dust filter and then flip the fan around and that way it's pulling in cool air and exhausting it out the top and so that would have been probably a little bit of an improvement I still believe on this monitor now it's still fine the way it is it's just people were really concerned that me disabling the alarms would cause the monitor to fail down the road if the knock to a fans failed now the likelihood of these fans failing is really really low but you can still hear the fans if you get your ear right up next to all the vent holes if you look on the back of the monitor there is still the main vent hole in the back and even though it's covered by the plastic shell you can easily see the fan right next to the input board so if you wanted to periodically go in and check your monitor you could obviously just run a test see the fans are running and even with the fans being quieter you could still hear them if you again put your ear next to it but you can also see them working and you can even see the ones in the top by just looking down or you can since they're exhaust fans you could put your hand over the vent and feel the push in the air so you can go in and still confirm the fans are running and the fans don't have to be running for a crt to work we've seen sony for decades make crt's and they really didn't have any besides some of the really encased commercial crt's for pcs and that would have been like in the 90s they did have a lot of casing and plastic and they would have fans and those other than that they really avoided fans for the most part so you don't have to have them but it does help extend the life of components when you're drawing fresh air on them and keeping them cooler just like when I'm here in the shop if I'm sitting here working and it gets to be 80 90 degrees even just something as simple as putting a single fan pointed at me cools me down enough to be able to make me help continue working so that's a lot of the way these things work with old electronics they're still going to be able to perform that function and heat is really the element of where it starts to stress them out and put stress on the parts and break them down so adding that cooling system is a benefit that I think we could even really go in and study and maybe add fans into some of the sony bvms and pvms and other ikigamis and jvcs that are high end that don't have fans we could put fans in there to blow cool air over those hot zones and that way we can extend the life of the boards and the components in there already and fans are pretty simple to install we'll talk about that but they're also pretty cheap even the best ones are less than 20 bucks shipped and really can make a big difference but that's going to do it for this one I hope you enjoyed the series and more than likely we'll see more of these monitors in the future come in to the shop now that we've gotten one work through and I just want to say thank you again to everybody for watching it the entire series if you haven't missed anything to this point you can go back and look at the playlist documented in the description for the video if you did enjoy it please leave me some feedback or if you have any suggestions leave some feedback too please leave a like if you enjoyed it too so I'll see you next time with some more retro content


Were you ever told that you were gifted? The term gifted usually refers to individuals with unique abilities that set them apart from their peers. Even if you don't think yourself as gifted, you may be surprised to learn that you share some of the same traits. Curious to know what they are? Here are five signs that you are secretly gifted. Number one, you have trouble with languages. Do you often struggle with grammar or vocabulary? According to Boston College professor Ellen Winner, gifted individuals have a unique brain organization where the right hemisphere of the brain dominates the left hemisphere, sometimes even taking over its functions. Since the left hemisphere usually deals with vocabulary, grammar, and comprehension, this may result in an uneven set of mental abilities where language abilities lose out. Professor Winner also noted that over 12,000 students in the United States are both gifted and learning impaired at the same time, with most having dyslexia. One of the best examples of uneven giftedness is Albert Einstein, as he could not speak until the age of three and did not speak fluently until the age of 10. Number two, you are not right-handed. Are you left-handed or right-handed? In addition to what was mentioned, Professor Winner noted that gifted individuals are more likely to be left-handed or ambidextrous compared to the general population who are right-handed. Many researchers believe that parental conditions can significantly affect the development of the fetal brain and key psychological outcomes. Remember how the right hemisphere often dominates over the left hemisphere and gifted brains? The same developmental paths that lead to this brain structure also frequently result in non-right-handedness. Number three, you have immune issues. How's your immune system? You may not think that the immune system is related to the brain, but there is a common factor between them. As mentioned previously, prenatal conditions have significant effects on the development of the brain. The exact same conditions that lead to gifted brains also affect the rest of the body, disrupting the functioning of the immune system. Gifted individuals are noted to have a higher rate of asthma, allergies, and other autoimmune disorders. Number four, you have a strong working memory. How many things can you remember at the same time? Research shows that strong working memory can be a sign of a gifted mind. This is because gifted people often have a greater ability to solve problems in a creative way. They can think out of the box and come up with many fresh perspectives and angles. And while their thought process may look chaotic and uninhibited, their ability to think on a number of different ideas and thoughts at the same time all of the time reinforces and strengthens their working memory. Number five, you have extreme mood swings. Does your mood usually go up and down all the time? Research has shown that creatively gifted individuals are at a higher risk for psychothermia. Mental condition that involves sudden changes between periods of depression and periods of elevated mood called hypomania. During periods of hypomania, mental recollection may become sharper, emotions intense, and stamina virtually unlimited. An investigation of high school students even showed that those with the most hypomanic symptoms also had the highest degree of creative achievement. Did you relate to any of the traits mentioned in this video? Let us know in the comments below. If you found this video helpful, be sure to like, subscribe, and share this video with those who might benefit from it. And don't forget to hit the notification bell icon to get notified whenever a psych to go post a new video. The references and studies used in this video are added in the description below. Thanks for watching and see you in our next video.


Today we are going to discuss a very important topic, stage 4 colon cancer is curable. Ever heard stage 4 cancer is being curable? No right? Yes. Stage 4 colon cancer is a curable disease. So a cancer of the colon that is the large intestine or rectum with stage 4 disease which means that the disease has spread from colon and rectum cancer to the liver or lungs is curable. Certain selected cases in which limited disease has gone into the liver or into the lung where surgery is possible we can cure stage 4 colon cancer and rectum cancers as well. So how has this achieved? It has been achieved as a result of good chemotherapy agents, good radiation methods, good radio frequency ablation methods, good surgical targeted surgical methods wherein we do the surgery of the colon we remove a part of the colon and then in the same sitting or in a stage procedure that is the second surgery we remove a part of the liver also or maybe lungs. It is possible because the biology of the disease of colon cancer is different from all other cancer. So not every cancer stage 4 is same. Generally after surgery these cancers are followed up with targeted therapy which means that we just give a target chemotherapy agent which targets only the cancer cells and do not kill the normal cells of the body. Because of such precision oncology which means that we are performing precision surgery targeted to only liver, lung and colon, targeted chemotherapy which targets only the tumor cells in the liver or the lung and targeted radiation therapy like stereotactic radiation therapy or Cyberknife. We are being able to achieve cure for selected stage 4 colon and rectum cancers without causing much damage to a normal human body and these patients are doing fairly, fairly well. Our experience with treating stage 4 colon cancer has been good. We have seen very good promising results with latest advancements in surgeries, latest advancements in medical oncology, chemotherapy and latest advancements in radiation therapy as well. So if you are near and dear ones are having colon cancer or rectal cancer even if it is stage 4 there is no need to worry. It is curable. Thank you.


from the Dairy Girls show that needs no introduction but there's a taster display that is going to open tomorrow at the visitor's centre where you can go along and give feedback ahead of the launch of the wider exhibition and let it that Dairy City and Sturban District Council Tourism Manager Margaret Edwards joins us now. So Margaret this isn't a full exhibition it's a taster event but people can go along and maybe get an idea of what to expect and then you're looking for a bit of feedback is that right? Yes that's correct yeah we thought it'd be a good idea to put it out there now so people get a chance to come along get a flavour of obviously what the exhibition is going to really entail when we open in the summer but really wanted to kind of wet people's appetite I suppose with something a little taste of what was to come and really use this as an opportunity to engage people around the whole idea of what the Dairy Girls experience could be and what we should really be looking towards you know this is very much a pilot I suppose and trying to test the waters to see what the level of interest is in developing something then that would be much more of an experience. And you say a Dairy Girls experience and well the plan is to make it that more than just an exhibition there's going to be a bit of an interactive experience as well. That's correct yes so we're very fortunate that we've been able to work along with Hatrick Productions so obviously the company who made the show and they have given us access to all the various props and things that they used obviously particularly in the last series so we've got access to that so we'll use some of that obviously in situ in the Tower Museum to kind of create that kind of physical space but also adding to that then with the use of augmented reality so whenever you come into the exhibition space in the Tower Museum you'll see physical elements obviously to show you that perhaps you're in the Quinn kitchen and you'll meet Ma Mary and her sister and Grandaddo and then but also within that space there'll be kind of virtual spaces as well so we can actually then go into those spaces using an iPad and you kind of click on various props and that will then give you much more of an insightful experience once you're in that space digitally. I can see this already being a huge hit for hen parties. Taylor made. It's great to see the success of Dairy Girls and already I mean without this exhibition it's bringing people to the city and they want to see some of the streets where the Dairy Girls you know walked and some of the sights and so on. Absolutely I mean I think certainly the staff at the Dairy where the office of the taster display will be tomorrow will tell us they get a lot of people coming in a lot of tourists coming particularly for not obviously not solely just for Dairy Girls but they've been kind of prompted to come to the area because of watching Dairy Girls and we know some of the stats will show that over like over two million people around the world have watched Dairy Girls between it being on Channel 4 and also of course on Netflix as well so it's reached out to a very you know wide global audience and then we'll try and capture some of that in the exhibition as well and people come already to go get the photograph taken at the mural there beside four side just on the side the walls and there are various things people can you go and have an afternoon tea that's kind of themed to Dairy Girls that you can go in a walk into her that's kind of it takes you around as she said some of the locations so already there is something there that people can go and experience so we're wanting to see then if we can really add to that with this exhibition. Yeah well it's all inevitable given the huge success of Dairy Girls over two million people having seen it and you talk about you know murals and themed teas and now the exhibition it's all great because I suppose for visitors you kind of have to give them what they want and they're coming to Dairy for so much more but a lot of people will be drawn to the city now by Dairy Girls. Absolutely and I think evidence would show that those kind of shows do draw people and you know the likes of people going to New York maybe to visit the friends experience because obviously they've been captured by the show or obviously people going to have some kind of father-tale experience you know on Craig Island whatever that might be it was not a dedicated place there but those shows definitely do capture people's imagination and they do in gender quite a lot of interest. The earlier that I think was towards the end of last year and I visited Dairy and their partners and done a goal they ran a competition around Dairy Girls and one of the prizes was to come to the city because of Dairy Girls and that actually was won by somebody in America who's now coming now to the city I think sometime over Easter because they won that prize you know so there's certainly a lot of interest around the world and it definitely has something about the I suppose just the content of the show the slightly irreverent humour within it the characters and cells I think there's something that other people can really I suppose latch into and really kind of associate with to some extent especially those of us who are from Northern Ireland it's very much about that whole experience of what it was like here in the 90s. Yes. And we also have of course the anniversary of the Goodfellay agreement coming up in April and that's that was a big part of the last series you know and we'll have that within the within this particular exhibition as well to kind of pick up on that particular anniversary. But the whole tone of the show as well Margaret you know it would lend people to to warming to the city and to the locations that feature in it so tell me about the Taster Exhibition and then the Fall Exhibition when when is it likely to open? Well as you said the Taster opens tomorrow in the Visitary Centre in Waterloo Place and what that will be really is we're going to put a few of the items that we're going to have on display ultimately in the big exhibition in the Termsium in Visitary so outside you'll see a graphic saying you'll come and see come on and come on to hear the crack as it were and come inside and the call to action is come in and have a look and we'll have a few items from some of the characters some of the clothes of the characters wore some of the clothes of Manmari wore a uniform from one of the characters will have Aaron's diary there as well and we'll also have this polling box because we really want to kind of capture into that idea of what was happening towards the end of that series when they were all going in to vote to obviously on the Goodfellay agreement because that's very particular now as we approach the anniversary so we'll have a box as well with the original polling station sign from the show to try and encourage them people to give their feedback as to what they're saying when they come into Visitary so that'll be there until the end of June and then we will open up the main exhibition then we'll open at the start of July in the Termsium and that obviously will have more of the content and we'll take on board some of the comments that have been made as well that might determine then what's in the full exhibition we'll do our best to do that in the afternoon because obviously we'll work with what we have in terms of what is available to us from the show but we really want to encourage people to give their feedback on the show and who maybe they identify with if they identify within the characters themselves perhaps as one thing and also maybe to allow over the time to give a brief reflection or even just comment on the Goodfellay agreement we don't get into the heavy political analysis of what has happened over the last 25 years or how you know we're not that's not what we're about but we want to just recognise the part of the last series of Derragers and we have all the electoral cards for each of the characters that were made obviously for that particular scene and we know it's a big part of how it ends so we really wanted to ensure that we kind of got something in there that people could just say you know something about that. No spoilers because I actually haven't seen that episode yet. I'm sorry. But I actually haven't seen the episode yet so I'm looking forward to it. But listen good luck with the Taster event and then the exhibition when it opens in full in July. Margaret thanks for having a chat with us. Thank you very much.


Hi and welcome to EsmerConf 2022. We can't wait to get started this week and you can find out all of the information about the conference by checking out this website link here, by following us on Twitter here, and by going to our YouTube channel and subscribing here to make sure that you don't miss a thing. See you this week.


Did you know that the adult brain has approximately 83 billion neurons plus the frontal lobe is the last part to develop in adolescence which may explain why our young people in our schools take risks, find it difficult to be empathetic and are a little bit more erratic throughout their adolescence years. So in the link to this video you've got this cartoon which will explain shortly. Adolescence so the young people in our schools is actually defined from ages 13 to 25 years old and when we are born we have the most neurons at one single point in our life and then over time they start to prune away and fade and we're left with approximately 83 to 100 billion neurons. That all depends on how well you look after yourself, how much alcohol you drink, those kind of things and these neurons are the architects of memory and learning and why I think it's important to know well neurons connect through synapses, they form the basis of all our thoughts, our memory and our experiences and we can learn a little bit more about the anatomy of the brain to improve how we actually approach our teaching. This is something I've been doing exclusively for the last few years. Through neuroplasticity our connections strengthen with use, shaping our ability to learn and to adapt and I believe teachers should tailor their teaching to harness the incredible kind of potential that neuro science and neuroplasticity in this case can yield in all our students. One thing that I'd recommend you do if you incorporate brain breaks into your lessons so not a free-for-all but a curriculum quiz or something like that with engaging stories you can boost synaptic connections and enhance learning in your lessons today very easily. So storytelling, low-state quizzes, reducing that stress and increasing that retrieval. So in this cartoon you've got a little biology lesson to help you understand what one single neuron looks like. I hope it helps.