Hey everybody, welcome to Drupal South Shorts 2021. Hope you're all having a great day. My name is Scott Massey and I am the Managing Director of International Regions for Pantheon and it is my pleasure today to be officiating or moderating this session with two stalwarts of the Drupal community in Australia. Today we have Nathan Turbot, the tech lead and Simon Hobbs, the solution architect for the Department of Customer Service for newsouthwells.gov.au to talk about something I think I've thought about every single day, probably for the last 15 years, which is high availability and Drupal. And so they're gonna talk about that and share their thoughts on that. I'll moderate the questions and I've been told to interrupt as needed. So feel free to post your questions and we'll fit them in during the talk or we'll have time for questions after. So with that guys, take it away. Thank you. Hi everyone. So Simon Hobbs here. Thanks for joining me and letting us share some information about knowledge about how we're approaching high availability for newsouthwells.gov.au. This presentation I'll touch on the following things. I'll give you an overview of what we call one CX project. Talk about the performance expectations on newsouthwells.gov.au and run you through just right briefly what our infrastructure looks like. And then I'm gonna delve into specific topics such as case sheet ratios, PHP footprint, database strategies and also looking at types of transactions. So that I call caddier versus a non-cascible types of traffic and how we go about approaching them. So the one CX program is our name for our consult effectively our project to bring a whole bunch of websites into newsouthwells.gov.au. So to effectively avoid duplicating content and avoid running up microsites when we don't need to. So we wanna go from like a fractured landscape to a consolidated landscape for our content. We're supporting of open source. So we're building up some very nice open source practices. And some of the reasons like why it's good to work for New South Wales, this is the semi-pitch I guess is that, you know, we're making an impact especially around COVID at the moment. We have some challenging projects and we've got a really nice flexible working environment and a lot of diversity in the workplace. So today here we've got myself and Nathan. So we sort of, we sit in two separate sections in the project. So Nathan's technically in the platform operations team and our work is a solutions architect in the one CX delivery team. And you can always find us on Drupal.org Slack or in those channels that I've listed below. So if you are not already in Australia NZ, please join and we'll hit 500. Big disclaimer for today is that we're sharing our experience for our particular project. It's not supposed to be a catchall for every Drupal high availability project. So your mileage may vary. We're not telling you how to run your site. Performance expectations. So we've been pressed by COVID. We went live with the new New South Wales.gov that are you nearly two years ago now. And you can see from this graph that in about March the traffic started to hit us fairly hard we thought at the time. But it wasn't until this year that when we were getting some cases of two million active daily users that we were sort of really experiencing traffic at its finest. This graph just shows the data aspect of that, pumping out a lot of data. I don't know exactly how the Alexa ranking works but Alexa has been ranking us quite sort of significantly. You're seeing it starting to drop off now as the COVID, I suppose the impact of COVID becomes less. Probably the biggest impact for us is that we are unable to change our DNS for easily anymore because AWS flags us as a top 1,000 site. So we have to go through extra hoops, which is fun. But probably one of the biggest things that we need to handle with our site is the diverse functionality. So we effectively were a single Drupal instance that's serving whole of government for New South Wales. You can divide that between service in New South Wales and customer service in New South Wales. We're not responsible for you changing your driver's license and so forth. But that said, we do have a lot of data solutions on the site, COVID services. We've got hundreds of forms when you look at some of the stuff we're doing with COVID. We have over 50 editorial groups and devolved authoring and we have about at least five development storms at any given time.  So some people say to me, oh, we're using GAP CMS. And so it's just worth just clarifying how we differ from some of the other major projects. So SDP and Victoria, they have a Drupal content instance and then they have decoupled front-ends from that.  Drupal, Drupal, Drupal, Drupal, Drupal. And we are much more similar to Mass.gov in our structure. We're a single Drupal site with that front-end built in. We do have a decoupled road map, but we don't have a distro at the moment. Like we are basically a single site. Our architecture is roughly like this. It should be pretty familiar to anyone who is worked on any large Drupal site in a sense. We're running on the Skipper hosting platform. So basically most of our stuff is pretty vanilla AWS containers and so forth with that Skipper orchestration kind of sitting underneath it. So the Drupal is pretty obvious. We've got our PHP FPM pool and NGINX pool and Aurora and Redis, which would be familiar to most people. And we have our, we use CloudFront and we've just more recently implemented our API gateway and elastic search components, which is going to be handling some of our more chatty services. And then in blue, we have a lot of integration endpoints. Whoops, I've just gone forward without meaning to. Let me just go back again. We have a lot of integrations in the back-end. Obviously we have to send emails, but we have a lot of CRMM points in the back-end. And we integrate with Sejari for the main site search. So one of the biggest, one of our key goals we have as a platform team is to try and keep our case sheet ratio as high as possible. So effectively we're aiming for 97%. When I, in last year, for example, we weren't doing too badly. We were just getting a lot of drops when cases were clear for whatever reason. We had to keep our cases to 15 minutes kind of universally to make sure that stuff got cleared. And it wasn't until that we implemented some specific clearing strategies and basically kept our case on that we were able to kind of get that consistent sort of 95-97% case sheets. So that's really important to us because we basically see ourselves as a public content site that needs to stay up and needs to be unclassified so that we can just serve it. If a case is, that's fine. And just to give you just a focus in on what that looks like, we just have these overnight, these little dips are just about more about stuff that happens overnight than what you see during the day. So our approach to content is to make it sticky, but maybe not too sticky. Currently we are doing 24-hour cache for our content, for Drupal. We have CloudFront configured in a really transparent way, which is always good. So it's respecting what's coming out of Drupal. We do have this little bit of logic which says, and this is something that Nathan implemented recently, which is working quite well. So we take what Drupal says, which is, say, 24 hours, and then we set the S max age for CloudFront to that 24 hours, but then we set the max age for the browser to 10 minutes. And that's based on the idea that most of our traffic is people coming and visiting the site for under 10 minutes. So for any of that Drupal dynamic content that they get, if they come back the next day or a few hours later, that'll be clear. And that gives us the ability to clear some sensitive things if needed. So one of the goals in here is about a high availability strategy that you can deploy is just to study and build your site from the Drupal container. We opted not to do that because we have a whole lot of pass through, so form data and things, content editing experience, stuff that we want to be more dynamic than a static site. The goal here is to pretend we're a static site. In the CDN, to all browsers everywhere, it looks like we are for 24 hours. So anywhere we can, we're updating cache headers, we're updating max ages, we're doing everything we can to make it look like we're a static site. An addition to that is that if the Drupal instance, in this case, returns an error, CloudFront will still serve the old-page cache to the user. So from that perspective, we look static as well. That's the end goal. Yeah, that's good. That's not something I show in our slides out using the cache CloudFront style cache if we have a problem with content. So just to briefly run down how some of the strategies we use to maintain cacheable pages, we search through your code base and look for all those max age and set max age snippets of code because it's quite common to see in a custom block or something that the block will set its max age to zero and that will pollute the whole page as max age. Obviously, look around for anything that's starting sessions and never set cookies on your server side. And if you've got a HA site that you're trying to resolve issues in terms of your caching, have a look at the code in this project called RenderViews because it basically demonstrates how to inspect the render array and pass classes through to the front end so that you can visually mark up page components which are setting a cache age of zero or some other cache age. So clearing CDN, so part of this caching being out of just cache and set and forget is actually having a strategy for proactively clearing CDN. So when we decided how to do this, we did look at the purge module and we determined that it was a lot of code for something that we were going to want to have a lot of control over. So basically what our setup is, it's pretty. Like this diagram doesn't tell you anything interesting in the sense it's just showing that when content is updating, we're connecting to CloudFront with an IAM policy so a service account in response to say a content update, so hook update. We're calculating content that is affected by a content change and to do that we're using, we're mainly doing that through entity hierarchy module and entity usage modules. So pretty much we just build up a list of pages that are affected by this. For our site, pretty much everything is a node and because everything's a node, so a lot of those modules give us a lot of coverage in terms of the things that are affected. Yeah, one of the additions I wanted to add to this one was that part of our strategy was about identifying key content at what mattered and what didn't matter. So for instance, we were talking about the purge module. The purge module uses cached tags and says, if this tag clears, clear all this stuff, we want to be more deterministic than that. So it's things like, if you create a media release, then obviously the media release listing page needs to update because some of that is a new one. But on the 20 other pages where there's related media releases, we actually made an informed decision to, those things can wait 24 hours. That doesn't matter, we're not gonna clear those. They can stay static and after 24 hours that related content will update. It's not actually gonna affect the user. So it's about being very deterministic as to what you clear and when to keep your cache values high. We added on top of that a form for content editors to manually clear pages so they can enter a URL into a form and it will pass some invalidation requests straight through to CloudFront. And that's pretty much a liked form because it gives them that ability to pick stuff up that's not being picked up. Cool, Nicholas in the crowd asked if those CloudFront invalidations are expensive or not? We, yeah, so I covered that in this slide actually. So the 24 hours is working really well for us and we think we can extend it if we wanted to but we sort of don't feel that we need to. So that 24 hours is kind of a sweet spot at the moment. We know that like CloudFront as opposed to some other services doesn't have support for native cache tag invalidation. So when we were looking at how we wanted to approach it obviously we looked at that. We also had to look at the fact that after a thousand invalidations per month CloudFront starts charging. So we're trying to find basically at the moment where we've found we're in a comfortable sweet spot but because we effectively control that code with their own class which we feel like 500 lines of codes in our own class is kind of a lot simpler than using purge module and all of its sub modules. We can kind of, we're able to put things in a queue potentially make that more efficient if we need to. Start to pair back some of the really chatty invalidations that we're doing. So we're gonna be monitoring that and then making changes as we go. Yeah, one of the things we do in that exact space is as I said, we have a queue and we put the invalidations in the queue and then we clear them every three minutes I think. I'd have to double check. But the reason for that is because if 50 content editors make 50 content changes all in the COVID section of the site and one of them clears COVID star then we can make some assessments about, okay, so there's all these clears but COVID star covers 90% of them. Let's delete all the other clears and only send the COVID star because we don't need to clear all the sub pages separately. So that the queue management for that is purely about cost management. We could clear with every single say but we'd be sending hundreds of changes a minute whereas doing it this way, we can kind of limit that scope. So PHP footprint, what we found when we were looking at PHP, so when we were looking at some performance issues particularly around Redis and how much time Redis was spending kind of serializing and deserializing the stuff we were giving it on a page load or a cache clear, we found that there was quite a lot being, quite a lot of the footprint of PHP was around the plugin cache and more particularly around block plugins so discoverable blocks. For me, this was the first time I'd experienced this because I had not done a lot of layout builder sites but layout builder has a block discovery mechanism that looks at all of your fields and all of the base fields and all of your entities. So as you can imagine on a very large site we have a lot of entities, we have a lot of fields, we have tech debt around fields. And so when we looked at the, when we actually had a look at what was happening in hook block altar, we were able to actually prune out quite a lot of quite a lot of that data that we just weren't using. So an editor was never going to want to place the revision ID into a layout of a page. So we didn't need to make that block available to layout builder. So we do what we would call fairly aggressive trimming and that got the size of our PHP footprint down much smaller, which helped reduce the issues that we're having with Redis and pretty much allows us to run more PHP instances. As just in terms of PHP, we would say like we set our goal of, and partly this goal was already set by previous next which is I think a very good goal around keeping a really ambitious memory limit.  So be ambitious, settle limit, apply it to all environments, apply it locally, but obviously a local developer can override that locally, but it's great to start by default. And remember that abstraction has consequences. So when you're adding that module, that's going to look at all of your fields and then do something in response to that. It can have consequences. Look for fields combined with layout builder. I'm sure there's other examples, but that's the one that hit us and use hook block old to inspect that cache data. I want to reiterate on the cache, setting the 128 meg locally, set it everywhere because otherwise you'll find like we did that something lands on prod and things start to break because the environment that you tested it on all have higher memory limits. So make sure you do that. Hey, we had a question just about the 500 lights of code. Is that a custom module that handles the cache tags or does that do the invalid, just do the invalidation on cloud front? So the module does, we call it the CDN module. What it's doing is going through, so it's doing the clear, it's sending the invalidations, but it's doing it based on a whole lot of rules like entity hierarchy and entity usage and URLs and things like that. That's what it's doing. It's just building that list of things to clear and then putting it in queue. Gotcha. So the balance for us is that a lot of that is business logic specific. We looked at reusing a couple of modules and we found that it was just a bit easier to implement our own class for a cloud front invalidation class. And then just the reusability wasn't quite there. Like there was just some assumptions in the modules we looked at in Contrib. And yeah, so and because the waiting was more along the business rule side for us, we ended up going with custom code. I'd hope to think in six months that it would be possible to kind of like share that and maybe abstract some of that out into Drupal.org. But the space has already got modules for that. So there's definitely stuff out there that people can use. And then to this, we went internal database strategy. So the main thing I want to talk about with that database was just around the RDS Aurora. And there's a lot of things you can say about database and we've had issues with adding indexes to things and what there are. So that, but I want to just talk about the bottlenecks that we were finding with Aurora by default. So this was mainly with Nick Shoe and Nathan were working on this as a result of DDoS testing that we did. So we had a company do, we have been a company who works with us and they have approvals with AWS to spin up many services, many containers to start hitting our site from everywhere. So it's really hard to manage that. So we can actually look at what would happen under a proper DDoS situation. And so a big bottleneck turned out to be Aurora. We found that our writer was spiking under CPU loads and then once we started getting deadlocks, it was game over for us. So the reader is auto scaling, but switching to the reader is a manual process and it's read only. So the writer was where it was at and it wasn't handling it. It was a quote I found on the AWS RDX proxy page from Acquia, which I think summed it up. The lack of support for connection pooling natively in Drupal sort of just means that we're not using, we're doing a very expensive operation by making a new connection to RDS every time we wanna connect to it. So once Nick and Nathan implemented RDX proxy, we found that you can see from the graph on the left there that the mountain on that graph is the CPU starting to spike under load. And then at the point where they turned on connection pooling, it all smoothed out again. So we're finding with that solution that RDS is handling our traffic quite well and that other bottlenecks in the app turning up. But maybe I'm not very good at explaining that subject. So I'm just gonna give Nathan a chance to anything. Yeah, so it's just purely about the fact that, so every connection to the database was expensive. It was doing our CPU. We don't want the database Aurora to spend time on making connections. We wanted to spend time on doing inserts and selects. So offloading it into RDS proxy. As you can see, the CPU just dropped straight down but our number of connections shot up in the second graph there. And that was because the RDS proxy was sitting in there taking that CPU load off the server and letting the Aurora server do the queries. From our initial testing, it went from, I'm gonna use two numbers, but they'll be different for everyone. We went from 2000 queries per second to 22,000 queries per second just by changing the two user proxy. Well, that's before the server fell over. I just wanna, the last section of the presentation is just talking about, I suppose, making objective distinctions between different types of traffic to your site. So this is where everyone's experience will differ. Because we have to handle such diverse range of things on usurphwiles.gov.au, this is really important area for us to have repeatable solutions for different types of things. I will generally delineate different types of traffic as really static and cacheable stuff which is just say viewing a page versus searching and listing which is really dynamic, really chatty, but it's still cacheable under the right conditions. And then you've got things like form submissions that actually has sensitivity attached to it as well as being non-cacheable. Like you can't cache that post request. So generally speaking, this is our breakdown of those different types of transactions. And the real one, the real problematic one for us, I'm not really talking about personalization here at the moment which, well, I sort of am, but the kind of traffic that's gonna go through to Drupal is gonna be that form traffic and we're possible, we're offloading that into third-party events. So if we are giving it a scenario is that, so there's a regional health district wants to bring content onto newsuthwiles.gov.au and they have an application form that they use for support workers who need to apply for some sort of rebate or something. So our first question is, what are they currently doing? Is there's something that we can embed on the site that they're currently doing that we can just simply embed in the front end and we don't have to add that into Drupal? It seems counter-intuitive to them because they generally feel like they're coming onto our platform and so they're gonna do things our way and yet when they say that they use MailChimp for some subscription thing and we're saying, that's great. We'll just keep using that. That kind of is good for everyone. So we do a lot of that where we take anything that's chatty and we really try and push it to the front end and that also applies to our personalization strategy which is emerging, which is around, it's getting Drupal to serve something by default and then personalizing it on top of that. So yeah, protecting Drupal from chatty services. So yeah, be firm about caching. Avoid personalized content from Drupal. So you can't be having PHP that's looking at a user's lat long and then returning related results in PHP. You can be using a lat long of Sydney or some generic one that's reusable because that's effectively potentially cacheable. Everyone who comes from Sydney to see some results of locations of clinics in Sydney they're all gonna get the same content. But just really be looking out for that personalized content on a site like nissethwiles.gov.au there just is no way that we can do it. It's we can't throw resources at it to make that work. So Drupal is your default content to the browser. You have a front end strategy for the personalization of that content. We're offloading our search and anything chatty to NoSQL. So that's where that's our elastic search strategy and additionally making sure that Drupal's not in the critical path for that. So even though we can create a view that talks to elastic search, generally speaking, we don't want a monolithic PHP application to sit in the middle of that critical path, that hot path. And keep an eye out for things like facets, personalized results, free text searches when features are being built out. Yeah, I'll just reiterate on the moving Drupal out of the critical path. I'll use our setup as an example. You've got a high availability cloud front CDN sitting at one end. You've got high availability, scalable elastic search sitting at the other end. Please don't put a Drupal application running on PHP instances sitting in the middle to talk between those two because that's where it's going to fall over. You want the cloud front going straight to elastic search back to the user and just avoiding the load even just in terms of like the latency that you'll get by passing through Drupal. Are you being much better off going straight to ES? In the cases where we do do it, they are only situations that would cache in cloud front as well. So if we do that from Drupal at the moment, it only works because that return response is going to cache. And otherwise it wouldn't work. Just to, yeah, just to summarise. So to summarise our no SQL strategy where it's what we've decided is that our elastic search is really going to be for listing content and for things like auto-completes related news that type of thing and not for indexing full pages of content. So just to clarify that we have a separate strategy around providing a full page via a GraphQL endpoint so that we're really focusing our dynamic search chatty queries on hitting elastic search for a list of things when you want it to happen really, really, really fast and you want your payloads to be really small. As far as keeping these like a lot of the solutions that we have to build are around like dynamic listings of things, an example is roads and maritime have a search for waterways, for marine notices around waterways and they have a CSV file. So what we're looking for here is the CSV file isn't managed in Drupal, they already manage a spreadsheet, they manage some other JSON endpoint, they have an API, they have a CCAN dataset and we don't want to create MCs in Drupal and put Drupal in the middle of that process from an editing point of view, just from a complexity point of view. So this project data pipelines is one that we've sponsored and we got great support from Leah previous next and other developers working on it, shout out to Ken for example in our team. So we have, so what happens is that the editor can, basically we can define a validation in YAML and editor is uploading a CSV file or pointing to an API endpoint that gets validated but then it gets pushed into elastic search as an index data set. And then the front end can just knock themselves out. They simply, it becomes a front end problem. So any sort of front end developer is simply just getting a JSON feed from elastic search where that they can manipulate in any way. I'm just gonna jump, I'm just gonna be quick because we're running out of time we've still got a few more slides. The point of data pipelines here is as we said, get Drupal out of critical path. So go straight from browser to elastic search. We don't want to rely on the other person's API because occasionally their API goes down and more often than not, if we send two million people to an API on a certain date their API will not cope with the traffic. But also from a security perspective we want data pipelines to sit in the middle so that we can remove cross-site scripting issues and things and have a consistent way for our React apps to connect to the data use the data so that all the developers know that if I build a React app and I connect to our ES I can use this data pipeline to do A, B and C and there's not 16 different APIs that they didn't have to do with it. I think this is a final slide. This is just also talking about, I mean, there should be a no-brainer based on what I've already said but you're serving a page from Drupal and now we have a strategy around dynamic components. So building out React widgets that then can say talk to elastic search for filling in that part of the page. Yeah, and we do have a small strategy around when we render a page, we render a page with default content as I said earlier. We render, we even render the React components in some cases as a basic display and then we progressively enhance them with React and JavaScript. The point of that is so that if there's a IE bug not pointing anything out specifically that means the JavaScript won't load, the general public will still get content and they can still interact with the site. It's not completely broken as such. So that's all the slides that I've got for you. Thank you for your time and I'll hand over to Scott to see if there's any questions. Yeah, please put any questions you have in the live Q&A or in the forum and I'll pick them up and ask. That was awesome guys. Maybe I was just curious, you sort of alluded to this but the infrastructure is the primary thing that you wanna keep track of and keep an eye on but how are you guys handling observability for sort of the lesser known culprits like you mentioned like APIs that may not be down or what they may just be slow enough to where it appears down to the user or DNS or sort of those unusual suspects. So from that point of view, across our infrastructure we've put New Relic in a whole lot of places. So it's pretty common for me to jump into New Relic browser and say, have we introduced any JavaScript issues? Are there any pages responding slowly? And then we can follow up with those APIs. There's been a few times to be honest where the end point has been like, yeah, it'd be fine. And then once we put it live, it's not as fine as they expected it to be. So then we'll have to come through and root back to it to use data pipelines or store and cache in different ways. But that's, we just use New Relic for live monitoring and then checking and updating. All right. So Lee asks, do you have any statistics on how often content editors use the manual purge form? We do, but I don't know. So what we did, we put in logging on when things are cleared so that we can say, let's see if something's cleared once a day and we can pull that out and go, actually, that's probably a problem. Let's fix it. I haven't looked at the loading so I don't know, I've thought my head up. Yeah, I'd have to look at the logging, but I do spend a lot of my time in my, because I'm in the team where a lot of the training and a lot of editing happens. I spend a lot of time talking to the key power users. So they are usually kind of alerting me that they're having to clear a page and then I can then route that into tickets. So it's working pretty well because, but mainly it's me, talking to them about an issue and then I'll kind of go through and clear that page for them. So I'd have to look up the exact statistics, but so far it's going quite well because they have an organic way of doing it just in time if they need to. Yeah, the just in time was put in place purely for that. We know we want to automate everything. We don't want users going in and clearing CDN URLs. But we also know that we're not perfect and our algorithm may not catch an edge case. So that's what that's for. Time for one more quick one. I think we're good. All right. Well, if there's no more questions, guys, we appreciate the session and that was awesome. I think you'll make the slides and stuff available. And yeah, thanks a lot. And to everyone who came to visit, enjoy the rest of the day. Thanks everyone.


my name is Kavi Arya, I am faculty in the computer science department and I would like to spend just 10 minutes with you just explaining to you some work that we are doing here and how your engineering colleges could participate in this program. So essentially I teach a subject called embedded systems which is if you like a cross disciplinary subject which has a bit of mechanical engineering, lots of computer science and electronics and it and stuff like that. Basically it deals with computers where you do not see an explicit machine with a keyboard and stuff like that. So what is inside your mobile phone is an embedded system and so on. So we found that in trying to teach this through the distance education program it was very difficult because unless somebody has programmed a device where lights flash and things move they do not believe that they will learn anything. So over the last 5 years we came up with what we thought was a nice answer we thought that let us teach this through robotics and robotics become makes it even more exciting because in robotics you have to deal with mechanics and composite materials and electronics and software and so on. And also it reflects what the real world is out there because nobody tells you that here is a problem this is an electronics problem, this is a software problem, this is this problem. The problem is a problem and you have to solve it whichever way you want. Nowadays you do not get buys anymore. The time is ripe for somebody some entrepreneur to build a jadoopocha robot for 5000 rupees I will buy it. But most of our engineers out there do not think like that they will think can I buy it from abroad, net search karte rumba me le gaya, bot main gaya so it will not last in the Indian environment oh you cannot get it abroad, the end of problem. Very few people will say that hey let us build one here. So what we are trying to do is trying to create a culture of students who will actually get that mentality and say chalo let us build this or let us build that agriculture is another problem due to Enrega this rural employment guarantee scheme migrant labour is not available anymore. And agriculture has such hostile working environments it is a ripe place to have robots and robots need not be rocket science they can be simple jugadu kind of robots. So we are trying to spread these ideas and we found something which is very very effective in helping us do this it is a robot we called the firebird robot now we have given it a name and we have a project from MHRD which we have termed E Yantra where we are taking this robot and introducing it into engineering colleges. So people can use this kids can use this as a basis for projects and to make your teaching more interesting. So like for instance in our embedded cost last semester students did about a large number of projects. So I will just show you a small video of the sorts of things they do with this robot this is just a small robot that can sense distance and all that it can it follows white lines due to sensors below it actuation is through DC motors and you have various avatars of this robot the same brain sits on different actuation platforms one is just two wheels and the other is six legs instead of driving two DC motors we can drive up to 18 servo motors. So we can make a hexapod with six legs so this just shows you after introduction to the robot what these students can do with it and all the gyan that you need to actually program this robot we can deliver to you in a capsule form in two days if you know a little bit of microcontroller programming and if you know C programming we will teach you how to use this robot in two days. So at the moment our E Yantra project is call faculty give them a two day workshop send them back with a robot each and then they can start the culture there and then we are doing more things. So I will talk to you about that this project make the five word five in the pod write out shapes and letters now start with writing out the letter O so you can see that has written out the letter O and C these are the earlier items in which we have written the letter H E X. It is a start. We did a project called building a robot based super motion application. Here they built. In this project we designed various tasks for this. Now the head support will climb this obstacle and then perform various dance moves on the top of this obstacle. He climbs the stair right then they said there is something interesting when it goes on top there. So what is the interesting thing that it can do? Students you know that is what I understood. And then they want to reproduce that image on paper. So they capture an image, do image processing with MATLAB vectorize the image and use that vector to guide this little robot and then they built a small mechanical assembly to put down a pen and lift it and stuff like this so they can draw that. And I said that look to make it look more impressive use a image of something people can recognize. So they use a Ganpati very simple Ganpati here you know. So here as you can see they have drawn the Ganpati. Now what we are encouraging is for students to use previous batches of projects. So they can tilt the phone and guide the robot. The robot starts moving in the forward direction. We have made a hand gesture controlled wireless vehicle. Hand gesture. We mounted some sensors on the hand and we can control the robot. Using this globe. So I stopped you here. I won't take up too much of your time. So this is a three of about twenty projects that the students did in last. So about we have eighty students in the class, four to a project and they deliver twenty of these kind of projects. This one is a tennis ball collector robot. It takes an arm, does an image processing with a on board camera, goes and fits a ball. The robot scans for a blue basket. It looks for a blue basket and as soon as it sees a blue basket it will go towards it and draw. Fine. And what we are encouraging is for students to use previous projects and build on them. Normally I used to go to engineering colleges and we noticed that students want to do some robotic project. So they build the robot and by the time they built the robot. Time is over. And what you have is a half finished robot there and the next year somebody else wants to do a robotic project. Again he starts the same manjan and nothing to show for it at the end of it. So this we have turned the robot into a commodity item. So you can now buy the robot its open source everything and you can for us the challenges given this ball pen which is the robot. I want to write some interesting story. I can also take somebody else's story and make it even more interesting. So that is the whole thinking here. So I won't go into these slides of mine. So we have an Enther program where we have four stages. So if your college is interested in participating in this program we have just got a big pot of money from MHRD now. You can first become a participant. That means two of your colleagues can come here to attend a workshop. We will look after the local costs. That means putting you up for two days. Khaanapina this that and the other. And we will give you all the material teaching material everything when you go back. So you can over two days learn how to use this. We will try you to know only programming and a bit of microcontroller programming. Next step if you want to advance this more. We can make you an associate which means that you will host this workshop at your college and you will invite the local colleges, the faculty and all that to the workshop and our team will come and teach. And we will pay all the costs. Putting them up Khaanapina everything. Third is that you can become a remote center where you will teach, you will organize, you will do everything and we will fund all the expenses for it. So we can also bring you into this program as a participant where if you want some seed funds to build a new kind of robot or do some interesting research or develop some new cost material. If somebody has got control system knowledge and he wants to use this robot in a control systems course. If he is willing to invest time we will give them an honorarium which can be worked out.  And we encourage you to have these, to hold these workshops for students to start student clubs and we can work out the details of this. But this is what this project is all about. To spread this culture, to create a national cadre of people who can build interesting machines. So any questions I will stop here. I think I have taken enough time. Go and tell your friends about it. That is why I am telling you. Email ID is eantra, e-yantra. Let me see if it is in this. Yeah, just go to e-yantra.org, o-r-g. e-yantra.org. Is it on? e-yantra.org or e-yantra.ic.itb.ac.in. My name is Kavi Arya in CAC department. And kavi.arya is my own email address in case you need to contact me and not receiving a response or whatever it is. But through the e-yantra website you will get everything. In fact all the projects we have done to date, we have packaged them nicely, put all the documentation, source code, video, everything is up on the website. So to seed these things in your own colleges. Any questions? So tell your friends about us and hopefully we can do something interesting together. I will stop here. Thanks.


The following is a presentation of TFNN. The Power Trading Hour with your host, David White. Call now toll free at 1-877-927-6648 or internationally at<PHONE_NUMBER>. Now, David White. And welcome to our Power Trading Hour with me. And it doesn't matter where you're at. As long as I'm here in the free state of Florida, and we meet at the appointed time. The following takes place between 2 p.m. and 3 p.m. And what else do you have going on today? Well, I will go through my sit-rep and I have probably my best indicator that the market did find some kind of low. That low is going to happen in the next 24 hours after yesterday's close. Just because the market has stopped going down doesn't mean it's going up. And especially with the damage done in the market, it's going to take a little bit of time. I do suspect that we have a market that's more of a stock pickers. Wasn't expecting a great deal from the indexes today. Was looking for the opportunity to buy some things that I think can do well in the coming year. But again, remember those are all going to be, you're going to be sailing into the wind for those people that have ever learned to sail. Sailing with the wind behind your back, of course, a very old saying, maybe the wind be at your back. Why? Because that's the easiest sailing that there is. You really don't have to cut back and forth. You don't have to trade in and out so much. But I think we're probably looking, at least in the next fall, a stock pickers market. But remember that even if you think that this is a bear market, that the market is going to be going up. Maybe only one point a day, but three-fourths of the time, it's going to be going higher at the end of the day. At least the indexes are probably going to be higher. Doesn't mean that they're going to be that much higher. And you can have some kind of significant downturns. But I think that there's a few things going on in the market. A great deal of the hurry up and get out at any cost, I hear from my deep, deep inside sources in the market, which have really never steered me wrong when they passed something along, says that this is because of reduced margin multiples, and especially on these larger hedge funds. As the Fed starts to pull money out, many of these bigger broker-dealers behind these folks have said, you got 30 to 1, you got 35 to 1 margins. We're going to bring that down and you better start right now. And so what we've seen is a bit of that. You've seen the people that are really on the wrong side of many trades, like ARK Investments and seeing the big downturn on those. Apparently the ones that are targeting are the ones that are probably gone after the stocks with the biggest PE multiples. I'm talking about multiples in the hundreds. This one's got 18 and that one's got 16. Of course this week, if there was any theme, it was people running out of high-multiple stocks into medium-multiple stocks. The big names of the Dow, we saw that for a day. As we said earlier, if there's just one thing that you can learn from a trader, probably fairly good, and that's all I learned from Joe Granville is one thing. And that is that if the bonds are going down, people are going to run very temporarily into another part of the market, but it's the Titanic, it's still going down. So am I bearish for the rest of the year? The answer is no. I do suspect that Chairman Powell has learned the lessons that he's been on the Fed for the last, what, almost 10 years now, and President, not that long, that he's not going to do anything to crush the markets. He's certainly going to let the air out, but that air is going to be let out depending on what's necessary. If you're in a stock that needs lots of cash and cash gets harder to get, more than likely those companies are going to go and start issuing shares. Now, these are the same companies that have been buying back shares. This is the opposite side of that where there'll be a larger float, not a smaller float.  You make money, you have money in the bank so you don't need money. You're not going to need to issue shares, you may not buy as many back, but there's going to be a real theme I suspect to this year and that is going to be stocks that need less money, that are more stable, the more speculative the stock, the harder it's going to be for it to rally. But I at least talked at Nausium a little bit with my deep inside source, and he's saying that the Fed over Christmas in the first of the year made it fairly plain that these guys that are way out over the tips of their skis are probably going to have to pull a back a bit and of course these are the same companies that drove prices probably beyond any kind of reasonable evaluation, but certainly the more speculative of stocks, those that need to raise cash, are going to be the targets of bear raids this year and those bear raids probably going to be justified and these companies have to issue more shares and we can see. Now, like I said, I don't think the Fed is going to open a trap door and let everybody fall into the pit of despair. The pit of despair? I can't remember my princess bride, but I think it's the pit of despair. It could have been something else. A great princess bride aficionado will email me or put a message in the dip in the den of that, but that's kind of the way I see the market. Doesn't mean that we're at a low. I did buy some stocks this morning. I think that there are some opportunities in individual stocks. I did get some emails asking me about Joe DiNapoli's interview today and I think while not politically correct for some folks, he basically echoed a lot of the same things that I did, although he's much more gun-ho on guns and ammo. See what I did there with the rhyme? Thinking that military stocks are probably a good place to hang out, otherwise known as the defense sector. I went into something that I think is a little bit more defensive and cyber-defensive this morning and it had a nice bounce, but I kind of know that these things are going to fall back. It's not going to take right a long time. There's still a little bit of worry out there and the market has not given me the all clear to the point where I'm betting the farm. I will judiciously and prudently buy stocks as more evidence says they are ready to go higher. We'll be back in a minute. David White is able to find a path of least resistance. David White's trading newsletter, The Path of Least Resistance, is delivered daily before the markets open to make every trading day an easy win. Visit tfnn.com today and subscribe to David White's ultimate trading newsletter for $119 a month and try all of our newsletters risk-free with our 30-day money-back guarantee. Take the path of least resistance at TFNN Educating Investors. Separating you from the most successful men and women on Wall Street. That's right, information. Having all the information gives us the perspective we need to place the right trades at the right time. The TAS Profile Scanner is the premier market-profile-based scanner. Powered by its acclaimed TAS proprietary algorithms, this feature-rich scanner instantly filters over 2,500-plus global financial markets such as stocks, ETFs, commodities, futures, and forex. This powerful suite of tools leverages instant trade filtering and strategy formulation to show you emerging trades before they happen.  Level the playing field with the TAS Profile Scanner, which you can find under the Services tab at tfnn.com. Sign up today! Sharpening your skills as an investor is like getting better at playing a musical instrument. You have to practice, sure, but you also need excellent instruction from experts. At TFNN, you'll get advice and guidance from the authority in technical market analysis, and it's not just dry, tedious text either. TFNN airs live financial content streamed live on tfnn.com and TFNN's YouTube channel with Tiger TV, live every market day from 8.30 a.m. to 4.00 p.m. Eastern for free. Each host is an experienced trader and gives their take on the market while taking calls and questions live from around the world. From the moment the market opens until the closing bell sounds, Tiger TV has eight different shows with expert hosts to help you make the right moves with your money. Watch online at tfnn.com or on TFNN's YouTube channel and become the investor you were born to be, TFNN. Educating investors. All now, toll free at 1-877-927-6648 internationally at<PHONE_NUMBER>. Talking in the den, somebody actually spent a semester to see a great movie. I can't recommend it highly enough. Of course, I love everything sailing, but if you get a chance to see it, White Squall, the true story of a learning... like a preparatory school on the ocean, circa 1962, and I won't spoil the rest for you, but about 95% true. There were a few liberties. Maybe a very tiny bit, almost everything that they thought that they may have to put in there as a special effect ended up being actually done in dunk tanks. One of the reasons why a great deal of all the special effects in Hollywood ended up in the eastern block of what used to be the Soviet Union. Hungary, Poland, a lot of that stuff, almost all the... That's where I learned that almost everything was leaving Hollywood and moving because it was just so much cheaper to do it outside and they didn't have to pay any attention to the unions, Hollywood unions. So almost everybody, always a very interesting thing to see, the most pro-gun hoe folks when it comes to money. Speed at warp speed away from Hollywood to save a buck. And always interesting. Anyway, great, great, great, great movie. And especially if you love the water. But I remember seeing the movie when it came out with some friends of mine. And at the time I was actually living on a boat.  But that's it. Anyway, we got a member in the den talking about his time at sea. And of course occasionally I bring it up, but I was on a ship and you'll occasionally see it on the weather channel. Storm stories. But I was on a 279 foot ship that was supposed to be a wedding present. But they dumped us all off in Honduras. And depending on whether you see the long or short version, there's a 30 minute cut and a one hour cut on the weather channel. You'll see it. But 1998 they dumped us off. The ship went off to sea. And was never seen again. Heard from them for a few times on the radio. But nothing like a boat that's actually riveted together at top speed can make five and a half knots trying to outrun some storms. Did very well for about a week and a half. But finally caught up to him. But I'd been on that ship for several times. Maybe that's one of the reasons why that I started going so many on those barefoot cruises. But I knew the captains well. They were twins from England. One had one ship, one had another. But anyway, the Pamponito. No, that's not what I'm thinking of. The Fanto May if you want to look it up on the internet. But yeah, they dumped me off. And never came back. I kind of spoiled my view of the barefoot cruises after that kind of heartbreaking. But man, I think I went on 12 different cruises on those tall ships in the 90s. I really disliked going on those big cruise ships with 4,000 people. But to have 30 people with 35 crew on a 278 foot ship where they would let you help climb the rigging, let you sleep in the widow's peak out front at night. Certainly an experience I love. I think there's still somebody doing it again today. But again, kind of heartbreaking. I'll post a link to it in the den. And I do digress. Oh, a little bit of history. Got to do that and we'll move on. Wow, that was good. And on this day in 1838, Samuel Morris' telegraph system has demonstrated for the first time at Speedwell Ironworks in Morriston, New Jersey, the telegraph revolutionized long-distance communication reaching the height of popularity in the 1920s and 30s. It was slowly replaced by the telephone faxing an email. However, it wasn't until January 2006 at Western Union. Perhaps the most famous telegram company sent its last telegraph. And of course, in any business, you'll always sell your last buggy whip or something else. But on this day in 1838, the start of telecommunications. And of course, figured out a great deal from there. So what else do we have here? Check the emails. Got a few of those. Okay, the pit of spare. Okay, it was the Princess Bride. It was hard to remember. But I think Zach asked another question. Could you discuss your, this is from yesterday, just before the close, your perspective on gaps? I noticed the previous close at the end of the price action is a range indicated simply untreated space. Gaps tend to get filled. They don't tend to get as filled as quickly as they once did. But I think that was a lot of Fed cash coming in over the last 10 years. I think a lot of people are not going to be able to trade markets that aren't just straight up. This is, as they say, everybody's a genius on the way up. This one just longer than most now that the Fed's pulling out cash. Generally, what you're going to find is that a lot of cash went into places that it shouldn't have. And we're going to find out about that. So you better be pretty sure about your company and the way that the market looks at it. But I mostly don't spend a great deal of time on gaps other than gaps up with volume tend to be support. But the big thing is to notice whether or not the story has changed on the stock or the market. And if it hasn't, then a high volume gap that's tested by half the volume is probably about an 80% chance of a really good trade from there. That's really the Wycoff method. And I tend to try that a great deal. That and just a very low volume test and maybe it's higher. We'll be back in a minute and talk a little more about gaps. You having fun trading the markets but having trouble finding like-minded individuals to discuss your trading and investment ideas with? Become an Apex predator in the trading markets and join the Tiger's Den Trading Room only at tfnn.com. The Tiger's Den is an exclusive trading room where successful traders from around the world come to exchange trades and ideas. Join the den and surround yourself with the sharpest minds in the trading world. Subscribers to the Tiger's Den are also the first to have their questions answered live on air and can privately chat with our tfnn hosts live during their shows. Interact with other Tigers and Tigers as they share trading ideas, news analysis, and discuss the market action all trading day. Subscribe to the Tiger's Den risk-free with our 30-day money-back guarantee and become part of the tfnn trading community. tfnn Educating Investors You could be making money off the stock market and if you're already making money off the stock market you could be making a lot more. Check out tfnn and Tiger TV and get expert investing advice to give you the power to control your financial future. Go to tfnn.com and find the newsletter for you. Whether you're into trading gold, metals, futures, currencies, or options, you'll get advice and analysis to help you seriously get ahead. tfnn also features trading services with a 30-day money-back guarantee for new subscribers as well as tfnn's Tiger Den trading room, trading software, and educational webinars for all trading levels. And make sure you check out Tiger TV for free on tfnn.com or tfnn's YouTube channel for live financial content from 8.30 a.m. to 4.00 p.m. eastern on market days. Stop watching on the sidelines while other people get rich and become the investor you were born to be. tfnn Educating Investors tfnn is excited about our new software charting program, the Art of Timing the Trade chart. In collaboration with Tom O'Brien and using his best-selling book, The Art of Timing the Trade, your ultimate trading mastery system, David White has programmed an outstanding piece of software that will complement any trader's methodology. Using this first-of-its-kind program, The Art of Timing the Trade charts allows you to scan thousands of stocks for Fibonacci formation setups, including guardleafs, ABCs, butterflies, and much more. The Art of Timing the Trade chart is designed to help you when scouring the markets for stocks just beginning to form the trading patterns that many investors spend days, weeks, or even months searching to find. And right now we're offering licenses available at only $79 a month. We are so confident that you're going to love this new charting software that will even give you a 30-day unconditional money-back guarantee. Don't miss out on this incredible new piece of software. Get your copy of The Art of Timing the Trade charts today by visiting tfnn.com. This segment is brought to you by Think or Swim. For more information, just click the Think or Swim banner on the front page of tfnn.com. Hey, I got somebody asking about that chip I was on. So I sent a link and put it in the den, but it's the Phantom A, F-A, not P-H. Interesting. And yeah, if you watch the weather channel long enough, you'll see me climb into one of the boats on that. This has sound cut off a little bit. Say high volume gaps that are tested on 50% of the volume are 80% likely to break and low volume test holds. I don't have any set up here, but this is the way generally you would want to look at it, and that is the standard Wycoff model is that you get a lot of energy into the stock and generally that's a gap higher. It takes two weeks, three weeks, comes back, fills that gap. All of that is on lighter volume. Let's say you gap up on five million shares, you come back and you test, come into that gap with two and a half million shares. All the time that it's coming back, it's on lighter volume. You don't exceed that big first move. Come back and you get two and a half million, two million, one million shares. And that is the big chance to come back. You fill the gap, you've done it on lighter volume. And yeah, about 80% of the time, you're going to get a fairly decent trade, probably back up to the original high. And it's a lot safer. Wycoff called this, he said there's really two kinds of rallies in stocks. One, he said one that has a lot of preparation and one he would just call an automatic rally. Automatic rallies don't always know. Maybe there's some kind of news that comes out. No one knew about it. Ketch is a lot of short sellers off the wrong side. So you get the real big move and it lasts a handful of days and then it comes back and fills the gap, but there's no volume. The other kind is more like, well, we talked about CCJ yesterday, taking a good look at that. You had a big move higher. It gives it all up in a day. CCJ, right? There we go. Not generally a good sign when you come back, but if you hold that high and it does well and then it pulls back all the way, this is kind of the other side of that coin. You don't want it to give up most of the move almost instantaneously. But this is, when you get into markets that are fairly nervous, anytime something pops, you tend to get a lot of sellers very quickly, which means that if it is a longer term move higher, you're probably going to take a little bit more time that it has in the past to move higher. But I'm trying to think if there's anything else out here that really has some gaps that I'm looking at. Maybe I'll run it along something. But generally you want it to take, if you pop, you want it to take a week or two to come back. You want it to do it on a light volume. And then generally that's where you want to buy the pullback. But there's the other kind. And I guess, you know what I need to do? I need to send you my white paper on Three Gap Plays. It's old, but it pretty much has left the test of time. The other gaps I like to play are Three Gap Plays. And I'll find it during the next break and send it to you, Zach. But also show it on the show here so everybody can see it. But actually a fairly good treatise on what I look for. If you get two gaps higher or lower, I'm going to also say that there's about an 80% chance you get a third gap. And it may take a month to get that third gap, but generally you get it. So I'm one that you get one gap and kind of a coin flip. You get two gaps and I would stay away from the stock unless you're already got a position in it, in which case I almost always wait for the third gap. Not that it's going to happen, but there's a generally an 80% chance you're going to get it. And I sell on that gap higher. My example in my white paper goes back to I think 2013, maybe John and the Den can actually bring it up to me. But I think that's what it was, but it was certainly, which stock was it? I don't think of it in a minute when I find the white paper. But it was exactly what you were looking for, the three-gap play back into the highs. And I'll show it when I come back. We've got a few minutes here. We'll go into some other things. But what do we have here? A question about a Vago. I think this is from yesterday. I have puts in it. I don't see any reason. Did we answer this one? I think, but maybe he didn't tell me he had puts in it. But yeah, I think this is probably coming back to 600 bucks. But he says they expire the 21st. I probably would hold on to him until Tuesday next week and see how the market's doing. But I don't see any reason why I would abandon them today. Look pretty good. 650 puts, they're in the money. You had a big day yesterday, you're doing a little bit. But it's going to take a handful of days to continue moving down lower, I suspect. The market's probably going sideways. A great deal. Okay, that's that. Had a question earlier from a subscriber. It says, is this all you're buying today here? And as I said in the beginning segment, maybe I didn't. I don't, you know, when you have markets that are this violent and this quick moves down, I'm not one to go all in unless this is, you know, taking weeks to set up. But on a couple of days set up, I'll buy some. But I'm not going to, there's nothing yet here that makes me say I want to be 100% longer, short anything at this moment. I'm going to keep my cash and maybe we get lucky and get a super huge blowout, which would mean that I lose a little money now, but probably get the opportunity to buy a whole lot lower. But then I'm just not thinking that a index that are probably stuck around these levels for at least a couple of days. If we're going to start moving up, my guess is probably next Wednesday in the indexes. I have another question about GLD and gold. As I explained yesterday in a down market, even gold tends to go lower for about the first two weeks in a market. You had a little bit of a rally and now you have a reversal. But could I see maybe all the way into expiration before gold really starts getting a hand-hold kick foot? I don't think there's anything really bearish in gold unless you're trading it very short term. But at the same time, I think you're going to have to move your breath for a little while. But probably in a couple of weeks it will. We'll be back in a minute. Are you in the market for buying or selling real estate in the Bay Area, including the surrounding St. Petersburg, Tampa, and Clearwater markets? Tiger Real Estate LLC is a firm that has extensive experience in the Tampa Bay Area. Whether you're looking to sell your current property for maximum value, or you're in the market for a second home or investment property, Tiger Realty has the experience across all areas of real estate in the Tampa Bay Area to help buyers and sellers make the most informed decisions across all price levels. From the price you should be paying per square foot in certain up-and-coming areas to the type of cash flow investment properties are capable of creating, Tiger Real Estate can help you make the best decision when it comes to all areas of the market. Before you make one of the biggest decisions of your financial future, call Tiger Real Estate LLC today at<PHONE_NUMBER> or email us at Tiger at TFNN.com. That's<PHONE_NUMBER>. Call us today. The technology around us is changing every day. With so much happening, it can seem impossible to keep up with all the information. David White's investment newsletter, the Technology Insider, is designed to give you all the information you need to understand the technology that shapes today's markets and tomorrow's future. David White has made his living staying on the cutting edge of technology. His weekly newsletter will give you specific recommendations for valued tech stocks, as well as entry prices, target prices, and stops to set for each trade. Dave delivers his weekly newsletters every Friday with updates throughout the week. You can get the Technology Insider at TFNN.com for only $37.50. Sign up for Dave's newsletter, the Technology Insider, and get an inside look at everything the technology sector has to offer. Try it risk-free today with our 30-day money-back guarantee. TFNN, educating investors. Are China A shares hot or not? If you trade China A shares, now may be time to take a closer look. Trade C-H-A-U or C-H-A-D. Directions daily, CSI 300, China A share, bull and bear ETFs. China A shares in either direction. Visit DirectionInvestments.com today. An investor should consider the investment objectives, risks, charges, and expenses of the Direction Shares carefully before investing. The Perspectus and Summary Perspectus contain this and other information about Direction Shares. To obtain a Perspectus or Summary Perspectus, please contact Direction Shares at<PHONE_NUMBER>. The Perspectus or Summary Perspectus should be read carefully before investing. An investment in the funds is subject to risk, including the possible loss of principal. The funds are designed to be utilized only by sophisticated investors such as traders and active investors. Distributor, Four Side Fund Services, LLC. I tend to watch this. It's not a pattern that happens frequently, but I do have a white paper on it because I've made so much money on this pattern when it's worked out, and it works out quite a lot. But as I said, probably the biggest thing I look at in gaps is support and resistance, but kind of really tough. There's more to that. It's one piece of the pie. It's not overwhelming. There is one overwhelming pattern that I love, and that is the proverbial three-gap play. This is the one I have here in Netflix, mostly because I talked about it on air. I executed on it and made a wad of cash in one day, although it continued on. The three-gap play are three big gaps, and on the third big gap, and this is not tiny gaps. These are huge gaps. You'll want to pull the trigger on it short if things look like they're a little bit too rosy out here. Netflix on this day, what is this? October 22nd, looks like it dropped. I'm pretty sure it dropped $100. I think it went from $395 all the way to $300 in one day. I mean, it just absolutely gave it up, and as soon as the market opened, I was short and was buying puts on it. But of course, on a gap higher like that, every body is just throwing up their puts, and we were buying them $0.10 on the dollar. I remember mostly because John from Philadelphia was in there. My gating, I haven't changed anything. If it's anything, it's Skype, so he says I'm taking. Maybe we can reconnect or in the break or something. Well, I haven't touched anyang. I'm looking at all the settings, and they're all where they're supposed to be, and they're all changed here. I've got little marks on all my equipment, so I know exactly where they should be set, and nothing's really changed. Out here. I can turn that up a little bit. Let's see what else we have. Anyway, three-gap play. If you want this, email me at path at tfnn.com. A lot of people look at little tiny gaps, but that's not what you want.  You get to a bubbly top, and those almost always are just huge. They tend to not come back and close those gaps, and they remain open all the way back up. But like I said, that third gap, whether higher or lower, can take a long time to come in, and you may have a little gap in that, and it was kind of a little bit of that, but I think this thing was coming into earnings, and I think that was just a market maker spoof. Someone came out with a downgrade, and it lasted all five minutes, but this gap on number three back on Netflix was kind of like one of those home runs that they hit in the last game of the World Series. You'll never forget it, and one of the reasons why trading, if you can do it well, you'll always remember your first love and the first time that you acted on something that just made you want to throw up, because it was scary, but paid off in spades. Okay, well, if that's working, let's turn it up a little bit more. Okay. Got some more emails here. Let's go ahead and take a look at that. Again, if you want this path at TFNN.com, anyway, three gap play, it can go both up and down, but like I said, the last thing you want to do with two gaps, unless you know something I do not know about a particular stock or index, and you can read that as insider information is do anything before the third gap, even if you have to miss the stock, because so many times it does exactly that, and if you're long, you stay long, you get the third gap, then you're out of it before you can absolutely blink. Okay, what else do we have out here? Two, two, two. Anyway, three gap play, probably the most important thing to learn, because that's where you can lose a lot.<PHONE_NUMBER>. We've got a couple of minutes left. A couple of questions. GDX. I think anything else is going on. Now, I just think you're down. You got light volume today, a good sign in it. I'm just going to say that gold has a long history of making you just absolutely miserable. And it doesn't mean you're on the wrong side. This means it really tries the patience of folks. And again, you'll always remember, I remember we were in the Tiger's Den and it had to be, I don't know, 2006, 2008, something like that. It was a long time ago, and literally everybody cursed at me when I said I was going long, gold, because they were all sure it was going back to 300 bucks. And I thought there's never a better indicator than when literally everybody tells you something's going lower. But guess what? That always stuck with me in the big moves and the big profits I've always made in gold. Haven't been playing the long trends have been when literally everybody is either bullish or bearish on gold and they become incredibly, what would you call it? I'm going to say despondent or euphoric. But I'm not a big fan of going short gold, but certainly when the people have become absolutely the most despondent in sideways moves like this, it becomes it. But I think maybe mid next week you should look for some kind of significant lows in this. And yeah, I think eventually it's going to turn and not quit going up for years probably. But when that happens, hard to say.<PHONE_NUMBER> with one minute left in this segment. We'll take a quick look. I got a question about Apple. He got a little more down today, but volume is starting to shrink. The big problem was you tested the previous high of Apple with 153 million shares with 99. Again, this is a stock that a lot of big hedge funds were driving up by buying it on margin. They're having to sell a bit of it now. And I don't think anything's going to change. I think you're going to find that as the Fed goes through, you're going to find out that you're going to have to see that those multiples that the hedge funds have, 35, 25 to 1 of money are going to be sold. So just get used to it. We'll be back in a minute. Sharpening your skills as an investor is like getting better at playing a musical instrument. You have to practice, sure, but you also need excellent instruction from experts. At TFNN, you'll get advice and guidance from the authority and technical market analysis. And it's not just dry, tedious text either. TFNN airs live financial content streamed live on TFNN.com and TFNN's YouTube channel with Tiger TV, live every market day from 8.30 a.m. to 4.00 p.m. Eastern for free. Each host is an experienced trader and gives their take on the market while taking calls and questions live from around the world. From the moment the market opens until the closing bell sounds, Tiger TV has eight different shows with expert hosts to help you make the right moves with your money. Watch online at TFNN.com or on TFNN's YouTube channel and become the investor you were born to be. TFNN, educating investors. Get some advice from the experts. You might find that it's not so impossible after all. For daily market overviews that give you direction on the key indices, selective stocks, and commodities, subscribe to the opening call newsletter at TFNN.com. The opening call newsletter is written by Basil Chapman, creator of the trading methodology known as the Chapman Wave. The Chapman Wave up-down sequence gives you an edge in identifying price turns, finding the peaks and valleys in stock prices.  First-time subscribers also get a 30-day money-back guarantee. If you're not satisfied, let us know and you'll get a full refund within 30 days of signing up. TFNN.com, educating investors.  The Tiger First mortgage program may be the program for you. The best rate on a five-year CD in the country right now according to bankrate.com is paying 1% per year or $1,000 per 100,000 invested. The Tiger First mortgage program pays 7% per year, paid monthly, on secured, high-value, billable properties in St. Petersburg, Florida. The investment is for four years, paying 7% per year or $7,000 per 100,000 invested. Your investment is secured by high-value real estate in St. Petersburg, Florida. Your investment can be anywhere from 100,000 to 500,000. Do you want to make $1,000 per year on $100,000 invested or $7,000 per year on a secured Tiger First mortgage? The Tiger First mortgage program may be just the program for you. The Tiger First mortgage program pays 7% per year, paid monthly. For more information, you can call<PHONE_NUMBER>. That's<PHONE_NUMBER>. Catch Tom O'Brien, professional trader and educator, founder of TFNN. Also a special guest on CNBC. Tom will bisect and dissect the markets. The Tom O'Brien Show, next on TFNN. Well, I sent out all the emails during the break. So if you didn't get your copy of my white paper on Three Gap Plays, make sure and email me once again. But I think I sent them all out. Now, last is a question about British Petroleum. Company I'll always remember because when I moved to Cincinnati, the guy there was a big Ohio kind of guy and decried every day British Petroleum buying its local gas station line and saying that they would never rename it to British Petroleum and leave the old name. And they signed an agreement and promptly within one year renamed everything to British Petroleum. So I knew they were liars and weasels, but I didn't have anything invested in it. But he certainly did. I always remember that. Now on a pattern basis, this gap down on the 2nd of November with almost 19 million shares. You're back up here today with 10 million shares, 13 million shares yesterday and 15 million shares. Yeah, I'd ring the register and I'd be out if this is just a trade. If you've got a longer term one, crude looks like it's probably in a good business. The U.S. government is incredibly hostile to the fossil fuel industry. And that's only going to mean that the people that are willing to stick it to us in the mid-east, Venezuela, the rest are just going to glom on. I have to say that I think this is the single biggest input to the huge problem we have with inflation that when they change that and everybody started raising prices on crude, it has literally gone into everything. Anybody's going to try that again? They've done some stuff. Until we change our policy here, I think the green light on crude as they make sure it's harder and harder to get. See you tomorrow. Same Bat Channel, same Bat Time. Remember to sell when you can, not when you have.


ourse disco. There you go. And Jalen Green. Premier level. Nice one there. That's right. Brutal man. Brutal. These are my boys. I see your four T-malls here, Eric. Let's start with the one on top.  Then I'll not start Kenyon Drake this week. Just scored. Dang it. There we go. 15. That's great. Littleton. There's a 2-2 Atwell rookie. So funny. That's a Smith. Nice one there, Eric. He's having a good year. And George Kittle on the T-mall exclusive. 5 out of 39. Titan University. Nice one there. Alright, Eric. Box number 2. Jalen Ramsey. Jabonte Williams rookie. Larry Roundtree. Silver Caleb Farley for the Titans. And Randall Cobb for the Texans. That is 15 out of 39. On the T-mall exclusive. Nice one there. Box number 3. Tray McKinney. Silver Marcus Stevenson. For the Bills. And Jacobi Myers. Nice one there for the Patriots. 14 out of 39 on the T-mall exclusive. Wide receiver 1 in England. Trying to go around Pickle Rick over there. Yeah, knock him over. Gotta keep him there. He's the heater. I know, honestly. Pickle Rick Mojo. Big time. Ramsey. Alright, last box of T-mall. Rookie, I believe. Devonta Smith. Nick Bolton. Silver, Rayshon Slater. Nice one there. One of the best old linemen in the league when he's healthy. And Jayman Davis. 6 of 8. On the T-mall exclusive. First rounder for Washington in 2020. Or 2021, excuse me. Nice, congrats on that there, Eric. Nice, Jayman Davis. Alright, let's do some one-in-one. Good luck here, Eric. Let's pull a monster for you, man. One of these. We got a gold Jonathan Kaminga. 2 out of 10 on the Rookie. Congrats on that. So we pulled a Kade and we pulled a Kaminga. On the golds. There you go, Eric. 2 out of 10. Congrats, buddy. That is sweet. Kaminga. Brandon Boston Jr. 44 out of 99 on the Dual Jersey Auto. For the Clippers. Nice one there. Congrats on the BB Jr. Empty. That'll do it for your box right there. Box is right there. Eric, thanks as always for the support and jumping in, man. Do appreciate it. We'll get them right out to you. Pry this, I would think. Alright guys, we gotta go collect again. Sean and myself. Let me just upload. Eric's mixer. Thanks again to Eric. That's good. You got anything or sold anything that big on eBay? To have to do it yet? Yeah, it is a little bit of a pain in the neck for sure. Oh, one legacy. What did you get, Rory? I don't know, man. What are you feeling? What prop elements? Brett knows. Brett knows. Brett, you're up next, I believe, if that's the same Brett. One luminaries. Origins is pretty sick. I need to get in the queue also, SG. Absolutely, man. Yeah, still room, guys. Definitely still room. Ryan C, picking up the rockets. Love to see that. Yeah, there's still room for personals, Dylan. Order up. Order up, order up. Eminence for Rory's. Order while it's hot. Give me one second again.


You don't need to unzip or download your compressed files. All right, in this video series about the R language, I'm showing you how to iterate with custom functions. Along the way, I'm highlighting tips and tricks for tidying data. As always, see the video description below for a link to the code. All right, in the first two videos in this series, I demonstrated how to iterate over a vector and introduce the per map function. Just a brief introduction, we're going to dive deeper into this as the series progresses. In the last videos in this series, we'll demonstrate using data wrangling tips with iteration and custom functions.  So this is a brief practical tip video. This video may be even shorter than the last video about ingesting Excel files. The tip is, you don't need to unzip or download your compressed files. I'll show you how to do this with the tidyverse reader package. And by the way, the same functionality is true for the data table FREED function. Okay, so here at line 89, we're going to use the FSDuraCreate function to create a data directory. There actually already is a data directory, but this is a non-destructive create. So FSDuraCreate is smart enough to not destroy what's already there. And then I'm setting up a simple if statement to check and see if the file already exists. It's a compressed file, but if it already exists, I don't need to download it again. If it doesn't exist, then I'm going to download it. But as I said, I don't really need to download it. I'm just doing this for the workshop so that we're all sure we have the data when we get started, right? And then I'm going to use the read underscore TSV function, which is same as the read underscore CSV. I'm reading in compressed data.gz that is tab separated, just like CSV is comma separated. And I'm going to limit that to only 1,000 rows just for brevity. To recap, compressed files will be automatically uncompressed, but also know that internet files, that is files that begin with a protocol such as HTTPS or FTP, they'll automatically be downloaded.


All right everybody, what is going on? Welcome back to another video and to my reaction to the first game of week number three of the new Professional American Football League in America, sorry that was a bit of a tongue twister, the AAF, the Alliance of American Football, I'm really excited to follow this new league. I know some of you guys are too, probably not as many as are into the NFL of course, but me being from Australia or from New Zealand, living in Australia, having dived real deep into the world of American football over the last nine months, this is just a continuation of my, I guess, introduction into the game.  So I'm going to stay away from NFL, although they are still putting out the highlights. I'm going to Highlight Heaven, I'll see you in a second, let's roll the intro and get into it. Okay, what have we got here? Let's go. Arizona Hot Shots vs Salt Lake Stallions, AAF Week 3, game number one. Let's do it. Look at them now, hands the ball off to the left side, that's Oliver. Decent run. Look up the first down that left side line, it's up in the shot gun with twin wide receivers left. The pump fake down the field, that's outside the stretched arms. I'm lucky. Excuse me, that's Brian Timbs on the intended receiver and we've got a flag. Defense number 21. What have we got here? Salt Lake Stallions, they are 0-2, the same as the legends. 38-22, 12-9. Arizona Hot Shots, what are you going to do? The audio is out a little bit. Hey, offensive pass interference, right? He's tackled. What are you doing on the ground mate? Defense number 25. In fact there were four field goal attempts, this will be a 54 yard attempt for the Stallions. 54 yards, nice kick. Well done. That was right down the middle, gentlemen. Well, no it wasn't mate, it was actually to the left. Pass again and this time it went slant inside of Marquis Bundy. Pick up a 15. You see how fast that 31 came in? He was looking for blood, watch this. But the Hot Shots receiver just slightly cut at the last second to get away. Well done. Slant inside of Marquis Bundy. Pick up a 15 yards on the play. Two of three, this is a 45 yard attempt. He made a 53 yard or a weak one against the Stallions and that one's hooked. That's a bad kick. So here we go. Down and two as they hand the ball back inside the ball yelp. Oh, nice boost down. On second effort picks up a couple as again Niles Morgan, the linebacker is in on the stop. Looks like it's good enough for a first down. Oh, it is. I really like that camera angle from behind, especially for runs with the running backs because we can really see the way that they set up the cuts and set up their play. That's good. That's a haul near the first down marker. That's Niles Morgan to get with the stop. Picks up five yards on the play. It's kind of like, can you imagine playing Madden on the side view? Like they do, when you first start playing NBA, which I have done recently, they put it on the side view, broadcast view or whatever, it's cool. I instantly change it back to 2K or behind the play, just like you see in Madden because if it's at the side, you can't get the depth. You don't know where you are, you don't know how far away the defenders are, you can't really see the cuts. But a mixture of broadcast view and the behind view is perfect for me. You don't want all of one or all of the other. Do you agree? That quarterback could have faked it and had completely open space right in front of him. Wonder who's commentating. Nice work. Nice work staying on your feet. I actually thought it was a bit of a lazy sort of pass. There was nothing like, I guess really quick fire about it. Let's see how it happened. Watch the block right here by 83. It does look faster from behind actually. Why did he shake the referee's hand? That is a 60 yard. Go, go, go, I like this, I like this, I like this. I'd like to see it from behind now. Actually that's how I'd like it and that's how they usually do it with the camera angles. Forget about what I said before, you watch it from the side with general play. Once they go back to a replay, that's when they start messing around with the camera angles. Late in the week he just signed. Really? Where did he sign from? Solomon. Solomon, let me see this. Honestly I'm so interested in the caliber of players and where they've come from. What sort of teams they've played with because this could be my shot.    That'll say something. What have we got? Wide receivers, he is not on the list just yet. But you will be. Second and three. Give it to the running back. And they don't. Now Ross has been quite impressive. He's fast. He's fast, you get him around the outside like they just did there and he's pre-lethal.  You better get it. Only just had the distance. Shot man. He has a lot of skill. Shot. Bang. Shot Ross. Did it get up? Get rid of it. So that's a catch. Do you know what? The reason that I mentioned the commentators before and the reason I'm mentioning it now is because that voice sounds very, very familiar and I've just worked out who it sounds like. It sounds like Tyrum Woodley. The UFC welterweight champion. Fakes it inside. Nobody takes the fake and he's set. A loss of seven yards on the play and it's Mike Purcell. With a penetration. Seven seconds down. The first half is... Jesus, was he over the line? Let's have a look at that. I'm going to make up my own mind. Let's see what he did here. How did he get over? Second and goal, probably two yards out. They are two yards out. Where's Ross? He's right here. He's just bouncing around. What's he going to do? Bouncing around. Bang. That was a dart. What? Come on, man. Ross is lethal. You've got to be on him. Go, lateral. What just happened there? He knows that the ball was short of the landing out there. Goal line as a result is an unsuccessful point after try. Let me see this. I like these runs. I like these little... How did he not score this? He should have drawn and passed as we call it in rugby. Look. Right now, oh no. He should have scored that point blank. That blocker did a perfect job with the long hair. That's the lead option. Looks like Bakhtiari. And I remember him from the top 100 list of 2018. Trevor Knight is their first pick at the quarterback position. It's like goal line after further review. Diddy O'Evans proves that the ball was short of the landing out there. Goal line as a result is an unsuccessful point after try. So to begin the second half, Arizona will open up play for the 25-yard line. First and 10, intercepted. That's Rear Bartini who picks it out of the air. Good catch. It looked like a frog. It was just like... The return of Wilkirk is down. He's been taking shots all night, guys. And this might have been the one here. When you talk about it, he's trying to get the ball out quick and they just misidentify the protection. Well, what is the left tackle doing right here, Maurice? Malcolm Bunch, you've got to block the defense then. Do you know what block them? Who does? So Carter... Carter shoots unblocked. He gets a free hit on the quarterback. Not easy to stop someone. It doesn't matter who they are in American football from a couple of yards out. It's just... It's not easy, is it? I mean, the running back has to make two yards and they're in. Three yards. What is the best play from like... Well, if you're first and goal, or second and goal, third and goal, no matter what it is, what is the best play? What's your go-to play? Your 100% play? That's going to get that running back, or receiver, or quarterback in the end zone from two yards out. Let me know in the comments section below. I want to say I'd always bounce out wide either left or right, but the amount of touchdowns I've seen, like going through the middle, basically, what do they call it? A draw? Is it a draw? When the whole entire offensive line goes one way and the running back gets it and then bounces the other way. Is that a draw? I'm not sure. Let's see what happens here. What did that hot... What did that yellow guy came around the back and smash someone? Did he smash a quarterback? No, no, no. He was just following through on his block. 39 yards. 39 yards attempt. No. No good. 45 yards. There's been a fair few kicks, hasn't there? Is that just me or has there been? I think each team's got at least two or three. Fourth and inches. What are they going to do? Fourth and goal. Let's have a look at this. They've got one receiver out here. One, two, three, four, five, six, seven, eight, nine, ten. There must be another receiver out left. What are they going to do? What are they going to do? Well, the quarterback's going to get it and he's going to come back and he's going to fake it to 36, go on to the left, but really, number 80 is going to be bouncing on the inside. He's going to be completely open right about here and they're going to score. Let's see. Not quite. After further review, it was determined that the ball carrier broke the plan of the goal line in possession of the ball. Gusset. Gusset for Arizona. You can make something, get it. Now that was like a drag. Is it a drag? Not a drag wheel. It's kind of like a tight end attack, but you've got all your players going up and then going one way. If that quarterback rolls out to the right and you've got all your receivers making a right-hand cut or going to the right, then all your receivers are going to be in your line of sight. It's going to be easier just to choose one. I would have thought he'd go for the one that's closest to him, but obviously someone was behind that receiver and was open for the ball. I'm going to watch that again. I'm going to watch that cut and if they all were going to the right, which I think they were.  So these two receivers go in. Now they're making a curl and going out, whereas this receiver came through and he's going right too. So you're going to have one, two, three receivers going right. One, two, three. And it was basically just choosing... They've each got a man on him, but if the receiver is in front of his defender, then the quarterback just needs to make a good throw, which he did and it's going to be a touchdown. I want to watch that again. Look at these two. Look at these two guys out here. Look at these two receivers, the way that they curl at the exact same time. Watch this. Completely in sync, aren't they? It's like synchronized swimming. Huh. Yeah, there was a lot of opportunity for him to score that. That was good. That was well set up. Went through two sets of hands. So they get this and the game's not over. They've still got a chance. What are you going to do? Hail Mary? Did they just do a Hail Mary? Let's see where the receivers are set up. I see what they're doing. It's fourth and twelve. Okay, because it's their kick. Right. But instead of taking a kick and trying to get... So it's their kick, but instead of going for an onside kick and trying to retain the ball, they're going for a fourth and twelve to keep the ball. This is one of the rule changes, isn't it? Okay. So fourth and twelve, they're going to have to make a pass. If they do complete the pass, it's not all over. If they don't, she's all over. Let's get into it.  Oh my God. He got... He got hit. Oh, that's just... That's not fair. This receiver's like, what the fuck, quarterback? What'd you just do to me? But was there a better option? Was there a better option? We've got one, two, three, four receivers running up. The quarterback needed more time. No man, that's a terrible throw.  I don't know what he is. I think he's a defensive lineman. Never going to work. Should have gone for a run play. They wouldn't have expected that. Damn. I didn't actually realise that there was east and west divisions. That's interesting. So what do we got? Atlanta, Owen two and Owen one in the division. And I'm assuming the top two from each division play semi-finals. And there you go. So Atlanta have some work to do. They've got some work to do. But it's not all over until the fat lady sings as they say. 23-15, it's a pretty entertaining game. Any game that goes down to the wire where there is a chance for the other team to win is a good game in my books. That was the first game of the week. We've got three more to go. I hope you enjoyed.  It's probably not the best time for me to be doing this. It's like 7.30 in the morning. I haven't had much sleep. I've sort of been looking after my daughter a lot recently and I couldn't let this opportunity go. I needed to do these games. This morning I'm doing them. And I hope you enjoy. So with that being said, like the video if you liked it. And I'll see you in the next one.