All right. Shall we start? Thanks, everyone, for coming to this session. It's exciting to be able to present a session in Drupal Con. It's an event that means a lot to us as a community. We're going to be talking about debugging your PHP applications. Hopefully, this is going to be a little bit more practical than usual. So we're not going to go just over PHP debugging. We're going to go over S-trace and how to look into what your PHP application is actually doing. So let me present myself first. I'm Felipe Fidelix. I'm UK business development manager for Platform Assage, a continuous delivery hosting company. We are doing some pretty interesting stuff in the hosting space if you have complicated needs for your applications and you're not running just Drupal because Platform Assage can run pretty much anything that's PHP-based, Node.js, Python, Ruby, Go, and very soon Java. So we're going to start by debugging by using the simple, the quick dirty way that a lot of you are probably already familiar with. And then we're going to go over step-by-step debugging which allows you to have a lot more control over what you're looking and requires a lot less iteration to find the stuff that you're looking for, the bugs or whatever you're looking for. We're going to also do some profiling. Profiling is when you're doing, you basically generate a trace of an application request and then you are able to analyze that trace to see how your application is doing and what's taking most time, which bottlenecks your application may have. So it can help you debug performance problems. We're also going to go over S trace, like I said, to debug your application in real time. It's fantastic for debugging stuff in production. It's an invaluable tool to use in production. We're going to just glance over HTTP traffic monitoring. We're not going to go too deep here. But it might be useful when you have JavaScript interactions in your application and when you have sub requests in your PHP application. And of course, in the world we live in today where we're all running applications in the cloud, it's very important to be able to debug your stuff in the cloud as well, not just in your local environment. So we're going to go over that as the last part of the session. If at any time you have any questions, you please come over to the microphone. I'm not going to wait until the end. I think it's going to be better for this type of session if you just come over to the microphone and ask at any point. So feel free to do that. All right. The first thing that you might want to do as you're developing in Drupal 8 and you want to see what's inside a variable or you want to see what's going on in the page is actually to use a kint and the dump methods. They are really useful if you don't have xdbug installed or you just want to do some quick dirty debugging. You basically write kint and then inside the function you put the variable you want to look at, you can also do something like get available variables as a PHP function to actually look at all defined variables. The syntax for that is something like this. If I can spell properly, get defined vars. This will print. It's a little hard to see, isn't it? Hopefully it's a little better. So this function here will basically get all the variables that are defined at this moment in the runtime of your process and it will pass those variables to the kint function which will print a pretty save this. It will print these variables in an array for you. Here apparently there are no variables here. Hold on. Kint is not able to access this. Let's try with server. So here are. Here's everything that's inside the server variable and kint prints it in a pretty way for me. Kint is a library that actually handles all of this. Kint comes with the devil module which you should have if you're debugging anyway. You can click this button here to open it in a new window because sometimes because of the layout of the page you're not able to easily see the variables here and look at them especially if you have CSS that's changing the color of the font. So you might want to click in this button. You will open everything in the new page and it will allow you to actually search and filter everything for you. You can also, using, you can drill down here. It's going to tell you the size of each directory. So that's pretty neat. And if you're using twig, you want to debug your twig variables. The function for that is dump. It will help you actually see your twig variables. And you also might want to use this module. It's really, really useful for seeing what's running and what's actually happening in your runtime. So let's give it a try if it doesn't break. Well, Web Profiler apparently doesn't like me. So here's the Web Profiler bar. It will give you some pretty useful information as well especially if you don't have XDbug available. Most of these are available in XDbug but a lot of them aren't. Especially, so the query time, this is extremely useful. If you want to check if you have some specific pages with bottlenecks, you can see the number of database queries. And if you click on it, you can actually see the database queries that happen in your page. So if you are familiar with how this used to work in the devil module in Drupal 7, this is a lot better. It's a lot cleaner. It's a lot faster. So it should be very useful. And you can see the patterns of the queries, the queries that took the longest to execute. So it's really good to debug performance problems if you have pages that are taking too much to generate the first byte. And it's also going to show you here in performance timing the time to first byte, which is something you really want to check for your applications, even if your application has a CDN behind it and you're caching it well with varnish or whatever. The time to first byte is important because some users, the users that don't actually touch the cache, whether because they're authenticated or because the cache has expired, they're going to hit this time to first byte. So it's important that you keep this low. And of course, it will give you lots of information about your runtime, the extensions that are running, the blocks that rendered in this page which is also super useful. The extensions are being enabled on this site. And the cache calls, which is also really good to check if your site is being effective when it comes to caching. If you have a high hit ratio, it means things are getting cached properly. Cache is not being validated too often, so that's good. And the assets and the regions in which they're being loaded from. Let's go back. So that was Web Profiler. It opens this small bar on every page for you. The really interesting part, which is how to use XDbug. I included a link here to the documentation on how to install PHP Storm. XDbug with PHP Storm. I'm not going to go over the installation here, but it shouldn't be too difficult.  But one thing that is probably good for you to understand is that step by step debugging with XDbug, it just trumps every other way of debugging. And if you have it configured in a way that doesn't generate a lot of hassle for you to actually get it running, and you start using it as part of your daily tasks. And when it becomes natural to you, you will never want to go back to using kint or dump or var dump, for God's sake. You always want to use XDbug, even when you're on the cloud, even when you're working remotely, because XDbug can actually debug sites remotely and do step by step debugging, which I'll show you how. So this is basically the most important configuration you need to do for XDbug and Drupal, especially if you're running a composer-based Drupal project, because the Drupal directory is outside of the, sorry, the dependencies are outside of the web root. And the Drupal root is not in the root of your repository, of your project. So it's really important for you to use settings like this. And these max simultaneous connections are also excellent if you're running Drush and you want to debug Drush commands and cron and whatever, because by default, XDbug will only do one connection and Drush executes everything in a sub-request which counts as a secondary connection. So if you don't do this, and you run your site using Drush, you won't actually be able to debug your application if you don't increase the number of simultaneous connections. So you might want to set your settings something like this. Right, so debugging with XDbug is a very simple process and really gets very natural once you start doing it a few times. Basically, you set a breakpoint using your IDE. Most decent IDs, they have an easy shortcut or even just a mouse click in the side of the line where you can set a breakpoint. A breakpoint is the point of the request where the IDE will pause completely. And the PHP server will just stop executing so that you can look, do what you have to do, and then you can let it continue running if you want to. Or you can just break the request and stop it. That's fine as well. After you set the breakpoint, which is just one keystroke or just a mouse button away, most IDs, you just set your ID to start listening to connections.  Let's just give it a try here. So this is this exact page, right? And I want to know what, just give me a sec, I'm actually going to use a more complicated page. I want to know which arguments are being loaded in this page, page example. So this is the page, uses arguments here on the page. And I want to actually see in the code which arguments are being passed to this function. So I can just set a breakpoint here or here. And I will set my ID to start listening to connections. You can also put a shortcut here if you want, or just leave it enabled as well. You can do that. So it starts listening as soon as you open the ID. And it's not just PHPStorm that can do this.  So after I set the breakpoint, essentially what I have to do is just load the page. Now, the page stopped executing. It didn't load. I pressed Control-R, but it actually stopped loading. And I can just come here and I can see that these are all the variables that are available at runtime at this point. There's the first variable which is defined here, second, and everything else that's defined. I can take a look. I can explore. I can also copy the values as JSON.  And you can also, which is a very neat part of PHPStorm, is that you can set watches. What a watch lets you do is you will basically always show the value of a certain variable at the top of this list. It might not seem useful here, because you can already see the value of seconds here. But if you have a variable that's deep inside an array, so let's say server. And I have to scroll a lot. So let's say it's here at watches. And then it will always show me the value of server request time here at the top of this list. So even if you keep moving and go to other functions, to other methods, it will always keep showing this value for you. It's really useful when you're doing recursive functions, when you're doing deep nested functions. And I'm sure that if you start using xdebug, you will start using it as well sooner or later. Right, so again, I am here. And this is the highlighted line that PHPStorm is showing for me. It means that execution is stopped here. If I press F8 or I click the step over button, it will go to the next line, the next statement. And if I press F8 again, it goes to the next statement. And you can keep following your code and reading everything that happens and actually seeing the variables defined here so I can go to the next function, which is this one. And you already show me. It's still showing the server request time here because I set a watch. And it's still showing me all the variables that are defined. And this is not even the same function. So it will keep showing you all the variables and everything really that you need to see. And you can just keep following the execution, pressing F8 or the step over button. But there's more. You can also, so if I press, if I'm here in this line and I press F8, it will actually go to this line. But what if I want to know what's happening inside this function? Then you can press F7 or step into. And it will go inside this function, right? And you can see what it's doing. Even the initialization of the class, you're not going to miss anything. So I can also look at the dispatch function here. See, dispatch function. And I can keep following the flow of the application. So it's extremely useful when there's a bug that you don't really know where it is. And you want to start from the beginning of the execution to actually find the problem. You can press F9. So it will continue to execute the application until it breaks again in another break point. That is the same thing as this button here, F9. Since there are any more break points for the IDE to break, you just finish executing it. And my page will render just fine. Now, up until this point, you can already see that it's really useful and it's going to be better than kint or dump functions to look at stuff. But that's not the best part of XDbug. I'm going to try to show you the best part here now. So here I am. It has broken again here. It's in this line. But the good thing is that you can also see which function called this function. And you can see the entire stack. And from the beginning, how your application flows and which functions were called. And you can actually go back in time to look at the variables. So I'm here in this function arguments. But I want to know where it was called from. How did I get here? How did the application get here? You can just follow the frames here, which is just another word for the stack. And you can actually go back in time here. And you can even look at the variables at this point as well. So at any moment in my application, I can see the variables even if I didn't set a break point there. So you can basically go back in time and look at everything that your application did at this point. See, all the variables are here. Even from the beginning, when Drupal bootstrapped, it's all here. So that is a really useful part of XDbug. But to use this, you need a good IDE. There aren't many IDs that support this. PHPstorm is one of these IDs. But again, that's not all. You can still do things like, and this is my favorite part, is that you can actually execute code in real time. There's a console. And in this console, you can actually run PHP. So you can, let's say, you can var dump first, var dump the variable. It's not going to return anything. You can also do anything that you can think of in PHP. You can actually run it here. You can define variables, and you can actually modify your runtime. And whatever you're doing here, it's not just something that's happening on the side. It's actually happening in your requests in real time. So you're actually modifying your request here. If I type, let's continue. So you can see that the var dump that I typed, it actually happened in the page. Because whatever you do in the console is actually happening on that point in the request. So you can imagine this is really useful for debugging. Let's say you're debugging a user page. And at that moment that the user is being loaded, you also want to modify the user variable. Hey, you know what? I want to test this guy as if you had a different role. Or I want to test this woman, see if she could have a different picture. See how a different picture in different resolution looks like. So you can modify it during the runtime. And it just works. It's really a cool part of XDbug. All right, so let's get back to this. Any questions so far? Just again, feel free to reach the microphone. No? All right. So OK, seems you have one question. You just showed us the console. Great thing, by the way. I was wondering when that was coming up. But I've actually never tried. If you go back in the stack and then use the console, does it also work for that? No. Why not? I'm afraid not. The way that it looks at the stack is basically just, PHP doesn't have a garbage collection mechanism like other languages. A lot of other languages do. So it actually just, XDbug just stores those variables in memory so that you can look at them. So even though I said that it's kind of like going back in time, it's not really just PHP, XDbug. It just stores all those variables for you to take a look at later. But it would indeed be awesome if you could go back in time and execute a console commander. Right, so one tricky part of debugging and you're going to deal with this sooner or later is that sometimes when you are running an application, even if it's on your local server, your IDE doesn't know where the files actually are. So if you have an application in your slash var slash www folder, but your actual development code is not there, it's actually running in a different folder, in your home folder. There's no way XDbug can know that. It only knows what the PHP server knows. So it will tell you the path of the file, let's say index.php, which is where you set up a breakpoint. It doesn't know where, PHPStorm doesn't know where in your disk that file index.php that the server executed this. It doesn't have any way to know that. That's what path mappings are for. So with the PHPStorm path mappings, you can say, hey, you know what? This folder in my computer is the same folder as this other folder in the server. So you're basically telling, you know what? If this folder here in the server slash var slash www gets called, it's the same thing as my folder in my computer here in my home folder. So you're able to set breakpoints that way and even do remote debugging. And the way that XDbug and PHPStorm do that is via path mappings. Again, not all IDEs have this functionality. So only pretty much the most sophisticated IDEs have this. And if you don't have this functionality, you actually need to put your local development files in the same absolute path as the server. And sometimes that's not even possible. And yeah, what happens is that PHPStorm, it will look at all your files. Let's say I set up a breakpoint in index.php, right? It will ask you, it will look at all the files in your projects that are named index.php. And it's going to ask you, hey, where is this file in your projects? You know what this file in the server was called? Tell me where it is in your server. And for Drupal, I selected slash web slash index.php. And then it's able to find all the other files in my project. You don't need to really do it again. You don't really need to do it once. And that is a pretty cool feature of PHPStorm and XDbug. Right, so the thing about XDbug is that the first time you configure it, it's going to be pretty aggressive. It's going to try to debug every single request. It makes everything slow, because XDbug is slow. It's a debugging tool. It will make your request slower. So you might not want to enable it every time. And one thing you can do is activate this functionality here, where you're only going to trigger breakpoints when you put this little query string in your URL, in your address bar of your browser. There's also an option for a cookie. And as you can see here, I'm using this add-on, this extension for Chrome. It basically sets the cookie for me, so I don't have to go to the inspector and set the cookie myself. But basically what it does is XDbug stays dormant. And when I select this option here in this extension, it's actually going to trigger any breakpoints that I have set. So it's also a neat part, and it helps you keep things faster. The same thing you can do for profiling. I'm going to have to skip these parts, unfortunately. Profiling, I'm going to have to just glance over it, but basically it generates a trace of your application in a few files. And it stores the exact amount of time, each function, and each method, and each class, the amount of time each one of these took to execute. So you can find any bottlenecks in your application. And then after you generate these files, you need to look at these files using a tool. One of the tools that are really good for this, not often used, is Kcache Grind. It's mostly used for not PHP programs, both for Java or C++ or other types of software, not usually PHP. But you can use it for XDbug traces as well. And you will tell you exactly how much time each part of your application took to execute. So it's really, really easy to find bottlenecks this way. You can no way. You know what? My application is spending too much time rendering this view or spending too much time talking to this other service and et cetera. So yeah, I listed a few. I'm going to share these slides later, but I listed a few programs here that you can use to analyze these traces. PHPStorm also has a trace analyzer. It's not as good as the other ones, but it's sufficient for a lot of cases. Now, this one is really cool. Again, I don't have a lot of time. So let me just do this again so you can actually take a look at it, because it's really fast. It's supposed to be really fast. Yeah, basically, we'll dump all of the system calls that your application is executing. In this case, I am Stracing. This is a tool that's available for Linux and macOS, but there are similar tools for Windows as well. It will basically dump every system call that your PHP process is doing. And this is an invaluable tool to debug in production, because there are no really performance disadvantages of running it, so you can run it anywhere you want. And you can actually see what your PHP process is doing in real time, and you don't need to attach a debugger or anything like that. It just starts printing every system call that runs. So you can see which files are being loaded. You can see if it's talking to another server, if it's talking too much to MySQL. You can see that it's wasting too much time on disk, if it's loading too many images. And there are a lot of cool tricks that you can do with Strace to actually filter this output here. A few of these tricks are listed in the slides. I'm not going to be able to go over them, unfortunately. But a few of those is follow forks. It's important when you're running PHP FPM and you want to see all the child processes. There is also dash O if you want to save the output to a file. AC generates a summary of how long it took to execute and things like that every call. And the best thing is that, depending on the service, on the server, and on the service provider she's using, the hosting company, it will actually have Strace available for you. Platformer Sage is one of those.  I am going to have to skip this Wireshark part. But Wireshark is a tool that lets you actually look at the TCP and UDP traffic of your network card. It's quite useful if you have to take a look at JavaScript interactions and you're not able to trace everything for some reason. So you can also look at the things that Chrome don't actually let you see using the inspector. And Wireshark will let you do that. And I actually intercept the traffic and manipulate it as well. Charles is an HTTP proxy that allows you. The reason I use Charles is to debug when I am using a mobile phone. So if you're using a mobile phone, you can set the proxy in your operating systems settings. And it will talk to Charles. And all traffic will go through Charles. And then you're able to actually debug things from there and manipulate traffic and see everything that your mobile phone is doing for that page. And it's a lot better, I'm telling you, than using the remote debugging of the Chrome inspector. It lets you do a lot of things that Chrome inspector doesn't actually do. That's pretty much it. I'm kind of out of time. I was going to talk a little bit more about platform message. How much time do we have? Two minutes? OK, two minutes then. So platform message is a hosting company that the coolest part is that everything is Git driven. You do everything via Git. You control which services are available for you. And you can say, hey, you know what? I want MySQL for this application. I want Solar for this application. I want RabbitMQ. And you define all of that in a few YAML files. You should retain a lot of control over the build process. You can run Node.js. So you can compile fast during the build process, which is not very common in other hosting companies, at least. But you can run Node.js and Gulp and et cetera, all these tools and image optimization during the build process. And you can have as many environments as you want for every Git branch that you create. You'll get a full environment with a copy of your production data. And that's pretty cool for teams working together. And you can run strace there and PHP debugger and xdebug. They're all really quick. xdebug is just three lines that you add to the YAML file. You can also run there Blackfire. We have integration with Blackfire. You can run new relic. We also have integration. They're all just a couple of commands away. So that is pretty neat. All right, questions? Sorry, can you repeat that? Excuse me, can you tell us more about remote debugging with? Remote debugging, yes, absolutely. So remote debugging, for instance, in platformers, to do remote debugging with xdebug, you need the xdebug extension installed on the server that's executing PHP. It's not very common for you to find that in hosting companies. Platformer Sage, for instance, you can enable the xdebug extension.  And you can debug your application as if it were local. So it doesn't make any difference for PHP. So we would think your application is running locally, but it's actually running on Platformer Sage on the cloud. So you can do everything that I just showed you. And the latency is actually pretty good. It's not slow at all. It's as good as you can expect. So that is the way to debug with remotely. By using an SSH tunnel here, this is basically the command. And then you can do that quite easily in Platformer Sage. But again, the hosting company needs to have support for xdebug. Any more questions? No? OK. Thank you very much, everyone, for coming. If you're in a line and you want to go inside the function, and then you can step out of the function back to the same line, yes. It's a weird process. Basically, you have to configure Twig to save. You know that Twig gets compiled to PHP, right? So by default, Drupal doesn't save those files. So if you configure Drupal to actually save those files, then you can debug on those files. And there is a, yeah, the compiled files. There is a helper, xdebug breakpoints, I think the name of the function, that when your file gets compiled, it will break automatically xdebug. When it gets to that, it's part of your Twig files. OK. So it's xdebug. Yeah, something like that. And if I put this one in the Twig file, does it work? Yes. That is correct. It's in the services.yaml file, yes. And also, sorry, apologies, I have a bad code. So even if you don't set this function, you can actually go there and look at the files and find your Twig file that was compiled and look at all the compiled codes. It's not that hard. It's a little hard to read. But if you put it in PHP Storm, it will format it properly for you. So it looks OK. And then you can debug it from there. Sure. All right. Only Drupal 8. I'm OK. Oh. Oh, no. Sorry. That is not correct. The Web Profile module is not in project slash Web Profile. It comes with the devil module. That, it took me a few years using S-Trace until I found this. Yeah, I'm going to share the slides. I'm going to put them on the DrupalCon Vienna site and then we'll be able to see it. But it's, yeah, this is the way to do it if you're using a host that has PHP-FPM. Everyone needs to use PHP-FPM now. If you're using Apache and ModRite, you're wrong. So PHP-FPM, and you know that the problem if you use PHP-FPM is that for every request, it opens a new process. So you'll never be able to find the right process ID. It's impossible. So the way to do it is by debugging the parent process and using the dash F, which follows the focus.


And that means not just words. We want action. There has to be sanctions. There has to be accountability. The impunity of Israel must end. And that means Meo and Martin must expel the Israeli ambassador.  The apartheid, no apartheid state. Hello, my name is David Rosel. I'm not related to Daniel Rosel. Did you ever see speeches like this coming out of Ireland on social media and think to yourself? Alright, you want to boycott us, but I mean, couldn't we just boycott you back? If you've ever been struck by this similar stroke of genius, then I'm here to provide some information about how somebody living in Israel might go about boycotting Irish products. Contrary to what the BDS movement would have you believe, looking at the first few digits on a barcode isn't actually a reliable way to gauge where that product originated. Instead, we need to do a bit more detective work. It's also true that really there isn't a vast amount of Irish products being sold here in Israel. Personally, I think that both BDS and boycotting countries back is kind of stupid, but what can I say? Sometimes we're all feeling a bit petty and spiteful. And besides, how can you watch somebody compare your country to Nazi Germany as Richard Boyd Barrett did today and not feel the instinctive need to, I don't know, do something back? The best way I found to track down Irish products in Israel is to run a few advanced searches in Google. These are sometimes considered advanced searches because they use the exact search operator to help us exclude irrelevant results. To do this, simply enclose your search terms within quote marks. Here are a few terms you can try. And For the second term, you can see that I haven't used exact search operators on the whole search term because sometimes people will put a semi-colon after Eretz Yitzur and that would exclude it from flagging in the search. These two search terms should flag up a lot of Irish products according to how you're labeled in Israel. Here are some of the products I found. You have various kinds of Irish whiskey, including bushmills and tea-lings, simulac infant feed formula. The boycott Ireland from Israel, you can also refuse to fly on Ryanair, not holiday in Ireland, and choose another country in which anti-Semitic politicians are not allowed to chant for Israel's destruction openly on the streets. If you produce goods, you can also consider not exporting to Ireland and divesting from Ireland by not using it as a jurisdiction in which to establish an EUHQ. Sure, the tax rate there is low, but you already want to set up an office there. To keep this video short, this is a very inexhaustive list and by spending just a few minutes on Google, you can easily come up with a much more extensive one of products not to buy. Until next time.


Welcome back to another day in the Bay, Mr. De'Hereville. Very jovial. Well, you know, it's Friday. Do I have to be jovial? Nope. You can be your plain old boring self. I mean, whoa! Whoa! What have we got in today, Dale? So, we have a VR6 Mark III Golf, and it was Adam who won our day in the bay competition on Instagram. He did a bit of Instagram stalking on his page, and I kind of scrolled for and saw this and asked if he could bring this, and he was well at bringing it as it's a project for you now. You've inherited it as a project. So, what's the plan with it? What are we going to focus on today? So, the focus on is the pink paint. So, we're going to revive that and bring it back to glossy red. Hopefully, teach these guys a few things. Nice. And give it some nice protection as well, because obviously, this time of year, cars get absolutely hammered. So, yeah, the main focus in it is really reviving that tired red. Sweet. We'll come back in a minute and talk about products. Cool. So, we're going to be talking about waterless washing first. So, that's why I like to have one black towel, one yellow towel. Right. So, we're going to be using the ultimate waterless washing wax. Okay. Now, if you get to a show and event, or like a mid-week clean, and you don't have access to water, grid guards, wash mitts, we're comfortable using, this is the safest way of cleaning the car. Okay. Now, a lot of people in the past clean their cars. It shows with detailers. Yeah. But detailers are actually finishing products. Right. So, actually, it can remove like fingerprints and dirt, but it's actually for gloss enhancement and protection. Now, I know it's very hypocritical for me to say that and present you with something that looks like a detailer. Yeah. It's actually a sprayable shampoo. So, what it does encapsulates the dirt and grime on the surface and safely lubricates it away. Okay.  All right. So, like I say, sometimes, you know, cleaning a car at a show with a detailer kind of looks good at the show, but you could be causing a bit more damage than you want to. So, the reason I've got two different color cloths out, because once you've kind of really sprayed it on there, get it nice and lubricated. Like I say, you can use this on the wheels, glass, anything like that. Okay. Get your first towel and kind of wipe in nice, clean, straight lines. The reason I picked the towel up like that is so I've constantly got a nice, clean bit of towel rubbing on the paintwork. Okay. And then with the second towel, buff in the opposite way. This way, you'll never get white lines, ever. Okay. That's all right. Yeah. So, it's the same with detailers, glass, wax, yeah. So, you never get white lines on the car. No, that's mad. We always tell people if you can get it looking 70 to 80 percent in here, outside look absolutely flawless. Yeah. So, a lot of people kind of beat themselves up when they're in here. But this is a very exaggerated environment. Yeah. Cool. So, now we've got the products. You want to, like I say, because it's Friday, I want to do it as little as possible. So, if you guys want to get involved, like, pick a half of the car each. Cool. And get the paint on the other side of the one. Yeah. I like that. Red is the most common color for fading. I wish I knew the scientific reason why it does it. I guess it's just like oxidization. Yeah. And it kind of bleaches it. The UV rays seem to damage it a lot easier. Yeah. And you just see that pinkiness coming through. So, that's going to be our main focus today. Using the ultimate compound, which we shout and rave about all the time. Yeah. But it really is a hero product. It really does work incredibly well. We're going to be getting the machine polisher out. Get these guys using that. One certain aspect, we'll probably be using it by hand as well. But, mainly, we're going to get the machine polisher out. Yeah. Really revive it up. So, we're just going to do a quick test panel. Correct? Exactly that. I'm pretty confident about what this is going to do for the paintwork. So, we're going to try on a pretty obvious place. So, we're going to do the mirror. Yeah. So, even coat pad, because these are very plastic. And we want to be very gentle. It is old paint. So, it's not always a case that you get a machine out. You know, if a little soot layer is like this, always try hand application first. Just in case that's all it needs. Like a DA polisher as well, you prime the pad. I always like to prime the pad. It just means I've got a longer buffing cycle. Now, I know I'm applying it by hand, but because it is faded paint, we want to spend a bit more time working on it. The reason this is so good for faded colours is because it contains paint cleaners, which brighten the colour. So, those chemical cleaners kind of remove that oxidation and bring it back to its natural colour. Common with older paints, especially red, they can be single stage, which means that when you are working it using a compound or a polish, you may get colour transfer. If it is single stage, you will get colour transfer. It's not a problem. It's just you are removing that damaged layer of paint and you kind of need that to get that fresh, vibrant colour underneath. So, don't worry about it. Don't worry about it. Don't worry about it. Don't worry about it. Don't worry yourself. Whenever I'm using it, I just draw a line down the middle. Like that. And then I kind of just prime the pad like that. This way you can use it for longer. It doesn't dry up. So, if you want to finish, do you want to have a go on the other one? Yeah, they're cool. Stamp out the area you want to work. So, two hands on the machine. You'll notice it's quite a heavy machine. So, there's no need for you to bear down. Just use the weight of the machine itself. This hand is your balance. That's making sure that pad is always flat. Now, if you get it flat, it means you'll get an even polish. But also, you won't get a zigzag line. Have you ever seen a car after a machine polish? It's got a kind of snail trails all over it. Sometimes in the sun. It's because someone didn't have it flat. So, keep it flat with that hand. This hand is your guide. Telling the machine where to go. Now, I hold it there because I like to be close to the paint. But, for the first time users, on the handle is fine. The main thing is to relax. Because the tighter you hold onto it, you're going to feel that vibration all the way through to the shoulder. Then, after a whole car, it just becomes drainage. So, the more you relax, the easier it is. Cool. So, I'm going to set the speed to the slowest. I'm going to pull the trigger and just quickly spread the area. So, you know how we prime the pad? Yeah. Prime the surface. Okay. And always start and stop it on the panel. That way, that doesn't get problems all over the place. Okay. So, you see on here, we've got swirl and defect removal. Four, eight to five, eight. I always go slap bang in the middle of those two. Okay. Yeah. And then we're going to do, I call it hashtag polishing. Yeah. So, we're going to go up and down, then left and right. Okay. Did you start at a specific corner? Yeah, start at a corner. Yeah. And go about an inch per second. Okay. So, slower you go, the quicker it gets done. Right. Okay. That's what I'm talking about. That's an easy thing. Yeah. So, what we do, we get the towel, take the head of the product off one way, flip the towel. All the way. Over. Oops. My bad. Happy with that? Pretty happy, yeah. Especially when you look at it here, it's crazy. I'll tell you. Yeah. That's so different. Yeah. You can actually see the light. It's more clearly. It's nuts, isn't it? Yeah. Great. So, we can see now that this has got quite a lot of colour transfer. Definitely, yeah. Like we mentioned earlier, working on single stage order paints, you're going to get that. So, if you are machine polishing, it's very important to clean your pad because this is going to be now full of paint residues. You can see on my hand. And you don't want that clogging up the pad because it's just going to take forever to revive the paint. And you're kind of, you're not doing anything good. If that makes sense. Yeah. So, you want to maintain the pad after each section. The easiest way of doing that. Most people have hoovers to hand. So, they just want to drag out those kind of dried paint residues. It's always going to stain the pad. That's not a problem. You just want to free up those pores and allow it to breathe again. So, you can work the paint. This is part Canoeba, part synthetic. So, the reason I'm using Canoeba on your colour is because it's naturally yellow and toffee coloured. Yeah. Which means it gives a solid gloss like this, a real brightness. Now, we have like synthetic, fully synthetic waxes, like the ultimate in the NXT. You use them on darks and metallics. Right. Because the synthetic haze goes to a clear, which means it makes a metallic pop. Okay. Now, for solid colours like this, we always use Canoeba-based wax. Now, for the whole bonnet, all you want to do is put the pad on the wax, half a turn, that's it. Whole bonnet. Yeah. And then we're just going to put three lines. Yeah, exactly. You use way too much. Three lines across it like that. And then just go across the lines like that. Okay. Just one pass. That's it. Does it matter if you do circles or straight lines? It really doesn't matter. No. Okay. And the reason we're using this straight after the compound with polishing oils, it means it's going to refine it and protect it in one stage. Now, with a solid colour like this, you don't necessarily have to use a polish. Yeah. Because you use a polish to refine a dark colour after compounding. But with a colour like this, if you've got it to a pretty good finish, which you guys have, go straight in with the wax.


The Department of Fisheries and the Japan International Cooperation Agency have once again united for the ongoing Coast Fish Project, which aims to strengthen the sustainable use and management of coastal fisheries resources in Karakam countries. An impressive feat has been attained with the conclusion of a comprehensive five-day seminar, which took place in St. Lucia from August 14th to the 18th of 2023, targeting the enhancement of the capabilities of fisheries statisticians from the project's target countries. The Coast Fish Project has been diligently working to promote cooperative management of aquatic resources between user groups and government authorities. Chief Representative of the Japan International Cooperation Agency Ishiro Mimura says the gained knowledge will bolster the fisheries department's capacity for evidence-based decision-making, leading to improved effectiveness and sustainability in managing marine resources across the designated nations. Quite often, when we talk about coastal and marine resource management, we refer to fishing port and facility, equipment, sustainable livelihood, and other related issues. These are all very important. However, what is often overlooked and underappreciated is the critical role that statistic and data analysis play in the effective management of these vulnerable resources. You are the fishery officers who carry out this important work of data collection and analysis are performing an extremely vital task for proper decision-making and even a policy direction in the sector. Deputy Chief Fisheries Officer Thomas Nelson says the seminar aimed to align statisticians with the Coast Fish Project's overarching goals by enhancing their proficiency in our program usage, comprehending life history elicitation, CPUE and MSI calculation, emphasizing accurate fish landing data accumulation, and cultivating the ability to craft draft survey plans for demersal fish species. The issue of data, the management of fisheries and fisheries-related resources, the analysis of data to inform decision-making is very, very critical. And I know that R has been in the region for a while and building our capacity to utilize such a software, such a program, which I understood is very, very versatile in that you can use it to produce so many results that can be applicable to various aspects of fisheries. The Department of Fisheries is actively advancing sustainable marine resource management in St. Lucia, thus contributing to the enduring well-being and vitality of coastal fisheries resources. From the communications unit of the Ministry of Agriculture, I am Manicia Antoine reporting.


Here we are the exciting world of regular expressions now we've seen a little bit of regular expressions when we use the search function and As you can hear the expressions are used to find patterns inside of text So you can import a bit of text and you can look for certain patterns which makes for wonderful Kind of data mining from text. A lot of things are possible Now Julia implements a pull compatible regular expressions. You can see there you can Google this look it up And the one syntax that I'm going to use is just this R and then the quotation marks Let's have a look So I say yeah, this is not swearing. I'm just going to show you I have this R in front of a String let's just execute that there we go It's there, but let's see what the type of this is and it is this rejects a regular expression So definitely a specific type inside of Julia Now let's have a look at this I'm going to have a string and it's called I love Julia And I'm just going to ask is they a match for the word Julia and I use this a regular expression So it's not going to do a normal search as we as we had up before Which it's going to do this Method of using this regular I shouldn't say the word method yet It's going to use this regular expression to look inside of that and indeed it is true that is there Now regular expressions are obviously case sensitive So if I had to if I had put a lowercase j there obviously that is going to be false Now let's go one step further than just Boolean returns So what I'm going to do in the next example because this is really what I want to get to I'm going to use split and match Combined now Let me not give it away. Let's have a look at what we're going to do I'm going to say text one equals and I have this ABC ABCDF ABCDF and then BCD BCD You can see what we have the place inside the computer variable called text one and there we have Now I'm going to use the split function on text one and I want it to be split on the spaces. Let's do that And indeed there we have it ABC ABCDF. We have all of them now look at this nice little for loop for me You can use the regular expressions on a for loop So I'm gonna say for I in split text one and Then the space so what I'm actually saying for I in this element So it's going to look at ABC then ABCDF then ABCDF GHI, etc It's gonna say is match the regular expression are ABC. So it's going to look for this ABC Just that ABC and it's gonna see does it match in there and Then this double ampersand sign that means if this was to then execute that if this first one was false Don't execute the second bit. That's what this double ampersand signs mean and then end Let's execute that and it's going to look down that list one by one because it's a for loop for I in this Split which gives me this array So the first one definitely there wasn't ABC and the second one there was an ABC and the third one there was an ABC The BCD had left out. So this bit returned false for that iteration. So it did not execute this Second part So it found all the ABCs now I can imagine how how powerful that can be if you imported a bit of text Then you were just looking for all certain words to bring them out all substrings of little bits of text quite powerful Now how would you go about? Expanding on this now, I'm gonna use this dot or full stop as a wild card Now let's have a look at this. I have text to and this is a sentence for this sentence I only want the words with a dot in them So a dot is this full stop. So I'm looking at the word finding the word sentence and finding the word them That could be a very nice thing to do because I might want to not split by word and the spaces between but I want to split by sentence So let me show you how that works Now again, we're just going to split. Let me just run that Again, we're going to split the text on the spaces just for now But you'll see where we'll eventually get to so I'm again gonna split it and I'm gonna find for this match this dot I'm just looking for words that in that have a dot in them But remember a dot is a wild card And I have to I don't want it at the moment. I just wanted to be a real dot So I have to escape the dot so escape dot means look for the real doc Don't use dot here as a wild card if this is true. It's going to print that line So as we said, there's only two words with a with a dot in them sentence and full stop now Let's Build some more regular expressions text 3 is this man can fan down with a pan while he ran away from danger Horrible horrible sentence as I said that my apologies, but for good reason Think what we're gonna find here. So again, I'm just gonna split the text into each and every word By this split function here Now look at this is match a regular expression and I put this PRD in Square brackets and then and what this means is Find any of these words attached any of these letters Characters I should say attached to these two so I can have pan or ran or Dan That's what it's saying. This is true print that line for me Let's see what happens and indeed it found pan ran and danger because there is a D. A. N in there danger So if you if you have different words, but they have a common bit to them This is the way that you would build it up. Say for instance, you want Not you wanted a result not to have those ends and not pan not ran and not then you just put this Power sign shift six on most keyboards in front of it. So now we're going to get back back man can and fan You see why I did that ugly sentence just so that I have all these a N words. Anyway, man can and fan Good now, let's use this wild card thing that I was talking about. I'm not gonna use dot in its real sense I'm gonna use it as a wild card So again, we just splitting We're just splitting and now regular expression and and a wild card It says any way where there's an a N and anything after that it doesn't care So let's just see what it returns the only thing it returned was danger because dangers The anything is the only one that had an N in and something that followed The A in all the others remember pan ran man can fan that nothing after the A in Except a space and the space doesn't count here So a N with that and the reason why the space is not counting remembers because we split it Splitted on the spaces. So we just have this array of single words Okay, let's use some ranges Anna and Barbara have a cat its name is Dan Let's have that as our text. We're gonna split it by the spaces So we're gonna have Anna and and Barbara and have an A and cat Etc and that cat obviously is gonna be cat comma and the it says have it's gonna have this apostrophe S because it's only splitting On the spaces and the last one's gonna be Dan dot Now I can say find this for me is match our A to C in Inside this brackets and they all uppercase So see what it's going to find for me anything that starts with an A or a B or a C capital letters Now let's change this to text 5 and I'm going to have Anna and Barbara have a black cat now I've introduced this black and this lowercase C for cat and What if I still wanted to include that cat, but it now has a lowercase C Well, I'll just say A to B and a C and it's got to start with these as you can see by that square brackets So now I'm going to catch a Lot more now at first glance This might be slightly confusing because it returned a B for black cat and that's lowercase as well But this is actually saying a to B and C And because that's a lowercase. It's doing the lowercase ones for those as well. So that's one that that can really catch you Just make sure you Recognize what is going on there if you wanted to use it Now let's use this long long long long long long long sentence, which will end soon. Thank goodness Now let's find words with at least two O's So again, I'm going to split this on the spaces and I'm going to use this way anything that has an O in it So there's no square brackets there. So this O can be anywhere and I want at least two of them Which I put in these curly braces So let's run that So it found Long with two two O's three O's one two three four O's and the word soon. It was all of them had two or more double O's in them and That long didn't count Now let's just for interstate. Let's just change this to long go. Wait. Let's put his O there What do you think is gonna happen now? Let's have a look because certainly they're two O's in there now Let's have a look and it's still not there because this says two of them in a row So certainly Finding two O's that are separate from each other is not caught by these curly braces Now, let's do this this long lesson which will end more or less soon There we go Now let's look at this. I want these double S's But I'm putting wild cards in front of them and behind them again I'm running down this array of words because I've split them just by the space. So let's look have a look at that So the only one that it found with a double S Was this lesson, but it didn't find that less because they had to be something after that and In the array. It was just less le SS with nothing after the S. This says this wild card says there must be something after this Let's have a look at using this plus and star sign What do you think is going to happen here? Well, let me just tell you the plus see as I've used it here a double O find for me anywhere to double O and a plus means at least one or more Whereas this asterisk refers to zero or more. So let's just have a look at that So look for me for any double O Somewhere where there's a double O or one or more of those so it found one And yet found one and two of them actually and they had found quite a few of them and there's another soon there So you can use that plus sign. Let's just do this with the SS and to see what happens It says zero or more Because now it's returning stuff with just a single S and then there's a single S There's a single S Because that is what the star means find something that is zero or more So it's going to find that s and then for this s zero or more Now it's exactly the same as if we have just done this all I wanted this to find me something with an estimate Let's look for numbers inside of text now here is one there was a significant difference between the two groups city 3 versus 44 p value was 0.34 Now this should say insignificant because Sydney, that's not a significant p value. Let's save that This was an insignificant there was an insignificant difference between the two groups 33 versus 44 p equals 0.34 now. Let's find Anything that has the number in it, but if we're going to split on the spaces We're certainly going to have this as an element in our array that with the comma as an element in array and all of that in in the array Okay, so let's have a look Let's try and catch this Catching anything with a digit in it and I'm going to use this wild card backslash D because I've got to use this backslash D It's a it's a wild card for digits. I can't just put D because then it's going to find It's going to find the letter D for me and indeed. That's what we have We have this open pivot to see city 3 the 40 44 with a common 0.0 34 with the closing parentheses Now I can do this as well It's going to achieve exactly the same thing find anything for me in this range with a 0 to 9 in it It's going to be exactly the same. We're going to do that Now let's just change this again to insignificant. That's horrible. Let's do that We have the sentence again but now We've changed it ever so slightly you'll see from the one at the top and I'm going to use this backslash w uppercase w and What that's going to do for me is to return these digits but Look at that the 44 is gone. So it's looking for something that has numbers in them, but These are the characters as well. So that is a wild card for alpha numeric Find me anything that contains alpha numeric value. So there's got to be both characters and numbers Now let's look at this substring. We're almost there Now there was no statistically significant difference the p value was 0.3. The difference was not statistically significant There was no significant difference. You can well imagine that you're reading a journal article import that text and This is a various ways of just use three here of writing Stating by the use of words that something was statistically insignificant And that's all you wanted to find in that text. Find me all the sentences that are Find me all the sentences that contain those words Now one way that we could split this up is by using this backslash got So that means this dot is not used as a wild card So just remember that and then something with a space I want something with a dot in a space that would be one way to split this up in sentences The only problem that you're going to have here is Over there. So it wants a dot in the space. So actually it's not gonna cause a problem So because there's a dot in a space. So it's going to split this sentence off there So let's do that and let's build up all these different ways So if you quickly paste through or run through an article you might Find all of these different ways to state things Sometimes it's even these capitals this NS So I'm gonna use fine for me no stat with a wild card That means anything that has no stat and anything after that or not stat or no Sig with a wild card not sig with a wild card or NS and if that's to print that line for me And indeed it found all three of those sentences. There was no statistically significant difference The difference was not Statistically significant. There was no significant difference So see how quickly you can find if you think how you can combine this with a p Value and these non-significant quickly go through an article You can find that having to read all the article the whole article you can quickly gather this data from a text file Just using regular expressions. So if that was an easy enough introduction to regular expressions They are very powerful played with them. They're quite a bit of fun


Hi guys, welcome back to my YouTube channel. This is Daniel Rossell here. I want to do a video today about a very useful Ubuntu utility. It's called Diff PDF. Now, this is great for if you basically have two different versions of a PDF to compare and you know in the business environment, this would be a pretty common use case.  So I'm just going to call up here the documentation. So it's actually a cross platform tool. You can get it for Windows as well. To get it for Ubuntu I basically just needed to do a sudo apt-get install Diff PDF. No need to install a PPA or anything like that. It's in the repositories. So once you have it on your system, it should create an entry depending on what DE you're using. Or if it doesn't do that, then you can just launch it with Diff PDF, which I'm going to do now. So this is the GUI. It's pretty straightforward or self-explanatory. You have a button for file one, a button for file two. There is a margins editor. You can choose to exclude the margins if there are artifacts in the margins of the file. Or you can do controls and you can compare according to appearance, character or words. I'm going to show exactly what those differences are in a second. So in order to test this out, I'm just going to open here a LibreOffice. Let's just create a mock couple of PDFs. We're going to call this contract of employment. Let's say clause 1.1, the salary will be $50,000. Clause 1.2, the employee will be entitled to 24 days of vacation per year. Clause 1.3, it's going to say here for the duration of the contract of employment. The employee is forbidden from seeking alternative work. I don't know. This is just an example contract, right? So we have three dummy terms and we have a title and I'm just going to go ahead now and export this as let's just call it contract one.  Done. So let's just change a few things about this contract employment. Firstly, let's say salary will be $60,000 and let's also add a bit of texture. Let's say plus $2,000 per LibreFord. Clause 1.2, the employee will be entitled to let's say 26 days of vacation per year. And because we are, I want to just demonstrate how the character difference things work. Let's just intentionally make a typo and I'm just going to get rid of one of the ease and employee. And I'm going to get rid of term one point or Clause 1.3 altogether. And now I'm going to export this and call this contract two dot PDF. Now those are both of my desktops. I'm going to pop back here to diff PDF and I'm going to tell it file one, look at contract one, file two, look at contract two. And let's just start with a character comparison. So it's just really, it's really simple. You just click on the compare button and here we go.  You can look left and right throughout each first each version of the document. And as you can see here, it's flagged as a character change. So we had 50,000. We changed it to 60. So that's got red highlight on it. And it's flagged again in red that we've added this text and one point three. Clause 1.3 has been reduced, has been taken out of the document. Now let's look at what happens if we compare words. So if you compare words, we can see the words that have been changed and not just the characters. So let's take the employee. So it's flagged the word here. But if you go into characters, it's only flagging the E that was removed in the left pane. So that's the essentials of its functionality. As I said, it's a really useful, very, very small utility, but a very functional GUI. If you want to do something like review changes to a contract in a bunch to diff PDF is one of the tools that you can use.


With his faithful Indian companion Tonto, the mask rider of the planes led the fight for law and order in the early western United States. The stories of his strength and courage, his daring and resourcefulness have come down to us through the generations. And nowhere in the pages of history can one find a greater champion of justice. Return with us now to those thrilling days of yesteryear. From out of the past in the thundering hoofbeats of the great horse Silver, the lone ranger rides again. The lead and Tonto had spent the night in Coldwater Canyon, halfway between the town of Coldwater and the partly finished bridge. They broke in camp at dawn and an hour later they were in the nearest part of the canyon within sight of the bridge. That bridge will be a mighty fine thing, won't it, Tonto? That's right. It saved plenty time. Sheriff Wallace was talking about it last night, remember? He said the bridge would cut 50 miles off the trail to the west. That's right, Dan. I'm sorry we're so early. I'd like to have seen the men working on that bridge. Well, maybe see them other time after we meet the lone ranger. Golly, Tonto.  Maybe. We see what lone rangers say. Tonto, someone's calling for help. Let me hear him. Hold, Scott. Hold, Scott. Hold, Victor. Hold, Victor. Hold. Me see him. Come along, Dan. Get him up, Scout. Come on, Victor. I don't see him, Tonto. Over there. You see Fowler on ground? Not yet. Look on the bridge. I knew the bridge. And near edge it looked like Fowler hurt plenty bad. Hold, hold, boy. Hold, Scott. Hold, Fowler. Hold, Victor. Hold, steady there, Victor. Hold, Fowler. Hold. Get canteen, Dan. Let me see what's wrong. Right. Get me out of here. Yeah. Yeah, me help you. Pin down this timber. Yeah. Let me see it. Here. Here's the water, Tonto. I'm afraid my leg is broken. Dan, you get hold. We lift timber to one side. All right. I'm ready. Lift. Lift. That sure was heavy. I came here at daybreak to look the job over. Here. You take drink of water. Me look at leg. Legs. Is it broken, Tonto? Uh, leg broken. That's what I thought. If you can get me up to the top of the canyon, I live there. Let me put splint on leg first and then me carry you up. There's a ladder. Yeah, let me see it. Someone's coming down the ladder right now. What? I'm coming, Mr. Conway. Oh, that's Kirk. He's the foreman. Are you Mr. Conway? Yes, that's my name. Then you're the engineer in charge of this bridge. That's right. Me make splint of heavy stick and tie it to leg. Great guns, Mr. Conway. What happened to you? Kirk had a bad fall. Well, how'd it happen? Oh, some careless fool left a timber loose stepped on it. Here I am. I'm saying it all, Mr. Conway. I've told you it was dangerous to make an inspection every morning when no one was around, but you insisted on doing it. I know, Kirk. I know. Oh, well, me sorry to hurt you. It's all right. Who were these two? They were riding through the gap and heard me call. Well, me, Tonto. My name's Dan Reed, Mr. Kirk. Oh, well, get that splint in place so we can take the boss to his house. Go on it all anyhow. Just when we're trying to finish the bridge, this has to happen. Well, you're lucky to be alive after a fall like that. Lucky. How can I see that this bridge is done if I've got to be stuck in a shack with a broken leg? Oh, don't worry about the bridge. I'll see that the work goes on, Mr. Conway. Now, you'll have to, Kirk. We've got to get the job done by the time limit. What's more, you'll have to watch out for Sam Hine. That buzzard would do anything to keep us from finishing the bridge. Hine won't try anything, Mr. Conway. You watch out for him just the same. A few more accidents like this one and we'll be licked. Tonto carried John Conway up the ladder and made him as comfortable as possible in his small house. Dan remained with the injured man while the Indian rode to meet the Lone Ranger. The morning advanced with Jim Kirk giving orders to the men who worked on the bridge. Get going. Tie that rope on and lower those timbers. The men below are waiting. Hey, Kirk. Hey, what do you want to say? Mr. Hine has come to speak to you. Hine here. Oh, no, he's the janitor. We're working for him.  There he comes now. He's seen him.  You know what to do. Yeah, I know what to do. See you later. Good morning, Kirk. Hine, it's dangerous for you to come here. I've been waiting in town for news, Kirk. I didn't get any. So I came to find out why. This bridge is going along on schedule, isn't it? Yes, but you should... Kirk, you took my money and I want something for it. You'll get what you paid for. You guaranteed that Conway wouldn't finish this bridge on time. He won't. But he is. It's ahead of schedule. I'm counting on this job, Kirk. I want it when Conway forfeits a contract. Listen, Hine. Conway had an accident this morning. He did? Yeah. He went out on the bridge to make his usual morning inspection and stepped on a loose timber. He fell into the canyon. He broke his leg. Now you're in charge, huh? That's right. I've just sent Steve over to run the donkey engine. There's a likely to be another accident. Look over there, you can see him. I see him. The cable on that engine is pretty old. Steve's going to hoist some mighty heavy timbers. Oh, there they go. Swinging over the edge of the canyon. Yeah, I see them. They shouldn't put so much weight on that old cable. If it snaps and lets those timbers fall, it'll be awful bad. What's that? The cable. I'm satisfied. All right, what's going on over here, man? What happened there? Oh, what happened? Who's that? What's going on? Well, that's how it happened, Mr. Conway. Steve didn't realize that the cable was old. Con found this busted leg. Oh, it couldn't be helped, Mr. Conway. Anyone hurt, Kirk? Yeah. Timmons was down below. How bad is he hurt? He's dead. Well, I'll see you here, Kirk. Someone has to blame for that. Oh, I don't know, Mr. Conway. Someone has to blame for that, just the same as Skinny Rawlins has to blame for leaving that loose timber that made me fall into the canyon. Well, I fired Skinny for that. Who was to blame for snapping that cable? Well, Mr. Kirk Steve was at the donkey engine.   Well, I fired Steve. Well, that won't help any... What about the bridge? Well, it got smashed up pretty bad. Con found the luck. I...let me out of this chair. Mr. Conway, the doctor said... Oh, Dan, Kirk, help me to the window. I've got to see you. You're not to get out of bed. But I... Oh, hang this no good leg. Well, there's nothing to see, Mr. Conway. It's all at the bottom of the canyon where you can't see it. Kirk, what did you do with Timmons? Well, the boys are getting him out of the canyon. You sure he's passed all hell? Oh, yeah, yeah, yeah, we made sure. How long will it take to repair the damage to the bridge? Oh, I'd say about at least two weeks. Two weeks? Well, we... Mr. Conway, you got to lie quiet. That leg's got... I know, Dan, I know. See here, Kirk, we can't spend two weeks repairing that damage. We can't lose two days of progress on that bridge. Well, I don't know what we can do about it. Do, we can get more help, get more men in the job, get the men to work longer hours, work by lanternlight if need be. Well, I'll see what we can do, Mr. Conway. Oh, look up Timmons' family and see if we can do something for them. Right. Oh, gone and all. This ain't the worst luck. Maybe my friends will have some suggestions when they get here, Mr. Conway. Ah, suggestions won't build a bridge. We got to get more men in the job. I tell you... Well, who? Oh, Conway. Oh, quick. Mass. Oh, Conway, I'm glad you're here. What's the idea of sneaking in the rear door? What's the... Hey. Dan, is this the friend you spoke of? Yes. I've been looking your bridge over. I reckon I wasn't very sociable when you came through that door. I saw a man asking... There's just been another accident. Yes, Dan, I know. Sit down. I owe a lot to this lad in the Indian. Conway, I've heard of situations similar to this. Yes? A rival contractor wanted to take the job away from the man who was building a tunnel. There were a lot of accidents on that job. At least they were called accidents. What are you getting at? I wonder if that accident would have happened if you had been on the job. But I... Say... You mean the hint that Kirk has sold me out? Oh, I didn't say that, Conway. Matter of fact, I don't know that anyone wants to see you fail on this job. Look here. It just happens that there is a buzzard. Oh. A critter by the name of Hind. Hind? Yes, he wanted the job of building the bridge. But he couldn't get the graft worked out the way he liked, so the job came to me. Well, that's interesting. If someone caused that cable to snap, it's a case of murder, isn't it? That's right. Poor Timmons was killed. Golly, do you think that's what happened? It would have to be proved, Dan. See here.  Who are you? You. What's the matter? I'll show you what's the matter. Kirk, what in the... All this dog gone leg easy there, Mr. Conway. I'm sorry to bust in like this, Mr. Conway. But this masked man and Indian with him have been snooping around asking questions. I looked for the foreman, Kirk, but you went around. So then you went snooping. I looked at the broken cable. And hittin' that it might have been broken intentionally. It's possible. And if it was, Timmons was murdered. We don't need masked outlaws around here. I'm not an outlaw, Kirk. Well, you're masked. Did you examine the broken cable? Sure I did. It was none too strong. The wrong kind of handling would have broken it. Well, Steve was careless, that's all. It's none of your business, anyhow. You fired him, didn't you? Sure I did. And you gave him the pay he had coming, didn't you? What about it? I talked to him. He was getting ready to go into town with a pocket full of spending money. What's that got to do with you? It has quite a bit to do with Mr. Conway and the bridge. Especially if Steve snapped that cable on purpose. Why, what do you get in that? If Steve's in town for the rest of the day spending his money, he'll be in a very talkative mood by evening. He might be made to admit snapping the cable. You mean to say he did it on purpose? I don't know, Kirk. But I think he should be questioned, don't you? Someone might have hired him. Right. Maybe he's right, Conway. I'll go into town and see him tonight. Perhaps it would be better if Sheriff Wallace questioned him. Well, you're hitting and I can't be trusted. You're as much as saying that I fixed it for Steve. No, no, Kirk, Kirk, Kirk. I'll handle this, Conway. This critter's just trying to stir up a lot of distrust and trouble.  Eddie Kirk, don't start anything. You can't finish. I can finish anything I start. I'll show you. You missed, Kirk. I won't miss the next time you... I'm sorry. Well, yeah. No man does that and gets away with it. He's got a gun. No more of that. My hand, my hand. You ask for that, Kirk. You wait. You just wait. I'll get you for this. You better get your hand bandaged. Collin will fix it for you. He's outside somewhere. I don't need his help.  The mask man is right.  Now, see that he pays for knocking me down and shooting me. For out a lot of distrust among the men on this job. Mr. I... I'm afraid you've made yourself an enemy. So it seems. Kirk ain't one to take what you gave him without doing something about it. The curtain falls on the first act of our Lone Ranger story. Before the next exciting scenes, please permit us to pause for just a few moments. Now to continue our story. Shortly after his fight with Jim Kirk, the Lone Ranger called Tonto to Conway's house for a meeting with the contractor. Conway, when you said that a man named Hein was after this job, I was sure there was something underhanded in the accident. You know about Hein? Yes. Hein was a contractor who built the bridge at Little Rock. Yes. The original builder lost that contract because of a series of accidents. Oh, I see. How long has Hein been in cold water? He came there before I started work on the bridge. He's been there ever since. That's interesting. Him crook. Him plenty crook. We could just prove that. The time limit wouldn't mean anything if Hein wasn't on hand to take the job over. We're going to try to prove it. You spoke of questioning Steve. Yes. That might lead to something. Steve didn't have anything to do with your fault. No, no. The skinny Rawlins had left that loose timber for me to step on. He was fired this morning? Yeah. Isn't Jim Kirk very quick to fire men when you need all the help you can get? Well, I wonder... How far do you trust Kirk? I don't know. I never had reason to distrust him. But now... Conway, Toto and I are going to cold water. Right now? Yes, Dan. You're going to question Steve and skinny? No, not exactly. We're going to use them as bait. Come on, Toto. Ah, you ready? We'll see you later, Conway. I'll be here. Dan, those two friends of yours are certainly unusual men. You bet they are, Mr. Conway. Especially the Mask Man. Why is he so eager to help me? Mr. Conway, that's the Lone Ranger. What? Sure. I thought you knew it. The Lone Ranger. Come on, Toto.  That evening, a lot of things happened in the town of Coldwater. First of all, Sheriff Wallace had a visitor, a Mask Man who he had met previously. I don't know as it could be done. It can be done, Sheriff. Well... All right, it's worth a try, anyway. A few minutes later, Toto met the Mask Man in the shadows behind the cafe. Kirk just right into town. All right, Toto. The Sheriff will have his deputies ready. Or Steve and skinny in the cafe. And there. Then you know what to do, huh? Toto knew what to do. Because the Mask Man had given him careful instructions. He went to the cafe and sought skinny and Steve who were seated at the corner table. For some time, there was nothing to attract the attention of the others in the cafe. Then, without warning, violent action exploded in the corner. I never thought such a thing. That's super work. Go, go, go! Oh, it's a fire! A red-skinned sure-hand! Keep a plan out! Don't get him shot! Back it up! Come along! It's the Sheriff! Bust it up! The fight was halted, and Toto was taken with skinny and Steve to the one-room jail that opened from the Sheriff's office. Hind, the contractor, was already in the room. And when he saw the Sheriff... I demand my immediate release, Sheriff Wallace. Now, hold on, Mr. Hind. Why was I brought here in the first place? I reckon my deputy misunderstood Mr. Hind.  Well, I should hope not. I just sent the deputy to bring you here to answer a few questions. That's all. And open the store and let me out. Ask your questions and let me go. Oh, just a minute. Someone just came into my office. I gotta see who it is. You wait right here, and I'll be back in a minute. Sheriff! Hey, Sheriff Wallace! I'll be right there. I'll be back in a minute, Mr. Hind. You'd better be. Coming right up! Thought you'd have your hands full on the bridge job at the canyon. Well, I have. But you see, Sheriff, I came into town to find a couple of men I fired this morning. Oh? Yeah. Uh, Steve and Skinny. I understand you got them locked up. Well, they got into a row at the cafe. A sheriff, I, uh... Uh, I suppose they told you why they were fired. Oh, not yet, Kirk. The fact is I haven't had much chance to talk to them. Well, then I'll tell you. They, uh, they got careless and the man was killed. Hmm. That's bad. I just had word that the thing won't end with my firing him. No? No. You see, words got around that, uh, well, that Steve and Skinny were paid to make trouble. Oh. Is that so? Mm-hmm. Oh, I don't believe it, but you know how men are when a story like that gets started. And I came to town to warn the two that they'd, uh... well, that they'd better clear out when they got a chance. I see. Well, I got them here. It's a fine against them. I'll pay it. You can pass along what I said and just turn them loose. Well, don't you want to talk to them yourself? No, no, no. They, uh... See, they're probably sore at me for firing them. Uh, is there a fine to pay? No, that ain't necessary. I'll turn them loose. They're good. Want to wait? No. No, no. Might be just a little embarrassing. No, I'll shove on. Suit yourself, Kirk. Now, tell them what I told you and they can use their own judgment. Mm-hmm. Good night, Kirk. Good night. Ornery buzzard. As Kirk left his office, Sheriff Wallace stood in the open doorway looking after him for a few moments. He seemed lost in deep thought. Then, closing the door, he turned and walked slowly toward the cell, where Tauna was confined with Steve behind. Hmm.  Sure, putting himself out to be kind-hearted. Ha, ha, ha. Looks like the masked man's plan is working out just like he figured it would at that. And now I'll unlock the cell door and tell them they're free to go. I'll unlock the cell, gents. Being as I'm letting Steve and Skinny go, the engine can leave, too. As for you, Mr. Heinen... I won't go. What's that, Steve? Ian Skinny ain't leaving here. That Redskim told us a few things and Kirk's coming here proves it was true. What are you talking about? You heard what Kirk said. He came here to warn you. He came here to fix us so as he could shoot us and have someone else to take the blame. Oh, why do you want to shoot here? I ain't talking, but I ain't leaving here. What are you waiting for, Redskim? Me not going. Of all the crazy... Well, it's dark outside. Too dark to see who comes from here. Maybe fellow, shoot me. Maybe think me one of these two fellow... I never seen a like of this. Mr. Heinen, you're free to leave. I, uh... I'm in no hurry. You can't stay here. Me and Skinny won't leave. Kirk's afraid we'll tell something. He wants to shut us up for Keith. These fellow take pay from Kirk. Get Cash to smash Bridge. What? Is that the truth? We ain't admit nothing, but we ain't leaving. Now, look here, Inge, and that don't make no sense. Why would Kirk pay anyone to smash the Bridge? He wouldn't gain nothing by it? This fellow pay a mind? No, no, no. That's not true. Come to think of it, if Conway fell down on his job, you'd take it over, wouldn't you? Are you making an accusation? No. But there ain't no one else who'd pay to block work on the Bridge. The word of an Indian. Then you don't take no stock in what the Injun said? Of course not. Yeah, Steve, you see, there's nothing to be afraid of. Well, Hine, go out first. The sheriff wants to ask me a few questions. I've changed my mind about that. Hine, I'll ask him some other time. You can go. But I, I want to speak to you about something. Tomorrow, I'll do. Stop hedging about it, Hine. Hine, you know better than anyone else if Kirk was paid to damage the Bridge. Well, look, well, someone else might have done it. Well, there ain't no one else who'd pay for that kind of work. You go out first. No, wait. You go out first. No. No, Kirk will shoot it. It's dark. He can't see. Then you admit you hired him and he paid babies. I admit nothing. Let me go. Make an Indian let me go. Now, open the door. Wait, wait, Sheriff, you want to ask me some questions. That's why you brought me here. Let these others go. We can talk. I'll ask you the question I figured on asking Hine. Did you hire men to smash that Bridge? Answer yes or no. No. All right, then. We got nothing to fear from Kirk or anyone else. Now, get out of this. No, no, no. Wait, wait. I'll confess. I'll admit it. You hired Kirk to smash the Bridge? Yes. And he hired them too? Yes, but I didn't intend to kill anyone. I was on accident, Sheriff. Get behind that far door. Put him in there, Tondo. You get back. Get back. Good work, Tondo. I'm not fixing her. Do you chance in the next room hear the confession? Yeah, we heard it all. We admit it. Good hunting, Sheriff. Yeah. What's this? Who are these men? Deputies and townsmen, Hine, so as we'd have witnesses to your confession. You framed this. It wasn't my idea. Get in there, Kirk. All right, all right. Don't shuffle it. Well, Kirk, inside your hands so neat.  This was all frame. What, Kirk? I was a masked man outside. He grabbed and wrote me as soon as I left the office.  They wouldn't have had a thing on him. Kirk, you ornery pole cat. You would have shot the men that helped you if you'd had the chance. Yes, and if you hadn't come here, they wouldn't have been able to trap us.   Now, both of you, keep still. If you hadn't showed up, Kirk, we'd have got you anyhow. Hine would have squealed just as loud when we got him convinced that you were waiting outside. Open that door, deputy. Sheriff. What is it, Tondo? Conway, get more time to finish bridge now. Hell, shucks. Without Hine waiting to jump in and take the job over, I reckon Conway can have as much time as he needs. No, that's good. Me, go now. Get in there with your pals, Kirk.  No, I admit that, Kirk. It's here with the plan that was thought up by the Lone Ranger.  You have just heard is a copyrighted feature of the Lone Ranger Incorporated.


he certainly wasn't praying to himself. He wasn't praying to any Trinity. He was praying directly to, and only to our Creator. And so in that sense of the word, he was indeed a Muslim. No doubt about it. If Jesus, if, if, if David Wood, by example, is praying to Jesus, which, if he's a Christian, he most likely does, he's praying to Jesus, not that I believe this is Jesus in this picture, but, and Jesus was praying to another, you know, then there's no way that David Wood could be a Muslim. But surely Allah guides those whom he chooses. He has the opportunity to do so. There's been people that are worse than David Wood, if you can believe that, that have converted to Islam, accepted Islam, reverted to Islam, rather. So surely Allah guides those whom he chooses. It says for the, as for those who disbelieve, it matters not if you warn them or do not warn them, they will not believe a lie, set a seal over their hearts and over their hearing, over their eyes is available to them, but the penalty they bring upon themselves. So that's my answer for you, Matt. Thank you. Thanks so much for, thanks so much for coming, folks. Let's go around and pause. We appreciate you being here. With that, we'll have an intermission. We'll start the next debate at within 30 minutes. So thanks so much for being here, and we'll see you in 30 minutes. I saw you did there, Matt. Folks, if you're watching at home, there'll be a con for, I should be claiming that I'm a Muslim all the entire time. In the case you're far from Texas, hit that subscribe button as all of the debate con debates will be live streamed from the channel. I actually can't take it live with my backpack.


pancreatic cancer is characterized by the presence of tumor-initiating cells, ticks. These cells have the ability to self-renew and produce new tumor cells, which leads to the development of metastases. In this study, researchers found that ticks are not always present in the same form throughout the course of the disease. Instead, they discovered that ticks go through cycles of activity, where certain ticks become active at different times and then stop being active again. This suggests that targeting these specific ticks may be more effective than targeting all ticks simultaneously. This article was authored by Claudia Abal, Felix Appel, Carl Roland Ehrenberg, and others.