So yeah, I'm John Brandt and for about 25 years now I've been building tools to refactor code or migrate code transform code I started out building tools in small talk for refactoring small talk then I went to migrating small talkies in the same tools and now I migrate pretty much any code to other code So there's many ways to migrate code and I have this is kind of my strategy So first thing you have to define the parser for whatever language you're going to migrate from a lot of times We already have the parser, but sometimes you don't so Define the parser. The next thing is you create your transformation program that's going to basically run and convert all your code to the new new language and One of the final things is a lot of times we'll have to have a compatibility layer Because there's features in the old language that aren't available in the new language and we'll need to support those now smack itself just Handles the first two the compatibility layers all up to you but smack can help you both on the first two and The good thing about this migration strategy is that Essentially the developers can continue their normal development using the old system We so really reduces risk as long as you know, they They can develop I can go in and define the rules do all that work and So you're not stopping development if I fail all it is is you know I I didn't you know they can still use the old system The bad bad part about this and the reason why most people don't like these migrations is it keeps the same design So if you had a you know a poor program before you'll still have a poor program after This strategy works fairly well for probably a hundred thousand line programs and up Anything smaller than that you're probably getting into overhead that you might just rewrite it by hand or use some other method Most of the projects I've done have been in their range of one million lines. I've done probably From a hundred thousand up to six million or so so smack itself is basically just a standard parser Generator kind of like long lines of yak or bison or something like that It's an L a lr parser generator and lr one parser generator. It supports the GLR the generalized lr so it can do ambiguous grammars it can also generate ASTs and It does some pattern matching So here here's a basic grammar for a simple expression, you know, I guess it's just a Just simple addition Where you can have number plus a number you can put parentheses around it now all the code If you remove out all the underline code, that's just the grammar for that the underline code is for defining the AST so you can see like the first thing is the that percent root expression Essentially that that defines you the root of the hierarchy for your AST nodes suffix is basically the suffix we're going to put on all the nodes so then In each one of those we can define the variable so if we have on the first line an expression or the first production expression It says we're going to have for that addition expression that will have a left variable that has holds the left expression The operator variable which will hold the operator token, which will be just the plus then we'll have the right Variables will hold the right expression and we'll create a binary node for that Similarly like the the second line we have a left pram and right pram However, we do not name the expression in that line in that case smack will Figure out that what you're really wanting to do is add the left pram and right pram to whatever that expression returned and Since it sees that the type of that node is going to be an expression it can actually figure out that what you want is a Collection of variables with the left prams a multiple or collection of left prams and a collection of right prams on each Expression node so from that grammar we generate essentially these three classes With expression node being the root we have our left prams being a collection of parentheses or collection of parentheses Tokens right prams being a collection of the right parentheses tokens Then and all nodes will have that and our binary node will have our left and right with the operator and number node will have the value Now the transformation programs really where all the work Really takes place in the project because there's where you're writing your rules to convert everything and for the smack It has basically a set of rules It's not a set more it's an ordered list of rules They apply it in order and you can define some methods and properties that you can use for the in those rules So there are essentially two different types of the rules There is the declarative pattern rules and there's the imperative coding rules Imperating coding rules basically gives you small talk. You can write whatever you want It doesn't have to do anything perm the migration you can write stuff that loads files or whatever Just let you do about anything Generally those type of rules we use for a generic or a general syntax So if you're converting a method or a class, this is the one that will convert all the syntax for the method or class A lot of times in those imperative rules and then they can also do some control flows So if you want to process one section of the AST before another section of the AST, that's what they handle Now the pattern rules A lot of times we use those for things that are one off So you're in the middle of a file You notice this one expression needs to be treated differently than every place else. You've had that expression There might be something special in the context so you can write a pattern rule just for that one location and The good thing about those are they're fairly quick to write because they look exactly like the code and You can transform them that way So in the pattern rules essentially the search expression is just a normal Text string like you had to have in a it from your program except that you have these patterns patterns in the middle of them and On the search part it's it gets parsed into an AST on the replace side The whole pattern is just a string that gets macro expanded in order to support pattern matching in our Parcer we have to define first that needs to be a GLR parser Because what we do is every place you have the pattern in there. We have to parse all possible All possible trees with that pattern in there So the pattern could on our example here pattern could match a Binary node, maybe or a pattern can match a number node. We might have to parse, you know all possible interpretations of that So we need to GLR parser. We also need the pattern token Since you know various languages have different grammars You know, we need to have something that's That's Does not conflict with the existing grammar. So I know most languages do not do not use a back quit or back quote And so that's what we normally use. So here we have a pattern token is going to be a back quote followed by anything It's not a back quote ended with a back quote There's languages like JavaScript now that's using back quote So you might have to do something different for those type of languages and that allows you to Specify all you want So using that we can write then expressions Like the one you see there where you have a plus a or the pattern variable a plus the pattern variable a is going to be rewritten by whatever the pattern variable was a times two and Basically that pattern variable can match any AST node so it can match a single number can match a Binary expression So here's our example or an example. We have original code of three plus three And we're going to search for the pattern a plus a So what we do is we parse both of those So on the left we get the standard AST on the right we get an AST but with the pattern variables in there so we have the anything node in there and Well, we run unification across that and we get the pattern variable a equals three Now if we add three plus four we'd run unification unification to fail and so it wouldn't match Now whenever we have a replacement replacement works a little bit differently. It's not we don't parse the expression We treat it as a string macro instead what we do is Whatever got matched we just delete that and replace it with whatever that string macro expanded out to This I think this works fairly well whenever you're converting from one language to another Otherwise you'd end up with two different parse trees from two different languages trying or in the same tree essentially two different Parse nodes from different languages So that's the reason why on the rewrite we don't write rewrite trees. We were rewrite with strings so Essentially take the string delete it and take the replacement macro with the pattern macro put in the Whenever we have the pattern variable in there We'll we process that that subtree and whatever it returns we put that in the macro and replace that So in our example, we had the replacement we wanted The pattern variable a times two And we matched with the pattern variable a equal three so replace everything with three times two so here's a couple examples from some migration some Delphi code that we did the first one as One of these kind of One-off expressions you you go through and you start to migrate the code and you notice that oh some places they use this for loop which the ending condition was minus one the normal for loop that Rewrite would have been less than or equal to C minus one But we could change that to be less than and make the code a little bit nicer So that's the type of one-off expressions that will will do in the pattern matching to make the code a little bit nicer whenever it's converted the second one is actually some code that in .net you're not able to set the The minimum size or the minimum height of a window by itself. You have to set the minimum size which includes the height and the width so what we do is whenever on on that a Slash forms t custom form what that's essentially saying is we're gonna match some something we'll call it a But it has to be of type t custom form. So if you're doing it from some other thing It's not gonna match. So the type of whatever a is has to be a t custom form So then the code rules so code reels and smack are essentially just any small talk expression for the search part What we do is we have an AST node that must match then some code that That returns if it returns to you then look it's gonna match replacement or generally Either in three different forms. So they're like edit expression so you can edit the edit the methods or edit the source code control flow Where you tell it which nodes to do are just generic small talk code where you can load files do whatever you want edit expressions, so we try to make it so that Create a language so it looked more like what you would think of whenever you just describing what you were wanting to do So you do things like self replace some node with some text For replacing you know If you want to move one node before another you can do self move this node before another node So we try to make it like like what you would think if you were editing What you would tell somebody to do if they were sitting down at editor Same with inserting deleting Control flow normally the way smack handle stuff is it go starts up from the root of the tree and processes down until it finds a match and On these code rules once it finds a match unless you tell it to do something it's gonna stop right there We can change that by Telling it either you know you can process the children of this node You can continue on processing this node. So if some other later rule matches the same node you can Process whatever so like if you wanted to process the tree bottom up instead All you'd have to do is write a rule it said self-processed children self continue and that would change from top down to bottom up diversity so here's a couple of examples of Those type of matches first ones from Delphi where we just take a statement block as it began an end and We do replace to begin with the opening prints or opening curly bracket Place the end with the ending curly bracket and we continue process the rest of that tree The second one's from some power builder migration or migrated to C sharp and they have these function objects and in the function object we we need to Check whether we check the type type node, but the type nodes can be anything any type of Power builder type so we also need to check whether it equals function object So and whenever we do that we set a couple of properties then we just replace the whole match with a Partial beginning of partial class So that's pretty much it for the type of rules that we can we can do doing smack One of the things I have done though is to add some custom tools in there So here's for a custom debugger that we have for Debugging grammars, so if you debug your parser One of the things you know if you have a table generated parser a lot of things are just like numbers in your table So it's really hard to debug What what we do is We store off kind of the the meaning of those tables or the Managers and give it symbolic names. So here we we have our parsing some JavaScript code and In the top left we have our stack of What's being parsed so at the bottom level we're parsing that you got the module list then we have the bar token and then some the variable declarations and The comma right before that so we're right at parsing. Let's see if I can Eat that there. I can't Do do small but we're parsing what's selected there in the the bottom or in the middle and We have that's our look ahead so in the top Top right here. We have essentially all our possible actions for that look ahead or for that state that we're currently in and so we can If you could read the it's going to match this identifier and it's going to this shift action So the next thing we're going to shift that identifier a lot of times what will happen is if you have a parser error You can open up the debugger and you can see immediately. Oh, we have this type of token and There's no action for that token and that's the air so you can see immediately of It should you should have an action so you might have missed a semicolon or whatever earlier on so That's the type of stuff we're going to look for The GLR is will just list all those states and so if it's doing multiple parses and the grammar we can see that it's actually ambiguous grammar, so we have multiple different paths through there, so we have the section here which shows the input that we're parsing you can actually Select someplace in the middle of the input and so you step the cursor and it will parse to that location The scanner state is here normally unless you're It will always display like the scope so the smack parsers can have multiple Scopes that the scanning in And if you're in the middle of scanning it and show some more detail But and the bottoms the standard debugger information that you would see Normally, it's not that Interesting so When we match we also have preview support So you run run a rule say preview and it'll bring up two different windows like this or two different views with the input on the left and Resulting code on the right But you can do is put your cursor anywhere in there you could select some stuff so here what I did was like put the cursor like in here and When when I do that it tells me which rules change that piece of code and If then if you select a rule it will then highlight the sections on the right of every little piece of change so here I Selected here for this and it told me this event vent declaration node rule change that text it put in put in that that this piece added a semicolon there and added the Ending print see on the left it just highlights the node that actually matched Now from this I could actually Tell it to go to the rule directly from here. I can also tell it to bring up the debugger So I have a real debugger which has Essentially the stack of the rules up there on the top left the rule that's being executed We have the original code and the ending code and We can step through there. We can also scroll down here and run the cursor or whatever This down here is just some inspector stuff But so it's all these tools that makes it a lot easier to get to where where you need to be for finding out Who changed this and why you know When it's not performing correctly So with that I'll open it up for questions Yes Parts Yeah So the what he's asking is that how do I start from any place in the grammar and Because you can't just start from the start node because these patterns can you know be any node down below the way I did is start from all of them and Most of them will fail you know immediately because they won't be able to shift what you're looking for and The patterns are fairly small, you know, it's milliseconds essentially no Yes Conflicts So how they resolve conflicts between overlapping patterns what I do is actually take all the possible patterns So I will so you know if this this expression in this pattern expression Potentially be you know five different Subtrees, I'll try them all for matching any other questions


Hey guys, Vladimir here with desktop mix. I thought I'd do a tutorial showing my design approach and techniques I use to create this spur gear assembly here. So I've got a few projects in mind that are going to be using this mechanism and I thought I'd start with sort of this basic approach here on how I designed the spur gear and the rack here and my approach to getting them to align so perfectly. So in this video, we'll take a look at that and in the next video, I'll show how I was able to apply the motion you see here using joints and motion links. So all right, we'll get started. And first thing actually I want to show is that I approached this design using components. So here we've got our base and our spur gear and in our rack here. I think you're going to find this model very fun to design and 3D print and also highly educational. Let's jump right in. We'll begin by creating a new design and here instead of starting with a sketch, we're going to go ahead and start by using a gear generator right under the utilities menu here and we can go to add-ins and then script and add-ins. We'll get this dialogue box and if you scroll all the way down, we'll see our Python spur gear generator. We're going to click run and you'll get this dialogue box here.  I'm no mechanical engineer here and actually my approach to this was just to kind of play around with the numbers and see what happens, sort of a trial and error here. So the way I started is I looked at this pitch diameter and I have a pitch diameter in mind of the size of gear I want to make. So I started experimenting with the numbers here to see what affects that parameter there. Now you can't directly change pitch diameter, you just can only affect it by changing these other parameters. And I found that the two that affected are the number of teeth and the module. So number of teeth 24 sounded good to me, module. I brought that down to two and that went from a 300 and something pitch diameter to 48 millimeters. All right, that looks good except I've got this sort of message here and I can see my okay button is grayed out. So let's look at what that message says. It says the root fillet radius is too large, it must be less than 1.18. No problem. I could make that happen. The root fillet radius is going to change that to 1. Now the rest of the gear thickness, you can make that whatever thickness you want. I'm going to leave it at 12.7, not sure if that's sort of a default gear thickness or what. Whole diameter, I'll just leave it the same as well. You can always change this by creating a sketch and extruding anyway. But I'm going to not complicate things, leave everything else as is and click okay and there we have it. My gear right there on the origin there centered on the XY plane in this orientation. I can move it if I want but I'm just going to leave it as is. And also one thing I want to point out is that came in as a component. So you can see the little component symbol there and if I expand it you see you've got your own bodies and your own sketches. The cool thing here, if I go down to the timeline and I click the little plus button, you can actually see how this component was made with that Python script. So here if I just walk through the timeline, we've got a couple sketches there, an extrusion, a second sketch here and this sketch actually shows the profile that was made to create the tooth of the gear. So here we see it's generating a bunch of spline points to create that profile and then the next item here extrudes it up and we have a fillet and a circular pattern and then our final sketch here shows that pitch diameter circle here at 48 millimeters. So I just wanted to show that here just in case you were curious of how they made this and you kind of wanted to see an approach on making your own. Okay, that's that. I'll collapse that timeline there and now we'll create our next component here, which is going to be our rack. To do that, I'll click on the top of my browser here, select new component and give it a name. We're going to call this one a rack and then we're going to orient to a top view here as we're looking at it from our view cube orientation. And I'm going to right click, go to move, copy, I'm going to select the translate option here, move object is set to bodies, I'm going to select the body and I want to move this down a certain distance. Now how far do I want to move it down? Well this is very important because this is what's going to determine whether the two gears mesh or in this case the gear in my rack. So the answer to that is you want to look at what that pitch diameter circle is here. Let me cancel out of the move copy for a second and it's very faint but if we have it turned on, even though that component is not active, we're in the rack component, you can see it right there and click on it. It's that dashed line here and we can see the diameter is 48 millimeters. Alright, so that tells us that we want to move down 48 millimeters because anytime you have two different gears, no matter the sizes, as long as you get that pitch diameter circle to be tangent, the gears will mesh. So again I'll pull up my move copy by right clicking, I'm going to change this move object to bodies, selection is going to be my body here and I'm going to choose the translate option, create copy, I'm going to make sure that's activated or enabled and I'm going to move this down, I can just go ahead and type it in right here at negative 48 millimeters and I'm going to click OK. Now I'm going to go back to that spur gear here, I'm going to activate that component and I'm just going to rotate this so that it looks correct. The important thing here is that this bottom gear that this tooth over here is going to be facing straight up, but just so that it looks right, I'm going to right click, go to move copy and I can rotate this by clicking on the body here, make sure I have body selected, my move type is going to be rotate access of rotation, I can select any one of these circles here, I'll go with that inner circle and now I can start moving this to give me a rotation. Now I can eyeball it, but you don't really want to do that, you want to be as precise as you can get, like I can see that that kind of works. So we want the exact number here and how do we figure that out? Let's back up for a minute and I'm going to explain this because to me, this is something I find really helpful, so I'm going to go under the assumption that you may find it helpful as well. Now you may be a math whiz but not all of us are and I am certainly not one of them, so I have to kind of think of the rational steps to slowly step my mind through how I can approach this and so that it makes sense versus just like, oh what's the formula do this because I find memorization to be useless. Okay, so the question I need to answer is what is the precise angle I need to move this? The great thing with Fusion 360, even if you're not kind of sure of the math, you can just figure it out by measuring. So let's go ahead and create a sketch.  So basically what I want to know, what's the angle to move this gear one tooth over? All right, so what I can do is project in two points. I'm going to hit P4 project, specified entities is selected and I'm going to click on two corresponding points on different teeth. So this point right here, if this tooth has moved all the way over one step it would be the same point here. I'm going to click okay and I'm going to draw a line from the center origin here to that first point and then draw another line to that second point and if I hit D for dimension I can click on both lines and I can see that that is 15 degrees. Perfect. That's all I needed there and the other way, if you just want to use math to do this, you can say well okay, if I take 360 degrees, which is a full rotation here and I divide it by the number of teeth that should get me that same angle, right? Because you take that angle times it by the number of teeth, you should get 360 degrees. So in that case we can do the math. I'll take 360 divided by 24, which will equal 15 degrees. So perfect. The math checks out. Wanted to show the two approaches there because sometimes we can just get overwhelmed by the numbers in the math but you know if you just kind of rationally step through it and just think of the problem and use the tools and fusion, you can work out the steps that you need to get there and it's okay and it's perfectly fine if you just have to kind of measure it first to understand it and then arrive at the whole, oh, it's just you know, 360 divided by a number of teeth. That's how my brain works. Okay, so I'm going to click finish, sketch here. Okay, now that I know the angle I need to rotate this, I'll right click, go to move copy. Again, move type is body, selection is going to be my gear, I'm going to choose the rotate option, select that inner circle and I can start twisting it. Now remember 15 degrees, if I do 15 degrees here, it's going to go one full rotation, which is really not going to help me. I have to take half of that to get it to go in between the two teeth there. So half of 15 is 7.5 and enter and there we have it. Okay, a valid question here would be what do I want a little clearance here between the teeth so they're not, you know, grinding? Yeah, you can do that. So instead of moving this 48, maybe I would move it down 48.2 millimeters, give me a slight clearance. But to be honest, I was curious and just tried printing it out with no clearance and it worked fine. The gears weren't getting stuck or grinding. So I'm just going to keep it as is here. But remember, you always have the option if you need to, to space that down a little more to give it a little more clearance and that would probably start with like 0.2 millimeters. Okay, I think I'm going to stop there for now. I can see that a full tutorial of the entire assembly is going to take quite a bit longer than I anticipated. So instead of making one really long video, I think I'll go ahead and break this down into a multi-part series. So next week we'll look at creating or jumping into that bottom gear there, that bottom spur gear. And we're going to isolate this one tooth here. It's the only one that's facing vertical, right? So we'll look at isolating it and creating a rectangular pattern of it so that we can create our rack here and also talk about the math involved to get the spacing just right. So stay tuned for that. I'll upload that video in a few days. In the meantime, if you enjoy this type of content, make sure to check out the additional resources I've linked below, including links to my online courses. I also do a weekly live Fusion 360 class that you can join. Or if you simply enjoy this type of content, consider becoming a Patreon member. All right guys, I will see you in a few.


Ravi you played Olga Giriya and you won valuable point for your team How did it how did it go today against Olga? Yeah, it was pretty smooth and Yeah, I don't know we won that we won the tournament. So feel good. Yeah. Yeah, and what about the game itself? What what actually happened anything turning points? I didn't really know. I mean, I probably just out-prepared her a little bit and I Mean it felt smooth at the time like maybe I'll analyze it afterwards in it she had some ways to play but yeah after she took on F3 Her position was probably a bit more difficult practically Yeah, I don't know Smooth game I think you had a sort of a tournament of two halves really didn't you had five draws And then suddenly all started happening for you. Well, yeah, but I played better in the first half actually Yes, when we talk the last time you said you missed all kinds of yeah, so I was playing nice games in the first half of the tournament and The second half has been a bit edgy, but Yeah, overall not too bad. Okay, let's look at the game We have a Rila Pez position here and blacks just played Bishop g4. What did you do next? Yeah, I played Queen one here Well, it's a bit weird because C3 Initially instead of instead of C3 you can play like Knight Bd2 So I guess this is a bit of a sideline and I saw she had some games where she played Bishop C5 instead of Bb7 But she played Bb7 here and I was already annoyed because I mean I Prepared this and then I was sitting the ball thinking I can't remember anything But I knew after Bishop g4, Queen e1 and here I think the best is maybe Knight c5 Okay And okay, I'm probably wrong, but I think this is the line takes and Knight e6 Right, and I think Queen d2 might be the move here. Queen d2. Well, that's what I was gonna play It doesn't even look right, I don't know. This is what I remembered But okay, she took on f3, which is yeah, yeah, which is what that would have been my first instinct knowing nothing about Yeah, yeah, yeah, yeah from this that her she has problems on the light squares now So she played Knight c5 I think Queen d7 might be a tiny bit more accurate because I have to play Queen e2 and then she goes and Then if b4 then maybe she has d4 Right. No, sorry. I'm being nervous. It's completely right. I can just take off the phone. Yeah I put a rook on pre-sphere So where are we, but she played Knight c5 straight away. Yeah Knight c5 Here it just felt like this felt right before Knight e6 f4 Like my position just looked nice Uh And like if she castles for example, then I have f5 f6 probably yeah Maybe just look quite nice for white, doesn't it? Well, yeah, if she castles maybe just like Queen e2 even Because f5 f6 is a threat now So she has to stop it. So she played g6. I guess somehow she wants to go like Knight g7 Knight f5 But everything takes a lot of time Yeah, I mean having never seen this position before I've gone off the idea of taking on f3 now because it looks kind of nice Yeah, it just felt pretty comfortable um Yeah, because she played bishop f8 here. So she wants to play like knight g7 knight e7 knight f5, but It's very artificial, isn't it? Yeah, and even if she does get that, I mean she got it in the game, but it's feel felt bad So I played a4 because it just seemed Natural uh rook b8 will be at you takes takes takes and king h1 Yeah, I wanted to make something like bishop d3 work Uh, because I thought I should be winning here Well felt nice, but queen h4 was a bit annoying Okay, um Obviously I can't take she can take would be five Right um and if queen f3 then Just I guess 97, but I thought I could get a better version of the game and my king h1 I just thought it stood better on each one.  I was like I just need to play a move. Um Queen h4 launches into the Yeah, I mean she has to like like she has to find some counterplay queen f3 97 Yeah, I thought this was well what I did now was nice with this and f3 Um, just because now her queen's completely out of the game Yes, and I can play queen g4, which is what happened to knight f5 I mean knight f5 It's very awkward for black because you played you played queen h4, and then she went queen h6 I thought you would play this Ah, okay. Um, but I was wondering I did see this position and Is it bishop h6 or something? And queen g4 Queen g4 you still play queen g4 Ah, I see, yeah, and then I'm kind of learning to take an f5. Let's look at that. Yeah So you are threatening to take an h5. Yeah I don't even have to do it right now like I can just play knight e3 next Yeah, okay. Um So all of these moves happened and the queen disappears backwards. Yeah, she hasn't got much play now Yeah, so I seem this was her idea Just to kind of get a grip on f5. Yeah, but I can play like knight e3 And if bishop e7 then I'll probably take and take A good knight c2 That looks pretty nice Okay Yeah, I don't know Well after yeah, after queen, I mean I think she's already lost Like I didn't really know what she was doing Yeah, I mean I I saw the position where queen disappears into the Into the king side Yeah, because I can take on f5 But I just thought why Yeah, just develop pieces. Yeah So you play bishop t2. Yeah h5 gets played And then It looks like one of those quizzes, you know, how did the queen get to h7? Actually, that's quite funny Um Yeah, I mean it wasn't great. Yeah, I'm I just kept making good moves. I guess like yeah, I should be through c6. It's very awkward. Yeah c6 knight c2 And now bishop h6. That's a bit late in the day for that. No, isn't it? Yeah, now I decided to change everything. Yeah, and knight d4 So the problem is that like her bishop looks good Mine looks bad, but her pawns are really weak because my bishop can defend my pawns, but she doesn't have a bishop to defend hers Because they're on light squared Yeah, so they they came came off queen g6 at least she's gone out of jail slightly, but Well, yeah, she maybe wanted to keep the pawn. She would play like bishop f8 But okay, it looks awful after a k7 or something. Yeah Yeah, yeah, like I'll play rook c1, rook c7 c6 will probably fall coming around this way on basically Yeah After queen g6 and g6 Which one happens? Queen, yeah, I think I think her idea was to play this But I can just take And like it's made. Whoops. Yeah Like and then rook a7 next Wow Wow, so Yeah, maybe that was her idea, but yeah, she saw it. So it doesn't work that big floor in it. Yeah So as played But okay after king f8 Okay, it's already lost like rook a7 um This yeah, if she played bishop a6 I was thinking of queen f6 maybe Okay, because then her bishop's a little bit trapped, but okay, it's there's no point. I maybe it's better just to go Yeah, after sorry after bishop yeah bishop h6. Maybe it's better just to go back to h4 and then to g3 Yeah, right, but yeah, she played rook a7 Yeah, okay after rook a1 Queen h6 takes takes it's already lost after rook c7 Um and rook a7 it Yeah, let's just look at a couple more moves rook c7 king g8 And I think that's I'm getting there now. I'm going to rook h8 root f8 rather Yeah, my plan is to play rook a6 and take on c6 But I just thought I might as well put my bishop on g3 and king on g2 first Time control bishop g7 bishop g3 so we can get this a bit further up Okay, six closing in on cc4 This is all a bit sad now, isn't it? B8. Yeah, let's just have a look at that Yeah, things are just dropping off and that's the end of the game pretty much, isn't it? Yeah, I'm An offset. Yeah, I just take on b5 and 25. Yeah. Yeah, okay. Thanks so much. Cool


If there was a book that revolutionized how I think about reading and the power of reading, it was Ben Carson's Gifted Hands.  I started to give myself to reading a little, just to pass the time. I would go to this small library, owned by a man in a small compound. That was where I found Gifted Hands. As soon as I read the book, the story so captivated me, I started to take reading books seriously because I saw a man whose life was launched into a whole world of achievements simply because he discovered he could learn anything with the ability of reading. In today's video, I will be sharing with you 5 lessons you can learn from Ben Carson's Gifted Hands. If you are new here, subscribe to this channel so you don't miss other interesting videos like this. 1. Successful people don't have fewer problems, they have determined that nothing will stop them from going forward. If you haven't read the book or seen the movie, here's a clip. Ben Carson was raised in a poor home by a single mother at a time of severe racial segregation. He was a troublesome kid and had it rough. His poor mother, who had to work several odd jobs in some white homes, had to labor to take care of him and his older brother. Things were not going good for them and Ben Carson at the time wasn't making things any easy. Before we continue the story, here's the thing, those who succeed don't always have it easy. You don't always have a few problems, in fact, they often have much more. I have found that the higher you will go in life, the more your problems will be and vice versa. So, if you're inclined to always run away from problems, you're reducing your certainty of achieving great success. Your problems will not even be fewer because you have succeeded. With great success comes great responsibility. 2. The more you read, the better you read, the more you enjoy reading. If there is one quote that stuck with me over the years from this book, this is the quote. I never forgot it ever since I read it. It has also helped me to make a lot of decisions and learning a whole lot of skills. I turned it to be, the more you do a particular thing, the better you do that thing, the more you enjoy doing that thing. So, if there is anything you don't want to do, but have to do to move your life forward, start to do it and soon you will start to love it. Ben Carson was a poor student. He always took the last position in class and didn't mind being a dullard. His mother observed that her two children failed because they spent a lot of time in front of the TV. Soon she stopped them from watching TV and forced them to go to the library each week and to give a report of what they had read. At first, Ben Carson was sad, but one day after his class teacher asked a question in this class and nobody could answer except dull Ben Carson. He got hooked to spending time in the library. That was where he got the quote, the more you read, the better you read and the more you enjoy reading. 3. Do what you have to do so that you can be what you want to be. After years of constant reading and succeeding in academics, Ben Carson decided he wanted to become a neurosurgeon and so started to make efforts towards becoming one. Of course, because he wanted to become a neurosurgeon, his reading habit changed. He read more than he used to and focused so much on his studies. He eventually became the neurosurgeon he wanted to be. If there is anything you want to be, then you must do what you have to do to become that person. A lot of lazy people are mostly folks who have not found what their lives were made for. I believe when you find what your life is made for, you naturally function well in that area and work in that area isn't work at all.  So find work that fulfills you and it would almost be natural that you commit yourself to it. You can't become a neurosurgeon by spending time playing video games all week long. If you must become something big, you must pay the price that big. 4. Not what you do, but the kind of job that you do that makes the difference. In the book, Ben Carson described working on the separation of Siamese twins. Of course, it was technical and you can imagine the depth of dexterity that was required. The operation was successful, but it was mostly because this man had become terrifically good at paying attention to details.  I know we have preached so much about entrepreneurship and why you must start a business, but in truth, not everyone will become successful starting a business and not everyone can become an entrepreneur. Some people succeed just by being employees and there are stories of employees who climb their way to the top that way. What is important is doing your job as if it is your last, giving your best to it at all costs because you know your life matters. Too often, we never know who is watching. So we ought to always make efforts to ensure that we give our best to what we do and that we do our best in every job. Just one announcement is all you need to break through, but this won't come if you're always doing shoddy jobs. 5. By reading so much, my vocabulary automatically improved along with my comprehension. I have to emphasize this point of reading here because the premise of the book, Gifted Hands, is actually the determination of this man, Ben Carson, to change his life by reading. He read himself into success. He read himself into the minds of great men. He read himself from being a dull student to being exceptional. He read himself from the bottom to the top. We are no better than people who can't read if we can read but never read. It would be very poor to find that your life could have been better if you had given yourself to reading. And in this day and age, where you don't even have to go to any physical library before you get a wealth of information, you have no excuse for not improving your life by reading. Read a lot because it opens you up to a whole different world that leads to success and achievement. About Gifted Hands by Ben Carson, I suggest you ignore the movie and go read the book. The movie excludes many interesting aspects and lessons you could learn from Ben's life and achievements. The book is more detailed. If this video inspired you, like the video. We love you.


We're waiting on election results. We got our early results in and Christian Archer is the campaign manager for pre-KSA. Christian, what do you think of these results so far? Well, they're strong so far and obviously we want to watch and see what it comes in on election day for sure. But to be winning is always a good thing and we're happy to be in the lead. And I think that it shows great support for the mayor's vision for our city ran. And when I say that, we passed the bonds overwhelmingly. The mayor went to the voters with a complex problem, which is education. If you ask 10 people how to solve education, you're going to get 10 totally different answers. And so for the mayor to do this, to grab the bull by the horns and to say, here's our pathway to success for our city. That pathway won't pay off for a while, and yet he still did it and moved forward with pre-K for SA. And for the voters right now so far to be standing behind him is a great endorsement for the mayor and a great endorsement for the future of our city. You were talking about the vision for the city and things. A lot of this has, you go back to the fact that the legislature kind of shortchanged San Antonio and the state as far as the funding and things like that. Do you think that had any impact or help or what's your thoughts on that? Well, I mean, I think that, look, San Antonio, but the Milken Institute rates San Antonio the number one place to do business. We've got a triple A bond rating from every credit rating agency in the country. We're the only major city that does that. What's important is that we continue to invest in ourselves and invest in the future. And that's exactly what pre-K does. The state, with their education cuts, shortchanged us.  And Mayor Castro came forward with a plan that was bold and said, we're not going to let Austin or Washington, for that matter, dictate our future. We're going to make our own determination for our future. And it's great to see the voters rallying behind his message and rallying for the future of our city. One last thing, so the interesting thing also we see with early voting. Early voting always typically comes in from the north side. As more election results come in from the rest of the city, do you see this number going up? Should be more favorable for us.


Welcome back to this channel and if you are new to this channel please consider subscribing, support this channel by subscribing by the way don't forget to click the bell icon to be the only one that will be updated when I upload a new video for the returning subscribers Thank you so much for coming back to this channel and the new subscribers please support this channel by subscribing by the way don't forget to like Put a comment in a comment section and share our worries be more than happy to get back to you Remember we only talk about the Gulf countries Most of you you know what am I talk about Those that you don't know what I talk about It has become the favorite place for very many people who are looking forward to call tax free and salary Indeed it is tax free But remember to come to these countries you need to have what you call a visa And remember I talk to you I told you that a visa is just a privilege to go to a foreign country But when you get to granted that privilege there is also what you call a responsibility that is supposed to follow Or responsibility as you the person being given that privilege Remember most of these countries do give what you call work visas for employment And remember each of these Gulf countries has its own set of rules regarding the work visas In today's video we are going to talk about visa cancellation in Oman Oman is one of the Gulf countries that is underestimated Like I said All Gulf countries have what you call labor laws All they have what you call the rules and regulations That govern the labor recruitment or govern the work employment And govern all people that foreign workers coming to your country For any sort of work that may be available at that time That is what we call a work visa You are given a work visa to come to this country to work Remember when we talk about the types of work visas Most of these Gulf countries all have different types of work visas For example when you go to Dubai they will have what you call When you get a work visa you will have what you call two types of contracts You have what you call limited contract Then you will also have what you call unlimited contract When you go to Qatar you will have what you call a limited contract Then you will also have what you call unlimited contract The unlimited contract in Qatar running for five years And the limited contract running for two years Likewise in UAE, Dubai and Abu Dhabi You may find out we have the limited contract and the unlimited contract But the new labor laws 2022 introduced Now they have a three year contract Which may be renewable according to the concept The mission understand between you and your employer at that time So we are going to see what we call the visa cancellation And most of these countries have different visa cancellation rules Likewise someone asked what are the visa cancellation rules in Oman Oman is also part of the Gulf countries For people who have not visited, for people who have not gone to Oman You probably know what I am talking about But remember Oman has a different set of rules As regarding the work visa and the visa cancellation A work visa in Dubai in Oman is for only contract For only two years renewable under the concept Of between the mutual understanding of the agreement Between you the employee and the employer In case you are willing to continue working for that person Then you will have to renew the contract The most people that have worked for 20 years Depending on how comfortable that person is at the place of work And how better he is getting out of that work So you find that Like in Oman For you to renew your visa For example you renew your contract To some extent, to some situations Your employer has to go to the ministry of labour To alert them of your renewal of contract Which may not be contrary to other countries Like in Qatar or Dubai Where it's just a mutual understanding between the employer and the employee What are the visa cancellation in Oman The rule for the visa cancellation in Oman Stands that Once you terminate your contract With your employer You need to alert the ministry of labour Or the ministry responsible for the visa insurance in Oman Or you need to alert any local labour office around Or you have to notify your employer about the visa cancellation Before you get out of the country Remember Once you terminate or once you cancel out your visa in Oman You are given only 24 hours to leave the country And what does it mean You need to notify your employer Or you need to notify any local available authority About your visa cancellation And what is the reason of your visa cancellation It is also very mandatory And that is what the requirement is Hope I've tried to share up something for you So if you're working in Oman And you're planning to cancel out your visa Make sure you notify your employer About you canceling the visa And what is the main reason for you canceling the visa Before you can exit You can as well inform the ministry of labour Or any local administrative authority That is available in the local offices About your visa cancellation Thank you so much for coming to my channel And thank you so much for tuning in Hope I've tried to share up something Thank you so much See you again in the next video As we try to see more of the interesting information Remember, this makes for the next question


Felly ydych chi'n rhoi ychydig yn ffaith i'r Caeneryswyriau Maennyllewyr, Pamela Porter, a Jan scrape Patard, fel i'n gwieithio ym mwy angen â'r ystod yn bwysig y knead a'r mystaeth ymarfer o'r tynni Gawr mynd i'r ysgolais llawer a'r bobl yn cyflu peisiwn defnyddol. Ond fyddwn i'n gwiswch yn ei maen nhw'n gwybod, oherwydd hefyd yw'n gwybod i'w oeddech chi'n Ono, mae'n rhaid i'r wrthig fydd ar ddweud hynny mae'n mynd i ddweud yma yw Martin cyflawnr y ddweud yn ddweud wedi'u bwysig yna yn 2004. Mae'r dweud wedi'u dros y bydd yr dysgu ddweud, a'r ddweud os ymddir o gael yma, a'r ddweud yn ddweud yn ddweud yn ddweud o'r ddweud. Martin's efforts in kidney cancer research have been tireless over the last 20 years and his efforts along with those of friends and colleagues, many of those in the room, have brought about many of the advances that we've been lucky enough to discuss during the course of this meeting and have improved the treatment of this disease and indeed our understanding of the disease. You can see on the slide now, there's a few other things that I'd like to tell you about Martin Gore that perhaps his friends in the kidney cancer world don't all know. Where are you, Martin? You don't need to worry. Oh, there you are. Good. I'm glad he's here. So, the first thing to say, actually Martin isn't just an internationally recognised figure in kidney cancer. He's actually an internationally recognised figure in ovarian cancer and melanoma and that's actually not very common I think these days in 2014 to be widely recognised in three different tumour types. Another thing is that, as Martin likes to say, he has a management job and typically modestly when he says that what he's actually concealing is the fact that he's the medical director of the Royal Marsden Hospital, so not just the department, the entire hospital. He's done that for most of the last decade so that is not by any means a small job and actually in the last decade we probably had the most difficult period in the long history of the institution with the fire in 2008 which I suspect many of you know about which actually damaged a large part of the hospital in Chelsea without Martin's guidance and leadership but that stage I think we could have seen a very different outcome. I'd also like to point out and it tells you on this slide that Martin I think over the years has meant dozens of doctors in training, some of whom are in the room. You heard from Tim Eisen already this morning and you heard from Charlie Swanson yesterday. I certainly wouldn't be a medical oncologist if it wasn't for Martin. I turned up at the Marsden about 15 years ago as an undifferentiated junior doctor not sure what career to pursue and it's absolutely as a consequence of Martin that I'm a medical oncologist and I think that should be recognised and I think mentoring is one of those things we perhaps don't talk about enough or take seriously enough. Martin has dedicated his career actually to public service to the Marsden and actually also to the national health service and again I think that's something we perhaps don't talk about enough but I think most importantly I'd like to finish by saying that Martin is a staunch advocate for patients with cancer and despite all of his commitments at the Marsden nationally and internationally not a week has gone by in which Martin hasn't been in the clinic looking after patients and their families and fighting to improve the treatment of this disease. So with that Martin I'd like to invite you up on stage to give the Eugene P Schoenfeld lecture and kidney cancer gazing into a crystal ball. What will the treatment be like in 2024? Martin. Thank you very much. Dear friends and colleagues this lecture is dedicated to two surgeons who are sadly no longer with us Bill Henry who when I arrived on faculty in 1988 and started treating patients with interleukin II with kidney cancer and melanoma he pulled me aside because the other urologists would not perform nefrectomy. And they made that very clear the second day I was there and Bill pulled me aside he said I will do whatever you want me to do you want me to take the kidneys out I'll take them out. I don't know if you're right or wrong with what you're doing but at least you're trying to do something you tell me what you want done and I'll do it. And for a young person arriving on faculty that is really something to hear from a hugely senior and respected surgeon. And then poor Tim Christmas who was his student who was probably the most talented surgeon in the UK of his generation died tragically young. He was on staff with us took over from Bill in 2000 and was an enormous supporter of myself and a great help a wonderful person to work with terrible terrible sense of humor very irreverent certainly kept me in my place but he sadly missed as well. I want to thank the KCA on behalf of really Bernard and myself because without their support this meeting would never have happened. We wouldn't have dreamed of having it and you know the fact that it initially at the time was an American patient advocacy advocacy group meant so much to Bernard and myself because they were reaching out to us in Europe. Bill Brod likes to stay in the background but I want to pay tribute to him because his personal drive and support for us has been immense and I think he's the main reason why we're all here 10 years later. And of course, dear Ron Bacovsky as well who with Bill kind of kept kicking Bernard and I to get on with it. So thank you very very much Bill and the KCA I really appreciate it. So this audience probably doesn't know about Eugene Schoenfeldt who was a co-founder of KCA. He was an academic as Carrie said yesterday in journalism mainly. He founded his own company having completed a PhD at Northwestern and tragically he was diagnosed with kidney cancer at a young age and in 1989 became the founding president and chief executive officer of KCA. And not many people know that in fact KCA grew out of a patient group that Nick Vogelsang who many of you know who's been a great friend and inspiration to so many of us had a patient group which with great foresight and Gene went along to the third meeting. And KCA was born and he drove it and he drove IL-2 the licensing of IL-2 at the FDA. He traveled up and down the country and he was a great advocate and he tragically died from metastatic kidney cancer at the age of 54 only. And this was the FDA's eulogy to him that appeared in his obituary and I think it's very interesting that it comments on patient activism something that's very much and quite rightly with us now. And this is a man himself. I guess we have two things in common one he got kidney cancer and I started treating kidney cancer at about the same time. And also we we both seem to like rubberware quite a lot. So we're both scuba fans. So this is a look at what's happened and what's going to happen in 10 years time. But you know you don't know where you're going to go to if you don't know where you've come from. And I'm a great believer in learning from the past. So what was it like in 2004? We're now 2014 and the lecture will be about 2024. Well these were the oral presentations at ASCO in 2004. And you can see from from the titles and I put in red the salient points. We were starting in the targeted era. The education session had education sessions on SNP. We were attempting. This is Nick Macy's work who worked with us on infliximab anti TNF. Phyllidomide was around and we were starting off in the targeted era 10 years ago and look where we are today. 10 years later with a lot of information and twice the overall survival for our patients which is important. This is taken from the education book in 2004. And these are the investigational strategies that are described. And I draw your eye to the immunotherapy section because I think it's relevant and it's interesting that the list is a bit like David McDermott's list yesterday relating to combinatorial therapy. And I'm going to cover that. And then here are the other investigational strategies that you can see listed here. And really some of the lessons that we learned we made so many mistakes. If you look at the date of this this is Sylvie Negrion and Ben Ars group looked at poor prognosis patients to prove what we kind of already knew or thought we knew from retrospective series that if you had a poor or moderate prognosis you did not benefit from interferon or interferon IL2. But look at the date it took a long time for that to get to print. And the whole issue about complete remission rates on interferon or did you need interleukin 2 and what were the real rates of durable CR really were only known 10 years ago. And it took a long time when you think that we were using interferon in the 80s to get to some of these quite simple answers took a long time. And it took a long time because we did not do the right randomized trials. We were over optimistic and you cannot beat randomization particularly when you're manipulating the immune system when there are so many biases about which we do not know. And remember that is the reason for randomizing patients is to get rid of unknown biases. Could we move the slide forward please. Thank you. So treatment in 2024. So as far as the targeted agents are concerned we will not be using the TKI's or at least we will not be using them as we use them now. They are too toxic for chronic treatment in my view to have great even grade one diarrhea for two or three years is pretty miserable to have hand foot syndrome grade two for six months is pretty miserable. This has got to stop. I do however believe that the target will remain a target because it's such a powerful biological factor in this disease. But we will develop new molecules and whether they'll be on chromosome three as Charlie was talking about yesterday or whether they will be different targets. I don't know but always remember that however well we do systemically and however much people write about I saw a patient with a cerebral metastasis who responded in their CNS. Remember CNS disease will always be with us as a sanctuary site and none of these treatments are that good for CNS disease. So however well we do systemically always look always look to the brain. Remember childhood leukemia was not cured until CNS prophylaxis was successful. So can we move the slide forward please. I believe the next 10 years will be dominated by immunotherapy. We spent the 90s completely dominated by immunotherapy and we're going to spend the next 10 years dominated by immunotherapy in this condition and probably in melanoma as well. Next slide please. And immunotherapy is wonderful. Immunotherapy is the world's greatest pharmaceutical company. It is an automated continuous personalized molecular identification patient selection. GMP synthesizing GMP compliant manufacturing treatment delivery system and it's all in vivo. And it's continuous and it works 24.7. And the data from melanoma is extremely exciting because we are waiting for some very important results and the results in melanoma are going to guide other tumor types I believe. This is data which demonstrates that if you wait long enough and you follow patients up for minimum of five years as in this randomized trial with epilimumab in one arm. You are able to answer the plateau question and that you cannot answer the plateau question if you do not wait five years. Because what you see is that plateau occurs after three years but not before. And if you look at some of the data that people are excited about with anti PD one plateau has not been reached and cannot be defined because as you can see from the sensor points it is too early. And what worries me about anti PD one as a single agent is when I look at this curve and just to be fair to all companies involved with anti PD one. I got a horrible feeling these curves will not platter with PD one by itself. We will know that very soon I think very soon meaning in the next year or two. But do not always look at the sensor points and always look at the x axis because plateau we know from epilimumab can only be defined provided you really really follow everybody up for five years. These however are the data on which I make the statement that the next ten years will be about immunotherapy. The combination of in this case nevolumab and epilimumab has been quite striking. I have been involved in more false dawns in my career than I care to tell you about. I'm the man who's never performed a successful randomized trial in terms of finding anything useful. But nevertheless I believe in this and I think this is extremely important. And what we are learning is that some of the old rules of immunotherapy still apply and please don't forget that. For instance LDH and this has just been published with our colleagues at the NKI is a prognostic factor in the same way as it was way back in the past when we were doing bio chemotherapy with chemotherapy in aisle two and interferon. So some of these truisms stay true and immunotherapy is immunotherapy even though the tools may be different. There are two pivotal trials that we will know the answer to. The first is this trial that we're waiting the answer for which is a dose question. This will influence our thinking. We think 10 milligrams per kilogram is better but we don't know. This will tell us and it will fundamentally change the way we think about this because there is a there is some evidence with interferon and look into that things are. Could be as far as doses concerned that there may be a bell shaped curve is more better in immunotherapy. Well not always and checkmate 067 is extremely important because it will tell us whether the combination makes a difference. And it will also give us randomized data on anti PD 1 and epilimumab by itself to look at the plateau with combinatorial therapy. Our experience is that there's quite a lot of toxicity. It's unexpected it's quite difficult and everyone is simply throwing corticosteroids at these patients. And I believe we need to go to our hematol oncology colleagues in transplantation and get some advice about how we manage these patients. And combinatorial immunotherapy will be the way that we will go and we're going there already but it frightens me to death because that's where we were in the 90s. There's a series of terrible uncontrolled phase two and phase one B studies and we called them all sorts of things and we learned nothing. I did a small randomized phase two trial in Melanoma which we included GMCSF and I ought to interfere on it. It was totally underpowered hugely toxic. Yes the old immunotherapies are back such as adoptive immunotherapy because immune checkpoint inhibition is so important. I'm not saying we should not do this but if we do not do the trials properly we will run into all sorts of problems. And you know meet the new boss same as the old boss Pete Townsend wrote and recorded in 1971 on the Who's Next album and you need to really reflect on this big time. Because if you look into the face of Ronbukowski and myself and Bob Figglin and Mike Hakins you see battle scarred veterans of people who did not learn the lessons quickly enough of immunotherapy and trialling it. Immune monitoring will re-emerge patient selection I hope will become routine. I think pet technology or at least diffusion weighted imaging will help us define who's got an inflammatory response and what that means and remember CNS disease. We saw increasing numbers of CNS potassium disease with bio chemotherapy in Melanoma in the 90s because we had a high response rate for about 40 percent and we were clearing the disease systemically or be it temporarily and patients were relaxing in their brain. So the clinical trials must be either biologically based with a biological rationale or and you don't hear this very often. Some sort of systematic rationale for instance you might not have the biological basis for knowing when and how to do maintenance. So think of it in a rational practical way of how you might deliver it in the clinic. For instance you might want to randomize patients between elective continual maintenance elective intermittent maintenance and relapse directed quote maintenance unquote in other words allowing the patient to have an early relapse and jumping on that immediately. That's the sort of pragmatic approach and we need to do those sorts of trials even though they're not biologically based. We must examine dose and schedule early. I mean look at the conversation today about the one to the two one synitimid regimen for instance with 10 years down the line and we've missed a trick with a treatment schedule that I believe would be is when I've used extremely patient friendly always always randomized in immunotherapy trials. I did a randomized phase one trial level of Amosol believe it or not and interleukin two in the early 90s and it is doable. I mean it was completely hopeless but it is doable these sorts of designs to look for the dose. We have got to stop doing medians and talking about medians. It's completely useless and it's incomprehensible to the patients besides anything else. We must do time point comparisons and raising the plateau I believe in 2024 will be what we are looking for. If the baseline plateau is 20% at five years i a time point analysis but it's a plateau analysis as well what is the effect of treatment X. Does it go up 10% 30% 40% very very important data that the patients want to know about and I suspect the funders of health care would as well. I would like to see by 2024 regulators demanding that post trial treatments and outcomes are collected. The amount of data we have lost by not simply asking investigators tell us what you gave at second line and what happened. I mean it's not rocket science it's dead easy it's in the patients chart anyway and I believe that should be mandated by 2012. Immunotherapy versus targeted agents is not a competition what the immune checkpoint inhibitors have taught us is that it's all about signaling. It just happens to be about signaling and immunocytes but the two fields are coming together in terms of translational research. I don't believe that combinatorial therapy is going to be successful. I think we will end up sequencing or alternating targeted agents and immunotherapy in 2024. Regotherapy is going to arrive big time in the management of patients with cancer. Watch in 2024 you will be going to an education session on carbon ion radiotherapy as sure as eggs is eggs. The abscupal effect of radiotherapy is going to be very important to us involved in immunotherapy. First described by somebody who worked at the Howell Atomic Energy Research Institute in the UK in 1953. It's interesting the word comes from abs away from and which is Latin and then Greek Scopus which means a target and away from the target and it was described all those time all those years ago by R.H. Moll. Stereotactic radiotherapy and maybe carbon ion therapy is going to make the management of relatively slow growing disease that is oligometastatic a complete subject. You will go to an education session on the management of oligometastatic disease the non-systemic treatment of it in 2024 ASCO G.U. I think RFA and maybe even partial nefrectomy will be ablated by stereotactic radiotherapy and carbon ions. You will go and you will listen to the results of a randomized trial between partial nefrectomy and carbon ion therapy perhaps and you will need to give some money to the poor starving surgeons outside the session whose children are starving and they can't afford. We won't be able to afford to go to the meeting poor loves. It's going to make two comments about translational research just to say that I think that pharmacogenomics has been greatly ignored too much. It is in some ways the zenith of personalized medicine and I don't think we pay enough attention to it and the different ethnicities and the different pharmacogenomics in those ethnicities. I think it does have an importance particularly in this globalized world that we now live in. I just really want to make a comment about phishing for biomarkers. The therapeutic target is not a biomarker so could we stop calling Eastern receptor HER2 and BRAF mutations a biomarker. They are a self fulfilling prophecy that a treatment is going to work.  Terrible history of biomarkers. I mean there almost has never been one that has been discovered through a phishing expedition. Someone could tell me at lunchtime I'd be very grateful so I can change the slide. And anyway with biomarkers even 80% is not good enough because a patient who is in the 20% will say well I want to give me the treatment anyway. I think what's more important is diagnosing response early and methods to do that. I want to just finish off by talking about the patients. Quality of life has become a tick box exercise and this is the quality of life forms for a study that James and I have just completed. It is a farce what is going on with quality of life and in 10 years time it will change. I think we will learn from the qualitative world of research nursing how to handle things because when you look at the data on what doctors think patients want. It is a terrible indictment of all of us in this room who look after patients. It's an example from breast cancer. The red of what the doctors think the patient wants in terms of keeping the breast as a top priority and considering prostheses or why you have chemotherapy and it's completely askew and out of kilter with what the patients actually want. Knowing what the patients want and having people really properly informed and sometimes using video assistance and different types of learning material actually saves money. It's been calculated that when patients really direct their treatment about 20% of patients opt for less treatment about 40% opt for less surgery. Actually just by giving patients what they want could save huge amounts of money. Money is what I want to finish on because the relationship between the economy and money for research and service and drugs and whether healthcare dollars are moving towards the east away from the EU and maybe the US as well. Is very important for all of us academics in the room and we cannot bury our heads in the sand about this. We do need to confront it and we do need to work out what we are going to do about it and I suspect in 2024 we will have had 10 years of reducing resource and we need to have a strategy now for that. So I was wondering when I was talking about this you know the Marsden will carry on brilliantly I'm sure under the leadership of my young colleagues. The question is whether our sister institution the Gustaf Rusi in Paris what that will look like in 2024. Well I believe it will thrive and obviously the question on everybody's lips is what will Dr Escudier be doing at the Gustaf Rusi in 2024. Well he will still be interviewing fellows to work with him so little will change there I'm so pleased to say. So thank you to my team the residents in training our fellows our data managers and of course our research nurses. Four people particularly six people particularly I want to thank 1988 Jackie Moore was the sister of our intensive care unit and she left her job to join me and open together the biological therapies unit which we called grandly. We actually didn't have any patients for a bit but she really drove the whole thing and Linda who I had known as the most junior houseman at the Marsden she was staffness on the ward in 1978 came to join Jackie and I a few years later and has been the complete driving force for our research nurses and it is a great it is an enormous support. To myself and has been for many many years. Tin worked with me for a long time and he helped with the he actually was the first author on the very first paper to describe the actually the activity of the lidomide in cancer. He helped us with the inflix madd program and he drove the targeted therapy program in reedle he closed down the therapy program and then left for Cambridge and left me with no therapy program which is why we are now several years behind and I just want to thank him for ruining my career. But but you know yeah thanks. We are we have repaired it to relatively new faces for us Lisa Pickering another medical oncologist and David Nicole who we appointed a little while ago as our chief of surgery user urologist who you heard from yesterday who's been a fantastic support and I thought we would never replace Tim but we have in spades. David is wonderful and of course my dear colleague and friend James who now runs the show and who I work for although as medical director I am still in control of his salary. Finally of course the patients and their families thank you very much.


Good afternoon. I'm Strom Carlson. This is Lucky235 and welcome to Phone Freaking in the Age of Voice over IP. We're having a little problem with Lucky's laptop. We're not getting video on it. So yeah, we had some slides prepared but hopefully Lucky will be able to get it working before, hopefully he'll be able to get it working but if not, I'll just try and explain everything to you as best I can.  So anyway, how many of you, let's start off, how many of you consider yourselves Phone Freaks? Show of hands. All right. How many of you work for a telephone company of some kind? Okay. Okay. How many of you know what Signaling System 7 is? I don't know if the hands have went up. Typically we're not the people who consider themselves Phone Freaks. So, let's start off. In the old days of course, during with the Bell system and Lesser Mechanical Switching, there was all the signalling was in-band obviously, multi-frequency, multi-frequency signalling in-band, dial pulsing, crossbar pulsing, revertive pulsing. Now, during the 1970s, the Bell lab has developed a thing called Signaling System 7, which is an out-of-band signalling protocol which is used to set up calls, tear down calls, and today it's pretty much ubiquitous, which is why things like blue boxing no longer work. Talk about it. We have, yeah, thank God, we have slides. So, while he sets this up, I'm going to talk about briefly, I'm going to introduce, you'll see all the stuff on the table, the pay phones are not part of this. So, but during the speech, what I'm going to be doing is I'm going to randomly ask questions related to what we spoke about, and if someone can answer them, you will win this stuff. So, free stuff. We have Western Electric Line cards, we have weird technical books I found at the used bookstore, and we have an actual phone that you can win. Yay. This one? Yeah, two of them. What's going on? Okay. Now I can see what I'm talking about. Okay, so, introduction to Signaling System 7. Now, typically, when you dial a call, this is an example call from here at the Alexis Park Hotel to a restaurant in Pacific Palisades, California called Gladstone for Fish, and the telephone number is 310 Gladstone for Fish. So, typically what you have here, this is Alexis Park Hotel, and this is South 7, which is the Sprint Local Telephone Office, which gives dial tone to the Alexis Park here. When you pick up the phone and you dial 310 GL4 FISH, the local end office analyzes the call, leads it to the DMS 200 tandem in downtown Las Vegas with the main tandem. That tandem analyzes, and let's assume, for example, that this call is going over AT&T's longest list network. So, this DMS 200 tandem will pick up a trunk to the newest number for ESS of AT&T's, which in this case is AT&T's San Bernardino 4SS, and then hand the call off to AT&T. The 4SS is Hamburg and Gino, picks up a trunk to the 4SS in Los Angeles, in downtown Los Angeles, and roots the culture there. That 4SS picks up a trunk to the 5SS tandem in Santa Monica, which then picks up a trunk to the GTD5, EAX End Office in Pacific Palisades, which then links the phone of Gladstone for Fish. Now, in the old days, what you would have is all the signaling would be over the same channels that the voice call is going over. So, you would have the trunks pick up, you would hear multiple frequency tones going over them, or in some cases, a word of pulsing. But today, you notice when you pick up the phone, you dial a long-distance call and it starts ringing almost immediately. This is due to signaling system 7. Lucky, someone's trying to hack you, Lucky. Why are you running Windows, Lucky? So, signaling system 7 has a network architecture, which uses switches which are not part of the voice traffic. Your voice call, your voice path is set up over one trunk, but the signaling occurs over different out trunks out of band. So, the SSPs in this diagram are switching SSPs for switching service points. And the SSP is the dial tone office, the office that rings your phone, the office that gives you your dial tone. Basically, it's your standard DMS 105, the SS office. The STP is the signal transfer point, which is a very fast, very efficient, high-volume packet switch. And SS7 is a packet switch network. It's all data, and it's, there are a number of packets. The most important of which for call setup is called the initial address message, the IAM. It's a huge packet with potentially hundreds of parameters in it. There are, but we'll get into that in a second. And then we have these things called the SCP, which is a switching control point. Now, the STPs are switches, but the switching control points are more like computers. Typically, one of the common uses for them is as databases. The switching control points contain things like the 800 number workup directory. So, when you dial a toll free call, the end office, your SSP, does a database dip into the SCP and finds out which carrier that toll free call is using, and then sort of routes the call to that carrier. Once the call gets to that carrier, then the carrier dips into their own SSP, finds the ring two number for that toll free call, and then routes the call to that number. The other use for the SCP is, for example, when you have called the ID with name. When the call routes to your end office, then, actually, I'm getting into that later, so let's move on to the next slide. This is a diagram of what happens for a successful ordinary call. This is just the call setup. This is between you dialing the call and the other party answering. This is what happens.  Your imaginary exchange completes the backward connection, the audio path, and then transmits the initial address message, which contains all the call setup information, all the way through the various tandems, all the way to the destination switch, and then that's what checks to see whether the called party is available. If the call party is available. That wasn't me. That wasn't me. All right. If the call party is available, then the switch results will be in that telephone, and we'll, we'll, we'll, it, it, it's, once the, basically, the turning switch, what's going on, like, with your phone? I don't know which phone is this. Like, he's finding out what his phone is. So, yeah, hang up. Okay, so what I'm going to do today, disconnect this until I need to use it. When the terminating end office has received the IAM packet, then it sends an address complete message, which is basically like an acknowledge all the way back to the originating switch. Then it starts ringing the telephone of the call party and sends call call progress all the way back to the originating switch, which in this case would be a ringback sound, an audible ringtone. And then once the call party answers, a connect message is sent all the way back to the originating exchange. The call path is completed in the backwards direction so that you can hear that you're called party speaking. And then billing starts, and charging begins. So now the initial address message for signal in system seven is equivalent if you how many of you are familiar with ISDN protocol? Okay, the F7 initial address message is equivalent to the ISDN setup message. There are dozens and dozens of parameters. If you look at the ITT specification for SS7, what's going on with the phones? If you look at the ITT specification for SS7, the initial address message can contain hundreds and hundreds of parameters, things like the geographic location of the calling party, and the billing number class of service. But the most important ones for the purpose of the speech are the called party number that has to be in there. The calling party number, which is optional, the billing telephone number, which I believe is not optional, and the class of service, which is referred to as the ANIII on the North American Number and Pan Administration's website. So it's time for the first question. For the Xilog Z8000 family gigabook, what is the equivalent of the ISDN setup message in SS7? In the back. That's right. I can't get it. So the billing telephone number is the charge number. This is what is traditionally referred to as ANII, automatic number identification. This is set at the switch level for both plain old telephone service and ISDN. This is used for called billing and accounting purposes, and it may be different from the calling party number. And the reason for this is because say for example, and okay, say for example, you are calling from a hotel from an office PDX, all the calls are built to one number, but you want to be able to identify which specific direct or dial line the call is coming from. So you have the billing telephone number set for the main number, but the calling party number is the number of the station you're calling from. So they can be different. ANIII is an extension ANI, and this is class of service, sometimes called flexible ANI by some of the telephone companies. But no one seems to agree what the II actually stands for. For why is it called an information indicator, request calls it information integers and NNA, which is the national emergency number association calls it identification indicators. Identification information. I should read my slides. And this is a summary of some of the digits that the ANIII can be. Most of you when you call from home from the home phone will have zero zero, which is noncoin service requiring no special treatment. Either zero two or two three can be used for ANI failure. Two sevens are typical, you know, Western electric one single slot coin phone with coin control signaling seven zero is a cocot 61 through 62 mobile phones and 30 through 32 or intercept 29 is prison service. Now the party number is an interesting thing because it's a regular telephone service and basically IST and it's at the switch level. However, if you have a primary IST online, what they do is they allow you to transmit your own party number into the network. And this is what is used to generate the caller ID, which is displayed on your own telephone. So again, this example I'm using of the situation where you need this if you have an office with, you know, 500 people and they're all directing more dial lines. If you all the calls are built to the main number, then the billing telephone number will be set at that main number. But if you need to display on the person you're calling is caller ID box, what the, what the directive or dial number you're calling from is then the switch can set this, the actual PBX will set this. Now, even if you block your caller ID by dialing star 67, this number is always sent to the terminating end office of the party you're dialing. It's, there's a bit set in the IAM which prevents presentation of this, of the number to the called party, but it is sent all the way to the far end of the switch. So there are many cases of lucky to talk about this, where actually even dialing star 67 may not prevent you from blocking your telephone number from the called party. But this doesn't have to be a valid number. It doesn't have to conform with the North America numbering plan at all. For example, a friend of mine was showing me his cell phone, he was troubleshooting something that was going on, and a customer said, well anytime I call a cell phone from my PBX, it displays this really weird long number, and he showed me the number, it was 14 digits long for North American numbering plan telephone call. And apparently the person who set up the PRI had actually programed that into the PBX mistakenly. And, but the calling party number doesn't actually have to exist in the IAM at all. Now, the way calling name delivery works is this, the calling name is not delivered to the called party from the originating end office. When you dial the number, the end office you're dialing takes that number. First off, it determines whether or not the person you're calling has calling name delivered at all. If they do, what it does, it does, that switch does a database step into the SCP with that number. And the SCP returns the name associated with that number. And this can be very useful as lucky to demonstrate later. So, okay. What is the abbreviation for the packet switch in the SS7 network? Okay.  All right, lucky? Well, this, first question. You explain Joip, I'll explain that. Basically, we talked about voice over IP, which is a technology that allows telephone calls to be placed over the internet, either from computer to computer, or from computer to into the phone system, or with an analog telephone adapter and a VoIP service, you can actually place phone to phone calls using a broadband connection. This is just an example of a VoIP call that routes into the PSTN, which is a public switch telephone network. Basically, it just goes through the internet. The way this routes is, if this is the phone you're dialing from, then you have either an analog terminal adapter or an actual voice over IP phone, which connects to the internet usually through your cable or DSL modem, or if you're in an office, then it'll connect through your T1 line. And it goes from the internet to the VoIP provider's point of presence. From there, it hits the public switch network. In this example, you're dialing into a big city like Los Angeles, and you're dialing a number there. So if you hit a point of presence in Los Angeles, then it'll hit the local exchange carriers access TAN, and so for example Pacific Bells TAN, Amon Grand Avenue in downtown Los Angeles, and then it'll go to the end office, you're calling and ring the phone. In the second example, if you're calling a more rural area, where they don't have a point of presence, it'll be over a standard inter-exchange carriers long distance network. But for the most part, it's pretty much the same. Alright, and messing around with a lot of these VoIP services, which is a new technology, basically we found a few exploits. Main one, caller ID spoofing, and also number trapping, which is actually obtaining someone's call party number just by having them call your phone number. So even if they start 6'7", or block their caller ID, you can still get their phone number just by having them call your phone. The first expert I'm going to talk about is one with Vonage number portability, and basically, all you have to do is call up Vonage at 1-8 Vonage Help, or no, 1 Vonage Help, and order their service, and you can tell them, yeah, I'd also like to point my cell phone over there, and you can give them any phone number that's portable to the Vonage network, and they'll go ahead and set it up so that your caller ID is actually that phone number on every outgoing call.  But even if you don't send in the letter of authorization, they still have your caller ID set to your cell phone number, and when you place outgoing calls, that's what it'll say, and not only that, if someone on the Vonage network tries to call your cell phone, instead of giving them their cell phone, it'll actually ring your Vonage phone, which I'm going to demonstrate right here how this works. Oh wait, is this camera on? Yeah. As you like to say in the phone, it says, oh sorry, for experiencing difficulty. Please try to call then. Um, I have two Vonage lines here, I was going to try and call one and show the caller ID of my first, but I'm currently having the first one forwarded to my cell phone, which is why it kept ringing. But, so instead, because I can't show you the caller ID, I'm just going to call<PHONE_NUMBER>4, which will actually read back the phone number two. Just so you know, this is a quick line. You're calling NCI. Our system indicates you're calling from 206-209-309. Hold on. Keep calling NCI. Our system indicates you're calling from<PHONE_NUMBER>. If this is the number you're calling. Some of you might have recognized that it's 212-86753-09 Jenny's number in New York. Did they try to sell it on eBay? Yeah, they tried to sell it on eBay for $80,000 and Vonage reported it without a letter of authorization. Now, if somebody on Vonage tries to write the voice mail, which it should be ringing to, or someone's on a Vonage line right now, it'll actually ring my phone like it's ringing right now. And I'll try and demonstrate that with my second Vonage line. Wait, is that plugged in? The white one? No dial time. Oh, here we go. Is that going to pick up? Those of you that can decode DTMF, that was 212-86753-09. So as you can see, I mean this can come in pretty useful, and when they try, if someone on Vonage tries to call that phone number, instead of reaching the actual person, they'll reach your Vonage line. Okay, I see that's wrong. So, believe me. Oh! Okay. I want to do a quick storm. The next exploit I'm going to talk about, doesn't look like we have time to demonstrate this. This is Doug, over there. And this is with a service called Voice Pulse which you can sign up at VoicePulse.com. They offer unlimited long distance and a whole lot of features. One of them which is called anonymous call rejection with prompting.  And you punch in the phone number that you want to call from, and that's what'll show up on the caller ID.  We're going to talk about another exploit with VXML, which is a basically VoiceXML, it's a scripting language for phones, it's what TellMe uses and basically, you can go to erase.us slash bvocal.xml and sign up for bvocal.xml service at cafe.bvocal.com and if you upload that script you can call the 1-800 number and just punch in the phone number you want to call from and the phone number you want to call to and it'll give you a free 1-minute call with your caller ID spoofed. I was also going to talk about back spoofing, which is basically, you just spoof call ID back to your home line and when you look at the caller ID the name that'll show up is the actual name associated with that phone number. So if you have a phone number and you don't know what the name or the business is of that number you can just call yourself the name right on your caller ID. Okay. You have 3 minutes left. Okay, I've got 3 minutes left. This basically, I was just going to talk about a call party number, you can sign up for a voicemail called case7.net and they'll give you a Seattle 206 number and it's just like any other voicemail but when anyone calls it, even if they block the caller ID and the voicemail message it'll have their phone number on it. Another example is FreeWorld Dial-up which is another VoIP service and you can use a superior device to make calls with it. You can give people your FreeWorld Dial-up extension which this is a free service and anyone that calls 248-724-700 when they can your FreeWorld Dial-up number on the caller ID it'll show their phone number whether or not it's blocked. In call forwarding, basically the same thing as case7 or anything else you can just have your phone number forwarded to one of these case7 voicemails and the phone company will automatically forward their call party number to your voicemail and then it'll get trapped so you can give out your home phone number have it call forwarded to your case7 voicemail and when anyone calls and leaves a message it'll have their phone number in the message. We were going to talk about asterisk we don't have our speaker here today but basically there's some IOX providers that you can just set your call party number to whatever you want and you can have people call your asterisk number and it'll show the call party number when they call your asterisk line and you can have it set up just like a regular phone and there's all kinds of other neat stuff you can do with asterisk and that's pretty much the end of our speech it's seven o'clock okay so we have a couple minutes left so let's do a little bit of a question for the phone. What's the name of the restaurant I referred to at the beginning of the speech? I can't tell who yelled at first um okay um okay okay okay what street in downtown Los Angeles is Pacific Bell's DMS tandem on get the phone and I'm going to give you this software from some ancient computer from 1982 yes you so we have any questions quickly? no sorry in color ID and blocking is the asterisk what would be the configuration file you'd need basically you just have to set the color ID field let's see what was that unblocking for incoming unblocking for incoming right the provider will automatically send the number and it'll be in your logs no no no the voice of the IP provider will usually just send the number to you okay wrap it up yes ask away call forward your cell phone to a K7 voicemail and usually it'll get right on you when they leave a message on the voicemail it'll have their phone number on it we're incoming calls yes we're incoming calls is it possible to spoof an AII? yes and no you can spoof we're at where at you can spoof with some PBX's that will forward your color ID sorry are you fine? yes