is a certified RC3 Tile Shopping Ultra from Hamburg. When I'm calling him a really old member of the Hamburg CCC scene, that is not even enough. He is working on Freifunk, which you can see under hamburg.freifunk.net. He is operating tour notes and is also involved with Reclaim Your Face, which is written in one word.eu. Behind Public Transit 2.0 is something where he, because of a vulnerability, looked into the back end of one of those systems and so the stage is yours, can talk it. Welcome to my talk. Together we are going to look behind the scenes of Public Transport 2.0. The usage of the public transport needs to become easier. For example, if I want to get from A to B in Hamburg, then I need to choose my ticket before I want to ride and I also want the ideally the cheapest one. And I have the choice between various cards, one-day cards, individual cards, group cards, four-times cards, sometimes cards, maybe short distances, maybe long-distance tickets. And all of those are only valid for different zones within the city, between one and six rings. And I can also get some extension tickets. For this I need to know which exact zones or rings are relevant for me. Two of those are also relevant for time-ticket users and some of them are not even visible in this map. So if I don't even know before I want to take my ride, it's very improbable that I'm going to buy a week ticket, even though if maybe after the week it might turn out that it would have been cheaper for me to get this week ticket. The entire problem has a name. It's called a tariff jungle, which is called if the ticket and prices and fees for a service are very complicated. So we need an app that will direct us through this jungle and ideally works for multiple transport authorities and they have these systems that will enable you to use the transit system without previously buying a ticket. It will be evaluated after you ride what you used and some systems can also group multiple rides over a week and then the end of the ride is detected automatically. They also check in and check out systems or BNB out systems where you might not have to do anything during check-in and check-out. This is the IPO or maybe you need to do something in the app which would be the CICL system. So I've looked at the app from Osnabrück, which is called Yannick, which is supposed to make things simple and safe. So here we see two screenshots from the app. If I am at my starting station and want to climb to the bus, I will swipe the check-in button to the right, which means I am checked in and thanks to Bluetooth beacons it will automatically detect once I've jumped off the bus. The lines and stations are collected on the back end and also correlated to the smartphone's GPS data. How this looks could be looked into further using vulnerability in the system, in a development system, a pre-protection system, and now we'll have a look into it. I think this is going to be quite interesting. The entire process around the signaling to the authorities that the vulnerability was here was actually very good. So I have added a test user to the system and now we're going to log in. On the left side we have a menu where we will click through in a few minutes. Here you can see the number of successful requests within the last week and in the top right we can see that the test user has been added to a few groups and now we will change to the role of the city operational of Osnabrück. So now we will look at the ticket area and trips. So we'll see that all of the rights that have been taken on the 13th of November, we see a universal ID, the line of the bus line, the number, the names of start and end station. We can see in the stations that were passed and here we can only see that this ride on itself cost two euros and 70 cents. But we can also see that for the entire week an optimized price of 10 euros and 80 cents was calculated, which would be four rides. And for this we see in the second line, the light gray one, there was a week card for 18 euros and 70 cents calculated and the individual ride was 2 euros and 70 cents. It looks like maybe in the future or in a production system there might also be some fraud detection but that doesn't work in the system. And what we can also see here about the some information about the devices used, some Android and Apple devices and the version number of the app and some further info about the phones that were used. The exact operating system version and some information about the connection quality. What can also be displayed is various check-in and check-out events. For every ride that is taken one can see when exactly the manual check-in happened. In this sub-menu we can see the exact rides in an anonymized fashion. There is no pseudonym here but this is only which line was used, how long the ride was, how many stops there were in between and the beginning and the end which was rounded to full hours. And here we can also see for every registered user what time range also rounded to an hour they were active within the app. I can also display some information about the Bluetooth beacons that are distributed once. I can see the various vehicles and the IDs of the beacons that are deployed and using the sub-menus I can also display more information about each beacon such as the remaining battery life. And now we get to some more interesting stuff. We can see the suspect movements here. For the 11th of November I can see all the users that on this day used the system and in which hours they did and they were active. So for every user we have a line here in this table, a row and there are these published rectangles which are 24 individual lines and every line is representing one hour of the day and if during an hour the person was active the public transit then this line is colored in a certain way. So I see that some users take only one ride per day then we have a few that take two rides or three. And we have some user that I sought out who is doing frequent trips. There is an activity around midnight in this log as well as in the morning and afternoon, lunchtime to afternoon. So let's look at this more closely. Here we see some more detailed device logs and first in these rows we have various individual check-in and check-out events or be-out events. There is one just after midnight so two minutes and 24 seconds after midnight at which point a check-out apparently occurred was recorded and then for about seven hours almost seven hours there was nothing. So after a somewhat short night that person went back on their way and across the day there are further check-in and check-out events and in between probably when they changed at intersections there are so-called scan gaps and the first is just after seven o'clock where after 426 seconds the scan gap was noted. It gets more interesting if we project this onto a map where we get a better feel where the person had moved in the city. We see the check-in and check-out events which I can click on and I see an event from the 11th of November at 11 o'clock 11 minutes and 11 seconds when the person was checked in I can also seek out the stop-name so this is Sudhausen-Mitte in the Osnaburg region or in the city limits still and I can get further information from the other events as well. And there are a few other log messages that have been plotted here over time so the horizontal axis is time and this is a segment of about 24 hours and every dot represents a log message. There are bug and info logs in here as well and if I hover over these and any of these dots with the mouse I can get some more info. This as I said is not a productive system and so maybe the productive system has much less information than fewer events. Yes, and at the very bottom I see the various check-in and check-out events over time so the person for eight or nine times within the 24-hour period they were on their way eight or nine times and around midnight and starting again at seven up to around 2 p.m. and then a few further journeys up to sometime in the late night and in the line above, trip stops half us I can see the stops and intermediate stops of each journey as well. We'll zoom in a bit further now and look at one journey in more detail. Here we have mostly the blue line with probably the signal strength of the Bluetooth beacon the stronger blue line and the journey began just after 11 and ended around quarter to 12 whereas the last stop was noted at around 11.35 which we see in the half us line further above and at around 11.38 the person probably left the transport vehicle that's when the last element in the half us line occurs and also the blue line drops off and gets even more interesting if I plot all these log messages on the map too these are data about the same journey that we saw earlier the person left at 10.38 or it is 10.36 here so there is a one hour offset compared to the diagram above but this surely is the same journey and we see that the person left the vehicle we can see at which stop that occurred and the log message here shows that the person was probably within the vehicle with a confidence of 100 and we can then see where the person went on foot let's see the last item here this is from 10.48 so about 10 of 10 to 15 minutes the person was tracked although they had exited the vehicle much earlier and again here is a value that tells you what the person is probably doing which is to walk with a confidence of 100 again and just the same I can look at the other values that are plotted here that I mapped and see what the person was probably doing and the estimate here is that the person was on a bicycle the system isn't completely error free here and yeah the system sometimes itself says that it doesn't know what is actually happening but in particular what's interesting here is we don't just have the journey itself tracked quite precisely but also after the journey has ended for more than 10 minutes the GPS coordinates of that user were phoned home so if you use this get off somewhere and then get home within 10 minutes then the app knows where you live and that is quite well suited to let's say retain data on public transport use if you don't go home directly but stop off at a pub or bar or something then the app will notice that as well again the question is whether this only occurs in this development version or whether the productive variant logs this amount of data and stores it as well and it will also be interesting to know for how long these data are retained production I've shown an example here that didn't make clear that a single house was entered but I've seen other journeys where the person went to building quite quickly quite directly which apparently wasn't lived in by many people not many people lived and you could even notice how that person was moving within that building and here you see over which period of time the person was moving what speed was logged and what the accuracy the assumed accuracy was about these data and we also see the user device mapping and information on the selected tariff and more information about the trips or journeys that were happening within the same 24 hours by that same person at the very bottom we see on this map which journeys were registered with which intermediate stops and which journeys were built in the end and that gets me to the end of this small demo and finally I deleted my test user I then logged out and reported the vulnerability at the companies involved I can also add that I was surprised how much data this network in B out system wants to have in the city of Osnabrück exactly especially these GPS data for 10 to 12 minutes after the end of the journey that really surprised me if you are out and about in the city of Osnabrück please do ask the operator about your data I wonder if the whole thing can be possible in a previously respecting way surely it would be possible to build a system like this that would register and store much less data but what I find more interesting are other solutions you could come up with more easy tariff systems for example if a day ticket would only cost as much as two euros and would be independent of any tariff zones or rings or whatever for all journeys on that day then we would have gained a lot and public transport would have become much more attractive to many people and the idea of having a financed public transport financed by the community much more interesting we have a group called Einfach Einsteigen just hop on would be an English name for that they have suggested a concept for the city of Bremen in which a community financed public transport is described the way it could be so thanks for watching and listening and I'll now be available for your questions warm thanks to this for this fascinating talk to you and for your call in the end against the kind of division politics that divides Germany up into smaller and smaller units which has been preserved through German history and is now visible in the kind of patchwork on entire systems that we have I really have to calm down as far as privacy is concerned and the findings that you've given us here the small joke that I prepared if you maybe found an API function to get us a few free tickets maybe it loses insignificance if we look at what you have provided us with here and try to deal with that there is there are a lot of questions thanks to the signal angels who actually divided the questions into categories for me the first question that I really I'm interested in and maybe others too is which companies are involved in this development in this system well that's actually not that easy to answer at first I found this vulnerability and then actually I had to look around for quite a while for whoever's responsible and in the end I had to report it to the transportation agencies of Osnabrück but in the back end there were also the locos of various other city transport systems and but I don't know if like they have the same thing thank you another obvious question do you know how long these behavioral patterns of movement profiles are stored? no I have no idea about that so that would probably be great if somebody from Osnabrück that used this app is listening they could ask for a copy of the data and we could find out what is the retention period, is it six months maybe ask again maybe declare this as a data donation that's very interesting interesting people that feel interested now please do and maybe turn it into a talk next time or contact you next question how about privacy protections within the use of the app are there ways of using it without creating a complete movement profile? well I know that there has been some research into the direction of how to build these checkout check out systems that provide inner security and of course from the side of the transport agencies they do want more data to prevent abuse and misuse to some degree but it is absolutely possible to give more privacy protection than this system does but I don't think that this system is oriented toward data protection but yes you said I was interested that even battery capacity remaining capacity was recorded or did I misunderstand that of course then the question is which individual which data that maybe linked to the person are transmitted as well just aside from the obvious movement data here do you know any other properties that could be related to an individual? well not directly no but the transport agencies they have only used pseudonyms we only know about pseudonyms of course at some point the tickets have to be paid for and at some point there of course there is a connection to the actual name of everyone so maybe it could be researched whether users are given a new idea at regular intervals yeah maybe next question is as far as you know is there a privacy impact assessment by the data protection authorities I know what the revision means a privacy impact assessment the the DSFA is a data protection consequence estimation I don't know that exists to me so when I found this vulnerability I didn't know if this was a production system or a development one so I did not just reported to the transport agency but also to the data protection authorities so they will probably have a look at it in the future and then of course the production system too of course I am a simple minded person I could imagine that the routines in the debug and info modes that the software has that maybe someone may not have care about switching all these off taking them out but well what I also wondered is one tab was titled suspect movements why yeah I also had to think of a Freudian mispronunciation there so if that maybe would be a general data retention but yeah I don't think I don't know you said that after leaving the bus or train it's ten minutes what does the app then actually can it be switched off you could be standing at the stop for another ten minutes and that would be of interest maybe but how can well you can certainly just kill the app on your device once you've jumped off the bus I don't know if that has any influence on the fair estimation I wouldn't have thought gaps in mobile coverage might become a privacy feature in Germany next question can a user access their own data or do you have to ask for it using the GDPR rules so can we ask the operators well I could not entirely find that out I have installed the app for myself but I wasn't able to buy any tickets so it but it didn't look like one could very easily get these wonderful maps from the back end actually in that case I don't think it suffices to say here's your data and that's it but also showing what this data is for and what it looks like and what it means and that is what these maps provide thank you maybe this question goes beyond Osnaburg by far how is what do you think about privacy protection with apps that are not from the EU a local traffic authority uses FairTech from Switzerland which is not in the EU I can't really speak to that I can only comment that this is not the first vulnerability I have found in a mobile ticketing app that would then be interesting which kind of software modules might be used by various makers software makers on a scale from free public transport to subscription trap what is your assessment how traumatic are mobile coverage gaps for the users maybe not a privacy question but just well that's difficult I don't know if I understood the question correctly I interpreted this if there are mobile coverage gaps which of course we know that may exist how reliable do you think these apps would then still be well I think that might be difficult in one or the other place I know there's a part of the Espan where they added a noise protection barrier and since then I have a worse reception there maybe if it's done really badly I automatically checked out there and had to check in again do you think that such an app would then try to interpolate or I guess where you are saying that you surely didn't exit the train on its journey and that could be quite error prone which estimations or AI predictions are made yeah maybe I don't really know what these GPS coordinates are even saved for to be honest especially in Osnabrück I know that all of these buses have the bluetooth beacons and with these beacons the system should know in which buses I'm in and the system should also know where the bus is so the system knows where I am riding along and when I get off so but then again without bluetooth beacons you could also do it with just GPS which might be not as nice but yeah that's basically all I can say speaking about data minimization no question next question how can this security how did the security gap come about when we gain access are data better protected than the production system well I was not able to retrieve any data from the production system and I assume that the reason was a configuration error that allowed me to access data and also from this data then find my way into the back end will the system also be used at the Hamburg transport system at least this AOS dot up trade is involved here as well well in the back end I was able to see that there is an HPV menu there and the company also said that starting 2022 they do intend to use such a system and we also had a question about the battery with the beacons what could that be used for well I don't really know how these beacons work maybe they're just bluetooth low energy beacons where once every one or two years you have to change the battery but there are also systems that are directly connected to the power supply of the bus where you of course don't need this one of many comments thank you for this let's group them inside that's we would feedback links to a heart of thanks I think we've covered the questions in the pad and answered them with your help and I would like to invite you to the breakout room now and before that just a few pointers the link to the breakout room where you could continue the discussion you can find that link by going to the chat tab actually


So, welcome. I am Dead Program. In the real world, some people call me Ron, other couple of people call me Dad, but I am Dead Program on GitHub, Twitter, and all the other important places. But I'm not dead, not yet. And I'm the ringleader of the hybrid group. Hybrid group, or boutique software consultancy that specializes in writing software for hardware companies. So Intel, we've done a lot of work for them. Also, they are sponsoring my travel this year, so thank you so much to Intel. Really appreciate it. And a company called Sphiro on this little movie about Wars and the Stars, and it's a real robot. Anyway, that's all I can say. So, what we've done a lot of open source work, the most well known is a little project called GoBot, and that's why I was here last year speaking about GoBot. Anybody have the chance to play with GoBot yet? I love you. But I'm here today to talk about a new project called GoCV. So what is GoCV? So, GoCV lets us use OpenCV, which is the leading open source computer vision package. It literally supports hundreds of patent-free computer vision algorithms, and it lets us use OpenCV from our favorite programming language, Go. You can also use the Intel computer vision SDK, which is a special version of OpenCV that's got some hardware acceleration baked in along with a couple of other neat things. So first of all, what is computer vision? So computer vision, according to Wikipedia, is computers that can analyze visual data to perform tasks or activities normally associated with human beings. So what does that mean? Well, we can detect motion. We can recognize people or other objects. Telepresence, whether that's medical telepresence, office telepresence, or my personal favorite, telepresence on other planets. And then autonomous vehicles, trains, planes, automobiles, and submersibles, don't forget under the sea, and augmented humans. You might be thinking about people with superpowers, but maybe we could also think about doctors who are getting a chance to look at MRIs and radiographies and spot things that the normal human eye cannot. So why would we actually use Go for computer vision? Well, it's the same reasons that we'd use Go for everything else. Concurrency, portability, and performance. Okay, did you get those? Concurrency, portability, performance. All right. We'll work on chanting later. So how GoCV works is that it uses Go to talk to something called CGo, which is part of the Go tool chain that lets you compile C code right in and it wraps C using C++ because OpenCV is written in C++. That sounds kind of complicated. Luckily, we've done all the work for you so that it works really well on Linux. It works great on Mac OS and it works on Windows. Yes, I said Windows. According to Brian Kettleson, 84% of desktop users are still running Windows, so let's take care of the Windows users, people. So the whole world of video, I'm ready for my mic stand. Hi. So the whole world of video. Can we see this code? So point it towards the sound producing organ. All right. So here we see package main or usual Go package. We import the GoCV package and then our main function. First, we're going to create a new GoCV video capture device. That's how we're going to get the information from the camera. We're going to create a new video. That way we can actually see what's going on. We're going to create a new image mat, which is where we're going to put the image that we're grabbing each frame by frame from the video. And then endlessly, we're going to read the image from the camera. We're going to show that in the window and then we're going to wait for one millisecond. That way we can keep up with it. All right. So that's the simple hello world of videos. So if we go over here and we run this, hello world. It's video. My mic stand. All right. So now that we've seen that, let's get into the matrix. So what is a mat? What is a matrix? A matrix is really the fundamental data structure that you're going to use when operating with OpenCV. And so it could be a two-dimensional, three-channel array like we were using, like you expect of normal images. But the mat in image OpenCV is actually quite sophisticated. It could be used for two-dimensional, one-channel. It could be used for three-dimensional, four-channels. You know, to keep vectors lists. It could be used for quite sophisticated calculations and it's all handled by OpenCV's memory allocation for you. So you don't have to worry about that. So I'm going to show four little mini applications all written using OpenCV. So face tracking.  Face tracking isn't cool anymore. Is it?  Now I'll tell you what's cool. Face blurring. That's what's cool. So, but we still have to be able to track your face. So we're going to use something that's called a cascade classifier. So it turns out that a couple of researchers, Viola and Jones, discovered that this odd characteristic of a mathematical object that's known as a Har cascade, or excuse me, a Har matrix, by using four different patterns we could analyze any image and by refining that further and further down we can recognize features of that image. Luckily you don't have to worry about that because we just have the GoCV's cascade classifier. That's going to do all the work for us. So let's take a quick look at some code. So it's still package main. We've got some of our standard Go packages. GoCV again. So we're going to parse our arguments so that we can get the right camera ID. Then we're going to open the webcam, same as we did before. This time we'll do some error checking. Also we'll close the webcam when we're done, like good citizens. When you're using Sego, you're going to need to free the memory that's been allocated using C because Go's memory management is not going to kick in and save you. So that's very important to keep in mind. So we open our display window, prepare our image matrix. We load our new cascade classifier, the one that's going to identify the faces, and then we read in the face, same as before. We run the detect multi-scale so that we can identify the face by doing that scaling operation down. And then we're going to actually blur each of the faces it finds. So we're going to use a Gaussian blur, which should make it fairly difficult to see. Then we're going to show it and then run it. So let's plug in the other camera real quick. Can I resize the code? No. Okay. Because these are the first statement that never executes. That might be not real good. Let's see if the lighting out there is better. Don't worry, you weren't there. You in the front have plausible deniability. I know you feel safer already. All right. So motion detection and tracking. So for this, we're going to use something called background subtraction. So background subtraction is a very useful technique for us to be able to separate from what's in the background and what's in the foreground. That way we can easily detect when something's moving around. So the way that the background subtraction works is it's going to use what's called a mixture of Gaussians.  A mixture of Gaussians is when we're actually going to look at the red, green, and blue and determine the Gaussian distribution for each of those. And then by doing a running mixture of Gaussians for each of the pixels, we can develop a heuristic whereby we can look at each pixel and determine whether or not it's part of the background or part of the foreground, even when the background changes. Luckily, you don't have to worry about all that because the GoCV background subtract or Mog2 handles it for you. So here's some code. We're going to skip parts of this because time is precious. Same sort of thing we're doing with some standard Go packages, GoCV. We're going to open the video capture device. We're going to open a window. This time we're going to have a few different maps. The one that we pull the image into, the one with the image delta, which is the foreground only, the image threshold because we have to clean it up a little bit to actually do the image tracking and then we do the background subtraction. So we grab from the webcam and then we apply in GoCV and in OpenCV, the apply function is used by all algorithms to take that algorithm, apply it to the source and result in a destination that has the results of that convolution. And then we're going to clean up the image using a combination of a threshold and dilate, which is just to get rid of all the extra little bits. We're going to find the contours of it and then hopefully we'll detect some motion. Mike stand. Mike check. Hi. Nobody said you could, nobody said you could go out of duty. I am the organizer of this room, so not only she is also the organizer. 15 minutes left. No pressure. Microphone closer to mouth. Which one though? All right. So, but there's nothing there to move. Well, luckily I have, well, let's see if we can, if I go over here, you didn't see that. All right. So let's go back over to the window and let's throw a robot in. So this is a sphero spark plus robot that I'm running using a go bot program that I wrote just because I didn't want to stick my hand in front of the camera. It seemed like, you know, not very hygienic. So it's able to detect the motion and then basically using the feature detection. It's having a little trouble because every time it hits the stand, it's moving a little tiny bit. But that just kind of gives you the idea of how it works. So we'll stop that. If you see something cool, you're going to applaud too. No, everyone's just in shock. They're like, wait, what's this guy doing? All right. So mjpeg streaming.  Well, I thought that was kind of silly. Why can't we just do this in like 60 lines of go code? So we're going to bring in another package, which is the mjpeg package that we forked from a guy who disappeared off the internet. So if you show, if you see this, great work. Thank you so much. So we're going to create a video capture. We're going to create an mjpeg stream. Same sort of thing we're doing is before we open the video capture device. We open the mjpeg stream. So now we're going to start a new go team, go capture. And what this is going to do is this is going to start grabbing the frames from the video. Then we're going to use the standard go HTTP package. So we're going to handle that route by serving it up from the stream class. And then we'll just listen and serve. The capture function is quite simple. We open the new mat. We read it from the webcam. We encode it into jpeg format using one of the open CV functions. And then we just stream it out. Mike Stan. Hi. Somewhere in here, somewhere in my, somewhere in my bash history is everything I need in life. If I could just find it. I've either forgotten to install it here. Maybe where did I put it? It's probably one of these other ones. Well, let's just install it. I don't have any of that access. Oh, man. I have this in here somewhere. Well, you can do it. We don't have a lot of time. It's just all it's going to do is serve it up into your web page. I don't have internet access to actually install the one dependency. I must have switched go versions trying to try the new version of go that just got released. Sure. But it totally works and you can find the code. Anyway, moving on, tensor drone. The finale you've all been waiting for. All right.  So we prove goes air superiority. So we're going to use tensor flow and anybody here not heard of tensor flow. Yeah, didn't think so. So tensor flow is actually very interesting. Everyone thinks they don't realize it's actually flow based programming using symbolic mathematical calculations as each node. If you've ever seen something like node red, which is another flow based programming that it's very interesting paradigm. And so we're going to bring go bot into the mix again. So deep neural network is a neural network where you've got inputs, you've got outputs and then you've got hidden nodes. That's what makes it a deep neural network as opposed to just a superficial one. I guess I don't know. So we're going to use something called the inception architecture. So inception is an architecture where each one of the nodes in their own network is itself a neural network node and so on and so on kind of like the movie inception. So a team of researchers use this and trained it on a database known as image net. And so we don't have to worry about all that. Luckily, we just have the go CV net class, but we're gonna. So this code is a little bit longer because we're if you saw my talk last year at FOSDEM, this is almost the exact same drone code, except we've added the tensor flow code into it. So we are going to run the drone, we get some parameters, we control it with a joystick, hopefully. Let me plug in my receiver. Because that would be very helpful. I'm almost ready for mic stand. That's your new handle. I don't launch anything yet. Alright, so it's almost the exact same code as last time. We're gonna open the joystick, we're gonna open the drone, we're gonna also use go bots built in ability to use open CV via go CV. So the really interesting part is every time the camera gets a frame, we're going to grab the image from the frame. We're going to convert it to a 224 by 224. That's a typo in my part, blob, because that is the maximum resolution that the image net tensor flow network is going to be able to process. We're going to set the input to the neural network as that blob. We're going to run a forward pass through the network. We're going to reshape that data and then put it into order so that we're able to pull out the most likely value. And then we're going to display that in the image as I then fly around the drone. Just because I didn't want people to have to come up and put objects in front of the camera, I thought this would be just so much more interesting. So let's see what happens. I'm not saying you should cover yourself. All right, so there's you and hit that button to get rid of the extra. So now is a good time for when the whole thing's up in front of the camera to see if it can identify them. Right now it says warplane. I don't know what does that mean? Basketball? There you have it. Tentative flow powered drones. All in go. All in go. All right, so was that fun? Did you guys enjoy that? So check out GoCV.io. You can follow us on Twitter at GoCV.io, all one. Please star us on GitHub. Please follow us. Please help support the project. We've had we've got over 600 stars on GitHub. We've got 17 contributors that have popped out of the woodwork literally on all sides of the globe. At the exact same time we had contributors from China and contributors from somewhere in Europe, maybe Turkey, I don't know, somewhere in the... They were popping up so quick on Google Analytics, I literally couldn't follow them at one point. And then they all went away again. It's very sad. But so there's a lot of really exciting new opportunities for using Go in embedded systems and computer vision.  Thank you very much. We have time for some questions. But before, where is the next speaker? Cool. Okay. So please come start getting ready. And in the meanwhile we have time for some questions. Yes. Any questions about GoBot, GoCV, or whatever? Yeah. Right before your question. So GoCV is so real it has stickers. So I also bought a few GoBot stickers. So if you want stickers, come on up here and help yourself. If you have a user group, you can take a whole pack of GoCV stickers. But we're going to make you show us. Anyway, back your questions, sir. So the question was, have I done any performance testing? I have done some, not form of performance testing. And actually, so I have a hypothesis. I haven't done anything active to prove it yet, but I'm hoping to get some of the geniuses like JBD and Francesca and others who spent a long time doing performance benchmarking. So my hypothesis is that GoCV is actually faster than C++, Python, or Java by a couple of different benchmarks. It's going to be obviously be faster than Python as far as execution time. But it's actually faster than C++ at developer iteration time because if you either use the new Go 1.10 or if you just do a Go install, then it does all of the compilation for you in GoCV, so you're basically just compiling your Go code and linking to it. So it's that same speed of performance that you expect from your developer cycle using Go, but now you're linking to all the C++ codes. So my hypothesis is that it's actually superior to all other platforms, but I have no actual data yet. Any other questions? You, sir. The question is, what version of OpenCV are we targeting? So right now it's OpenCV 3.4, which is the very latest version. One of the reasons why GoCV exists, there was another Go library wrapping around OpenCV 2, but they ran into a lot of problems and developments been stalled for over a year because of SWIG. Now, in theory, I know a lot about SWIG, but in practice, apparently I know less than I thought because what we decided to do with GoCV was to actually hand write wrappers. That sounds really bad to you as the ultimate, I must have all things scripted, but allow me to interject. It takes a team of graduate students, let's just say somewhere between two and 24 months to develop a new computer vision algorithm, and it takes us maybe 30 minutes to wrap that algorithm in C and C++ and Go. So eventually we're going to have all of OpenCV wrapped and we will not have to use SWIG and we'll have an idiomatic interface that looks more like the Go code you expect as opposed to a C++ wrapper, which is a little ugly. Other questions? Yes, sir. How is the Go support for what? Ah, for TensorFlow. Interestingly, the TensorFlow support that I am using is really built into OpenCV. We're not using TensorFlow itself. OpenCV has a module called the DNN or deep network module and it has the ability to load in model files from TensorFlow, from CAFE, from Torch, and another one I can't remember right off the top of my head. I'm using TensorFlow here, but I could have just usually used CAFE, but we're not actually using the TensorFlow code base itself. We're using the support for loading its models that's built into OpenCV itself. So this is not for training. This is for taking a model that you've already trained.  And if you don't know what I'm talking about, that's okay because nobody does in machine learning. I worked in AI a bunch of years ago, so I'm supposed to say that. But we're not actually trying to train models at this point. We're just utilizing the capabilities for OpenCV to consume them. A follow-up. So the question is, have I considered training models in real time? And the answer is, oh yeah, absolutely. That's on the roadmap. That's on the roadmap. I think that Go is underrated. Go is underrated? What? Go is underrated as far as its ability to just totally take over the entire programming world. I mean, the reason why, I think Python's a really cool language. And if we look at Python, it's the only programming language that's been consistently up and to the right. You know, if you're like an investor, you're like, up and to the right? I want it to go up. If you were investing in Python, it's up and to the right. Like, you won't go wrong using Python. But it has some disadvantages that, especially as far as performance is concerned, but it's sort of the up, time's up. It's the least common denominator of machine learning, but I think we could change that if we as a community jump in. And on that, I thank you all very kindly and stick around for the next talk.


Hi, welcome everybody to another coaching focus. My name's Lee Fletcher. I'm head of content development at the Coaching Manual. And as always, I'm joined by Stephen Crane. How do you crane it? Good afternoon, Fleck. You'd like your new hairstyle today. Very nice. Cheers, mate. Cheers, mate. Fresh look, slick. And we're joined by Nick Gumbert. How are you doing, Nick? Good, thank you. Fantastic. Where are you working at the moment, Nick? Where are you coaching? Yeah, I'm the girls' academy director and for Lee program. OK, fantastic. And where's that? Is that in Los Angeles? Yeah, it's a suburb area of the LA area. Brilliant. Fantastic. So we'll jump straight into it, Nick, as we always do. Get the ball rolling, as we like to say. So I'm just going to share my screen with you guys. So the session that we're going to watch today is dribbling and running with a ball by Andy Martino. And the first practice that we're going to watch is the warm-up technical practice, if you like. It's a carousel. Just to give you a little bit of background on the session. So it's 15 minutes long, 10 players, three balls. But obviously have loads ready at your disposal. And there is a goalkeeper in this one. I think it's quite an interesting practice. And it's 30 by 20 or 35 by 20, just adjusting the measurements to suit your players. So let's get straight into it. This person here is going to go across there. When the shot's on, you're going to shoot against Matt. And obviously it's quite close. But when you're smashing the ball in, I want just a nice pass shot into the corners, if we can. Right, that's that one. These guys, you're going to pass into this player, who then works around, gives it back, and it's a little combination.  So your end product there is your combination. Your end product there is your shot. These three, if we've done a pass and we've done a shot, what else will we have in the game? A cross. So we're going to cross the ball to that player there, and so on, yeah? Good save on your feet. Dary's there, good. Nice and quick distribution here, then, Matt, yeah? Good decision, Matt, you're like it. There you go. Can you pop it out? Good. Play shot there, is that, yeah? Good movement, Tommy, like that. OK, good. Stop there. Right, OK. So what's the biggest thing you've got to do ahead in this session? You've got to be looking around. What's that nice word we like to use? You've got to be scanning around. You've got to be so nosy in here to know exactly where the ball is at every single moment of time, yeah? Obviously, with the dribbling, what are 3M products? Which one of them was a shot on goal. So we had the keeper to involve the keeper in the session. So obviously, we had a goalkeeper tonight. We had one which was a combination player around a mannequin. And then the third one was the cross. So they were actually running down the side of the pitch. Not a huge cross because they're still warming up and getting used to the ball. But it's just getting them into the right frame of mind, obviously, to get their head up and see the cross as the end product. Come on, Matt. Think of your start position here, Matt, yeah? Would you stay on the line all the time? There you go. Good boy. Make it smaller. And then, obviously, in that session, we added the neutral player in the middle. So again, which keeps saying the pitch of change is in the game so much. We can't just have them running the straight line because the pitch of those changes is another player there. Can they use them? It's their decision. Now Aaron is going to be the magic man in here. He is the Iniesta. We want him on the ball as much as he can. So if you're running with the ball, you might get your head up because it might be Aaron's there. You start running through, Tommy. Say, no, I'm Aaron. Pop it in, Tommy. It may be now I play a little set in there with you. And then he gets around. And then I'm back in here. Then we're back in for the next person, yeah? It could be, yes, Macca. If you're dribbling through, we can pop the ball into you. It could be, yes, Dary. You're dribbling through, start dribbling. I say, Dary, good. There we go. And I can play a little combination there, yeah? So you've got to work in here, play in the combination. Off you go. Play. And that's what we're trying to stress all the time is their decision. It's not our decision. We just set the pitches and let them work out the puzzles themselves, really. So that was the first practice. What did you think of that, Crane? Yeah, I think just starting off saying there was quite a lot going on. There was quite a lot going on and quite a lot happening. It was chaos. Okay, which was absolutely brilliant. I think at the start of the practice, I was trying to work out exactly where players went. But I think you've got to see it in three different, you know, three different situations. So you've got one, which like you said, is just a passing and dribbling exercise. Then you've got one which is where you've got to dribble across the pitch. And then you've got one which is dribble to shoot, which is great. The thing that I really like about it is the rotation. So a lot of the time you see practices, especially when you're working on dribbling or all that passing, then it's combining. And it's very structured. That, the players got three different situations. They got to experience three different things. It wasn't just dribbling to cross or dribbling to shoot or dribbling to pass. It was a bit of everything going on. The first I was questioning why the player was running across the goal in front of the keeper. But then when I actually watched it, it was actually, I think that the coach mentioned it, Andy Martin mentioned it. It was more about the scanning and about what's happened. So should you say, should you get more close to your feet or should you get out to the space, which was really good. I really liked the way that he coached it as well, because it's quite a hard topic to coach that because there's a lot going on and it is chaos and there's so many different little coaching points in there. I think you've got to let it flow naturally. Of course, it's always great if you get your key coaching points out. But I think that one's a bit more guided discovery for the players. I think the players can almost experiment for themselves and whilst Martino was going around and giving them little tips here and there, it was almost a chance for the players to actually try things out and explore it, which is really good. Final point that I thought on, it was a really like the player reference and I actually had a chat with another coach about this couple of weeks ago about referring to professional players and how it helps younger players coming through. How you need to be careful with that, because if you're getting players who don't watch a lot of soccer and you're referencing players, that's when you need to be careful. But normally the top players in the game people know about. So if you're referencing, and yes, the name are Messi, Cristiano Ronaldo, Rooney, whoever it's going to be, the players can get the feel for it and almost get the picture for it. So I really like that. I think that's a massive part of the coaching session really. But no, I thought it was a really, really good practice. There was loads going on. I would like to watch 10 minutes of that to see how we develop them, how we continue to progress it, but really, really good start.  What is the point of the referencing of players and what is the reason why we would use a reference of player? So I think it works in two ways. Obviously when I used to play and people used to say, watch the clips of this type of player, you get to pick up things straight away. So from the more elite player point of view, or sort of say 13-year-old plus, you get to watch that player, maybe YouTube or whatever it's going to be. And you watch what they're good at and you try and put that into your game. So that's one of the reasons why. I think for younger players like this, it almost gets the brain going. So it's almost like, okay, if I say, can you be like Neymar, what does Neymar do? What's he great at? He's good at holding the ball. He's good at dribbling. He's good at skills. He's good at taking players on 1v1. And it's just almost a subtle way to paint the picture in a player's mindset. So he was on about the magic man in there, wasn't he, in the ester. Now that's what type of player he was. So if players have watched him, they know he's sharp, he scans all the time, he's nice and bright on the ball, he can play one or two touch ball. I think referencing players for the younger age groups is just about putting a picture in the mind. I think that's all it is. As you go through it, I think it can be a lot more detailed where they can watch clips and try and put what their pros are good at into their own game to develop their own game, really. Brilliant. Nick, what's your point on the referencing of players and then in general about the session, what kind of things did you take away? Sure. I think referencing players, it's interesting in terms of the culture you're in, right, because in America, the nine to 12 year old girl, for example, because I'm the director for our girls elite programming, they usually have very minimal reference or maybe they know Alex Morgan. So it is interesting using those references because it's just different space that they're involved in, right? So I think unfortunately in our environment here, you just don't use the same references or maybe you find ways to introduce those references and you give them opportunities to be more aware of them. Is it off the field opportunities that coaches create? So there does become a reference point because as we know, unfortunately, our players usually don't watch enough of the game, especially the nine to 12 year old, especially female athletes in general. So I think the more opportunities coaches can do with their players off the field to create those references versus create excuses of, well, I can't use that, how can you use that? How can you reframe that situation? So it becomes an opportunity versus a setback. Yeah, with regards to the session itself, I'd pick back off Steve in terms of, I like the fact that there was decision making in various pieces that wasn't just a very straightforward, with regards to you have to do this, right? There has to be decision making ball because every action in a game has a technical component and a decision making element. So I really catered to that idea of how can you integrate versus isolate as much as possible? I think that's a really important piece for coaches. Obviously Andy is spot on with the opportunities and situations that he created. So that's a big one for me. He referenced scan, right? And I think creating that terminology, if you ask about references, I think terminology is one that I tried to remind our youngest director and our coaches in general, create that terminology. That becomes a norm for your players. Scan for us at nine to 12, can you scan the plan, right? And now it's little trigger words that coaches and the staff can say, this is what we do. Not saying it's the right way, but it's our way. And I think that's important for youth players to have. But again, he creates a progression within that piece of passing versus dribbling. It's not just, again, isolating dribbling component. And then the part that I really liked, I think Steve already touched on this, but going to goal straight from the get-go, especially with this age group, giving him, I feel like besides the question of, are we gonna scrimmage? The second most asked question is, can we go to goal, right? Or something to that effect. And I think that's an important piece to build in as much as possible, allow kids to finish. Because again, as Steve referenced to, it gives them that freedom to just try it as they work on it. Again, you're not isolating saying, no, hit it wrong. No, did this wrong. You're just giving them those free opportunities to figure out within that piece. And then the instruction comes on an individual level. So. Yeah, I'd agree with that. I mean, there was one term that he said as well, which I found a couple of terms. That's firstly saying, his job is just to set up the picture and then to kind of figure it out for themselves. And obviously both of you are touched on that. So I won't go down that road. But he talked about passing it into the goal. And I just wanted to really talk about that, about the differences of finishing, the types of finishing and why you would do something like that. I don't know if you want to touch on that, Nick, about passing into the goal rather than absolutely lambasting it into the back of the net. Sure. One reference that I try to remind players of, especially in those middle ages, the nine to 12, is exactly that. There's not a difference in technique, necessarily between passing and finishing. So now it's just the type that you want to use. I think the more we can build that toolbox and not have kids think it's that different. Those are important references as well. Because I think players tend to complicate things of, how are we going to finish? Well, if we've done our job as coaches and painted those pictures and put them in those environments, really they've worked on that technique numerous times. And now it's again creating those references, just like we create references for players, creating those references for the technical application of the game. And I think that's a very relevant piece that I think some coaches do overlook the simplicity of things because there is so much correlation. And sometimes we over complicate it to say, hey, we're finishing. And prior to that, you were, it was just a different target. So. Yeah. I think that's the thing in it. There's not much, there isn't much difference within the technique of passing between shooting. Obviously there are types of passing and shooting that are very similar and some of them are a little bit different. But the idea of it and being able to progress and we should always start with a pass before we go to the shoot. And I'm a big believer in that because if we can get the passing technique right, then the shooting becomes almost easy, if you like, and almost natural to it as well. Crane, how important is it then to start breaking down these types of techniques with such a young age like these guys? Because obviously there's so much going on in that practice. It's so, I mean, one of the notes I made was congested and chaotic.  And if you saw that when Andy Martino was explaining it, I had no idea what was going to happen until I watched the practice, which then became extremely clear. But how important is it then to simplify things especially in these types of exercises? Yeah, I think it's key. I think it's key if the players get it. But I also think going back to your previous question about the coaching before, how important it is to break the techniques down. I think a practice like this gives you loads of chances and opportunities as a coach to do that. Because not only do you need to stop the practice, like I said before, you can almost do a little bit of fly-by coaching. So you can comment throughout the sessions and because you treat it as three different stations. So one of them is dribbling across the field. One of them dribbling straight and one of them dribbling to get the shot away on goal. I think you can almost go round and fly-by coach and educate the players like, hey, what about trying this or hey, what about trying that? So for example, the players who are dribbling across the field have got loads of space and loads of grass. Hey, why not take figured touches out your feet and run with a ball rather than dribbling? For those who are one-on-one with a goalkeeper, they might want to keep it closer to the feet or whatever it's going to be. So I think you can break down the technique but like I said here, I don't think it's almost the practice to start really going into that technical detail and break it down. I think it's a lot more trial and error. Hey guys, there it is, go and try it. Are you not scoring goals? Well, what about trying placing it in the corner instead of smashing it? I think it's more Q&A, guided discovery type of coaching that's been applied for this practice. I think the practice almost sets the scene itself and we've already touched on it. I mean, there was an early part in that video where the attacker is going towards the goal, he's running, you know, and he's not stopping for anybody. He's going into his eyes, he's kind of in the back of the net and the kid comes across and as they're trying, they're just about to cross paths and the kid does a stop turn, a stop and then it goes again.  So he's ran with a ball, he's got it under control, stopped on top and then he's pushed out of his feet again. Without even coaching that, Martino's got that outcome straight away. He knows there's going to be loads of different types of traffic in the middle. Kids are going to want to shoot.  But the other kid has to be extremely aware of what's going on around them in terms of, right, might have to just drop a shoulder here and go to the left or to the right or I might have to turn on these little different things. And I think the practice in that sense does a really good job. If I'm honest with you, like I said before, I thought it was really, really complicated and he's just made it a complicated practice so, so simple just by dividing them into teams, giving each team a clear instruction and then off they go. And that's what I really liked. What about Martino as a coach, then Nick and his demeanour and the ways with the players and things like that. What kind of tips do you think coaches can take from him? Because we've had Martino on a few times now and then and we always say that me and Steven are very, very fortunate to know Andy quite well. So what do you think coaches can take away in terms of how he is and the way he deals with players? Creating a complex, not complicated environment, right? Because it engages players from the start. And I think it can be so easy for disengage players by isolating environments. And I think that would be a big one. Again, it goes back to that integrate versus isolate idea. I think the way coaches give instruction or information, Steve alluded to it a couple of different times of making things individual. You don't need to stop the whole team when one or two players are not applying a technical piece of the game, especially in those ages. So those two things stick out to me. And then kind of on that complex environment is the decision-making component. I think too often that gets overlooked. You think of the best players in the world at the highest levels still only have the ball, three-ish percent of the game, right? So the reality is what's happening the other 97% in terms of decision-making. I think too often youth coaches will just take the technical piece away, say, okay, we're gonna work on this. And in all reality, if you isolated it either or, why not isolate the decision-making piece based on the fact that that happens so much more of the game, right? And so that would be my other takeaway is give them the decision-making components versus saying dribble from this line to that line, or you're always controlling the situation in which the kid is trying to do. Yeah, right. What would you take away from Martín upgrading? I think it's a personality trait, right? I think especially when you work with younger players as well, you can get crazy bog down of all this coaching instruction, coaching points. But I think the key thing that you need to remember when you work with young players is get the players having a great time. If the players are turning up to practice and they're smiling and they're having a lot of repetition and you're guiding them, then they're gonna develop, right? Especially at that age from nine to 12, if they have a lot of chances to try something, they have correct coaching points and you're kind of guiding them and letting them work out for themselves. But the turn-up really wanting to go, really wanting to practice, you're gonna probably develop players, right? So Martín, I think that's what he's good at. And I think you see, for those who have watched him as well at conventions and stuff, the type of personality that he is, he connects with the players straight away. And at this age, if you connect with the players personally, it helps you get a lot more coaching points, I believe. If the players want to play with you, players enjoy your practice due to the set-up and due to the repetition in there, they're gonna gain more knowledge. So I think, you know, I think he's one of the best, probably the best in the country, that age group. So obviously, I think the personality traits is what I would say, for me, definitely. Yeah, definitely, absolutely. Fantastic, so let's move on to the second part of the session. So the practice, the skill practice. So still with the same theme, looking at running with the ball and dribbling. And in this practice, it's a 6v4, so three out-the-up players and a goalkeeper versus six players. And the field is split into thirds and there's two kind of safe zones here. 10 players again, 20 minutes longer, just having the rear balls ready. But I'm gonna let Martino explain this one for us so we can kind of get the full picture. There, obviously, we've got a goalkeeper. Down there, we've got a target goal. We're gonna have five attackers, two defenders. One defender, one attacker. Right, the way the game works, after a minimum of three passes, so we can go one, two, three, you can then break out whenever you want. So you can either dribble out, you can run with the ball out if you've got big spaces, or you can pass the ball and join in. So that creates a 2v1 in there. So if this player then goes from there into there, we've now got two against one to score against Matt, yeah? The defenders, if you win the ball, you score in the target goal.  Attackers, you need to score five goals to win the game. Can you see this yellow area just there? Can you see the yellow area that a safe zone? Good, so that will encourage you to dribble or run with the ball into these areas. Cannot be tackled in there. Two, three, can we break out? Excellent. Okay, stop there. Good decision by Dixie to dribble. Good decision to shoot. Of course it was, we scored. Fall in. We had a box there with a 5v2. We had safe zones as well. So obviously that gave them confidence and they needed to drop into there they could. We had the wide safe zones to encourage them then to get their head up and look into the wide areas with a 1v1 in the second box, which again is the final third, and that's where we want them to be positive, take the players on, try and get the shots off. Good, Tommy. One, two, three. Good, Tommy. Play on. He's in, he's in. Okay, ball back here. Are we in the final third of the game here? Yeah, is he being positive by dribbling? Yeah, so that's a good thing, isn't it? Because if he does get passed, we've got a shot. But it's that decision now is, would it have been better to pop it off to Macca? Would it have been better to take the player? What do you reckon? Do you thought about it now? You're saying that because you didn't get passed in the moment, yeah? So that's good. So there, we might be able to pop it into Macca's Macca if he has a, he might even not want to touch. If he has a good first touch there, he's got a shot on. If Dary then you'd follow him, Dary. If the ball goes over there, it may be then we can support again and we can go from there. So then we've got our 2v1 in there, yeah? So that person's then gone into their 2v1. But now we've got this recovery defender coming in, creating, what we've got now? 2v2. We had players joining in to have a 2v1. We had recovery defenders create a 2v2 and then the next attacker come in to create a 3v2. So again, it's changing all the time and the decision making is changing again and again. Off you go, play. One, two, three. Fantastic. What's the score? 3-0. He's added a goal on for you. 3-0. Off we go. Okay, so that was the second practice, the skill practice. So Nick, I'll come to you first. What are your thoughts around the practice? First, loved it. Love the fact that he's already creating a number of situations so the kids can experience success, right? So that's a positive. It's positive because he doesn't designate who joins it's a matter of recognizing moments for who to join and how to join. Love the safe areas versus pigeonholing a player in a wide area to say you have to create wits and nobody can defend him. It gives him those opportunities to recognize who can go in there and when. I think that was a good little distinction that allows again the kids to make those decisions of when to go. There's incentive for the defending team, right?  He gave him incentive of two goals and now you have the chance to become attackers. So those were probably my biggest takeaways. And then if I can just tag on to the progression piece, it's simple, but it creates a complex environment, right? Because now there's decision-making involved in 2B2s and in a 3B2. Again, the players have that freedom to decide when to dribble versus pass. Obviously that was one of his coaching points in the 2B1, but again, that's the game in a nutshell, but it doesn't matter to the players. It allows them to test different ways to find a solution. Yeah, brilliant. Karina? Yeah, I just think going back to the start of it, space and the setup was great as well.  And if it's a running with the ball towards goal practice, make it realistic to the game. Normally, if you're playing a 2B1 counterattack, there's always spacing behind, right? So first of all, it was great that Andy's obviously put loads of space in the practice. I also like the goals I did. You know, I'm like, for my goals, if you've got them, use them, why not? So that was brilliant. I like to see the goalkeeper and the goal and then the target goal relevant again. And I think it touches on the defending aspect of it as well as rewarding the defenders as well. Nick mentioned it there. If they're working hard and running around, we all know what it's like as a player. If you're the one who's chasing, it's horrendous. But if you have a goal at the end of it, okay, if I'm regaining possession, I could score brilliant. It's probably worth why I'm working hard now. So I think managing the practice, that helps massively. I really liked the way he allowed the defenders to play on. So how many times do you see an attack versus defense practice, the defense get the ball and the coach, stop there and it starts again. If I'm a defender in that practice, I'm not going to concentrate. I'm thinking, do you know what, coach? I don't care what you say, I'm just going to ignore you. I can't be bothered running around again. So I think with him saying play on, it gives the defenders again something to play for. So to keep a regained possession, defenders could play out and try and score huge. And especially when you're managing players, I think that's great. I really liked the way he put a score on it from the start. You know what I'm like with competition as well. I think competition should be in practices. It should be in a lot of practices, pretty much 90% of them for me. So straight away, he put competition on it. So five goals to win versus two goals to win, get out there and play. So you're a player, you've got a clear objective now. You've got a mindset of what you've got to do. Brilliant, fantastic. And the final point about it was, there was no condition where you had to do something. You give them the option, Nick mentioned it before. You give them the option, can you dribble? Can you rub with a ball or can you pass? It wasn't, you have to dribble through the third or you have to pass into the final zone to join. It was watched right at that moment. And it wasn't, you have to make three successful passes. It was minimum of three. So if the time's not right to go and break through, regain possession, then you can try and break through. So I think there's a lot in that practice and there's a lot of talk from it. And sorry, I'm waffling on there, but fantastic practice, really like the way you progressed it, Nick mentioned it. It makes it real to the game. It makes it a lot more real for the defenders to recover it. So really, really like it. So what is the purpose, in your opinion, Nick, of the minimum of three passes? Because there's lots of debate on minimum maximum passes, minimum touches as well, you know. So what is the purpose in this particular practice? Do you think that there's a minimum of three passes on there? Movement off the ball and combining when you're in numbers of situations, I think it can have its benefits. Can't say I'm a big fan, but when you're in a 5-2, it becomes too easy, right? To just penetrate into the next area of the field that you're going to goal. So it forces players to make decisions again of how are we going to combine and build to get into that next area? Yeah. And your opinion on that, Krainix, I know you might have some thoughts on this. Yeah, of course, I'd like to go back to Guilet on this one. I think this is a good question for Guilet and Spain as well, but to me, yeah, I definitely agree. I think it's almost, at that age group, it's challenging the decision-making of where and how to go, rather than saying you have to do it. I think because if you put the passes on it, yes, it's all working on the combination, but it's almost challenging the players again, the decision-making of, okay, when's it right to go and how do we go? Is it right to dribble? Is it right to pass?  If it's right to dribble, you dribble. If it's right to pass, you pass. But something that I would like to do is progress that and put another defender in, make it five against three, but start from the defender's goal. So where the small target goal was at the end, the coach of the balls start there, and then the players have to start there, but they have to play in and they can play into the room whenever they want. That makes it, again, a bit more directional, a little bit more realistic to the game and take away the condition that you have to make three. What I would say is you have to make one. So you have to play into that central zone and then it's life and then it's like a game. So if you want to turn on the half-turn, dribble and go quickly, fantastic. If you want to be slow, build up, Billy, as well. So that's what I would do and it's just another progression to it, really. What's your thought, honestly? No, I think the minimum of the passes, really, just tries to get a little bit of control, I think, from Martino as well, is that, you know, if you don't have any minimums, it just basically goes into that end zone every single time and just becomes quite scat-y. So there's an element of control from Martino, even though he hasn't specifically made that very clear in terms of I am controlling this part of the practice. And then it allows him to kind of do what you guys are talking about. I love that selection that he gives you. You can dribble, you can run with a ball, you can pass it in, it's entirely up to you. And then obviously... Sorry, jumping in. Do you think from your point of view there, then, that condition helps him get his top of the count and helps him create situations, wear a concoction, get him to keep up with that, you know? Yeah, it has to, because otherwise, I mean, you could kind of get the topic out, but you think about it, if you've got five players and one stood next to the final third, you just pass to that player and every time they're just going to run in with a ball and that's it.  So, yeah, I think he's allowing his topic to get out. So he's having those little bit of combinations, but like you guys are saying, he's then saying, right, well, you've got the opportunity now to pass dribble or run with a ball, but it's your decision on what you want to do to then enter the final third. I think as a session, I want to come back to one of the things, but I'll give my opinion first, is I love the session, I think it's brilliant. I've done this with open-age players from playing out from the back, playing 8v6. So the goalkeeper and a neutral player, 6v6, the team has to play out past the halfway line and then there's a 2v2 and then one of the players can go and join in 3v2, they score, and it comes back the other way, they can attack 7v6. So there's loads of variations of this that you can do and you can scale this all the way up from, you know, these kids who are experiencing it to all the way to first team level. And I think it's one of those sessions that you can do and quite rightly, many coaches do because there's so many aspects to it. I think then creating that 2v1 situation before you put the progression in is kind of magic for me because 2v1 is probably the most kind of used pattern or sequence of play that you'll probably find because it's probably the most difficult to defend against. It is almost impossible for any defender to defend against a 2v1 because you either go with a ball which then leaves the man or you go with a man and then it leaves the ball. So it's almost impossible. And I love that about that practice that it changes very quickly from this short, sharp possession exercise, overloaded, and then now we're going, breaking lines, being aggressive, you know, getting them on the back foot, trying to turn defenders, trying to be creative. Can you create 2v1s? What are your runs like? How are you supporting lines? And then it just goes into another dimension, even though Marty knows not gone down that line, but it goes into another dimension of coaching. And that's why it's so good. The only thing I didn't get, and I absolutely don't think I understood it, it's not that I don't like it or like it, I didn't understand the free zones. Like I didn't understand the purpose of that. And Nick, you dropped on to that and you mentioned that. And I wanted to get kind of your guys' thoughts on the free zone. I personally didn't understand why it was there. And Nick, I know you started to elaborate a little bit. So could you just explain what you thought were around that free zone? Sure, because he didn't make it an incentive, right? It wasn't, you get any additional points to go into those spaces. I think the benefit to giving players those areas is I think so often coaches will use channels and just say, yep, you're on the right, you're on the left and they're locked in. I think that's a massive drawback because kids never have to decide when to go wide, right? Versus that one, it rewarded them with no opposition, allowed to go in those spaces to recognize, do I want to pop out there or not? Because I know, again, it's a space I can use to my benefit, but I don't have to use it. So agree, there's definitely that gray area and I can see where you're coming from there. I definitely like that twist and that would be something that I'll steal to propose to coaches to say, can you create those corner post-safe areas so you're not pigeonholing that 10-year-old into a wide area and they're getting two touches for the 20-minute game that there may be playing at the end. I did actually kind of think about referencing to the game and maybe if a player pops out and you're going that safe zone and even just the way it was created, it was like, I don't even know what shape that would be. It was a bizarre shape and it was on nine of the final third and it was almost like a rolled, it was like you could be almost like a turn on it, it was bizarre. And I thought maybe he's encouraging a player to go out to receive the ball in the free area and then turn into the zone and replicating a winger maybe driving on the inside. That was like the only thing I could think of. And you know what it was, Lee? You know what it was, I think it was just there basically. I think because there's a 5v2 and these players are technically good, it was too simple and easy for the players to get out. I think if you put a 5v4 in that practice there, you might find it harder to break through. So I think that is exactly like you said, it could be a winger, but when I would relate it to the game, I thought it's almost like a number 10, dropping off the defenders to get on that half turn and break and play forward quickly.  But I think the actual space was a really good idea to drop players in, to get players to drop back in, receive it on half turn, but then they have to get at the defender as well. I think that's exactly what we just touched on there. I think that's why he was trying to do it. So you're talking more of the player in the final for dropping into the space, rather than going into the space from a deeper position higher? Correct, yeah. And I think it didn't look necessary in that practice because the 5v2, they were breaking out all the time. If you put a 5v4 in there, suddenly you'll see players struggle to break through. So I think it's just that extra one to drop in the free zone without pressure, you can receive and get on the turn as well. I think it's also good, because if you're working with kids and you also get that young boy or young girl who's a dominant defender and they do bully people in a 1v1. So I think it almost adds a bit of that to itself. And actually, if you're struggling to protect and shield the ball, here's another option you can do, you can maybe drop off and get on half turn, square them up, and then see what magic you can produce a score of goal. So I think it can work. And I think I definitely, definitely like that idea. Then Nick was saying, when you just shoot them out wide, not realistic to the game, not realistic. It doesn't happen. It doesn't make decision making simple. It's just stand down and do it. So I like that idea. And I'm definitely gonna try it with my practices. Note I like too about that, the positioning of it is it forces the players, maybe that find themselves closer to that final third or that area they wanna get into, the answer is behind them. And I think that can encourage players to solve problems by moving away from the ball to break those lines, especially at those ages. It's hard to get them to solve problems with their movement without restricting them to say, you can't go to the ball. I think that was a well-placed opportunity to help players solve problems by going wider, but also get higher. And you don't always have to come to the ball to get on the ball to then penetrate to go forward. Yeah, yes. I would do only thing I would question about like is it was it necessary for that practice then? Sure. But you know, because like you're saying, Karine, it was five versus two, it was easy to get out. Yeah, and if you are gonna progress it, if you do have the numbers and maybe you can add it in, but for me, it wasn't really necessary in terms of that practice. But though now you're talking and you're explaining it and I'm understanding, I can see many benefits. You know, I'm thinking about trying to drag players out of the position, up at the free zone. Work with all the players, like you as well. Yeah, exactly. Dragging out to drop in and create, yeah. So creating all sorts of kind of issues. I just thought, well, I would say really maybe it was just a little bit too soon for that practice.  So if we can introduce it maybe at a younger age group, then we'll start to identify that as and when they play against more players in the practice but also as they get older and better technical in the games. So yeah, brilliant. So we're coming to the end of the coaching focus. So Nick, the last question is always to you. So you've watched the practices and you've had a discussion with us and you've made some changes to that practice and think, you know, I'm gonna do this, I'm gonna tweak this for my players. What would be the next practice or next session that you're going to deliver in that next week or in a couple of days time? Yeah. My mind goes straight to using turning and incorporating that within the dribbling component because that's such a key one when you're solving pressure and manipulating where is pressure coming from, I think is a big one. So maybe staying on that same topic of dribbling but giving players maybe some situations where maybe I create where the defender's coming from. So they have to solve that problem. Is the defender on their back and they have to solve it on the dribble? Are they coming from the right or left? Because I think the very, the easiest way that a lot of coaches will just use is the defenders at front of them, right? And go run at them. So that would be probably a specific piece or direction that I would go with it for the next one is incorporating that skill set. Fantastic, brilliant. Well, as always, Karine, thanks very much for joining us today. Not at all, brilliant. Cheers, Nick, great to meet you. Thank you, likewise. Again, for Nick, for joining us, absolute pleasure. Thanks very much for your insight. It's invaluable for us to share these types of conversations, so absolutely brilliant. If you want to get involved at the coaching focus, you're more than welcome to. So you just send us an email at www.getinvolvedatthecoachingmanual.com and we'll endeavor to get you on the show next time. Thanks very much, guys. Cheers. Appreciate it.