Hello and welcome to this webinar about Spark. This is one of a number of introductory webinars about big data being run by the UK Data Service. I'm Sarah King-Heal and I work at the University of Manchester in training and user support. Peter Smyth is going to do most of the presenting today however. He's also based at Manchester University and also works for training and support for the UK Data Service. Thank you Sarah and we'll get straight into the webinar. Today, as Sarah just said, we're talking about Spark and what we're going to look at are what makes Spark different from other Hadoop products. We'll have a brief look at the Spark framework and APIs just to give an idea of how it all fits together. An API is a powerful application programming environment and it's just a way of allowing Spark to integrate with other programming languages. And then hopefully the majority of the webinar will see some examples if you're using Spark R in both a Windows environment and in a Hadoop Sandbox.  So moving on, a brief history of Spark, even big data itself or big data processing really only goes back to 2002 with the Hutch project which was aimed at finding ways of processing very large data sets in a reasonable amount of time and using parallel processing. So that's the notion of a cluster of many, many machines, thousands of machines potentially all working together to process very large data sets by breaking it down into small chunks and processing in parallel. And from that project Doug Cutting who was at the time produced papers on the process called MapReduce which is this idea of breaking down the processing across a variety of machines and making them all work together. And MapReduce was really the basis of Apache Hadoop in 2008. That was the main way of processing any kind of data. The downside of MapReduce is it's very batch oriented so you set up a job, you run the job, you set up another job, you run that job and so on and so forth. It wasn't particularly interactive. In 2009 a gentleman called Matai Sahara, Saharia at UK Berkeley wrote a paper as part of his PhD thesis on using this protocol or invented protocol Spark which the idea was that it would combine all the different types of processing available in Hadoop into a single system and it would be far more interactive and a lot quicker than the MapReduce systems that were current at the time. It proved very successful and in 2013 he actually created a company called Databricks whose sole purpose in life is to to mark the uses of Spark. And it's going through a number of iterations in the process and it was also about that same time handed over to Apache to distribute Spark under an open source license. And so when we use Spark now we actually downloaded from Apache site but a lot of the development work is still undertaken by the people at Databricks and all the original founders of Spark I believe are still there. So because Spark is very new and very fast moving it can be quite difficult to keep up to date with the documentation. There's plenty of books on Spark but they tend to be almost out of date before they're printed because of this fast moving environment in which it's set up in. So if you want to know about Spark one of the best places to go is the source if you like which is currently at sparkapache.org and if you go there this is the front screen that you'll see but rather than just show you a slide if we actually go to the website so this is the same screen here and on this initial page at sparkapache.org it will tell you various things about the speed of Spark how easy it is to use. So this is sort of referring to the different APIs which allow you to use in different languages how the generality of it that you can use it with SQL and streaming complex analytics SQL structured query language is almost a de facto way for processing structured data that is data in tables in relational database systems and so on. Streaming refers to real-time processing so data coming in constantly so you can think of Twitter as being a source of streaming data because Twitter's are being generated every second of the day new ones are constantly coming along. Another advantage of Spark is that it runs every way now it runs on hadoop as that's where it started but it will also run in other environments as well and certainly we're going to see it running in a standalone mode on a Windows machine in a few minutes but it can also access diverse data sources so simple files on your PC which again we'll see simple files in on other machines in a cluster so it will interface with HDFS which is the file system used by hadoop systems that's what hadoop distributed file system and there's a various other types of data sources which a spark can interface with so that's the slightly advertising blurb for the product if you come down to the bottom of the screen it will also give you information on mailing lists where you can get additional information you can well you can download Spark from here there's quick start guides there's training videos and various other things which will be useful to anyone starting off in Spark and that's just the front page so if you actually want specific documentation on your release of Spark if we go to other resources here you see these are all of the earlier releases at this point here about 1.1 that's only two years ago all of this has come out in the last two years what way the one way we're going to be using is Spark 1.6.0 we'll look at that in the minute but you can see again here it's got lists of videos that you can watch various training materials exercises it's got a list of books like I say a lot of these books may already be out of date in that there'll be future further releases of Spark to look at but of course the core elements of Spark won't change so all of these books potentially could be of use to you examples again when you install Spark it comes with a whole series of examples which you can run yourself just to get an idea and of course all the source codes included so you'd be able to look at how these programs have been put together and use them as a basis of your own there's a wiki and these are the various research papers if you then go into the actual documentation for the release we're using Spark 1.6 and then under here we've got various programming guides which you can look at for the various parts different APIs within the Spark framework you can look at the APIs for the specific language that you're interested in so we'll be using R later on so we click on there you can see a whole list of all of the functions available to the Spark R user there's quite a few there but by far Spark R is the least function rich of the various dialects at the moment but there's still quite a lot of things you can do and if you need to dig in you can look at the individual descriptions that are provided there okay if you look at the programming guides Spark Program Routes this is just a general one you get a general overview of how Spark works in various ways and all of them will have examples in the different languages available at the moment there's not much in here for Spark R because Spark R is relatively new but you can if you go to the Spark R API doc you'll be able to find examples of that okay so just to come back to the slides briefly so documentation so really what is different about Spark was it's really I could have just copied that front page of the Spark documentation because what Spark is aiming to do is it's a complete processing framework for big data so in that sense it replaces several of individual Hadoop components which I'll show you in a minute it's got APIs available for several languages so that's the ones that we've just seen and of course that makes the introduction of Spark into those languages just the same as adding a package to R or Python or something like that so it's very in that sense it represents a very short learning curve for people who want to start using Spark it's scalable to very large data sets now of course that's the whole point of big data you whatever you do you've got to be able to do it on a very very large data set so that data sets we can only be effective to be processed on clusters and like the other big data solutions that the point about Spark when you're actually coding to work against your your data set in our examples here we're going to use a very simple Windows PC or Hadoop sandbox the point A is that the code that you write is exactly the same code as you would need to write is your data set was hundreds of gigabytes spread across thousands of PCs of thousands of machines in a cluster to you it all looks the same in fact what it looks like it's just a big table your data set and we saw a little bit about the speed 10 to 100 times faster than map reduce what Spark tries to do is it tries to do all of its processing in memory so if you can if you can eliminate chewing and throwing to disks then you're clearly going to have a massive increase in speeds in the processing and that's hopefully what it tries to do that I have been claimed for real-time processing and real-time responses but we're not going to see that today on our little sandbox and Windows PC you can also run Spark on virtually anything so Hadoop clusters obviously that's where it was originally designed to use but you can run it on a Windows PC as we'll see and if you really want to you can run it on a Raspberry Pi as well you will have a few memory problems but it can run so let's try and look at compare how Spark tries to encompass the various elements that you might find in a more traditional Hadoop environment so if we start off with Hadoop Hadoop itself is is little more than the map reduce processing engine and the the distributed files system htfs so on top of Hadoop you will typically find running things like Hive which is the allows you to treat your data as tables SQL like tables we've got pig which is again a very data manipulation type language we've got Mahoot which is used for statistical analysis or machine learning so there's a whole set of dedicated algorithms within Mahoot we've got Flume which is one of the several products available for processing streaming data coming into whatever system and we've got something called Apache Giraffe Giraffe which is used for dealing with graphics databases now graphics databases in this sense it's talking about a database structure it's nothing to do with visualization the use for things like mapping social networks and so on now so that's just five products we've listed there and the idea of Spark is that you can use Spark to do all of the the types of functions that those five products will do for you so the Spark framework it starts with some core elements of Spark which is just general processing type things and on top of that we've effectively got four pillars of functionality we've got Spark SQL which allows you to do the SQL type processing tasks we've got Spark Streaming that's streaming data we've got ML lib which is machine learning or statistical analysis so that's your clustering algorithms and things like that and then we've got GraphX which does the graphing database and across all of those we have data frames and data frames are the part of Spark which allows you to treat everything as from the user's point of view as a table internally a data frame in Spark is it's not quite the same but it equates to what Spark refers to as an RDD resilient distributed dataset now the part of a resilient resilient data dataset is that is what allows Spark to do the distributed processing which you would need to be able to do in a cluster and it also provides you with fault tolerance in cases of data losses or machines going down and so on and that's very similar to the type of things that Hadoop will provide in HTFS but from the user's point of view the point about data frames is again it looks like your entire dataset just looks like a table and to a large extent you can treat it in that way everything else is hidden from you because you don't really want to get too involved with having to make changes to your code to decide how big the cluster arrays or anything silly like that you just want to be able to process your data in a nice simple format and tables are pretty good for that so if I just quickly just put on the little graphics there so you can sort of see how each of those maps to the various original the components which you might typically want to use with a standard Hadoop system Pig doesn't really represent the Spark code but I have to put it somewhere it does cover basic data transformations that you might find so in the when we're seeing the documentation it did mention the various languages that you can use with Spark now Spark was written originally in or still is in a language called Scala and Scala is very similar to Java so in Spark you can write anything in a big one in Scala anything can be written any Spark code any functionality of Spark is available in Scala and it's very similar with Java you can write code in and we can also use Python and now we can use R and the way the reason we can do that is that for each of those languages there is a specific Spark API which is being produced to integrate the Spark code with the code of the other languages so Scala is the first language and so it has complete functionality because Java is so similar to Scala it tends to have full functionality this is when I say functionality I mean all of the facilities that you can do which are available are you can do using Java code or Scala code using the Spark libraries Python or PySpark as it's called it came a bit later and doesn't quite have all of the functionality although the main components are there and then frankly you'd probably do something pretty complex and unusual to find something that you can't do in PySpark and you would have to do in Scala so it's not really much of a restriction using Python and of course it's a big bonus if you're used to using Python because of the way it's integrated the Spark libraries for Python just looks like as if you've installed another package you know installed another library in your Spark in your Python environment and the similar Spark R now Spark R is the newest addition to the suite of APIs if you like and again it's written in such a way as to integrate completely with your existing R environment and we'll see this in the examples that I'm going to give unfortunately it's not quite as mature as it is so at the moment there's no graphics integration with GG plot or other things that you might want to use in our environment and there's a rather limited choice of statistical analysis algorithms but that will undoubtedly change as we as Spark progresses so the demonstrations we're going to do are I'm going to start off by showing you Spark running in a Windows environment just using what's called the standard shell in our case we're going to use a Spark shell you can use a Scala shell you can use Spark R shell and then various other shell but we'll use the PySpark shell for that we're then going to look at running Spark R in our studio in the Hadoop design box and we'll do various little examples using that and then we'll run our studio on Windows with Spark R and we'll look at a different types of a couple of different type of files that you can actually load so a file type so a JSON file type and we'll load something from hdfs just before we get into the demonstrations just a bit of information about the the main data set that we'll be using this is a data set from the UK data available from the UK data service if you want to search first is SN7348 European quality of life survey 2012 if you want to download it it's a very simple procedure to download it's got approximately 105,000 records with 484 variables what it's actually about it's a survey that's been carried out every four years since 2003 and they collect data on arranges of usage of employment family life home life balance and so on and I would say you can download it from the UK data service website now load those 484 variables in there we're actually only going to use five and one of the examples we're going to give is how we extract our five variables from the 484 okay so we'll leave a slide for the time being and we'll start on the demonstrations now the first demonstration we're going to do is the using the shell and the shell is just pretty basic stuff as you might expect so what we're going to need to do that is a command prompt now I've got a command prompt here on my pc if you don't have that setup if you from the search panel down here you can just type in command and click on command prompt and this is a standard windows command prompt which of course it being windows no one actually uses the command prompt so it's quite possible you haven't seen this before and from the command prompt because I've already installed spark I can just type in Thai spark and over the next few weeks we will actually be releasing a video and a guide on how to install spark on your windows machine if you want to try that for yourself and follow along and well when it all loads up you just get a little splash screen I suppose saying what version of spark you've got so we've got that's a default version 1.6.0 and you just get a little prompt nothing else it tells you some of the things it's done it's got something called a spark context available at sc and a hive context available as sql context now for this all I want to do is demonstrate that this actually works so what I've got in this um notepad is some spark pi spark code which is going to do a word count program word count the word count program for big data is the equivalent of a hello world program in almost any other language every if you learn any language the first thing you'll do is write a little program which tabs back hello world to you well in big data what you do is you do a word count of some document or set of documents or whatever in this particular case on my pc I've got a copy of the origin of species and these few lines here in fact this one these two here are the one shall do all of the work in the word count and the other three lines the output of the output actually returned it back to python from from the changes the rdd construct into native python code um representation of the of the output and then all I'm doing the last two is just standards uh python to print is out okay onto onto the screen so I'm just going to select those go back to our command prompt and run them now what you notice is that the first two uh the first line is reading the file here the second two are actually doing the transformations to start off by changing getting rid of a lot of the um um the commas and the full stops and so on whoops too late to have spoken a bit quicker there and what what it'll do is it will do those and then it's just printing the results out which takes quite a while um obviously if we're doing this for really you send this to a file um but you can see even from this that I've got individual words and at the end I've got counts I'll just give it a few more seconds it'll get to zed because I know there's some zed in the origin of species so zoological and so on and so forth and so you've got various so that's that's your basic workout so that gives us confidence that our system is working and that's really all we need the command prompt so we'll close that down now the next example we want to go to is using the sandbox now when you load a sandbox it looks something like this but you never bother about this all you're interested in is this ip address which I have used here you can see up here that same address there and that port tells me I want to use RStudio and in RStudio if you've used R before you'll almost certainly have used RStudio and the it looks exactly the same except that I'm using it from a web browser because the machine is actually effectively remote I've meted it on my same machine but this address up here could could be the address of a real hadoop cluster somewhere in the cloud or a very large on premises one or whatever it doesn't make any difference it just happens to be a sandbox in this particular case now unlike the um the command line where you run a command called say py spark or spark R those commands actually have a bit of code behind them which do a certain amount of setting things up for you now because we're using standards RStudio that's setting your pattern being done so the first few lines of our of our script here is just effectively setting those things up for you so when I run that um get a few messages down here and eventually when it finishes what I'll end up with um in the environments down here are our s e our hive context and sql context so it's very similar to what we were getting before when we were running in the command line and it's just telling us that's in there these next three lines are really just set up for the graphs that we're going to draw later on and that's just standard R that's not not spark at all so the first thing we're really going to do is we're going to read our data set this is eqls one which I mentioned before this is a comma separate it's actually a tab delimited data set so that's why I need a delimited tab there it's got headers in it some things got headers and I want this read df function to decide what the schema is schema is just the layout of the variables names of the variables and so on and so forth so all this like all this statement which is really a single statement it's just going to read the filing for me and as soon as I've read the file in what I'm going to do is I'm going to select from that file of 484 variables just the ones I'm going to be interested in which I neglect to show you in the slides let me just go back to the slides for a minute show you that missing screen I get to tune you know the fact that the five that we're going to use so we've got y11 country which is 35 different various European countries numbered 1 to 35 normal working hours for your main job how much you use the internet is your household able to make any to meet now this is is listed as a it's like an ordinal value between one to six one means I can we can manage very well six means we struggle to manage so it's sort of it's ordinal and what we're going to count it as a continuous variable for the purpose of this demos and the key 63 euro is your monthly income which has been converted into euros because obviously all 35 countries aren't don't use the euro so it's just been converted so so that selection of those five and then when we've done that what we're going to do is for this data frame here we're going to say show me the first few or six records if you like notice head is exactly the same command as you would use if you're using native are but in this case this head is going to work on df2 which is a spark our data frame when we get down to that file I'll just run that now when that runs again you'll get various messages coming out telling you the progress now this is running on the sandbox and when it's finished running you can see the physics records of that data frame if we look up here df and df2 the list is here is former class data frames and unlike normal r or r studio if these were normal r data frames up here you'd have the little thing and you'd be able to click on it and see the table you can't do that with these because they're not really tables as such at the moment not not as far as r's concerned you just it's just an internal representation but you can still do head on it so you can still see what it looks like and you can do other things as well so let's consider an aggregation so from our 35 countries supposing we want to know for each country how many records are for each country and this is the code we're going to run and I'll just start that off running and I'll describe it and basically it's just a normal summary of by country account of how many there are now you don't have fast that ran and the reason it seemed to come back instantly despite the calculations it's in theory performing it's because it hasn't actually done anything yet all it's done all a spark r has done is kept track of what needs to be done and it's only when it's actually being asked to return something to the user that it'll actually get around to doing the work and this command here this collect command is a way within spark r of returning the formal class of data frame into a standard r data frame which is what we're going to do here and as soon as we've done that we're going to plot the results just using gg plot so that the gg plot is just standard r code we're doing the collect to make it into standard standard r data frame when that runs we can see down here we have a standard little very simple graph but you can also see here that the r country counts is now just a standard r data frame with the little view screen we're going to look at that if we wanted to not much in it okay now other things that we can do i'm just going to collect the df2 data frame which was our original data frame which has all of the records still in it and i'm going to do a quick little plot of the monthly income that's the q23 euro against how happy people are or how able people feel they can manage with their with that income and when that finishes running we get a little a very very simple graph here and really the only point of not showing you this graph is to show you that i've got clearly got some very odd outliers up here which are going to make a mess of any kind of analysis i'm going to do so the next thing that we wanted might want to do is to filter to try and get rid of them so these statements down here are filter statements so i'm just filtering back into the same data frame here and these are just very similar to how you do in normal r i'm saying what the data frame is i'm saying what variable i'm interested in and i'm putting some kind of condition on that variable now again this is probably a better example that i'm doing four different filters say but when i click run it seems to come back instantly and the reason it's doing that is because it hasn't actually done anything it's only when i run the collect statement that we get the pause and it does actually do some work and i'm also going to just add in another plot exactly same plot at the end so we can see what effect all this has had on us so again it's not a brilliant graph i know but but i've clearly got rid of the outliers and spread things out a bit so on that basis we're going to proceed and do a little bit of modeling and what we're going to do is you're going to fit a use glm now again glm is exactly the same name as you would use in standard r but this is actually the spark r version of glm and therefore you use a spark r data frame when you specify here df2 rather than a normal r data frame other than that the format of that command is exactly the same and and just like in an r normal r the result is also going to be an r spark r data frame rather than an r data frame but i can still do a summary on it so if i run that it it's almost as if you were just running a normal you had normal data in r and you're running a normal glm type function core on it now a low the dataset we're using or started with was is only about 112 megabytes in size and i mentioned earlier the point about the integration with the likes of r and python means that the code that you write is exactly the same so low df2 is is relatively small so 6419 records five variables in it if it was a thousand times bigger and you needed to process on a large hadoop cluster in order to get anything out of it the actual code that you would write would still be exactly the same you wouldn't have to worry about how it actually did it how it made sure all the bits got back together and so on and so forth and at the end you just get your normal statistical type results of of what came back you can also run get some predictions out of this and and look at the results as well so that works a very similar way to almost an identical way to watch glm would work on in standard r except that we're using a spark r data frame and it wouldn't matter if this dataset df2 was actually thousand times bigger than it actually is provide you already on the cluster okay so finally our final demonstration is again going to be using spark r but this time in the windows machine which i seem to have shut down so i'm just going to start spark up our studio this is our studio running on my windows pc but again of course it's a standard spark environment so it all looks the same and these first few lines which i'm going to run are almost identical except here i've got a different location for my spark home variable because now this is on my pc so i just run that and over here we will get exactly the same thing there's no hide context here because hide this hasn't been integrated into this version but other than that it's exactly the same you're getting before and the first thing i'm going to do is read a json file and again this is a small json file which is sitting on my pc and it's got some tweets from or about uk data service which i collected a while back and you can see from here i've got nine text file formal class data frame just as before and one of the nice things you can do about these json files in spark r is you can it will actually work out what the structure of of the data is and you can actually get it to tell you what it is and this is so this here is what the structure of a tweet i've actually got that in this file here this is just a cut and paste of one i did earlier and you can just see how long and complex a structure you get when you're doing a tweet and the problem with this is that if you're used to using tables it can be quite difficult to extract information from this because each level in i'm going in here in relational database terms would represent new tables and you'd have to have links to those tables and so on so this is probably why tweets are generally considered or considered unstructured data and you don't tend to use relational database systems in order to store process them but we've said that we've currently just read it into a spark r data frame and we can look at the schema and just to show you how this would look if i converted back just into a standard table i can see what i'm doing here i'm just showing the the the structure if you like of this entities and you can see from here this output that entities itself is is full of sub levels and so on and so forth so actually extract stuff from that could be a bit painful and tricky but oops fortunately spark can deal with that spark and spark r can deal with that what we do is despite the fact we know how complex this structure is we tell spark r this is a table in this line here and having done that we can use the sql context in spark r to treat it treat it as a table and use sql like language to select variables from that table so here what we're going to do we're going to select the created that which is just the top level id which is the top level we're going to select text which is also the top level but also we're going to collect something called entities dot user dot mentions name which is now three levels in and uses dot notation to indicate the different levels but you're just specifying that as if it was some long named variable and having done that we're going to put that into a table and we're going to look at the table so when we run that what we get back is again what is essentially just a table are three hashtags with our four variables and our name which is what embedded fields is just shown as a single entity in fact it is actually a list because it's going to have multiple names in there but again you can just drill down to get whatever level says you need to do and the list you can just process as a normal art type list the last thing we're going to do just to show that we can actually do it this is the spark are running on the pc but it doesn't mean that files that you're going to process are on the pc so in this case we're going to read another file called geography and this file is actually located in hdfs on the sandbox that we were using before so it's going to go to the sandbox this is the address of the sandbox that is within hdfs and it's going to read the data in exactly the same way and I'm just going to bring it back into a standard spark a standard r data frame and we'll just have a look at the beginning of that file so the point of showing this is that almost regardless of how you've got your data stored or where it's stored there is a way for spark r or any of the other r dialects pi spark or java spark or scarlet spark to actually read that data and process it in a quite a uniform manner okay and this is just the first few lines of that data so back now to the slides I think just to summarise a bit I think I mentioned that spark is still very much in development and spark are even more so but you can certainly expect one or two releases a yak and so on adding new functionality as we go and certainly spark are got some catching up to do at the moment there is a something called spark r ggplot2 which you can download on github if you if you're familiar with github and one would imagine that eventually that will find its way into the mainstream spark our libraries and also I think I pointed out that glm that we showed I showed working a minute ago is effectively the only statistical analysis you can do in spark are at the moment you can do lots of other things in in pi spark if you wanted to but one would have to assume that as time goes by all of those currently available algorithms in in pi spark and scarlet spark will come across into spark are at which point they will be structured in such a way that using them from from r or spark are is exactly same as you would use them from that they're equivalent in in the our libraries so it represents an almost minimal learning curve for you if you're familiar with with r already so in summary it's relatively new and then the spark is relatively new in the content development the idea is that no matter what your needs are in big data processing spark will be able to do it using one or other of the provided api libraries you can certainly use it we've used it in in two different environments here and of course in a commercial environment it'll be used in large hadub clusters it integrates very easily with the the programming languages such as python and r and I think from the demos that we've done hopefully that should be quite apparent to you I mentioned more information well again we looked at a lot of these we looked at the documentation we looked at the programming guide I told you that in these guides when they give examples they will give examples in all of the languages so regardless of what your what your what you like to program in you hopefully will be able to find an example of how to do that particular task in the language of your choice I mentioned the spark books and there was a little list of them in that documentation section but you need to be aware that because spark is so fast moving some of these can be very out of date well there may be lacking the latest information the core stuff will be the same but for example it's very hard to find a book based on spark are so you may have to go to the to the website of a battery and look things up from there and certainly if you are going to do a search for information it's always a good idea to specify the type of language the language that you might want to find examples in and so forth I think we'll end the webinar there thank you Peter it's very good and thank you everybody for coming thank you thank you bye


The big one that you'll be super happy about is the uh the stem is now slammed that's Neil's camp mate you got to come back we're going back on the 172.5s can't do it Neil can't do it Neil how are you mate very good very good come on in yeah we're doing house calls now an extra charge for this good to be back with your favorite galah yeah So welcome back to the Friday vlog series where the expert bike fitter Neil Stambry is going to walk us through four major changes I've just made to my BMC team machine following a crank length change I made only a few weeks ago from 172.5 millimeters to 165 and one of those changes is laughable it's become a bit of a running joke on this channel now if you're wondering why I changed crank lengths in the first place I'm going to leave a video for you at the end of this one but in a nutshell the change in crank length is supposed to enable me to roll my pelvis forward and essentially become more aerodynamic and efficient on the bike something that I am far from and what's interesting for me after 11 plus years of road cycling I've had many many bike fits before from different fitters and never before has a bike fitter picked up on my hip impingement and suggested a change in crank length and while this is my story I know there's a lot of people out there that are probably in a similar situation to mine and don't really know about it and Neil even says himself that roughly one out of five people that come to see him for a fit suffer from some type of hip impingement it could be either one sided or on both sides so I'm certainly fascinated with how this is going to change my cycling and whether it will take my cycling performance to a whole new level and I hope it inspires anyone out there that feel like they suffer or could suffer from a similar situation to give this a shot so the four things or the four changes we're going to talk about on the BMC that the shorter cranks have enabled I'm going to let Neil walk you through but the one that is kind of stealing the show is the slammed stem if you're someone that follows the channel you will know that the chimney has been a big part of the plot recently I'll put a video up there if you wanted to check that out first but essentially the chimney is back it's bigger and it's badder than ever and despite people thinking I chopped the original chimney off purely from the influence of the chimney mob led by captain pug wash the decision was mine and let's face it if I did follow the mob I would essentially have to saw my head off change my accent and stop drinking vb so in this case I will be leaving the chimney there despite the heckling that may occur for a long period of time but I am most amazed that for the first time in my 11 year cycling history I have a slam stem it's kind of blown me away so Neil's going to talk to you now about that and the other factors that have changed because of the crank length and how this could potentially take my cycling performance to a whole new level so let's get into it all right Neil you've come over to my house I'm overweight I'm inflexible my dog's humping your leg yeah I noticed that and he dropped a really bad fart it's been a great experience for you hasn't it it has mate yeah it's it's made my Wednesday yeah and and I'm not even getting paid for this you know it's going on here it's supposed to be my day off so first first thing we noticed when I looked at you is that you were dropping your right hip quite badly which is one of the things that you were doing when I first saw you back at cams in Brisbane before we fitted you and in that case the solution was to move your feet further apart and and fit a six millimeter shim and a few other things to the bike you were doing that again which you you weren't doing when you left my my clinic last time so we had to iron that out and why was I doing that you think I did wasn't what I thought it was I thought it was because you're overweight and you've lost condition um and people people as they lose condition they they become tighter and stiffer in some parts of their body and you know so if they put on a fair few kilos they have trouble with knee strike to the to the gut that sort of thing but in your case the solution was actually a bizarre one we actually needed to move your feet closer together again and that's a result of this one of the four sort of main things that we changed today after looking at you with the shorter cranks was moving your feet closer together than they were with the longer cranks now the the logic behind this is actually pretty good but I really wasn't expecting to make this change with you because it's quite rare that this happens as we moved as we moved the crank shorter your knee rises less high at the top of the stroke which allows you to roll your pelvis forward and all sorts of nice things in your case it also unloaded a lot of your your femoroacetabular impingement or hip impingement we call it and as it unloaded it your knees were able to therefore your or your femal was able to to sit in more internal rotation so in other words your knees didn't kick out as far due to the shorter cranks which was great which means that we were able to narrow the cue factor down and you suddenly stopped dropping your right hip or you pretty much completely stopped dropping your right hip when we moved your feet back closer together so that's a nice side effect in your case of the shorter cranks it's obviously unloading your hip impingement to quite a substantial amount which is what I was really hoping it would do in conjunction with that we needed to raise the seat a total of about nine millimeters so you'd already gone up five which was pretty safe and we went up about another four millimeters from there the seat went back about four millimeters at the same time and I think I explain this to you when if you've got the crank arms spinning around like this because the crank is effectively shorter your foot sits further back sort of towards the back of the bike due to the shorter crank right which logically all else being equal and this is a bit of an oversimplification but all else being equal your pelvis can sometimes go back in a commensurate manner and in your case yours went back about four millimeters just to keep you nicely balanced if we left the set back where it was you were leaning forward and placing too much weight on your hands and you're just just too quad heavy and moving the seat back that little bit just restored the balance that we had with the longer cranks so the seat went up nine it went back four your feet got closer together and the big one that you'll be super happy about is the the stem is now slammed we've dropped the bars 10 mils in addition to raising the seat nine which is great but you've created a small chimney effect again so yeah look I doubt it what you do about that is your own business Cameron but uh you know I think you should chop at 15 mils personally right we'll take it back to trilogy exactly five at the top apparently for safety because of the in-cap yeah yeah you've got to have the end caps got to be pulling down on the stem to properly preload the bearings that are in the top and the bottom of the the stirrer tube there so as long as you've got some standoff of the bearing cap you're okay it can be two millimeters but um yeah look I would personally leave it like that that's essentially how my bike is and just for resale value you know yeah some some guy buys the bike off here one day he's probably not going to be as flexible as you unless he's running 165 mil cranks so in the end we experimented reducing the height of your shim as part of our efforts to stop you dropping your right hip today and that did nothing so we've left you with a six millimeter shim but the the biggie for me the really interesting thing was was being able to move your feet that much closer together it it was about five or six millimeters closer together than they were in total than what we had with the longer cranks yeah so you'll notice when you look at the footage of yourself from the side and compare it to your old footage when you're doing that ftp test with your longer cranks your spine is it's still rounded to a to a small extent but it's it's a million times better your pelvis is rolled forward about five or ten degrees and your back is much flatter and I would I would guess that your head is sort of five to ten centimeters lower than it used to be and that's one of the primary sort of determinants of of frontal area is how low your head is essentially and your frontal area is is is the biggest the biggest kind of predictor of wind drag and you know this is like we said before it's an efficiency sport and if you if you present less frontal area to the wind if you are less of a windsock you will go faster for the same same wattage you got to remember that that wind drag goes up with the cube of speed so if you sort of graph the drag and and the and the speed of the rider it kind of rises parabolically so it it might take it might take you 500 watts to ride at at 50 kms an hour 400 to ride at 40 but only sort of only sort of 250 to ride at 35 you know so it kind of kind of rises like this so the faster you're going the more effect it has obviously and the slower you go the less it'll worry you yes but hopefully you'll be you'll be going 50 kms an hour everywhere now you know yeah it's it what it usually means is that my judgment wasn't that far off occasionally we get a person in your whack-a-mole shorter cranks because you say oh you know listen John you've got really bad hip impingement and all the things that you've got and they don't change and you think oh you know just made you spend a bunch of money or I've recommended that you spend a bunch of money and it hasn't given you the change that we're expecting but in your case it's done all of the things that I expected it to do and and yeah I think you'll really you think you really like it as long as you don't end up losing too much off your top end and I'll wait wait down the track and see when you do some sprint tests when you're back in shape and you do some tests down the track my guess is that your 20 minute power will go up slightly and your sprint will essentially stay the same but if you look very closely at your data you might find that it takes you a little bit longer to get to the peak power of your sprint as compared to the longer cranks a few more pedal strokes perhaps but you'll notice your overall cadence will go up that's one of the things which you you probably noticed riding on the road already your your average cadence tends to come out five or ten you know cycles higher at the end of a ride and and your efficiency due to wind drag will will mean that this will be worth it in your case as a person who's trying to go fast who's racing and you know trying to train and race at a high level it'll be worth it for you yeah okay good it's the plan anyway yeah yeah we'll see we've just got to get you back in shape now have you have you have you put on that standard the government came out with a three to five kilo range which is what the average person has put on during the COVID outbreak really yes is everyone sitting at home doing nothing i would have been i would be straightforward middle of the bell curve mate middle of the bell curve


Hi there, so we are live with speakers who presented on practical VoIP hacking using Mr. Sip and welcome. Welcome to Defcon safe mode. Not quite what you would normally have expected probably for coming to Vegas, right? But glad that you're able to join us and share some information with us. I understand though that you are both first time speakers at Defcon. Is that correct? Yes, that's correct. Thank you. Thank you for the opportunity. Yeah, that's great. Yeah, so we have a tradition here at Defcon for first time speakers where really it's a historical tradition of where we kind of do a shot or a drink with someone on stage to kind of welcome then to Defcon. So as your first time speakers, I'd like to, you know, hold up a cup and then have a have a drink here with you both and say cheers and say welcome to Defcon. Okay, cheers. Cheers. That was strong. Little early where you are. Strong coffee. Awesome. Awesome. Yeah, so that's great. So let's, let's get into a couple of the questions and everything. First off, right, so you recorded the talk a little bit ago. Really, right, like since you went since you recorded and kind of presented on Mr. Sip here at Defcon. Is there any major changes or updates you kind of want to share with with the audience? So first of all, so inside this presentation Defcon, we actually show most of the new updates so they were not published before. Recently we presented many other modules and all these demos. They're all new. And we first time showed them in Defcon, since the video published like in a week time. We are still updating the documentation and the YouTube channel we have Twitter page we have people can follow and the GitLab page we use to host the website for the pro version. These are the recent updates we can say, but other than that, the whole Defcon experiences the new updates so everything we show is the new content, all these pro features to new modules. They were not published before and then right now we just introduced them. Awesome. Awesome. Yeah, so kind of I guess also to kick things off here so kind of what drew you to like VoIP research and SIP security and like kind of what's the origin for Mr. Sip. Okay, that's that's a big question I think. Milly, I would like to answer that and if you would like to add something that you welcome. So Mr. Sip goes back to 2011. And one of our meeting with Milly also goes back to one of like 2012 or 2013 interview because, like, once I had a job application in Milly's company, and he was interviewing me but there was no SIP that time but that is just once we came to meet each other. And around that time, so Milly was working for a big telecom company, one of the biggest in the world, and they had the SIP team and security team there. They were developing one internal tool. And with that internal tool, they were also hiring somebody like a research supporter. And then in 2012, I think they didn't have NDA and one of that guy who was not hired for the project. And also published some open source modules, but I think the project didn't go too deep. Because it doesn't have any like also that's a comparison I think we can say it doesn't have any novel or unique exploits vulnerabilities inside but Mr. Sip stands out that it is both scientific and practical. And it has like, it is very interdisciplinary I would say it is the, it has full automatic modules that does all the vulnerability search but then in the real world attacks. It is utilizing novel exploits CV that is even just not published before it Mr. Sip so it contains a lot. But if we go back again 2012 to 2015 Milly worked on a close source project, different version of Mr. Sip that was kept always private and closed in the under the company. And by 2015 Milly left the company, and he was thinking, and by coincidence we met in blackhead London 2016.  He said, Oh, I quit that company, etc. And then this was a story we said, Okay, what is happening. Mr. Sip, like, he said, I want to program it from scratch, make it bigger, like, like, make it like perpsuit. You know, we had the idea that we could make it just like a real application that every pen tester penetration testers using. That was a dream in 2016. Nowadays, after four years, you have about 10 modules. It is becoming a reality. So we work hard on those programming software engineering, because it is a big project it is not one time published application but it's evolving up all the time. And we have lots of lots in the roadmap. First, it appeared many times in arsenals, blackhead arsenals, and some other technical conferences practitioners conferences, and also many published several research articles during his PhD. Mr. Sip actually gave him both, I would say, almost like a startup company and a PhD so that there are a lot of, I think, let's say events happen through the history of Mr. Sip it is not a small application. It has several journals behind a PhD work like a four years of PhD work. Plus, it is becoming almost like a startup but the main idea is that we keep it open source and we want to, we want community to use it and see that how Sip is important way but actually important and how they can just have a reliable tool. Awesome. Yeah, there actually is a question in the chat about, why does the website for Mr. Sip pro require signing into get lab. Is that maybe one of the ones or. I think that's ready that's why so we didn't want Google to index something that is like a demo content because we have a template now imported and get lab, and it is getting updated we are keeping it, but we didn't want to show it. So it is just ongoing it's very new, and we wanted to include the link, because the DEF CON video will remain online, and maybe next week it will be open the website, the Mr. Sip pro website, but right now it is still ongoing. That's why it requires sign in, even if you sign in it will say you're not authorized. I think I'm happy if people go and sign up to get my people to school. Three and it allows a lot of things. Awesome. Awesome. Yeah, so yeah. Yep, so sorry, I was just saying sorry for those users that we're trying to get into the website. I'm sorry that we are. They're struggling because of the story I interrupted you. You're good. No, this shows interest right it's good everyone's excited. Yeah, so another question from the chat.  You know, what would you suggest is the first line of defense to protect yourself or your company. I think, like, okay, I will say something maybe but feel free. I take the first sentence and feel pretty at after me. I think to when they do penetration testing inside the company, like let's say they are using Mr. Sip. And they are trying to find vulnerabilities and all tests. One of the defense they could do is like we also mentioned in the presentation that awareness, the password policy awareness so usually it is the lowest priority in the companies and security policies, and strong password policies really are not necessarily necessary. But when we look at Sip itself, it is vulnerable. So there are some, some of the aspects that unavoidable like that there will be VoIP attacks, and there will be almost no defense. If you deploy a like sophisticated attack. So, there is not much to do, but they could do the standards like monitoring and actively, you know, having some security researchers looking at things, and lots of awareness and strong policy for passwords. All these things are, I think, good for defense. But I'm not sure maybe you want to add something maybe. Yeah. Using wave specific security parameters like VoIP application firewall or VoIP IPS should be beneficial. Yeah. Cool. Appreciate that. Yeah, so we'll go one other question here. Right, so if you have a lot of experience obviously looking at kind of SIP and VoIP attacks and everything. Would you say that there's any device or companies out there you'd recommend over another to kind of do a better job of protecting against like the style of attacks that are in Mr. Sip. Okay, I think I will give this question to Melly by adding some on that. So maybe when we recommend or think about the company is the client applications and the server applications we can talk about. I would think they are mostly similar. Melly, what do you think about the companies like SIP servers or other companies deploying to products? What do you think about them? I couldn't get the exact question, but could you put some of it? Like I think what I think is, so at the end our attacks are against the SIP protocol. It is not for products and I think every product is vulnerable over there. So it is not product based thing also because I think inside the clients or servers they don't have any defense mechanisms deployed in the server.  But Melly, what I'm thinking is, do you have more experience on that? What do you think if any SIP servers, some brands or products are better than other ones, do you recommend any of them? It's not appropriate to say to bring some vendors. Yeah, don't worry, that's fine. Yeah, so for someone who's kind of, let's say, you know, isn't just familiar with the SIP space or VoIP attacks, right? They're more used to using some of the standard, you know, things against Windows or Linux. You know, I guess how would you recommend someone start to learn and kind of experiment or, you know, come into, you know, what kind of resources would you recommend for someone starting to look at like SIP or VoIP style of attacks? Other than just saying use Mr. SIP. Other than what? Other than just saying use Mr. SIP. Okay, yeah. I think one of the things they can definitely deploy the environment, right, the lab environment, where they can simulate or emulate the SIP servers and the client. So they can have, because nobody has this all SIP deployment at home, but every company has it. So my university at Oxford we have this SIP servers clients and it would be really easy I think to hijack the professor's phone and then do these things. But at the end for a new starter to experiment it, it is not going to be possible to deploy or have a SIP deployment at home. Nobody does that. But they can definitely emulate something on their computer. And there are many tools for that, that they can start generating SIP messages on their local server, and they can run virtual machine. So you take some virtual box, few instances, one of them is server, it has an IP address, other one is few clients, etc. And then one, imagine one virtual box is calling another one. And while doing so you have another virtual box which is Kali Linux. And then this one is the attacker machine gets access to the network and they can play with it so they can watch this start watching the network messages and play with it. I think new beginners could do that. And that would be fun. So, also, reading the first CPRFC is very beneficial. Is it virtual CPVs, they can use any kind of Asterix based CPVs, such as tricks packs or free PVs, etc. Awesome. There's a question in the chat from RPTK 2015. Can you expand a little bit about wholesale VoIP carrier voice and call shop, kind of the attacks were mentioned in the talk in context of registration hijacking. Yeah. I would like to give some quick summary on that because it is a real incident, first of all, and Millie was also one of the investigators and, you know, like an expert, like preparing technical reports on it, like in a real million dollar hijacking. So they found out how the hackers did it and now also in DEF CON we showed how they did it. So what happens is the steps are simple I think. So the hackers should get into the company network that is I think one of the precondition. And then, with using Mr. Sip, they can enumerate the users, break the passwords, get into the, or collect all the users credentials that is the step. This is not difficult by using Mr. Sip. Everything is automatic. Once the hackers collect enough information about the users, what they do is that they can start selling whenever the users are sleeping or not using their accounts or the accounts, let's say, the hackers can start selling their accounts and just charge all these things into the company because company has the infrastructure that's running. And if they allow calls to, let's say other countries and hackers can just without running any infrastructure telecom infrastructure they can just charge them and make calls on behalf of all these stolen users. And at the end, maybe three months later, the company will realize okay, there were all these frauds going on, they will deduct but it will be too late because the guys, the hackers will already make, I think, millions easily by selling few months of utilizing this telecom infrastructure for a few months. So what they can do, they can, for example, run a local phone call shop, imagine one of the corner shops that says okay you can make international calls, and they might be using actually one of the other big company infrastructure and underground, like maybe stolen credentials, but they still go and pay them and make the call and it is maybe long distance call, super expensive thing, and they charge small money, but because they don't pay anything for the infrastructure. And because everything is free in quickly, as much as they can, they start selling those services, and many other things they are very creative, right, very creative people. And that's basically it. So few months, I think it will take until a company realizes okay, why our bills are much higher than usual or the traffic going on too much. And that will happen, I think that is the story like that is how. Yeah, even if they understand that they need to pinpoint the problem, exact problem, because they still don't know about the fact. This is also very common hacking story in the real life. So I experienced a lot. Emily, can I ask you a quick question. So do you think, not only the telecom companies I think the banks can have this or what other type of companies can have this type of call for it because if a bank has the infrastructure for their own use. And if they allow with the tip trunks external calls so they can also be the victim of this type of fraud right. And other companies, it's not only the telecom companies so many other companies can suffer. Any company any enterprises running with the IP and making out calls to internet can be vulnerable for that kind of attack. Cool, cool. Yes, we have another question from the chat from thought seeker. Do you recommend using session border controls in front of critical sip infrastructure. I cannot reply this question. Yeah. SPC is the session border controllers are very common in internet service provider level companies, not for enterprises, maybe they are expensive as far as I know, but it's very beneficial. I think like sip firewall application firewall so it's one of the best security firewall type, I can say, cool. Awesome. Yeah, so something else. So just kind of pondering, you know, what do you what do you think is probably the most significant attack someone kind of do using like sip void traffic like what do you think that maybe it would be the most impactful or significant thing you could see someone trying to do. Right. I mean, do you want, do you want to answer that maybe I have some stories I think but we can both, I think, elaborate on this. What do you think in this service provider level, there are many fraud, fraud type attacks, but for enterprises. Telephony dose is one of the most powerful attack. Impactful attack. So, there are many different kind of deep telephony dose attacks. You can run. You need to voice over systems. Yeah, I think so in the dose denial of service attacks. Mr ship is very skilled because we have so many protocol level vulnerabilities being published and getting also published. And that is one of the area that Mr ship is very powerful. It has very unique novel attacks built in modules. And by doing so, I would say, those is definitely one of the impactful, but at the same time inside Mr said we have advanced scenarios that where you want to make an impact without knowing anything full automatic scenario that you want to attack an infrastructure. All these advanced custom scenarios, we have a mechanism to write and prepare your attack. And then Mr ship will automatically follow all the attack, and you will not do anything but let's say you put a raspberry pi into the company network leave it there. Maybe a month later, nobody is there but it will begin an attack deploy the full automatic attack and any of those imagine the fraud infrastructure running. You can build a VPN server inside, make a tunnel outside and play a lot with this and then anytime you want to distract people, you can place a dose attack and any other stuff. We have a, we couldn't have a chance to make demonstration for our attack scenario player, but it's the module of Mr ship new module of Mr ship. And we have added some predefined attacks scenarios including DDoS telephony DDoS type of attacks, and one of them is like, just by sending one in CP might message, we can occupy the server for 64 seconds. And we gave theoretical information about that kind of attack, which was normal attack and we have published it in our academic research papers. Yeah. Yeah, so we're coming near the end. But yeah, is there anything in particular you really wanted to add that you kind of ran out of time to cover in the talk. Anything you really want to make sure you share with everyone here. I would recommend everybody and all this community to support and give us the feedback that is one of the important thing. Because Mr ship is not a one time tool it's evolving. And last four years I think we showed the good progress. And in the next few years, there will be a lot of new modules and novel attacks coming up, because our roadmap is huge. So we still say some of the parts, I know what really has and we discuss all the night. We have, we have huge abilities, we will integrate keep integrating into Mr ship. And we would like to say the community that they should definitely follow and tell us how we can cooperate how they can join their most welcome to help Mr ship and take apart active role. And then so that we can make it better but the point that we should not miss is definitely follow and communicate because there are a lot coming. Awesome. Awesome. Yeah, I guess the last last kind of question I guess to wrap things up. So if folks want to to learn more right or want to contribute like you were saying, you know, what's the best way for them to kind of reach out kind of what's the best contact like through the GitHub or Twitter or what's your preferred means of communication we can share shared links as well in the chat. So definitely GitHub is our first point of contact that we have the public version, open source version, the pro version is right now private. We are also open sourcing gradually the pro version modules, they will get into the public domain at some point, but GitHub is definitely useful we have the links in the slide. Tivity is definitely a good contact private mail address or many personal accounts, they are definitely good contact point we are very active, and we will likely not miss anything that anybody uses any of the point of contact in social media. Our private accounts are personal details personal accounts, most welcome I think we don't mind, there's no official or like crazy strict rules on how to reach but just call it like easy. Do you want to add something on. I can add one more thing, people just asking about demo and we will share new demo videos on our YouTube channel, most probably next week. Yeah, I think that is very important that we should tell yeah. Because in the DEF CON video, I think the fonts were small, that was not very readable it's HD and high definition. If they actually watch HD quality. They will see they will be able to read everything but we will also publish the videos of all the modules and all these attacks, bigger funds, maybe slowly in a better quality. They will come and you recommend that I think definitely they should be watching the YouTube channel. Awesome awesome yeah I definitely think that'd be helpful. Cool. Well, if there's no last minute thoughts for either of you. I would really just say thank you for joining us for for DEF CON thank you for participating for you know remote places again not in Vegas. And yeah, and look forward to running into you in a future DEF CON hopefully in Vegas in person. And otherwise, just really want to want to thank you and you know stay safe out there. Thank you guys. Yeah, we would like to thank everybody there yeah. I think the DEF CON team helped a lot through this online experience, Pardus and Nikita and everybody taking role there. And thank you guys for helping and arranging all these things, even in last minute that in all these difficult time. Awesome. Well, thanks and again everyone stay safe out there. Cheers. Thank you. Thank you.


Hello, we're back. It's FC24 Everton career mode. Road to Europe. Someone keeps calling it Road to Survival. Is it Road to Survival? We've got to knock 10 points off you. We had a really good performance against Man United, but we were just a bit unlucky. Today we take on Forrest at this city ground. Going to be a tough game. There are 14 points. This is a chance to get some ground on them. I actually thought Beto played pretty well in that game, but I want to give it a go. I actually want to change the formation again. I know what I want to play here. Right with the back? No. Right with the back? On the right, we're playing Beto. You want to play Beto on the right? Are you mad, man? Yes.  Dan Jimm has been brilliant. He's been terrible, but if you want to keep him in, that's up to you. Onana. Did you give James Garner a go? Yes. It's a vicious sub to bring on some legs. Patterson's got to play. Nicolenko, Tarkovsky and Pickford. I'm giving you one more chance. Get that bench strong off free, Mick Nill. 42 goals and 13 games by the way. That's right, because you're going to do things right now. We're going to win this game by telling you. There's no evidence. That's based on no evidence. Something's reached out to me. It's going to be the turning point. You better learn how to pass the ball and come on. Big gain if you perform. You've got to perform. Getting big criticism in the pressure. Some people on Twitter are saying that. I don't because they've got a really pretty team. Well done. Nicol. Nicol. Make that run, Don. He's made a run 300. Well done, James. Bethel's there. Bethel's there. Bethel's going. Play him. The court is in it. That's such a terrible ball. Last touch was terrible for a pasty. It's a bit of encouragement. Well in, Onana. Great tackle to be fair. You've got to ask for it, haven't you? Don't ask for it. You don't ask for it. You don't ask for it. Go on, Onana. Onana. You've done it. Go on. Bethel. Pass for the bleeding ghost there. Come on. Go to start. That's more like it, a bit more offensive today. Big win on that. And again. Go on, Onana. That's nice. Don pulls back. That's a B. I told you, I'm Manny Festerdy. Yes, stop. You're Manny Festerdy, that's Manny Fernanda, isn't it? You're Manny Festerdy. Manny Festerdy? Batteries. Good shots from Darm. Yes, blood to ever. Dan Jimmy. No, it would have been great though. If you could have bolted a shot as well and had a blue shot here. Yeah, I'd have a blue shot every game. I love blue shots. No, just me for this game. Blue shots, yeah, the home kit you'd always be blue, white, blue. Get over it. Oh, big challenge him. What he is. Out. O Wandy, it was a terrible strike. Wherever you break, you want better, lad. Look at Diggs coming in, laying a little on to your better, brilliant. Tarkovsky, mate. Why is Tarkovsky at the core, he's gone. Look at the core, he. Look at it. Tom, Tom. Not Tom. Cone it. It should have been the core, right? Look at Tarkovsky. Did you play the thing in following? No, I was running with better, wasn't I? I was controlling better. Cone it. Do you want to go short? No. By back post. Did the run. Good shot. Shoot then, just shoot as a matter. All right. Good save. I mean, I thought you were going to shoot from a straighter angle, which might have not put us on the back foot. All right, all right, all right. Patterson's dropped deep. We're all right. We're still all right for now. You have to bend us on it, manny. No. Oh, no. You should be defending me. Cone it. We should have won that before he even got there. No, he's tracking that one, eh? Come on, it's a great finish. It's a great finish. It's one, one, it's a one, yee. It should be three in the loop here. The danger, man. Y hat at Wybrantwyr, you had to shoot. Hold it, I'm going. I'm going. Oh, great ball from Danjime. Michael Enco. Don's trying to get in there. Don's gone back post. Don's gone back post. You laid that ball, manny. Should have gone earlier.  Stay up. OK. All right, I've got the fell in the middle. All right, I'll go. I'll go. I've got two, and I've got two. All right. Well played. Hold it. James Garn was going. Lovely. Same ball, same ball. Lovely. Don's making the run back post. All right, wait. Why did you go out wide? I'm sure I have a sign of taker on you. I'll do. I'll do. If you go short, then hold it. Push it in. Goes round, don't you? All right. It's not where it's at, though. Man, you just give it me back there, mate. No, but the angle was there. You know when you play in that corner, it's so difficult when you come round, don't you? Yeah, triangles, man. So why didn't you play? Man, you're in trouble. Of course, you big tackle. Line. Nice. There goes Beto again. Don, you've got to make that run, man. No, Beto. Brilliant. Shoot. Corner. Come round me, then. I've gone, I've gone. There you go. Whippy. Nice. Oh, lucky. Say him again. Say him again. No, make the near post run. Make the near post run. Make the near post run. I'm going. There we go. Yes. You're just going to add a pull. Oh, man. Have a go. Oh, man. Woo-hoo-hoo. Get in on me, lad. That might have been the best goal I've ever seen. I don't think so, but it was a go-go. Terrible. Oh, my God. Terrible. I could see goals like that. What a touch, man. What a goal. Pass the one. And the left foot. Bang. Boom. Bang. Went in like Brant White. If that hit the keeper in the face, he would have died. Not sure that's correct, but good strike. But everything back in front. Continent impacts. Throw top. Yes. Well done. The ball went miles away. Nothing in it. All right, let's not concede. Let's not concede. OK, OK. Just cover. Oh, Jesus. I was not in that, Ide. Ey, referee. They're just trying to start. This does nothing in it. Yeah. A bit of weird beat. Three kick. Come on. Oh, no. We've played the line down behind the wall. That's not 13 yards.  Jordan, come on. You can't be giving a corner from that. That on that occasion, I'm with you. You should have caught it. You should have caught it. That was poor. Get some butter in your fingers, man. It's gone past, gone past. It's gone back now. It's not bad, win it. Jordan, you're causing all sorts of issues here, man, mate. Keep it tight. Get the block. Good strike. Get the block. No, pick Jordan. He's getting dropped a lot of gun at this rate. Barry. Oh. Ned. Ned. What happened? What's he been doing? Oh, stop. He rolled on. What's he doing? No. I'm not having that. No. I'm not having that. Do you stay on your step? I'm not having that. I'm not having that. That time, I'm with you on that one. That was outrageous. You're shocking. I don't know. It's better. Lovely. That's great. Oh, he's gone. Brilliant.  I don't know what to do. Go Paul. No, no. Go on, shoot.  It's you. But how did that change to me? It was me at first, and then I was like, why is it not shooting? I was trying to run away from you, didn't I? It was me, and I was going, why is it not me? Then I looked over and it was red. I was trying to make the run on the outside. Or I missed out for once. We've done well there. Yeah, pick for you. Let us down. The goalie has had a bit of a made there. This is why we should keep the junior on the bench. Come on. We can win this. Come on, we can win this. By basketball do we need him? Done better. Off you go. Nice. Michael Anco, make that run. Make that run. Ah, sorry. That should have been a try. To be fair, Michael Anco. No, but I should have just laid it off. Well done. Rach i brilliant. Well played. Lovely. Pressured play. Unpressured play even. OK. It's almost come right. Good ball. Nanjime. Nanjime. It's a down great first touch. Come on, down. Have a run. Oh my, we're better off square. Touching it. It's the court. It's it. It's the court. Good play. Great play. That was a great chance though, the court. He's drove it to the finish. On the first touch. Oh, no. I don't feel like we're in any kind of control. These are on the counterattack of David. He's in six shots. That's OK. That's all right. Just keep doing what we're doing. Oh, no. I'm not sure that's the ball, mate. It's not the pass to me. A 2-2. Get over, James. Can it come across? James, you've got to at least put a bit of pressure on him. Turn. Lovely. Co-remove, man. Lovely. That's the ball. It wasn't a good ball. That was a battle for it. That wasn't that bad of a challenge. It was a yellow ball. It was a tactical foul. The ball was in the ground. Win it, win it, win it, Ned. Keep it. Well done. Relax, relax. Give us a minute. Time, you've got time. Let's back score. Dave committed, though. He'll cast them here. Dan's go. Come on, then. Right there. Good ball. Oh, Dan's you, man. Dan's going for a post. Stan's it off for Dan. Oh! Dan, Dan, Dan. Dan, Dan, Dan. There's a chance. Well done. Well done. James is the ball. James is the ball. Well played. Ooh! That was an obstruction. Ah, he was in as well there for me. Not sure about that one. Off the game, referee. One minute, one minute. Saki. Yes, Tom. Dan's.  I don't know what it's got there. It's got there. Can you outbrew it? Yes. Don James. You want to cut it back? Do it now, then. Bet on the flip. Oh! I can't be basket. Oh! Nia post. David, go for it, Eddie. Ah! Oh! Oh! A needle. OK, net. I don't like that trend. I'll be honest. I'll be honest. Come on. Come on. 20 minutes. 20 minutes. Can we? Can we? You've ended us. You've ended us. You've ended us. You've ended us. Oh, no. We got dragged out, two of us. I need one of you. Don't double up. Done. Got it. Now we start. Now we start. Now we start.  Ah! No noise like that, net. Oh! I'm screaming. I'm screaming. Yes! Yes! Can't go near. The noises. Go, go. Ah! Stop that noise. Please stop the noise. Get over there. Double up on him. You may as well. There you go. Oh, dang it. Come on. That's all right. That's all right. Good bit again. Oh, no. No, man. I don't trust the Corey for passing though. Passing is terrible. 3-2. Come on. 20 minutes. Angon. Ah! Please stop that noise. Just a terrible mind. Get over there, Dan Dume. Double up on him. You may as well. There you go. Oh, dang it. Come on. That's all right. Rhaid i gael ddau allan. Rhaid i gael ddau allan. Rhaid i gael ddau allan. Ychydig, mae'n gofyn nhw. Ychydig ddau allan. Ychydig oien! Eurliei, eurliei! Ychydig oien! That's why you put crosses in early, ddau yma chi gyda chi. Byddai yna, dydych chi fod yn ydi. Hynny ddim gynnig yr emball oedol. Ychydig yma chi gyda chi. Mae ffordd yma, mae'r fan yn ddiddag efo ffordd o'i gwirio. Mae'n ddiddig i ddiddig i ddiddig i ddiddig i ddiddig i ddiddig i ddiddigio i ddiddigio! Mae'r fan yn ddiddig i ddiddig i ddiddig i ddiddigio! Rydw i'r ddiddig i amddangos â'u defnyddio llan drafod mlyneddoi ac i ddiddigio i'r ddiddigio! Rydw i arnyn nhw. Rydw i'n credu'r gennymu gyda'r pai. Rydw i'n credu'r gell, mae'n gynnig i llan reddigio! Os oes yn y tro. Cyddiol y cyfnod dros o'r neidio, gyda'n fwyaf o'r rei. Rwy'n fwyaf. Rويwch chi'n hyn o'r rhaid o'r llwysoddi, i chi weld i'n ymddangos i gair y bydd. Rwy'n gyd yn wych. Rwy'n beth, rwy'n beth. Rwy'n beth o'r llwysoddi. Rwy'n beth o'r llwysoddi. Rwy'n beth o'r llwysoddi, ac o'n beth o'r llwysoddi. Rwy'n beth, rwy'n beth o'r llwysoddi. Beir a parte, beir a parte, nefyd gyda cop josau. Eon gennychu hefi ynayon yn gracias du je Dwi Cadw Arwyth Un ici, wedi cael ei ddweud. Judah wedi wneud... Mae roi gyntaf. Beth rwyf! Rwyf! Rwyf! Aau! Mae'n hyffordd. Beto!  Mewa. Mewa. Nid yw'r epaid, maewa. Mewa. Magu. Gwi'n iechyd. Gwi'n iechyd. Gwi'n iechyd. Yes! Nid yw'r epaid. Merdydd beto. Merdydd beto! Yes! Yes! Yw Beto yw pleid, Beto yw'r bobl. Beto yw'r bobl. Rwy'n meddwl, alei ei fydd yw i sefydlau. Rwy'n meddwl. Rwy'n meddwl, Nari. Rwy'n meddwl. Rwy'n meddwl i'r plos saith, efallai! Mae o'n ffineid. Mae gafodd'r gael, mae gael. Rwy'n meddwl. Rwy'n meddwl 3 pwyffau o'r meddwl... Rwy'n meddwl 3 pwyffau o'r meddwl sy'n meddwl 4 sydd o'r beth. Y nodi yng Ngheilio, mae'n meddwl ar y cyfodd. Rwy'n meddwl ei hwydddan siarad, Mae genno, mae gen i. Diolch yn ystod y 7. Felly dyna? Rwy'n rhan o'r amser a'r llei'r llei. Fentlor i'r llei. Rwy'n rhan o'n 4 golffau ac 3 at gyflawn. Mae'n fawr i ddiwedd. Rwy'n rhan i'r amser. Felly mae'r big win. Rwy'n rhan o'n 5 o'n 12 golffau. Rwy'n 12. Rydyn ni. Rydyn ni'n ddod, rydyn ni'n ddod. Rydyn ni'n ddod. Rydyn ni'n ddod i 40 a'n fyddo. Rydyn ni'n ddod. Mae gennym y gweithio rymell ar gyfer y rhannau'r cyfan mae yn olygu am hwnnw ac rydyn ni'n gyfrifio arddangosch yn ddisbon. Pwyd yn gweithio'r rhannau ac yma. Gweithio'r rhannau a'r cyfan. Rwy'n cael ei wedi cyfrifio'r rhannau. Rwy'n cael ei bod ar hyn o'r rhannau. Rwy'n cael ei bod yr rhannau. Rwy'n cael ei bod y rhannau ar gyfer y rhannau. Rwy'n cael ei bod y rhannau. Rwy'n cael ei bod ar gyfer. ynchlaw. Burnie and Brighton aren't getting any more points this season. Right join us next time when we we've got Newcastle United at Gunllustin Park dare on 31.17. Be a tough game so make sure you like, subscribe, put your comments in below. We'll see you next time.