Good morning everybody. I'm over here today with a trader from Swiss This morning we had very few stocks in the small cap plan that were moving. I Have over here in screen share Cy I had this morning the room Pedro is from Scotland and Was nice to hear to him because he has this kind of I would say High motions when he trades so he likes to bring traders and involve them into their trading So let's look over here at side this morning First of all anybody took this You can follow us also traders over here on the YouTube channel, right? So good morning James morning Greg. Let's see whoever Took today this morning sigh. We have a few things to say about this talk today morning So I want to go over the plan we had on site today So first of all size a small cap is highly manipulated Over here. I put the book map with candlesticks To show you something before So we can see that every single time the price got to this 450 We have These spikes So we have used sellers jumping in over here in the tape Every single time we push into this 450 460 So high sellers over here high liquidity It faded over here below this pre-market eye, which was in this case the level of 430 and now is reclaiming this 430 So I always say that after 10 o'clock we have the worst shorts, especially in the small cap land The reason why sigh is not for me in an easy fader is not because of Only the price section, but it's also because the delusion that we have in the stock. So here we have the illusion tracker We have a small market cap small float, but also we have the small delusion over here And over here we have an S1 offering, you know The S1 is one of the main catalysts for me to take a short in the markets on These small caps body as we draw was a 30 million over here as one with Under right under writer over here maxim You know, we can have can't we can have so many in this case is with maxim But over here the S1 is withdrawn This is what size doing over here. So we have a previous history of in the stock, which was a fader So this means that it faded below the open level in a close below the open level We have around 11 million float and a lowest if you show ownership So what happened this morning? How we treated this? Let's go and check together the heat map You can see over here that I like to generally have a filter on my heat map. So we're gonna put 5,000 shares, so let's filter some noise out and Then we're gonna put over here. No candlesticks. We're gonna put the volume dots. I like to use the smart and I can put over here minimal display 100 by 500 or has I prefer? Okay, so I can put also this over here This is a price section. The other thing that I like to add is NBBO So you can see over here the NBBO or if you don't have the NBBO option You can use over here. For example, the last price Okay, it doesn't really change it much. You can have the NBBO over here You can see the bid and ask or You can simply have it over here. We're just put over here the VWAP heat map less price and volume dot This is very very simple. I can some time put over here The cumulative volume over here I can put let's say the volume profile in this case and just have the volume dots heat map and book map Over here dots So If you look at the stock, we're gonna put over here our pre-market high It's 430 here. Yeah, so the price Got above this pre-market. I you can see over here. It was a peak around 470 470 here over here This 470 we see these three main Pops, right? You can see how it's stalled over here and then dumped Then again, you can see that Stalled over here Exhausted as well and then dump every single time was holding the 428 425 and then it came back a third time at this 450 And you can see this 450 is This major stuff that we had over here. This is the 450 stuff here and then right away down and now Since we started this trade The the trade we took was around 450 short We have over here now. I Reclaim of the V-wap Another seller join over here over here for 50, but again, I always say one thing Once the price is above the pre-market high by 10 o'clock I'm not really looking anymore to take any big size position because this mark is like this likes to trap if you start looking at previous stocks like For example Lucy you can look at stocks like CXSI They start holding the pre-market high. They're going to be fader or only late a fade or day two So what we're doing over here. We're holding the short Our risk is going to be in this case this 441 and 442 So we will plot a level of risk over here and now it's only about Letting the trade work if the trade will work Let's start we're gonna have is gonna be in the three twenty three thirty area So this level down here. This may support What I can do is look in a book on the price section. That's all I can do There's nothing more to do nothing more to trade on the stock if We have patience and this will pay will be a very good risk over ratio if the stock won't pay in this case We're gonna have a small win. I Want to share the price section that we had in the past days When we had this kind of price action we had INEP This morning, but also three days ago And I want to share The price action we have in the stock So you can see and I'm gonna put out here the level of the pre-market high You can see trader that this is the pre-market high. Okay, so sorry actually This level here. This was the pre-market. I have three days ago the 24 So we had a pop at the open we had the stuff very similar to the price session we are today And then you can see that around 1015 so around this time 1015 1020 1030 We started to reclaim over here the open level We started to reclaim the pre-market high, which was around 295 three dollars and this discontinued extend Was only a fader traders On the day two if you look at back in days, I remember Lucy Lucy was a clear example of all this There we are. This is Lucy. I'm gonna make this a little bigger There we are And Lucy the gate we had exactly the price section that we have today on side, right very similar So we have our pre-market high, which was this level here. We break it fail Push fail again 1015 seems unwinding. Okay, so 1015 is below the pre-market high below the open level We form a new lower low and then over here 1130 we move to 1 p.m. We have a higher low Move over here 1320 a new higher low and then exactly a squeeze So if a stock continue to make a lower high lower low, there's a potential candidate for a fader even today With the fact that we hear that instead of making a high lower low we start making higher low and our high So we hear higher low higher low break this high we make a new hard high and then it squeezes The point again remember sigh doesn't have any kind of dilution So it could be a potential trap this morning and ideally a squeeze coming. That's the reason why for me is short in a good level Holding with risk now in the money If we're gonna have a fader, this is gonna be a good opportunity if we're gonna have a stop in the money That's fine part of the game. Okay? This is trading small caps Another stock that is gaping right now is a UDA So a UDA we're talking about the small cap with around four million float Institutional be here 10% more or less you can see I don't see any news relative news over here. We have an extension plate this morning and exactly pushing this $3 resistance, so let's put it here a one-minute chart They're pushing this $3 resistance and a star fading. Let's look any kind of Daily key level Yeah, we have one so we can Plot this level of resistance over here, which was the previous move and in this day we traded around five minutes, so I will be taken this high as a relative point Also because we traded volume. It's not a lot of volume over here is like five million a little bit more. I Can go check over here the records to see if we had any kind of Also gap. We don't have any gap. All these were extensions. No gaps above 20% Then we have other levels of interest. So we have the size over here Which is a 320 and then we have this high over here around 340 345 So we see with book map This grinding price action Then we had a wash out over here at 1024 Let's go check it on the one minute This over here you can see the wash out Push over here to the high Start to make over here rejection at that Daily area between 2 9 over here and 320 and then start to fail now assuming that you didn't take the trade because you are You are Not on this. So I'm going to look for potential place Now the only potential place that I see is that if we establish a lower high so ideally 280 290 We're gonna have low volume and then ideally we can see a setup to short into this area here So the daily resistance this is some of the The place we had this morning on site so first over here we have a Trader who got long this long was a little bit early stopped out Then it took the long of it here sold to this position into this peak three ninety four dollars And you can see through that use if you start shorting front side of a move over here. You're gonna have a lot of problems So the trigger here and says trigger very good Way to this main extension the 470 and then start attacking out here lower highs So we can see the the pushing the side of 450 we're talking before and then card of this is a correct way to to take these trades or You can simply look for These trades over here like this other trader took In this case these are longs So this trader didn't touch short in this one and that's a very good way to take I know that also was very hard to find borrows or you could take them very early or With some brokers were a little bit more expensive So here the took the trader took simply a perfect long at the gate Sold and then so this push so you can see that with the same stock. We have more than one possibility You can take both shorts both longs and still be possible because it's possibility before both type of traders To make your day. So let's go check back Our side remember we have no dilution and this is the reason why I believe Besides for them having an agenda Why this is holding more today and Not simply fading. So let's go back and put over here side No, that was stuff. I also would like to show you Tesla. I know that a lot of traders over here follow Tesla Beautiful and wine this morning. So Tesla over here the plan that I gave was First setup looking for an overhounder, which is a short position And then I said in case instead of a reversal, let's look for a long That's in this case looking to trade with the 160 puts It fail all the way down With high selling pressure look these bars over here in the one minute. They pass the one million We're gonna put also here The dots so when you have a chart and you just want this as the previous chart Go in chart settings inherit and then put Inherit from the other chart that we had before So we can see over here all the major levels of liquidity that we have today on Tesla So the first thing is start looking at the key levels of the previous day we had a previous day low 158 and 70 And then I want to zoom out a little bit So I'm gonna go to a 30 minute chart or a 60 minute chart, right? And I'm gonna look for those previous support reasons areas because I need to know over here What is going to be the target? Target this morning. We were looking was 155 So let's go back to our hourly chart as well. We can also check even better a daily chart and we can Zoom in a little bit. So you can see traders this level Off liquidity over here Over here. We have a gap fail, right? from the 155 Down over here to the 146 147. So generally when we have these levels off Support and then we have a simply a gap feel the new level This level here support would be a level where we stack. We're a stack a lot of liquidity So I want a little check over here when we added 140 154 50s let's go over here and The 154 50s what this area with this huge Liquidity area over here. You can see all the orders. They were removed The stock continued to unwind over here to 153 It tried to push back up to the previous support now resistance We had the major seller right here jumping at 154. So he was stopping over here at the price action another dump in this case look how Boomer helps you Because we start forming a new support level here now this time 153 and 55 And then we start forming higher low so and The bounce over here. I mean this bounce is not really a reversal Okay, this bounce is just like I would say solid physiological because when we have a big unwind like this It's normal that we will see some kind of profit taking from short sellers and On a major support. We'll see like dip buyers always happens, right? So in this case over here What we're looking is only trend following on Tesla for now Not any kind of Long position in mind. We're gonna stay with the trend Let's can what else we have this morning. So CRK and KN It's a gap with around 118 percent gap 72 million volume trader for now We have a low institutional around 22 million float We have a history of the fader. So this stock faded every single time they had a gap above 20 percent in the last five years So eight times eight times faded 100% fader AUDA is the stock we were looking before and Ideally be here. We'd like to see again 293 dollars Cy Which is a stock that we're actually in short But it's not really fading It's just sold in over here this pre-market high era so the pre-market higher over here and We can see right now that we rejected this level of resistance for 40 Let's see what else we have in the market pba another small cab company 40 million float loins ownership Nice over here stuff happen twice This is one of the usual setup that we like to trade So first up over here and then second one over here zero 78 and LU and are And you know our nice extension this morning from the lows over here or sevens to the 940 Stock with 50 50 percent fader by history Stock with decent institutional ownership. We are around 43 percent No news that I can find 625 million market cap 17 million float I Already put over here the key levels from the previous days. We have this This era at nine dollars We have more over here in 950s so we can trace these levels $9 over here You put it here the 950 and Then we'll look even higher here. We have anything See a five-minute chart. We can definitely put also a support over here this 10 10 20 area Resistance already 10 10 20 area about these extensions they like to Pump and dump so I'm looking for the stock to pump and dump I'll be looking for One of the better than like to trade is called J slim So mainly is a bull trap pattern particular drill to a pattern. So I'll be looking for that kind of play To take the trade over here today short Let's go back on Tesla So act over here is asking J using bookmark with a high sensitivity of heat map To the tech support reason levels could you show us the sensitivity? Yeah, so it's not something fix for all the stocks the same so for example Tesla will have some some particular settings and Small caps according to the volume into the dollar stock will have other type of settings If we look at Tesla, this is Tesla in video Amazon meta spy I Would say also Bob in this market because it's pretty rangy.  Okay, I don't want to see too much confusion my charts Only the main important levels Okay, so we can see over here this 161 plus area. There's high liquidity. So this morning. We're topping out I'm Looking when I have these dumps. Okay this morning dump this morning go up and fail For two main setups. I was talking over here before with the trader The first setup is gonna be a view our projection or a first pull back to an explanation We never know you may from that point the Stock simply start unwinding over here. I would say with really big volume big size These bars in the five minutes are They rise above four million. So this is very huge Big orders dumping today on Tesla. Okay And again, so this is one of my favorite stocks to trade I Simply traded almost every day and I would suggest you if you want to get specialized and become good in one stock to follow The stock that has a high liquidity and a high range. So that's a high put the possibility to make profits the to answer we hear The answer we hear actor if I go and I check over here the volume dots We can simply feel the area with this a lot of traders will put over here smart or By volume, I like to keep it smart over here You can put even in there at none in that minimal display volume We can put for example 100 and then apply but If you put smart over here by volume here's put smart is pretty fine We can put a regression by time a regression by price version by volume, this is fine I don't like to have the dots Too big we'll just keep them very small. I don't want that day. It was say make my levels Small I want to see the levels first of all and then I see how the price reacts over there What platform do you use behind book map to see the institution whichever okay? So this over here is at the trade So over here at the trade You can check even under my my videos over here for if you want to discount, but essentially I use this for the illusion I use this for Overview the company the stats filings and the charts itself. It's a pretty good one. So I really like it So test on wind and now look let's look at psi So run before we're talking about the stock. It's pretty hard this stock So we got I'll break even the rest or in the money the rest As we said, it's 10 o'clock past. It's still in that pre-market high This is one of those I would say stocks that are a little bit harder To trade especially now we have any kind of a plus setup. So we will simply wait over here that We have a good play So grinding stock by 1030 I Don't see any kind of a plus out that I want to trade Potentially this could give us now in the next 15-20 minutes two main setups and I will explain what I'm looking over here First will be a break of 4050 4055 so this area and we could have a potential big long over here Okay so on the break of this level 450 455 We're gonna have a big potential breakout and why I tell that at this So over here this morning, especially once we fill the V-wap we have a Lot of traders that are trapped. So we're gonna put over here Text we're gonna put over here say white short strapped Below V-wap and pre-market high. So what I mean by that mean that or you're short When you take these trades high Or you simply leave them and on trading Okay, because if you're short over here weakness, they're gonna trap you you can see over here We have a trend line this morning. They're holding this trend line So one point over here for me. I'm gonna call over here the first phases, right? We're gonna have a breakout of 450 say 52 and push to 470 and 5 Okay, so this is a break up and you know that I don't like to trade break up. So I don't be I'm not going to be traded it The second one is that is a instead push to 450 and 460 major Stuff move What is a stuff move is essentially like we had before a breakout Right away a dump. Okay and done Let's put these with These are two potential setups that I'm looking right now on site. Okay, it's clears readers Link, can you share your chart on site? So I just want to share the risk management with with the women's heart today. It's a good example of How a stock that we were trading is Is was correct the plan Correct execution The level that we traded was this point over here and We didn't trade a stock. I would say with you know any kind of big size Right, so we're talking over here about The potential to make a four figure But I want to share for with you this to start only to share the the risk management Then this case the trader had which for me was very very perfect So we have over here The data extension for 70 and then over here After this major stuff that you can see this red wick the trader got in short Okay, so first target by plan That's the pre-market high and at this point we have sorry that is below the pre-market high the pre-market eyes for At this point we see that we have to cover partial and Then or this will unwind for a major fader or in this case risk in the money So this is the correct way to trade when something is an A plus that about in this case doesn't work Okay, so remember that not all the trades you will take will be All day faders if you're sure some will be wrecked like this So we're watching away here at LUNR spy ETAO Tesla as well Six aside, which was a major faders morning SOBR Tesla mate to Amazon and video. We're gonna check with you traders over here now Tesla, so we're gonna look at this stock. So remember what I said, we have an essentially a downtrend stock So we're not really looking to trade this Long we only be staying this short We're gonna see a potential sigh if we're gonna have that for 55 for 60 fake our short again Or this was in pre-rip to 475 We had a big move today on NVIDIA And this gives us first a short and then reverse it upside Okay, this is one of the pattern that I love to trade This morning we had a video Gonna put over here So this is in video traders We have this morning This is the 930 open You can see it started to push 930 to the 271 Which is this level over here? It rejected This heat map that we see over here Gonna zoom in There we are Reject over here the heat map 271 this area It simply start dumping So we had our Set up over here. This is a set up that we trade for a short The short entry is around 270 point 50 to 7.6 to 7.40 So just when we start crossing to the downside at pre-market high and then we went to this Pre-market low so picture perfect, right all the way down over here around three points move What I like about this is that if you look at book map We see these orders coming in So to 70 point 20 to 70 to 69 point 9 So it's like tapering down over here, and it's a stair step down pattern So we have sell that continue to follow over here the price and then once we got this to 67 So the pre-market low we start having bars again. What I Look is confluence of signals So we got to this First over here to 69 bounced We got to the lower here to 68 bounce We got over here to the level to 67 bounce This is that first bounce where we start making actually hard lows and break the previous relative high And then we start pushing more Dipping again. So holding this previous resistance now support Breaking the view up and that is your reversal Okay, that is your reversal So we have to continue to look at the scanners over here 11 o'clock So LUNR PBLA AUDA Psy You can go back over here on Psy Yeah, Psy traders are one of those stocks that they're hard to trade Because Right now we have short-strapped and Only if we see a bull trap over here We can grab for the short side. Otherwise, we simply have to wait That's just making our lows and our highs for now. We have to wait on Tesla So Twitter over here is asking about Tesla if this is a potential short set up, right? So look over here traders first of all the first thing I like to do is tracing my fibs So I trace my fibs in this way So we have a descending stock Down trend I Place the high over here when I just up here and then these are retracements This is the way that I traded and use it So right now price on Tesla is pulling back to the VWAP 156 It's pulling back over here to this previous small consolidation area right here, but unless major Stuff or any kind of candlestick pattern to confirm over here a Bull trap with this 156 156 and 155 then reversal so continuation to the downside, I'm not going to touch this Okay Not gonna touch this and this is Cy again So breaking down this trend line often they will do this and then it will start pushing upside So we're gonna see this over here. I'm not over here trade short So I would like to see over here a potential push the 450 never short of here weakness because just simply gonna trap you often on book map if I look at my levels I can trace my trend line we can see that now we broke okay this could be a potential trap so the level that we want ideally to look for short is the server here into the 450 no look for anything less than that you know and also this has to be your play has to be very comfortable trading this it has to be part of your playbook of your niche the wise will simply take it so almost to the zealons over here and curl it back up. Psy we could see traders a potential 410 dip and then bounce block so I'm looking at Psy what I'm looking right now is a potential dip this area and then along let's look together if you're gonna have any kind of signal over here to enter long so for now they're dumping wash over here to the 409 this is a good potential long over here if it holds this four dollars for a bounce play so you can see that we had a wash for the rate previous support right this over here we're also at this we say low or far the setting triangle because we can see the price action over here essentially is bouncing over here let's see so now the second level that I'm watching is this area here for a potential stuff in short 450-460 any question traders so actors asking over here if you trade particular option you trade a particular option you mean stock so based on the stock I prefer to trade options on high liquid stocks like on Tesla no I just like vertically here so let's say that we're looking this morning at Tesla so you can see that I'm gonna put over here I mentor and teach traders on options and you can see that we were looking for 160 puts or in case of reversal 162.50 calls so in this case we apply the strategy that we use from the line stock on options all right and I do that I would say in a pretty efficient and easy way so not too much trading with the Greeks but looking at the first add the money in the money or out of the money generally weekly options where I have a lot of liquidity so I need volume if something is as pretty if we don't have enough I would say volatility on the line stock is not something going to trade okay so that is for me the first the first main parameter I made buddy some videos on options that you can find on my YouTube channel start looking at those then you can reach out to me I can give you some more things to study okay I try to look over here this is what the market often does we have a dump and you can see over here that we have this very small trade over here that we don't know if this is an algo or somebody that starts to buy over here and positive then we have more liquidity coming over here for 16 so in this case if you miss over here that 410 dip you know this support that we see over here is not anymore a trade long to take because we want to take the perfect dip the fact is the first 15 for 16 over here could be only a spoofing and they make you enter long they push a few cents they stuff it that cancels like doing over here right now and then it dumps you know so it could be a particular trap that they like to do thank you actor I'm very appreciate buddy I'm here just to help traders so when you have a question just reach out one thing on Tesla I want to say if you are listening what we're saying before one of the only so they like to trade when I get to the level yes to see stuffs like this Tesla and this is a particular J slim which what is a G slim is a tight narrow consolidation okay so in this case we're just living out here the trade probably won't work but that's exactly what I'm looking to trade okay so you have to train yourself to recognize this kind of better so traders over here is asking what you think about nasdaq what do you mean buddy about thank you futures a scar so I'm gonna share over here a question from a trader I will make the picture larger here trade when you can send me your charts bigger just because I'm a little bit blind okay so over here we have some levels of confluence and just asking me over here where you point out if this over here is by playbook okay a level where I can look too long so we can see that we have a major dip and when I have a dip I'm looking for a support the more we test the support the more this support has I would say reliability and it's not only because I see a technical over here banned that I want along but if that band is has confluence with other signals could be key daily level could be with a candlestick pattern could be in this case with book map then the more things I align together and they confirm my trade the better is for me to take a trade so in this case yes this is a playbook entry if we align all setups together now I don't know what this stock is I don't know what the CLSK okay but I would need to see the DHR and everything over here we can see the confluence of the level of the J lines and the level over here heat map that they correspond together so that's often my way to go for taking these deep long trades yes so let's go back over here at side so you can see what it did right first day place over here support so they invited to get long now they shifted here the support so seemed like they were spoofing over here and then they place over here the resistance so now what's the point they will invite you to join on shorter here but again shorting weakness is always a very bad sign because you expose yourself at more possible losses so I don't generally do that I mean I never do that I never showed weakness this is a 50 minute chart and this is a 30 minute chart and be that looks interesting over here so we are inside this range from the previous day here this is the high of the previous trading range we start curling over here so we could have a potential move to the 272 and 50 273 and 60 still not a setup for me form but I will be watching today at Nvidia so we have a potential over here breakout on Nvidia so we like to see this breakout and then looking for pullbacks to buy it long so I'm looking over here for potential breakout of 271 if we're gonna hold this then I'm gonna long into pullback that is the reason breaking the 271 we're gonna put over here all right to the last few minutes together if you have any questions please reach out so Trader is asking about a comment that I gave before on Inapp and I'm gonna explain over here so Inapp is one of those stocks that was up two days ago so this morning we had a bounce play I'm gonna enlarge this one second so you can see over here that the first day so the 24 we had a push it faded right we're here where the bear trap push again to the upside faded and day two faded this morning with a bounce over here play this is a bounce play where into this high liquid area you can see that this was the high the lows over here so we have this structure over here of resistance okay we started fade over here fading over here with very no major we say bull trap over here it's like had a rejection that 280 so I didn't jump in the trade and I start simply fade over here with low volume I didn't see like any kind of big bar but also not a big seller only over here in a 20 dumped then over here more and I'm 30 but the first 30 minutes was very choppy over here so it was slowly fading slowly having liquidity over here they only dumped after a 20 so when I said that was a fatty what a shady fader that was a reason why and me the breaking out yes so we're gonna look for potential pull back long all right so we have 11 20 over here hope that you enjoyed the session if you have question please reach out I'm J Trader I meant a small cap small cap and book map in the last five six years so if you have question reach out see you next week follow us book map thank you very much and see you next time thank you traders


Y'all are doing a great job guys, I'm glad to be here with y'all. Give me one of the things. Ooh! 7-6-2. Right here? Sort of girly? Yeah. And...


Hi everyone, Joe for Jaspy's casebreaks.com. Happy Wednesday coming out with you with a brand new release 2019-2020 Panini clearly Donnery's basketball six-box random team break number four second half of the case that we popped open a little bit earlier Remember we marked all these RT4 so we know that it's from the same case Also an early bird special right here First 18 who purchased full spots will be randomized and we'll have a shot at an extra spot So thanks all these folks right here for getting into it and Let's roll it. Let's randomize it One and a three four times name on top gets the extra spot after four one. Good luck two three and Oh one fourth and final time after four times Congrats to Corey. I think he was the the earliest bird. There you go the earliest of the early birds Gets that extra spot and now a new dice roll for names and teams Good luck This time one and a four five times one two three four and Oh one. There's a final time. We got Kang down to Michael Robbins One and a four five times for the teams. Good luck teams one two four and That's in the final time. We got the thunder down to the Denver Nuggets All right Kang with okc Mike Robinson with the Rockets Ryan with the wizards Corey with the early bird spot the Brooklyn Nets Kevin Grizzlies Roger Mark with the calves zoom in with the Celtics and the Clippers gay were with the Kings Atlanta goes to Mike Ollie with the Sixers Adam with the Pistons Russ with the Hornets Patrick with the Knicks Corey with the Blazers Matthew with the T Wolves Corey with the Spurs Anthony with the Raptors Dustin with the Bulls Jun with the Heat Ryan L with the Bucks Chris with the Jazz Jun with the Suns Patrick with my Lakers Sean with the Warriors Patrick with the Pacers Tyler P with the Magic Summon with the Mabs and Michael Robinson with the Denver Nuggets All right, let's alphabetize by team. We're in a positive video really quick. See if there's any trades There's a lot of trade chatter last time So we're gonna see if there's any trades and then the break stick around be our B. All right. Hey welcome back folks There were no cut a little bit of trade chatter, but no deals were done. Here's the final print out right here Thanks everyone for getting in We've got plenty of pick your teams up as well if you want to check that out and run some pick your teams To I really enjoy the acetate look on this stuff So if you're a fan of that, I think you're gonna enjoy this product All-card ship Everything will be sleeved even the commons will be sleeved and then the more Significant cards will just top load right away Like the one that's coming up or this numbered cards to 0 to 99 Demontissa bonus Pacers that'll be for Patrick like this John Morant John Morant Memphis Grizzlies Kevin Kevin H With that job nice Nice Luca Donchich someone was saying that second-year Luca Donchich like hundred bucks someone saying that or no Maybe that was the gold. This is just the base one, but Anyway, second-year Luba Donches is do pretty well. Douse Mavericks zoom in Poorly I lost to Shawn Jaspy. What happens folks Aaron Jones was out. I didn't help at all Next box. How do you how can you tell the Rui was a variation? All-card ship. You're gonna get all that folks But how do you how can you tell or do you just know the different pictures? It's deer and Fox red parallel to 49 Nice LeBron nice. Thanks for the chip LeBron Los Angeles appreciate that Patrick Garcia with my Lakers And a Zion I've heard of him in an autograph coming up Zion Williamson Going to Roger Ness and the Palikins. There you go Roger Nice and that's a variation to Oliver saying Different photo also. There's a V by the card number. Oh, I see there you go nice See you're in Fox This one's for the Kings that goes to Gabriel You know, thank you Roger. I appreciate you getting into the action and the autograph is Darius Basely Okay, see that goes to King and Thunder Cam Reddish Hawks and another Zion. There's the regular Zion Wow to For Roger when it rains it pours All right, so you can you can obviously you see the difference right here Good tip. Thanks guys on the The V for various issues that more often. No, you're welcome times, too We appreciate you getting in Nothing ventured. Nothing gained Scared money. Don't make money as they say Johnson There's Alan Somali itch 26 out of 49 that's for the warrior Shawn Matic warriors come out to pay Nice Kobe white Yannis as well Yannis on to the combo goes to Ryan L Licked Wow, I think Felt confident enough to try that last name there. Congrats Rated rookie Kobe white going to Dustin N. Doubles And a few more boxes to go. All right. Good luck. We got more of this in the store folks check it out Another Yannis Yannis kind of has that LeBron effect that even though it's well past their rookie years Their cards from year to year still seem to do pretty well Relative to the other vets on the secondary market and a John Marant to 99 Wow 53 out of 99 That's the first John Marant a number John Marant we've seen Kevin Higgin bottom There you go Nice one Kev and kind of a it's kind of sort of hard to see in this lighting But you can kind of see the blue foil against the lettering there by the way The shipping department will be sleeving and top-loading all rated all rookies Basically, and everything will just be just a sleeve and then into the team bags for you guys We've got another Luka Dodge. It's an interesting parallel coming up here Luka dodge it's for the Mavs. That's gonna be for zoom in Does that look different there a different pattern in the background there Definitely, right? They don't all have that Yeah, Oliver's confirming. Yes. It must be a different short print there and another John Marant for Kevin and an autograph It's Chris Clemens for the Rockets That's gonna go to Michael Robinson Yeah, Kevin Kevin's like bro these hits Yeah, you're you're in pretty good shape Kevin Thanks for joining man. We appreciate that Can't win if you don't play We appreciate you playing All right, here's the final box of this half case break We've got plenty more in the store folks jaskyscasebrace.com. All right. Good luck everybody You kind of see a It's kind of hard to see the purple. I think that might be the purple foil All card ship folks another Donchich for uh zoom in This has been a great half case right here and we've got All clear for takeoff all clear for takeoff zhan wellesman garner roger And nikola melly at the end and there you have boys and girls another solid Clearly donnerous basketball break in the books brand new release and It's debut. It was the first time they've ever done this So get into the action on the debut jaskyscasebrace.com. I'm joe and I'll break more with you next time. Bye. Bye


Am I audible? So hi guys, I am Sonal and I am going to talk about Neo4j and graph databases in general. So before we start, let us have a show of hands. How many of us here have on xp with working with graph databases or Neo4j in particular? Quite a few. And how many of us have graph databases in the future? Great, I think that is the whole audience. So rest, because this talk will have some each one of us here. Start with basics of Neo4j and we will be moving on a little advanced concepts. So the plan of the talk for today would be something like this, we will start with graphs and no SQL databases. We will move on to Neo4j and Cypher, a bit of explanation for those of us who are new to Neo4j. We will then take a look at Python Neo and the REST API that Neo4j exposes and finally we will look at use cases and demos to what cool stuff we can do with Neo4j at the back end. So how did this all start? About decades back relational database truly ruled the database world and pre-new was to store data in the form of columns, rows, tables and when you encountered highly complex data, highly connected data, options that you had were to use primary keys. Hello, yeah, yes, so you had to use a lot of joints and that was all that you could do with relational data plus the added disadvantage was if your data structure changed at some time, there was no option to include that in your database. You had to completely re-instantiate a new database, migrate your data to it and then you could change the structure. So that's really horrible for interconnected data, right? So the universe balances itself as it said, the new SQL world came into existence to encounter these problems and it was not just a single database, no SQL addressed problems of all existing data types. So wherever you see a different type of data springing up, a new database came into existence. Today, no SQL databases are divided into four types. We have key value stores, they store what they say in the form of keys and values. Then you have column family, when your values are divided into multiple, when you can have multiple values for a single key, you have, we can separate them into columns. Then you have document stores, when one entity has a lot of key values associated with it, that's called a document and you can associate it with a relative key. And finally, you have graph databases. You must be wondering where in this graph no SQL, my SQL databases would lie. So this is where they lie. Now what this graph depicts is a comparison of data size and data complexity. So key value stores can handle a huge amount of data, but the relative complexity of data that you can process there is quite low, whereas graph databases, they handle a very high complexity of data. But the amount of data that you can handle there is quite low. This is because there's a tradeoff between the traversals that you perform on a graph database and the amount of data that you have. So why do we actually use no SQL databases? First thing is elastic scaling. So if you had a relational database with you and suddenly your traffic increased and you started collecting a lot of data, the only way you could scale initially was to scale up. That means you threw in a lot of RAM, you threw in more disk space, you shifted your code database to a larger server, and that probably should have solved your problems. But then elastic scaling deals with not just scaling up, but scaling out. And that's what no SQL databases do. So when you have to scale a no SQL database, you can add more nodes where your data gets distributed over them. So you don't have to worry about what happens to the existing data. You can just keep adding nodes to your cluster and they scale out very well. Plus the new fund are called Big Data. I don't know actually what people understand by it, but Big Data is not just storing and handling large amounts of data. It's also about efficiently processing large amounts of data. So we have something called transactions, which are small units of computation that you perform on a data set. And that's what no SQL databases handle really well on very large data sets. You not only can store large data sets, you can process them really well. Plus it's economical. You don't need specialized servers and specialized firmware to run such databases. You can add a cluster of personal computers, old machines, Pentium machines, and then set up a very efficient data cluster. Plus you don't need database administrators. People specially trained in handling databases. Anybody can handle a no SQL database. Then there are flexible data models. We'll come to data models later in this talk. So for people here who have less exposure to graphs, let's introduce and brush up a few concepts of graphs. So where do we see graphs? Graphs are basically existent all around us. Wherever any scenario you take, there's a graph that you can visualize there.  So websites like Twitter, Facebook, LinkedIn, even once like SlideShare, Groupon, Foursquare. So all that's mentioned in this graph are actually graph scenarios. They may or may not be using graph database at the end, but they are graph scenarios. Maps, how many of us have done projects on maps? Great, so personally I have done a project on maps where I had to divert an ambulance through Bangalore traffic. Yeah, so in that case it's really difficult if you have your map data stored in relational databases. You have to have a graph which will efficiently process paths and routes and shortest distances. So maps is a very good example where graph databases can be used. I'll be talking about a graph database example at the end and we'll see how queries can be performed on that. Logistics, that's another division that uses graph databases on a large scale. So when you have to route your packages from one place to the other, you have to think about the economy of it and the time about it. So your package has to reach your customer in the minimum possible time and the shortest possible route so that you bear less expenses, right? So companies like FedEx and UPS, they have integrated graph databases for calculating shortest distances and they are really successful, as you know. Airlines, all of the same concept in the same tradition, they need to find the shortest distances because expenses are huge in airlines companies. There are some graphs that we come across every day but we tend to overlook them as graph scenarios. So when you open a LinkedIn page, there are topics which recommend to you news that you would probably like reading. So as you can see, this is on my page. I don't know why I would like to read this news, but yes, it recommended me that I just got fired. So these are places where graphs are used extensively at the back end. Plus, there are columns which you can see on a lot of sites like Facebook, LinkedIn, Twitter, where people are recommended to you. Friends are recommended to you to follow, to add as friends. So these are also prime example of graphs where you are connected to a lot of other people and algorithms are used to find out who are the people that you would like to interact with. So we'll also see an example of a dating site in the end, where if you enter a name, you get possible matches of people who you would like to date. When you visit video sites like IMDB or Netflix, there you get movies or series or video recommendations based on what you have already watched or what your friends or people like you have watched. So these are, if you think about at the graph scale, there are a lot of complex traversals that are going on, relating you to the content you've watched, relating you to other people and the content they have watched. And that's a big problem when you try to solve these through joins on a relational database. Apart from that, graph scenarios, there are a few others like recommendation engines, fraud analysis.  Also, there's this file permissions on servers and file systems which can be implemented using graphs. So why do we prefer graphs today? Because graphs have been around for a long time, but graph databases are coming into existence a lot in the past four to five years. So this is because data is becoming highly complex. Most of us spend, today I heard about a group who are making an app that can find how much time you're spending on a social network. So if that's going to be a business, that means we are really spending a lot of time on social networks. And think about the data that we are generating, every click, every like, every comment that we are making. We are actually creating a part in the graph and multiply that by 365. So how much graph data are we generating in a year? And the companies, they have to process this. They have to find out information about you, for you, for others from that data. So connectivity of data is highly increasing and that is making it more and more complex, plus it's semi-structured. There's not a fixed set of operations that you do every day. It can be anything, you could like earlier used to have forms that had a fixed set of fields. Now you can have a text box which can be passed at the back end. So the data, it's not mandatory to have fixed columns or fixed fields in your data anymore because they are semi-structured. So the concept of graphs actually dates back to 1735. Where did this all start? Why graphs? So how many of us have heard about seven bridges of Konigsberg problem? OK, so everybody has heard. For those who haven't heard, just a brief. So the anecdote goes that there's a place called Konigsberg in Russia. And it is separated into two parts by a river. And there are two islands in the river. And these islands are connected to each other and the main land through seven bridges. So they came up with a weird problem that you had to walk through the entire land by crossing these bridges, covering the two islands and the two main land paths. But you have to cross every bridge exactly once. And this problem caught the attention of the genius Leonard Eiler. And what he did was he proved by contradiction that this was exactly not possible. If you have seven bridges, you cannot cross every bridge exactly once and cover the entire land. So he did it with the help of graphs. The solution that he proposed was with the help of nodes and relationships. And that was how graphs started. So for around 280 years, we just had concepts of graphs. We pondered over what can we do with graphs. And recent decades have seen people have thought about, let's store data in the form of graphs. And that's how graph databases came into the existence. So we've just been wondering for 280 years where we could have done the graph database parts a long ago. So OK. So most graph databases today store data in the form of property graphs. Property graph is very simple. It has nodes. These nodes have properties of their own. The properties are nothing but key value pairs. It has relationships, and the relationships have properties of their own. That essentially is what the entire graph database space is all about. So the major building blocks of graphs were nodes, relationships, and properties. And in recent years, there's something called labels. So labels were made to facilitate faster traversal of graphs. A label is a group of similar nodes or similar relationships. So you can group a lot of entities together as a single node. So your graph can have a lot of nodes which can represent people, a lot of nodes which can represent companies. Think about a LinkedIn graph. It can have nodes with people, nodes with companies, nodes with recruiters, nodes with job seekers. And how do you distinguish these nodes from each other? You label them. So when you query a particular type of node, you use that label to traverse only those nodes instead of traversing the entire graph. So data models for graph databases are classified into two types. First is a native graph. So a native graph has data structures which inherently store data in the form of nodes and relationships. Whereas all the other graph databases that are not native graphs, they store data in the form of tables, the old SQL type tables. And they use joints. They use a layer of joints and aggregates to simulate graph operations. So when you're actually thinking that you're doing a traversal on the graph at the back end, somebody has already written a code to perform joints and aggregates. Neo4j is actually a native graph. So there are a lot of popular graph databases around. You have Titan, which is another major player in the graph space. But we'll talk about why we want to use Neo4j. First, Neo4j is a schema-less property graph. So it's the same with Titan. It's also a property graph. It can handle connected data very efficiently. When you want to use graph databases in scenarios that have critical data like financial operations, banks, and other sectors, you have to have fully asset transactions. You cannot afford mistakes. So like the scenarios we described where JP Morgan and other companies use graph databases to process financial data, we cannot have non-asset transactions. It's fully scalable. And in recent versions of Neo4j, we have high availability clusters. We'll talk about high availability clusters in the end. It has a REST API for servers. So it's easy to query a Neo4j server at the back end. You can embed your application within a JVM. So Neo4j is basically written in Java. And its core API is in Java. So any JVM-based application can use it. But since Python wrappers are available for it, your Python applications can as well use it. The main advantage that Neo4j has over other graph databases is Cypher. Cypher is a query language that was designed specifically for Neo4j. Plus Neo4j is a graph DB which has extensive Python bindings. We have to talk about Python. We are at PyCon. So other graph databases lack this functionality of integrating with languages like Python. So let's see Cypher in action. Cypher is a highly expressive query language. It's actually a pattern matching language which reflects what you're thinking about the graph. If you're thinking of matching a particular pattern, you can represent that pattern in the form of a pattern. So it cares about what you do rather than how you do it. A basic Cypher query is mentioned here. So if you have two nodes and a connecting relationship, you represent a Cypher denoting this as one label two, where label is the label of the relationship that you're using. A little more complex. When you want to match a particular relationship from the graph, you can define your first node as node of one, M as node of two. So what one and two here are, when you store a node or a relationship in Neo4j, it internally assigns indices to that. So these are the IDs that Neo4j provides for as you add a node or a relationship to the database. It's automatically generated. So you just have to say match N or M, node one, node two, and the relationship. It will find your node one. It will find your node two and get all the relationships that is existing between these two nodes. And it will return that relationship. Do you see something similar to SQL here? So to make people's lives easier, this syntax is inspired by SQL. So you have commands like match, return. So I have briefly outlined the CRUD operations in Cypher, how to create, read, update, and delete your data. So we're not going into much detail of it, but it's on the slide. You can have a look later.  That is the label of that node. You define the properties that you want. Name is Chuck Norris, title is Analyst. And you return that. So what it basically does, it creates this entire node, creates its properties, and returns you the reference to that node. You can also perform operations like match where you get a person which we have seen in the last node. You can compare its properties. So where is a clause that you use to compare properties? A dot name is equal to Chuck, and B dot name is equal to Rajni, and you compare them. So A cannot find B. Yeah. So the update operations, you start with a match where you find the node that you want to update, or the relationship where you want to update, and use the set command to update it. For delete, you just have to specify remove. It's as simple as that. It also has a REST API. I've also outlined the REST crowd operations. So we use post to create a request that can make nodes and relationships in your graph. It's provided as a JSON document. The properties are provided as a JSON document. The get is used for read operations. Put is used for update operations. And delete is used for remove operations. But we are here to talk about Pyto Neo today. Pyto Neo is actually a wrapper around the REST API of Neo4j. It's a small library that was created by Nigel Small. He works at Neo Technologies. And over the years, it has grown into an amazing library that most people in the Python community use. So what it actually does is you can use Python, your Python-powered application, which is running with Pyto Neo, to interface with the REST API that's running atop the Neo4j. So you can initiate queries in Python, but which are internally transformed into REST requests. And the response that you get back is again transformed by Pyto Neo into a format that you can read in Python. So let's look at a bit of messy code. So you define an instance of the graph database service. And we specify the location of our database server. If you do not give anything, it will, by default, connect to localhost 7474, which is the default host and port of Neo4j. But you can specify where your remote address is. You can use node and relationship defined in Pyto Neo to create a graph simultaneously. So here, we are actually creating five nodes and linking them together. And when you execute this query, a single statement, that can create your entire graph. If you have a larger graph and a data set with you, you can write a simple Python script that can append these things together, form the query, and then execute it. But there are even better ways to create graphs, which we'll see. The graph database object that we created before can be used for a lot of other operations. It has inbuilt methods like clear, which you can use to clear your entire database. So try to run it on your own database and not on others' databases. You have to use create and delete with different types of parameters for creating and deleting nodes. There are also properties like delete index and find a node or a relationship. You can get an index. You can get an index node. You can perform more complex operations, like getting indexed relationships. You can use the inbuilt match method. So you can retrieve nodes and relationships and sets of relationships. So this basically returns a list. When you map something, it runs a list of all the matched nodes or relationships. But the most used methods are get or create index, get or create index nodes. Why? This is because Neo4j, when you're creating a node, if you're creating nodes for two people and a node is already existing in the database for that person, and you're not using indices, so what do you think will happen? It will definitely create the node again. Or it will raise an exception, because if it cannot create that same node with the same properties, it will create an exception. So to avoid that, Nigel Small has created a method, these methods called get or create index. So if your index is not present, it will be created. Otherwise, it will be retrieved and given a pointer to. But this is all about storing data in your graphs and reading from it. But if graph databases were meant just to store and read from, then there would be just a persistent graphs. And there's no use of storing. You could have just used a SQL database at the back end. So what are the advanced things that we can do? You can create paths. When you have graphs in mind, paths is what comes to you. So directly, you can create a graph path by defining the nodes named Alice, Bob, and Carol here. And you can create a path where A knows, B knows, C. So essentially, you're creating three nodes and you're joining them with two relationships, direct path. You can also join two paths using the inbuilt join method. You can also get or create a graph database by committing it. There's also advanced features like indices. So internally, what Neo4j uses is leucine. And that is a very effective index. Leucine has its own format of querying indices. In the native graph API that Neo4j provides, you cannot run leucine indices. But Py2neo has a wrapper around leucine as well. If you've seen the last part of this, you can use a direct leucine query in the parameter and query your index. So this is a leucine format of writing a query. So we come to something called property containers. Most of us who have been exposed to Python, we know about containers that exist in the Python language. So these containers, or you can call them collections, are used in Py2neo to create nodes and relationships. So what's the benefit of using property containers? Firstly, you can create advanced methods, like get relationships, where you can encapsulate an entire traversal to give you a specific entity. You can get related nodes of a given node. Plus, you can perform boolean operations for checks. There are methods like has relationship or is related to, which is quite helpful when you are looping through a particular set of nodes that is returned. For the relationship parameters, it is defined in Neo4j.relationship. This is the class that holds the property container for relationships. And you can have properties like start node and node. So when it returns a relationship to you, you can directly refer to the start node as dot start node. Similarly, the type of the relationship that is present can be referred to directly. But writing Py2neo code in direct Python API poses a lot of code to write. We'll see an example where a small query takes about 15 to 20 lines. So it's a lot. Python is a language which is designed for reduction of code size. But we are writing to execute a single line query. We are writing 15 lines of code. That's huge. So recent versions of Py2neo have come with interface with the cipher engine. So you can directly run cipher queries on top of the graph database using Py2neo. So you must be wondering about the performance of Py2neo. So since it's a wrapper around the REST API, it is a bit slower than the native Java API. That is obvious. So we have to do something which compensates for this delay in time. That is why the Py2neo creators developed the interfacing with cipher. Cipher is extremely fast compared to the native REST API. So when you integrate that with the Py2neo API, you can perform very fast reversals. So you can create transactions as well. So there are two methods in which you can execute cipher queries. One is by using the normal graph database service that we used in the previous code. Or you can directly import cipher. So what cipher does is it creates a session and then starts a transaction. You can append as many queries as you want here and then execute them whenever you want. But it's not committed to the graph. The queries are simply executed. In the end, when your transaction is committed, you have to mention tx.commit. If you don't do that, your transaction is rolled back. So that's the beauty of it. It's acid. There's a classical way of doing it also. You can use the graph database service and the function called cipher query where you provide the instance of your graph database and your query, and it directly executes it. But this does not guarantee an acid transaction. So when it's critical data, it's advisable to use the transaction properties. When you install Py2neo on your systems, if it's a Windows system, you can directly use the py2neo.tool through the command line. And any terminal, you do not need a specific shell or a interface to write queries. You can directly use the python-mpy2neo.tool. If you're on a Linux or a Mac, NeoTool is a very good option. It's essentially the same thing as Py2neo.tool, but it's a shell script. And you can directly use it to run your cipher. You can export your data from that in the form of a cipher CSV or a cipher tab-separated values. You can also import and export using geoff, which is a very good option for handling graph data. Plus, you can run the shell of cipher directly using NeoTool shell. Neo4j has adapted a lot over the years. And there are very advanced tools available with the Neo4j package. You have a batch insertter. So when you're porting data from one database to Neo4j, and you want to do that quite fast instead of just manually typing in, the batch insertter can be configured to export your entire data set to Neo4j in an automated way. There is high availability, which has been introduced in recent versions. So your data set, your Neo4j database is replicated across many machines in the cluster. And each machine has its own hot cache. So when you set up a Neo4j in production, it is advised to initially test it on a data set so that the hot caches are formed. And these hot caches are, depending on where, when you strike your hot cache, the transactions are fast or slow. So what Neo4j restricts you from is you cannot distribute parts of your graph onto different machines. You cannot store half of your graph in one and half of your graph in the other. You could do that theoretically. But the whole point of a graph database is to perform traversals easier and faster. And if you store databases in parts across multiple servers, you need to have inter-server communication. You have to have something like IPCs to communicate between the two graphs. So if you're traversing from a node on one machine to a node on the other machine, that takes a hell of a time. So the Neo4j high availability cluster does is it replicates your data set across multiple machines. You have the same database. But different parts of the database are loaded into the memory, into the cache of different machines. So and there's a record kept of this. So whenever you pass in a query to the system, it finds out those parts of the database where the required component is in the cache. And you can traverse that very fast. Plus, there are built-in online backup tools. So most Neo4j clusters today have a separate server in which real-time backup happens. So whenever a node is updated or a relationship is updated, it is reflected across in the backup node. The backup node is not used for queries. Plus, it has HTTPS support. So when you are using a REST API, you can use HTTPS. When you deploy Neo4j in production, there are a lot more required than just basic traversals or storage of data. So a company called GraphAware has developed a Neo4j framework where there are additional tools and modifications to make Neo4j even more faster. So you have a library called GraphUnit. It is used for unit testing Neo4j applications. You have libraries for performance testing and API testing. So how well is your API connected with Neo4j? You can test that. You have batch transaction tools and transaction event tools, plus some other goodies in that. Let us look at a few examples of Neo4j. Let us run, so first example that I'll show you is a dating site and a few queries that we can perform on this dating site. And next, we'll go to a map. Is it visible to everybody? Okay, so this is what the Neo4j interface looks like. This is a relatively new interface. Earlier, they used to use the legacy interface. So this was actually pretty good. I personally like it. There are tools here which can reflect your nodes, properties, relationships, and it gives you a beautiful demonstration of nodes and relationships with time when you're creating them, when you're deleting them. It also gives you a pretty good idea about the database space that you're using. So since we are short in time, I'll explain the parts that I've put in the Neo4j notebook. So initially, just like I said, you create a Neo4j graph database object. Let us look at the cipher first before we look at the Python Neo code. So what are we trying to do in this cipher code? We have a node where you specify a name and we try to match a given pattern to find the people who you are likely to date. So every person has some interests and every person is looking for some qualities in the other person, the person who he wants to date. So we are looking for common intersection between these two properties. So we define a node n, which can be any person. We see what interests does n have. So n has some interests and we also see that the someone that we are looking for has the same interests. So essentially this line is matching the common interests between two people and this is extended over the entire graph. Apart from that, to make it a little more complex, we also see in the same pattern that the someone should live in the same city as n lives in. So this is a single line query, right? When you execute this on the database, you get a visualization. So the analysts who are using it must be really happy. You also get a tabular representation where you can check out the name of the city and the person and the information about the person that you are likely to date, right? The same query, let's see how Python handles it. So you create initially the database instance. You get the graph node of the person you're looking for, this is the n. Then you get all the relationships. So you list and match the nodes that start with n and have the relationship type as has. So you can see that we are doing everything in parts. You cannot do it in a single query. So this will return and I'm just printing the top five here. This will return in the form of relationships and this is a rest response, as you can see. So this is clearly evident that Python is a wrapper around the rest interface. Then you calculate the interests out of all these relationships. You create a loop that checks what are the common interests between me and the person I'm looking for? So you get the same interest people. These are nodes. You again check for the city separately where they live in and you find an intersection between the city that I live in and the city that the other person lives in. And finally you transform them into sets and get a common list, the intersection of these two. When you print them, you get the names of all the people that you're likely to date. So you can see the amount of effort that you put into just simulate a single Cypher query. Now if you were to execute this in the form of Cypher, it just takes a single transaction event. You take the transaction, perform the Cypher query and execute it. And you get the records. This is written in the form for record where each record contains all the information about the person that you're looking for. You see the name, you see the city they belong to. Similarly, the other method that we mentioned of non-transactional execution of Cypher queries. So you just form a query string. This can be dynamically formed for different types of queries. You can just execute it using query.execute. So I've just printed the type here so that you can see what type of variables it returns. So when you form the query, it's Neo4j.Cypher query. It just forms a query, it does not execute it. It is of the form of Cypher query. So they have a class of Cypher query. When you execute it, it returns as Cypher results. And to iterate over that results, you have to use a method called stream where for each record in the stream, you process and find out the relative position. So record of zero will give you the name. Record of one will give you any other property that exists in that node. So this is the list of all the properties that it has returned. So this is another query that I'm running here. So this is actually a little more complex and this is in the line of a recommendation. So what we are doing here is, it starts in the same way as the previous query. You take the node, any node of a person. You check which city he lives in and find all the people who live in the same city. You check the orientation of the person, person who he likes to date. He must not be of the same gender. And you also check that the person has, wants the properties that the other person has and the person has the properties of that the other person wants. So you're actually checking for compatibility. Then you return the distinct names of the cities and the name of the person. You collect them and you return the top 10. So you count all the attributes, you count all the requirements and check the degree. So if there are four properties matching between you and me, then we can date. So that's a thing that you're calculating in this return statement. And you limit it by 10. If you execute this query here, so you can see all the, you can define the format you want it to be returned in. So the name of the city from which the person is, the name of the person, the name of the interests that I have and the person likes, and the name of the interests that the person has then I like, the number of matching characteristics and the number of matching characteristics that I want and the number of matching characteristics that are present. So this is just random data so don't judge it. So these are the kind of recommendations. So you can use it for product catalogs. If you're running an e-commerce website, you can traverse the previous history graph of the person and check for products that the person would like and display them on your website in live. Let us also take an example of a map data. So we have a map database, we just need to connect to it. So let's see what type of operations you can map, we can perform when your map data is stored in the form of a graph. So suppose you wanted to travel from a given, this is a random postal code. If you wanted to travel from a random postal code to a random postal code, what are the places that you have an option of visiting in that place? So the query is as simple as this, you need to match a location where you have the same postal code or a similar postal code. This is just to check the case and all. So you return the number, the house number, the street number, the local address and the postal code of that place. So we just refresh this page so that the data clears off. So you see, if you wanted to go to a place with a postal code of this number, these are the places that you have an option of visiting. When you implement that in the form of Cypher, it's better to go for a transaction because it makes your asset properties to use. You can also query like from which junctions can I get to a place called Chertsey. So the unknown here is the junction that I'm going to, the depth you're mentioning here. You also check the properties that the name of the place should be Chertsey. And then you can use the J, yeah, you can use the J that is returned from here, the junction and calculate the properties and return them. So if you execute this query in the interface, this is what we get. So there's a place called hatch farm roundabout and this is the place where you will reach. This is the way you implement that in Python. So another problem that is very easily solved using graph databases is shortest path. There are inbuilt methods that Cypher as well as Py2neo have devised which can easily get you to use shortest path problems. There's one point to note that Cypher supports a lot of existing algorithms like ASTAR and DISTRAS which are already there, you do not need to define them but there are no existing wrappers for Py2neo which I think is in progress as the last issue on GitHub showed. They are developing wrappers for existing algorithms as well. So you can take a look and contribute to the code if you want. Let's see how shortest path works. So what it does is you take a location, you find all locations that are related to that location, get the postal code of one location, get the postal code of the second location and find the length of the relationships. So it actually finds all relationships between two existing nodes in a graph, find the lengths of those relationships and gives you a list of the shortest ones. So instead of getting the shortest path, you get to know the exact path, where you have to go. Do you think it's something like Google Maps does? You can create your own Google Maps duplicate. There's one more query that's good. Like if your nodes are already storing the average speed that is required to go through a particular area, you can calculate the time that is required. So when you search on Google Maps that you go from one place to the other place, it gives you an estimate of time according to a given situation, right? In P cars, it'll give you a different time. In a normal time, it'll give you a different estimate of the time. So let's see what this query does. So here we're using an operation called reduce where you calculate the total kilometers that is traveled and reduce them by the weights. So each node here, like in the previous example that we ran, let's see what each node has. This is the number of the node. This is the number of the property. So in the property, it is defined the speed at the peak time, the speed in a normal time, the type of the node and the distance that is there in that road. So when you execute this query, it'll give you an example of the average kilometers per hour or the miles per hour that you need to travel in the path that you have selected between two nodes. It can also match a little more complex queries where shortest path is used along with reduce. So how long would it take to drive from a place called 48 Rallstone Moor in London Road to 123 Stains Road? This is exactly another situation of the graph database problem which you can relate to Google Maps, right? So they were pretty simple use cases where you can use social network data, you can use recommendation data, you can use map data to perform complex operations. So in a post that Nigel posted a few days ago, there's a lot of hope for Python U in the future. There will be support for fast HTTP. Python 3 support is already there. It's probably not released yet, but it's already done. There's multi-threading support available. There are more command lines tools coming up. There'll be new methods to ease your process of communicating with the database. There'll be getPaths, so you just have to specify a given node and you can get all the paths that are existing in that database to that node. There are a lot of other relatives in the Python family for Pyto Neo. There's a framework called Bulbflow which is a separate framework devised for communicating with all types of graph databases including Neo4j. We have an object graph mapping for Neo4j called NeoModel. We also have Neo4 Django which makes it easy to integrate Neo4j as a backend for any Django application that you're building. So since you're running short of time, that's it for today. We're open to questions if anyone has.  He's not trying to stop your questions. Hi. So Neo4j has a notion of nodes and a relationship. So I want to ask that the relationship between two nodes is unidirectional or bidirectional or there is no such thing in Neo4j. No, there is. You can specify what direction you want. You can have a bidirectional relationship. You can have a unidirectional relationship as well. So the concept behind it is to relate one thing to the other. So you can specify two relationships as well. So there's an option of specifying the direction. I think I saw a question here. Okay, we'll come to you. Yeah. So Neo4j is like it's not a replacement for relational databases. It is going to more argument or complement the relational databases. So there is a need to transfer the data from relational databases to the Neo4j and models are quite different. As you mentioned, this is completely on this one. So do you have any suggestions or what kind of tools that we can really use? Yeah, they have developed a batch insertter for it. So like when you have a very large MySQL database at the back end, you cannot transfer the entire data to a Neo4j instance, right? So there are special techniques where Neo4j is basically used for analytics. So when you have a part of a data that you want to use for analytics, you transfer that analytics is not something which you do on the fly. It is done once in a while. So on warehouse data probably. So what you can do is you can take that part of the data inserted into Neo4j, perform your operations, and then do away with the data. So these kinds of operations are much simpler instead of replacing your entire database with Neo4j, you can use your entire database, part of your database to transfer the data to Neo4j, process it, get your results, and then remove the data from the Neo4j. So basically what you are doing is you're making the complex operation simpler with Neo4j by a little overhead of data transfer. He's been waiting for a long while now. Okay, we'll come to you. You want to go first? Yeah, sure. Yeah, so you mentioned about Cypher following more of a syntax like a SQL, and then we had PyTunio, which is more closer to REST-based, how we use for Elasticsearch kind of a syntax. So now you have PyTunio where we can import Cypher and use Cypher queries inside. So don't you think like when we are using Cypher and PyTunio both together, it become more cluttered of a code where you have one syntax in one format and another in other one? Cluttered of a code, I think if you're not using Cypher, your code is more cluttered. So as you know, PyTunio is actually a REST wrapper. So a REST request is slower. If you think about it, it was a necessary step that was taken to include Cypher in PyTunio. Cypher queries are much faster than REST queries. They have the less over time, overhead of data transfer through JSON documents. You don't need, that was just legacy. You know, it was, it began, PyTunio began development as a REST wrapper and then moved on to this. Plus REST provides you flexibility, like a lot of options are there which you can do with REST over a server interface. But yeah, they have been incorporated into Cypher lately. Finally. This Neo4 Django, how is it? What exactly does it use behind it? Same, it's a wrapper around the Neo4 and PyTunio. So it is a REST API interface. It's implemented with REST at the back end, but it has specific methods which are directly callable from your Django functions. And since it's based on REST, so it would be easy to integrate with MongoDB, because if I have the whole website on MongoDB and I want to use this for basically finding relationships, it would be much faster with Neo4j, right? Yeah, of course. So if you have related data, then it's much faster in Neo4j. Plus, there's also one point I would like to mention, like, you know, if you have a lot of data, so I wouldn't say Neo4j is a good option for that. So it's around a huge data set. Neo4j does in-memory traversals. That is why it's fast. So in-memory or in-cached traversals are fast when you have relatively good amounts of data, but not very huge. So like you see, Facebook has implemented graph search. You can't, you just search specific stuff. So maybe graph, at the back end, we don't know, but maybe at the back end, it's only implemented on the names of the people. The nodes are the people themselves. You can search people. You cannot search which company they work for, right? So that's the problem that they're trying to solve with graph databases. You cannot transfer the entire graph data. Facebook cannot operate on a graph database at the scale that they are working on. Special cases of that data which you can traverse using graph databases. Hey. Hi. I want to know, like, I was using Gremlin for querying Neo4j. Actually, Gremlin was supported till the last version, officially. I feel Gremlin is more easy to learn. I have used that. Gremlin is a generic language for all graph traversals for any graph database. So... Even I'm using BULF for, you know, on the ORM layers. Okay. So Gremlin is the enforcement. Definitely. So does it end, like, do I reduce a lot of, you know... Not much. I feel Cypher has been quite optimized to work at the level of Gremlin. Probably for Neo4j, Cypher works faster than Gremlin. This is from personal experience, I haven't tested it out yet, but yeah, I feel that. Okay. So, like, you see in this, this is the old Neo4j console where you had a shell for Cypher queries and HTTP. This is a new version. In the previous version, we also had a tab for Gremlin. So you could perform Gremlin queries from here. Okay. Yeah, thanks. Yeah. Anybody else? Any questions? I guess that's it. Thank you. Thank you, guys. Thank you, Sonal, for the lessons on Neo4j. Lightning talks has been


How much does aging decrease your cycling performance? At what age does performance start to decline? And what can you do in training to counteract the effects of aging? Today, I'll be jumping into the science to answer these questions, as well as touching on changes in body composition as we age, such as decreased muscle mass and increased body fat, and what you can do about it. Welcome to another video. My name is Dylan, I'm a cycling coach at CTS and for weekly science-based training, racing and gear related videos, be sure to subscribe. And if you have a training question or a topic you'd like to see me cover in a future video, be sure to leave it down in the comment section below. I do my best to get to all the questions in the comments. According to my YouTube analytics, two thirds of you guys are over the age of 35, which means that we have a lot of masters, racers watching these videos. And this is a topic that's been requested many times, so I thought, why not? I may just be a 24 year old who has no idea what it's like to have balding gray hair, a slowing metabolism, or a v-brake mountain bike with 500 millimeter wide bars, but that doesn't mean that I can't do research into how aging affects performance and what you can do about it. This young whipper snapper barely has peach fuzz on his face and he thinks he can tell me how to train.  We didn't have no fancy power readers or electronic powered shifting. All right, let's go ahead and get into the science and we'll start with the dreaded decline. How much of a decline in performance can you expect to see with aging and when will this decline start? In this paper on master's athletes, they took a look at the US record of master's athletes for the 200 meter and 500 meter on the track, as well as the 40 kilometer time trial. What they found was that the percent decline was relatively small in young masters, for example, 35 to 49 years old, but the decline increased exponentially after 55 years and this decline may be even more dramatic in women. Going back to the 40 kilometer time trial records, we can see that the men had about a 10% decline in performance from age 35 to 60, while women had around a 15% decline from age 35 to 55. This probably explains why some pros can continue their career until around the age of 40, but much after that and the decline in fitness becomes too steep. So what exactly is the reason for this increasingly more rapid decline in fitness as we age? The most obvious and perhaps biggest factor is VO2 max. This review on endurance exercise performance in master's athletes came to a similar conclusion finding that peak endurance performance is maintained until around 35 years of age, followed by modest decreases until 50 to 60 years of age with progressively steeper declines thereafter. Progressive reduction in VO2 max appears to be the primary mechanism associated with decline in endurance performance. VO2 max declines approximately 10% per decade after the age of 25 to 30. Decreases in maximal stroke volume, heart rate and arteriovenous O2 difference all appear to contribute to the age related reduction in VO2 max, which may be due to reductions in intensity and volume of exercise that can be performed during the training sessions. And despite popular belief, endurance trained individuals may see a greater decline in VO2 max than sedentary individuals, simply due to their higher values as young adults. A declining VO2 max may be the biggest factor in reduced performance with aging, but there's also other factors such as exercise economy and lactate threshold. Fortunately, exercise economy does not seem to contribute significantly to the decreases in endurance exercise performance observed with aging. Things get a little bit more interesting when we start talking about lactate threshold though. This longitudinal analysis of lactate threshold in master's athletes looked at 74 runners over the course of six years. Interestingly, what they found was the lactate threshold as a percentage of VO2 max actually increased with age. However, this increase was not enough to counteract the drop in VO2 max with age. So in absolute terms, lactate threshold decreased. These results have been confirmed in the literature. Going back to the master's athlete review, absolute work rate at lactate threshold declines with advancing age in endurance athletes. However, lactate threshold does not appear to change with increasing age when expressed relative to the percentage of VO2 max. So essentially older athletes were able to utilize more of their VO2 max at threshold, but this wasn't enough to prevent the decline in performance. Up to this point, we've talked about the decrease in aerobic ability as we age, and that is the biggest factor. However, there are other age-related changes that happen that affect her performance, most notably an increase in body fat and a decrease in muscle mass. This study on testosterone body composition in aging looked at 372 males aged 20 to 85. What they found wasn't too surprising. Aging in males is accompanied by an important increase in fat mass and a decrease in lean body mass and decreasing testosterone levels are partially to blame. For anyone getting older and noticing a nice layer of fat where their abs used to be, this probably isn't news to you.  Now I just look at a bite of cream pudding and my cholesterol goes up by 10 cholesterol units. To add insult to injury, regardless of age, changes in body composition, including an increase in body fat and a decrease in lean body mass can contribute to a lower VO2 max. VO2 max, of course, already being the biggest contributing factor to loss of performance. So there's the bad news and if the first half of this video depressed you, that wasn't my intention, but do stick around for the second half because now we're about to talk about solutions. What can you do as an older athlete to mitigate this decline in performance? I'll be addressing the three big limiters that impair our performance as we age, which are a decreased aerobic capacity, decreased muscle mass and an increased body fat. Let's start with a decreased aerobic capacity. A common theme in the literature on older endurance athletes is that training volume and intensity tends to decrease as we age. This may be purely out of necessity. As recovery slows down as we age, we may not be able to handle as high a training load as we used to. However, there is evidence to show that maintaining intensity will slow the decline in performance. This study on the effect of age and training on aerobic capacity looked at master's track athletes aged 50 to 82 over a 10-year period. What they found was that those who stayed competitive and therefore maintained intensity maintained their VO2 max while the group that was no longer competitive and reduced intensity saw a significant decline and this conclusion is further supported in the literature. The older we get, the harder it becomes to do high-intensity workouts on the bike. They become less enjoyable, recovery takes longer, and the chances of overtraining are higher. However, if you wanna maintain your current fitness level into your older years, they may be necessary. You'll have to be more mindful of recovery. Proper nutrition and rest will become increasingly more important. But the good news is you don't need a ton of high-intensity work in your week to see a large benefit. Two are on occasion three high-intensity or threshold-intensity workouts per week is optimal. If you want more information about how to incorporate intensity into your training, check the description below for a whole list of videos that'll help. Next up, let's address decreasing muscle mass. Back to the study on the effect of age and training on aerobic capacity, they made an interesting finding. The subjects in the study who performed regular weight training were the only ones to maintain their muscle mass. This maintained muscle mass isn't just for injury prevention or cosmetic benefits. There's actual measurable increases in cycling performance with lifting. The research on lifting's effects on cycling performance are clear. Lifting has a positive effect on exercise economy, anaerobic capacity, lactate threshold, reduced fatigue, and endurance performance due to numerous adaptations to the strength-trained muscles. And these benefits from lifting may be even more important for older athletes. For example, this study on the effect of strength training on master's athletes found that strength training had an even greater effect on the older athletes versus the younger ones. I recommend weight training to all my athletes, young or old, but here's where the advice for older individuals differs a little bit. Research shows that weight training has induced favorable muscular and functional adaptations in older individuals. However, a significant part of the favorable adaptations obtained after resistance exercise may be lost within six weeks of detraining. Anyone is gonna lose strength when they stop lifting, but because of aging, the loss of strength will be even quicker the older you get. This is why for master's athletes, I recommend that strength training be part of your year-round program and not just an off-season activity like some people with heavy race schedules may choose to do. Finally, we have increased body fat, and this one may be the hardest to combat. Gaining weight for some may just seem inevitable as we age, but it doesn't have to be. However, combating weight gain is gonna require lifestyle changes. The reason why diets don't work is because they're temporary. Your diet needs to be a day-to-day habit that you can maintain indefinitely. So what does a diet that promotes a healthy body weight look like? Well, it requires understanding the concept of calorie density or how many calories there are for a given weight of food. A diet low in calorie density has been shown to be the most effective weight maintenance strategy in the long term. A study on energy densities effects on weight change over six years took 186 subjects and measured the energy density of their diet. Six years later, they found that the energy density of the diet did not change for the individuals and that higher energy density was associated with weight gain and a higher BMI. The study concluded that low energy density diets moderate weight gain and that a lower energy density can be achieved by consuming more fruits and vegetables. Similar results were found in this study on the energy density of foods effects on energy intake. They provided subjects with meals for two days during three separate testing sessions. In these three sessions, subjects consumed either low, medium, or high energy density or calorie density meals. The results showed that significantly more calories were consumed for the higher energy density conditions even though the amount of food by weight was relatively similar. Calories consumed were around 1800 calories for the high energy density group and below 1400 calories for the low. This is the benefit of eating low calorie density. You don't have to reduce your portion size or starve yourself to lose weight. 400 calories is the kind of deficit that you want to produce consistent gradual weight loss. The study concluded that energy density influenced energy intake independent of macronutrient composition and that subjects reported no difference in feelings of hunger or fullness. And it isn't just two studies coming to this conclusion. A systematic review on dietary energy density and body weight looking at many studies concluded that their findings highlight the growing body of scientific evidence suggesting a relationship between energy density and body weight and that consuming diets low in energy density may be an effective strategy for maintaining body weight. So what does eating low calorie density actually look like in practice? Well, the foods lowest in calorie density just so happened to be the healthiest ones for you as well. We're talking about fruits and vegetables here. These should take up the majority of your plate. Stop thinking about vegetables as the side and start thinking about them as the main course. On top of this generally the more plant-based your diet is the lower it is in calorie density as well. Consuming more plants could potentially have the added benefit of protecting you from adverse health outcomes associated with endurance athletes. A study on plant-based diets for cardiovascular safety and performance in endurance sports stated that surprisingly endurance athletes may have more advanced atherosclerosis and more myocardial damage compared with sedentary individuals, particularly as they age. However, plant-based diets address key contributors to atherosclerosis, dyslipidemia, elevated blood pressure, elevated body weight, and diabetes. It's also worth noting that a key factor in oxygen delivery to the muscles is blood viscosity and individuals excluding meat entirely had significantly lower blood viscosity than those that ate meat occasionally. Reduced blood viscosity also improves tissue oxygenation, potentially improving athletic performance. Whatever change you make to your diet to try to maintain or even lose weight, remember that it needs to be sustainable.  The reason why the calorie density approach works is because it allows you to consume enough food to keep you satisfied. So what are the key take-homes here? First, a performance decline as we age is inevitable and this is mostly due to a decrease in VO2 max. However, other factors such as increased body fat and decreased muscle mass play a role as well. Maintaining intensity will allow you to hold on to as much of your fitness as you can, but remember that recovery from high-intensity work will take longer as you age. For master's athletes, it's important to have a regular lifting routine. Don't just save lifting for the off season. And finally, to keep the pounds off, adopt a low calorie density way of eating filled with fruits, vegetables, and other whole plant foods. This newfangled inner wave video wasn't as entertaining as my usual antiques road show on the television, but it was very informative. Pay your son, take a nickel for your hard work. You can spend it on spacers to raise your stem to a comfortable height or maybe a wider, more comfortable jail saddle. Thanks for watching and I hope you guys found this information helpful. If you did, be sure to give it a like, share it with a friend, and subscribe. And if you wanna be notified every time I put out a video, be sure to hit the notification bell as well. Training plans are now available and if you're interested in getting a CTS coach, be sure to use my code CTSDJ to save $40 by waiving the registration fee when you sign up. Links for both are down in the description.