I saw book map and I was like what is book map and then from there it just that's when I get into discord That's when I started learning just going all those videos that Bruce provides great great great videos on education of how to use book map and just the book map discord and book map YouTube channel really Really good like the visual aspect of book map of seeing the actual order flow of seeing those liquidity levels of Seeing it's like okay. I think there's a resistance level here where I'll just use the actual line of like either trading view or Think or swim but seeing it on book map. It's like, okay now. I have a stronger confirmation of there's a lot of sellers here Let me not make a buy over here or something when I saw the book map with those liquidity levels there It really changed the game of like how to actually think it's and or just make sure where the big money's at I was really scared at first and then I think I spoke with you and other traders They just say like hey, just keep posting content We can give you positive criticism of how to improve overall and then I was like what's there to lose? It's free. You can just keep posting your trades You get a lot of good help from professional traders and you can also build up networking And you can get book map for three months with data, but thanks to the book map competition Just posting it online. It was kind of like journal and always explaining the reasoning why of all the trades and being able to explain it To other traders actually made me a little a better trader Jailer, thank you for joining me today Thank you so much Ellen. Yeah, I've been looking forward to speaking to you You are one of the early Participants of blue jacket one of the first winners. I think you won the November competition last year and it was the December. Oh, okay. Yeah so, yeah, definitely it was last year and you know, so you you're one of the early ones and Yeah, so I'd like to start this off by asking a bit about you You know what you're willing to share like who you are and We'll get into how you got in straightened, but if you could tell us a bit about who you are that would be fun First of all Owen, I just want to say thank you for this opportunity greatly appreciate it. As you know, my name is JLA Been training for a few years My background is completely different from creating I have a science degree I have two science degrees my first degrees in biochemistry. My second degree is in cellular and molecular biology So I'm completely off the normal finance or accounting or just a trading route How I actually got into trading it's because I always wanted to get into med school. I Always knew that the cost of medical school was going to be significantly high So I always thought about let me see if I can try to use some sort of like side hustle or some sort of like alternative income and And what I found was it was dividend investing and trading Those were the two on the first one the dividend investing. I was like, this is gonna take forever Let me see if I can use trading Look up on YouTube look on different resources that I can use To see if I can actually compensate for that medical school The tuition cost so that was actually how I got into trading How I discovered book map It was really really weird, I think I just stumbled upon it when I was watching I think it was Scott Yeah, I think it was Scott Scott Pulsini Yeah, Scott Pulsini It was just a random video I saw of him because I was looking I think it was into apex because I was getting into See if I can try to get a funded account to see if I can actually work on it on my training skills that way and Then when I looked on Scott's website, I saw book map And I was like, what is book map and then from there it just That's when I get into discord. That's when I started learning just going all those videos That was provides great great great videos on education of how to use book map and just the book map discord Book map YouTube channel really really good I'm curious.  Does it help in some way like because you know, you have a different a little bit It's the fact is because I'm a science major. Yeah, I always like to try to find Rational to something so because that was my biggest issue. I think when I first started trading because On the videos that I learned it's like there's um There's the randomness in trading And then I understand it has to be some sort of logical explanation to trading of how There has to be some sort of logical explanation some sort of protocol where successful traders that they use To constantly like keep getting gains percent to constantly win in the market So it was kind of like that That conflict that mental conflict is I know there's randomness But because my background, I know there has to be some sort of like logical explanation of like x plus y equals z. There has to be something Yeah, so There I was using basic technical analysis Sometimes it was a hit or miss and then like I said I was trying to find a different alternative or out and then that's how you discovered order flow via book map And then that's when it started to like getting a like I was getting really really close to a aha moment And I think I finally understand it. Yeah, there's some moments where When I'm trading I'll make a few mistakes here and there, but I'll totally understand of why I made my mistake And it was actually more through book map than just regular technical analysis Yeah Okay, and so but how did your trading kind of evolve? Especially after discovering book map Did it change your strategy? I mean, of course it did in what way did it change? I think it was more of like the visual aspect of book map of seeing the actual order flow of seeing those liquidity liquidity levels Of seeing it's like, okay Um, I think there's a resistance level here where I would just use the actual line on like either trading view Or our think or swim, but seeing it on book map. It's like, okay now I have a stronger confirmation of there's a lot of sellers here let me not put Let me not make a buy order here or something Because I was using my old strategy was just mostly just breakout trading Which I was pretty successful in 2020, but then didn't work in other years But when I saw the book map With the like with those liquidity levels there It really changed the game of like how to actually think it's an or just make sure where the big money's at So if I see a large I'll see a large lot and either an es or a large order on Microsoft or Nvidia. I know that would be a good area to either sell or like reduce my position size there Compared to just leaving my position Which I which I used to do before book map Yeah Yeah, so yeah, it gives you this extra layer of information. Not only yeah, it helped a ton pieces the probability So would you describe you say before you were a breakout trader? So how would you describe your current style in a nutshell? My current style is mostly now. I just focus on market structure We're in trend follow Okay, but that was when I when I continued With book map. Yeah Okay, just making sure of that the higher highs higher lows If it was a bullet structure, and then it was lower lower lower lows and lower highs. Yeah Yeah Okay, cool. Yeah I'm also a bit of a trend follower myself Although it's hard to You know because trend following at least for me It's often a case of buying the breakout right but breakout trading as you as you'd expressed Previously, it's not necessarily the most profitable way, you know It's your buying highs and that isn't always the smartest way But obviously yeah combine it with liquidity levels and so on And yeah, there's definitely something in that So can I ask you then Blue jacket like How did you you know, how did you come across blue jacket? Why did you take part and and and so on? I was just trying to find different techniques of how to improve my trading overall I was really scared at first and then I think I spoke with you and other traders They just say like hey, just keep posting content and then we can also We can give you positive criticism of how to improve overall And then I was like what's what's there to lose? It's free You can just keep posting your trades you get A lot of good help from professional traders And you can also build up networking And you can get book map The for three months with data and I was like, okay Everything's positive. I don't see any risk towards it towards not doing the competition It's only going to improve my trading. So I was like, okay. Let me just go for it Because normally I'm a pretty shy guy when it comes to like posting stuff on the internet I really don't like to be posting stuff But when it came to the trading and with the discord Um, everybody was really really I just want all the traders to do well Overall and in the book map discord. So I was like, okay, let me just go for the competition Yeah Yeah, the community community element is a big part of it. Um Yes, yeah jack mentioned that in the previous event and and it's obviously very important and So one thing I've understood With running this competition is that It's very much Yeah, one about the community and two about encouraging people to journal and to you know be Self-reflective and also communicate with others. Um, so I'm curious Uh, obviously you're you're taking trading very seriously, but um Like how was your journaling before and did did this competition help in any way? Like because you were maybe x Maybe you were you know journaling before but because now you're trying to explain it to other people Did it change in some way? Or I Yeah, go ahead Ironically, I wasn't journaling because like I said when because I came from a Totally different background when I was trading like I said, I'm a science major But it was a big problem of mine of not journaling And not realizing the mistakes because I'll see what I'll do But since I won't review it I'll just either commit the same mistake or just won't be able to recognize it quickly But thanks to the book map, um competition Jern just posting it online. It was kind of like journaling And always explaining the reasoning why of all the trades and being able to explain it to other traders Actually made me a a better trader Yeah, that's that's great. Um I'm very happy to hear that.  That's the thing.  They know that everybody's trying to get better and learning So there's a lot of um A lot of support within the community which helps as well because some people have more experience or They maybe have less experience and you explain it to them Your reasoning and that actually ingrains it deeper for you as well so Yeah, that's uh, fantastic to hear Is there anything else that you want to say about like the experience During this competition before we jump into some of your charts or overall I was really surprised about Like like you said about the community About how many like actual traders are actually willing to help each other grow Which were really surprising because I was in other discords. They were kind of decent but they weren't always um as helpful As like you can talk to the moderators you can talk with other traders You can get that you can get feedback relatively quickly And you can learn different styles like because when I joined book map I was just using My style of trading, but then I was combining it with either with j trader uh with a little bit of scott um and with other professional traders and moderators and I was able to get all that knowledge and it's all for free which is surprising it's It's just ridiculous about how much information that you get for free And the community aspect with the book map discord. So I'm like extremely extremely grateful Yeah, great. Well, I'm extremely grateful for your kind words and obviously I'm not the only one involved, but uh, yeah yeah, so definitely a big thing One of the one of the many positives book map So whenever you're ready j let's uh, let's go through these trades from the competition These are all trades that you took during the competition and um These are are some of the charts that we looked at and you know, we saw as high quality content That's why you won the competition. So you you were one of the early winners. Um Yeah, it's uh, nice to go back and look at the the content get a little bit of a deeper dive into What was going through your head and how you were looking at things back then Um, so yeah, take it away whenever you're ready Okay, perfect. So um, Owen once again, thank you so much for this opportunity Um, I'm really grateful for book map and you actually coming towards me and just asking to even do this presentation I learned a lot from you guys. I'm really grateful. Um, but Let's start off with the presentation This as you can see this is december 5th. Um, it was a term trade on meta or facebook Basically the same thing. Um, I was really concerned about this day Um, because there was no volume dots Normally with book map volume dots are real time However, I was confirming price action and I saw a bullish momentum. So it was a formation of higher highs higher lows Um, I did this trade around like nine 945 ish I was actually in a 125 call. It was just a quick scalp. Uh, so Basically in a nutshell This trade was I was my main target was the 125 and I knew because of the bullish momentum There was a high probability of that 125 being reached because bullish momentum was still maintained A bullish price action was still maintained and do um due to the videos that I learned in book map and also in the discord Um, large cap tech stocks tend to go towards major liquidity levels So therefore once I entered that trade my main target was 125 here. I was risking about like one Um for probably a two to one risk reward My strategy was using meta the price action from meta and also confirming that technique Confirming the price action with spy and triple q. Um, I call it like a correlation technique But it's really a common Practice with large tech stocks to confirm the price action with triple q and spy Yep, uh, let me Go towards the next slide. I did so, um Is this Okay, it's just sorry. This is still the same trade. Yeah, okay. It's just assumed it's gonna be the same trade So yeah, it's just zoomed in so here. I'm just going to like draw it out See if this will work. Okay, so here around 945 is when I entered the trade And then my main target was right here at that 125 major liquidity level And I'm just gonna draw a box right there Okay, so here around 945 it was quick um quick Quick run up retracement Another run up and then a retracement back to vwap Then here I saw the run up again. So This support was never broken and then here it retested here around vwap. So therefore I thought, okay There was bullish price action bullish momentum. I confirmed it with spy and triple q already So I know the price had a high probability of reaching 124 to 125 I entered the trade around here 945 That's when price was approximately about 123 my my risk was Um, went if price action broke vwap So that was about 123 or 1 So here my main target was 125. It was two to one trade It never reached it, but it reached very very close It reached between 124 125 here I'm not going to try to fight the trade because here it started to reach towards 125 But it never reached it around 124 124.5 125 It started to reach resistance around that level And it but it never broke out during this time period of 945 to 10 ish So around this time slightly before 915 close to 10 is when I actually took off the trade Mostly because I saw this dope. Oh now this is getting a little I'm a little messy. Let me see if I try to erase this a little bit. Yeah Okay Go back Okay here It was forming like a double or triple top here and I knew that pattern was slightly slightly bearish So therefore I'll just set it like a trailing stop over there just in case If it did pass that level my trailing stop would work, but since it went it started to go down It reached Um, I got stopped out, but still I made a good profit It was a two to one ratio and I was really I was really content with the trade overall And then so that was trade number one Well, so I wanted to ask a question about so part of the analysis here is is That the price is kind of attracted to the large liquidity level at 125, right? Obviously you've got the trend the correlation and so on but um I'm just wondering. Do you have any kind of uh hypothesis about why price moves towards liquidity? I mean, I know that you know The the common simplest answer is that the function of the market is to facilitate trades So by definition price will move towards liquidity to to facilitate these transactions, but Um, do you have any kind of theories or you just don't care you just see it and you trade what you see or have you Thought about the wise behind that And just uh the wise I just think about it. It was similar to karmie from his youtube channel He also uses book map as well. Yeah. Um, it's just the The entire stock market is just like an auction. So therefore if there's so many sellers over here that are interested Then that means they're going to have to be some buyers and even then those sellers can actually Try to push price towards their level So I know okay, there's 54 000 try to get Try to draw this a little bit better There's 54 000 Just right here at 125. There's 54 000 approximately 55 000 sellers And they want to do business in the market. So there's going to be a high probability of those sellers either trying to push their price um push price towards their target Or just probably just to Push their target and then just dump it on the market, which did happen during this time period Once it started getting close to um 124 125 ish. That's when it started to go down As you can see from here. Yeah, there may be some front runners as well Also see the levels so the Getting in ahead of it Yeah, but I think about it mostly as just the auction where it's just mostly buyers and sellers If there's going to be a large portion of sellers They're going to probably either Try to get buyers to actually push it towards their level Or just use that as a strong resistance level where this will not pass Yeah, yeah, very interesting. Yeah, thank you Let me go on to the next trade So this was a tesla trade. Um, this was actually learned this strategy a little bit from jay trader He's one of the um a good trader from the book map discord He's also like a good moderator and a great educator as well Um, but I also learned different techniques from uh from dug Jay trader bruce from many Traders in the discord, which helped a lot, but onto this trade. This was from december 6 2022 this is regarding tesla This was actually this one. Well, I was actually using um cbd I don't tend to use cbd often because it does give mixed signals, but here it provided a pretty strong signal Um, I knew a there was a bunch of liquidity here. Um, let me see if I can just try to draw it a little bit better Or see if I can just highlight it Kind of working. I knew there was large liquidity levels here and there was very little here Once I saw this bounce Once I saw this bounce over here. I was pretty sure that was a bull trap And I remember seeing something from from jay trader when he talked about it because he loves trading tesla So once I saw this pattern this v this upside down v pattern and once I noticed there was all this liquidity here I was pretty certain That price was going to go down um, I confirmed with cbd And I also confirmed with um as you can see from my notes my reasoning. I also did confirm with spy and triple q So getting spy triple q um bearish um bearish price action uh bearish price action on tesla And with cbd I went with a 100 um 180 put. Um, it was this It was the friday expiration. I entered around 9 35 I did enter a little early because I should have probably entered around this b wap break to get a stronger confirmation Okay, but the thing is during when I was trading I knew I was probably 95 percent certain that price was going to go towards those liquidity levels and it did um, I was a little concerned because I thought once it hit 178 I thought it could have bounced up, but I did use b wap as a guide As long as price action stayed below b wap I was in the trade and then around like 10 10 or 7 is when I exited because I was really concerned about this price level of 175 because there was 183 thousand buyers there Once I knew that because confirming all of these These levels it was nowhere as strong as the 175 so I actually exited probably a little bit less around 175.5 176 Mostly because I knew there was a high probability that it was going to bounce off that 175 And I was already in pretty good profit overall, so I would just set a trellis stop and then I'm good to go Okay, but just going back though. You said you mentioned you answered a little bit earlier So where would be the downside risk on the short trade? Would it be if price moved above the 185 office level and you would exit at a loss? So how would you manage the risk? Okay in terms of managing risk Let me actually go I think I entered I entered well because I did enter around the 183 area Well, I'll put slightly lower. I think I entered around 82.5 to be exact Get this I entered around the 182 Um, I should have entered slightly lower about 181 just to get a stronger confirmation of that b wap break Because this could have happened just in case where um, it could have been a bull trap went down Tested b wap and then go back up to this 185 that 185 If it if it went if it did that pattern Then this would be My risk. So I was risking about 2.5 So this was what I was risking about 2.5. So 2.5 So you would you would be exiting exactly at the 185 level or above or below? How do you? A slightly above I would have done probably 185.5 Yeah, just in case but it would have been like a two Risking 2.5 to three and then that's to make Let me just calculate it real quick Yeah, it was like about a six to three Which is approximately about two to one Which is what I like in most of my trades either a one to one ideally two to one. That's the ideal But overall because the thing is I knew with tesla it does Um, it does move rapidly It is a uh, it's a stock that moves pretty violently, especially during this time period of 2022 It was so I knew I had to be quick and I had to be I had to be I had to be really really confident in my trade And during this instance I was pretty confident because I knew about the bearish price action from spy and triple q I knew what cvd and I knew that upside down v pattern from j trader that he talks up a lot when it comes to To bull traps and bear traps with tesla Um, and this was 180 Um, ideally if I would have done the trade again, I would have probably went with a 180 2.5 or a 183 put Um, that I think that would have been a better trade overall just to um avoid that extra risk But overall it was a good trade in terms of profit. It did well But to do to go back in the trade. I think I would have gone with the higher Um, a higher put probably more in the money put Okay, just uh, um just to reduce my risk just in case Because I know with these options, especially with tesla, um, if you look too much at the percentage gain or loss it can um slightly skew Your um the psychology overall and your belief but um overall, um So you mean you say if you go to out of the money you you may get more greedy or what do you mean by skew your psychology? The thing is it's just the fact that I didn't this could have been a possibility where it probably hit the 185 And then bounced down Yeah, I see That's the thing and then when i'm in the trade The difference between in the money, let's just say if I went with the 81 183.5 or 185 But I don't remember the exact numbers of the actual option chain But I'm pretty sure that um with tesla. It's actually 2.5. So it would have been a 182.5 or 185, but Uh, those slight differences in the money It can change the percentage at least a good 20 30 percent. So let's just say if I was risky Uh, it was a 2 to 1 it was a good trade But the thing is I'll be down good 40 to 50 percent And if that moment if that if the price action went up to um They went up did the upside down be but then hit 185 and then went down I would have probably got stopped out mentally knowing that the trade was going to work It's just the fact that I choose a 180 put Let me just go back Knowing that I choose the 180, but I would have been down a good 40 50 percent And then knowing me during this time period. I would have probably gotten out of the trade Good I like this I would have probably gotten out of the trade because I see like oh i'm down 40 to 50 percent that um this trade is not working Let me just get out But if I did a 185 But to give myself some cushion or 182.5 But gave myself a little bit more cushion. I would have been probably down just a good 10 20 percent Yeah And knowing that and just seeing the percentage. It's a psychology But learning from um Doug learning from j trader overall He likes to focus on the actual trade and not too much on the percentage I'm still working on that. It's really It's just trading is very extremely psychological And when you see a play that Even though that you're you feel confident about the play Seeing that you're down a good 50 to 60 percent it's um It makes you really think about the trade and just probably get out Knowing that if you just hold on to it just a let's just say an extra five ten minutes more You would have probably made that two to one two to one trade which would have probably netted at least over a hundred percent profit Yeah, yeah at some point I was playing to ask you what you think is more important in general in trading Is it the entry or the exit? but I realize that that question is kind of obsolete because You know as you're saying and if you wait for confirmation you have more confidence perhaps But you're also getting like a slightly worse price and and you know If you if you mess up the entry it can have a huge effects on your mindset for that trade And even if it's a good trade you can potentially get out too early Yeah, it has to be the overall play Um in my opinion if you know the pattern if you know the play Um the entry and exit are important But when it comes to options In the money, especially through day trading in the money options is really really key Yes, you can probably make more money out of the money But if you go in the money it just gives yourself that more That cushion overall Especially when it comes to stocks like tesla tesla moves very very fast And those um percentage gains those those profits can They can be out in an instant So Overall it was a good trade and I was happy about what the result But if I would have done this trade again, I would have waited probably after that VWAP break A better VWAP break. So it would have been probably exactly about 180 Because once I knew that VWAP break then I knew price was going to just go and dump I think I entered slightly early price below VWAP Um, I think when I entered it was slightly it was probably below 100 not 100 sure though Um, I have to go back Into my notes on that day if I entered because there was around 935. So 935 is around here 935 is around here. I should have waited here. Let me change the color. So it's easy I should have probably entered here because now that's more confidence that I know that VWAP break completely And I know because of all these liquidity levels and also because of sp wine that I like that SP wine and triple Q But the thing is with um with tesla There tends to be a strong correlation, but it's not as strong as compared to like apple Microsoft But still it is a good strategy to confirm always confirm. Um, well in my trades I don't know if other traders Like in other platforms, but mostly with um with book map. I know a lot of traders do use They confirm with spy triple Q. Yeah, and I also use um cvd But cvd for me. It's hit or miss sometimes Yeah, I was just thinking back to the options things from what I understand. It's if you're trading at the money Um The gamma is lower. So it's less sense delta is less sensitive to change, right? So that that's what you're saying that if you trade too far the money and price moves against you Then it's going to result in a larger percentage loss. Okay, the loss Which affects because I would have probably gone with Because if I went with the 185 I would have probably got like a delta Maybe like 75 versus the 180 That would have been like the delta like maybe 40 or 50 And um Last time we spoke you mentioned you use options Mostly just for the leverage, right? There's no special reason you trade options rather than I use mostly just for the leverage and also, um It was like one of the very first things I started with options. I did move on to the future a little bit Um, I want to try to get better with futures overall later on because I think Because futures do provide That extra level of that extra leverage similar to options And there's also less factors less variables to consider Compared to options where you have to do consider about the Greeks The thing is I what I do like about options It's the different strategies that you use So if there is a lot of sideways trading, um, you can profit from that sideways, um price action With futures, it's a little bit more difficult But with options, uh, you can do a lot of crazy crazy strategies as well. Yeah That's right. That's what I like about it So I thought this was going to be very similar. So during During this time, I thought it would be similar. So, um, this was the number four to 2022 tesla trade Um, as you can see from my reasoning here, I thought it was going to be very similar to The December six even though the liquidity levels weren't the exact same but they were similar I saw liquidity levels here here here and here These probably the 156 155 levels were those were going to be my main targets Here I entered extremely early good for so I entered around here I think this was what because I thought of the december 6th trade because I waited for that be what break I thought this was going to be the same pattern This was the pattern that I was talking about if if my if the december 6th trade didn't work. So here It's a breakout. It's uh, it started to go down. I thought it was going to be the upside down I thought this was going to happen in reality In reality, this would actually happen Thankfully this was the one this 162 A resistance level was maintained But I did had to ride this out 160 to 162 That was a two dollar move against against me But that's what I was risking. I was risking this much to make this It was basically a two to two Which is equal to one to one So overall, this was not a good trade even though I did profit from the trade I should have waited probably around here With that VWAP break to go towards Maybe the 157 level But it did eventually work out in my favor And here I went with the 155. Yeah, exactly. So I went with the 155 but Because In this instance when I was trading Let me erase this I thought this was gonna happen Which I discussed earlier. I thought it was another upside down deeper So I thought this was gonna happen reach And then go straight down and then I waited here Um, as you can see from the previous trade, let's go back VWAP was broken cleanly here And then it started to go down When I was reviewing I thought, okay, let me just go with this resistance Let me see if that will work for the next time I trade so when I traded Tesla on December 14th I got in way too early because I thought this was gonna break the VWAP and it's gonna go straight down And never that and um when I'm trading it's now I learned For many, um mistakes Just wait till you get the confirmation. Don't assume you get confirmation always wait for confirmation I did not wait for that VWAP break It's slightly retraced And then it went back to 162. Yeah around 161.5 162 And then it started slowly break I should have entered the trade Around this VWAP break Go for this liquidity either 158 or the 157 it eventually got very very close to 157 and approached it Because um large caps like Tesla like I said with the Meta trade large tech stocks tend to go towards these major liquidity levels I Didn't want with the 155 foot Which was my main target Here and cvd was slowly going down But even though I did profit from this trade, um since it was a one-to-one Even though it was profitable. It was not ideal Um, as you can see from my notes I did stay calm because there was a probability there was a possibility that this 162 was not going to break And then it's going to go straight down And I really thought that Tesla was going to reach that 155 once I saw this pattern See I exited around 939 Oh, I exited wait early too. I think it was I exited pretty early because I got scared Even though I was a little calm here once it saw the VWAP break I was scared because I was probably down a good 30 40 percent here And I exited a little early 936. Yeah, this is right here Because I thought this was going to happen overall I should have waited I should have worked on my patience here and just waited for that VWAP break and then And then wait for that that price target I think once I once I started making some percentage gains. I probably like 10 20 percent. Um, I exited out relatively quickly Because I got a little scared Yeah, but I like that you you say that though because obviously it was a good setup overall But maybe you didn't execute quite as well as you would have liked to and And that's why it's not an ideal trade. So that's quite professional of you Because often, you know more amateur traders. They just see the results, you know Win trade a good trade losing trade bad trade, but It's not always that simple, right? You can make a a good trade that loses And you manage the risk well or you can make a bad trade that wins or maybe less than ideal trade like in this case I Mean the in terms of execution Yeah, I probably exited way too early. I said we're on that 39 I think overall I think I got a little scared because I knew the movement for tesla overall it does move a lot And then it hit that 162 and just went down a little bit But overall I should have waited for all my parameters to be set And then entered the trade Because like I said once this VWAP broke right here around 945 then it started to reach toward 157 Even though my main target was 155 because that was about yeah 212,000 contacts which Probably which pulled price action downwards But 157 was the strong support area And then it just started to reverse back and then it get close And then it started doing that just like started bouncing up and down overall it was a pretty decent trade, but Here I should have just waited for all my parameters to be met And then get into the trade and work on the patience. So that was definitely A okay trade, but it should have it's more of a learning experience by far Just wait for all your parameters to be set before entering the trade Yeah, it makes sense and see all the confluence and more confirmation Exactly here. Um, I think I Yeah, because I was in the process of buying spot gamma and spot gamma hero program and their algorithm Here, I think I waited a little bit more. I started to get more confirmation This is hero from spot gamma I got the idea from Doug Most of his he does provide a lot of videos on bookmark on youtube for free and he does use spot gamma and he uses the the hero program extensively So I got the idea from him Then here was a similar pattern This was actually very similar to tesla with the upside Just showed up this the upside down v pattern A breakage of vwap, which is right here. Oh And then it started going towards major liquidity levels Once I saw this because I knew I mean if anybody had more questions about spot gamma with the hero It's just go to Doug's channel. He explains it a lot more on this line The purple line Let me see if my mouse will work. Okay. Okay. This purple line right here Is with options The farther it goes down. It's more like people are either buying puts or selling calls And if it goes up if the slope is up positive that means there's going to be a stronger There's more traders Buying call will buying calls or selling puts and this was my confirmation overall Here once I got that upside down v pattern And that breakage of vwap Yeah, and then using see this time I use cvd and spy in triple q I entered the trade I entered at 949 extra to upset. So let me just get it right here. So entered around here I got a breakage of vwap and I saw a very similar pattern To the the tesla trade. This is from december 6. Yeah, let me see if I can zoom up. Okay. If you see the of pattern words the upside down b Now I'm going to go back to the video trade Right here december 15 Okay, this is really similar. It's going to be Trap Down past vwap breakage of vwap and then it's going to go towards major liquidity levels and a strong negative cvd And this time I actually use spot gamma spot gamma hero To confirm they were strong put by To push that price action downwards to that to those major levels. I did exit around here Around 168.5. Yeah around that level. Um, I was not expecting A 167 overall because I did made a pretty good return. It was more than a two to one Two to one trade and then it just reached my main target. I was a little surprised it did reach 167 But overall it was a two to one trade and I was really happy overall Let me just go review my notes Yeah, confirm with cvd. I looked for that upside down b pattern showing bearish momentum I went with the 165. Yeah here. I did this. I did a very similar thing In regards to get not getting the proper option. I think it was just due to cost Maybe I just wanted to get out of the money But overall 163 Yeah, like analyzing the trade I think I have no idea maybe just because of cost I didn't want to have that much risk on my portfolio because I think I had a pretty small account that I was trying to grow I think it's the only only explanation But I should have probably gone I would have done this again. I would have probably gone with the 170 170 probably 170 put I was gonna risk. Um, I was at 171 Risk one. So it was gonna be if it broke back 172 If if it did this, um the upside down b And then broke VWAP towards 173 But my stop loss would have been around 172 So I was risking one overall to make Uh, yeah about two Yeah, about two to one trade. Yeah, because I stopped around 168 168 15 I entered around 171. Oh, sorry three. This is more than three to one. Sorry Yeah, but overall, um, rethink about the trade overall. It was a good analysis um Good trade setup overall Just with that Nvidia 165 put I wouldn't probably gone with the 170 put but overall it was pretty good Um, just got to be careful with those out of the money Those out of the money puts because since it is day trading When I'm day trading options, I I learned that Ironically from the discord channel from From book map Just be careful when you're trading with those those Those options for either just buying and selling the same day just make sure that it's in the money Just to reduce risk overall because like I said Let me go back here if 172 was broken Let's just say if it hit 172 On or 172.1 and then it Then it began to to drop overall. I would have probably got stopped out And I would have been probably a 40 to 50 loss. That was because I was so out of the money Because I had a 165 um here overall The pattern worked the trade did work Um should have gone with the higher or more in the money put so happy with the trade overall Because the setup was perfect. It was like a two to one three to one trade Which I know with options a two to one three to one trade can probably generate easily 50 60 gains but the amount of risk It would have probably gone against me because sometimes with the percentage loss I would have probably got mad overall happy with the trade but similar to the previous trade Um with tesla should have gone with that in the money Uh a more in the money option This is the last chart. Yeah, this is the last one. This is the last one similar one. Um nvidia I think this one similar idea Yeah, this was just a straight straight flush down I think Let me see. Yeah I think this was slightly better overall See what time I accident. I like this was a quick trade This was a quick scalp. I should have just held on I'm reviewing these trades now It's at least is a good learning experience overall because I'm I tended to be better at scalping um and then later on with book map with j trader and the other traders just Um just follow the trade and just Just let it ride let your runners just let your runners go Yeah Still working on that aspect of trading because like I said trading is very psychological sometimes Especially with options Sometimes you can be up 50 and then you can lose that money like 10 not even two minutes so Um here, I think yeah, this was just a straight flush all my parameters were met pricey glee Um below vwap breakage vwap here I think CVD was dropping slowly I should have waited because I knew because I had a 150 let me go back to notes Because I had a 155 foot which was right around here Because yeah, I did it because I remember now going based off this trade. I went out of the money based off target I should have went out of the money based off entry and not on target because here was my target Was the 155 I got out at 156 And I probably entered around 159 Here I was risking about this. Let me see them try to highlight this Yeah, I was risking two To make this is the one to two. This was an ideal. I think I got concerned Yeah, I should have I should have kept it okay Here um, it was a good trade. There was strong bearish price action Strong bearish liquidity levels overall same with 151 and 150 around here too Um overall the the trade did work well Even though it was out of the money I think it was because of these these strong price actions because like what I talked about with dug earlier um spot gamma spot gamma hero is with option flow and Options can drive price action overall and there was a strong Strong sellers overall. This was just probably the sellers here of the actual underlying of the nvidia and then I pro and the cbd confirmed it Going over the trade it was pretty good But I should have learned I should have held on to the trade Mostly because there was no change in market structure overall I don't know. I think I I think I got out of the trade because I was scared Going back to this trade Um, it was a it was a good trade. It was a good setup Overall, I don't know. I have to review my notes again. I'm pretty sure that I did confirm what um with spy and triple q That is pretty much a good staple of mine If I trade any large caps always confirm with with spy And triple q just to see how they're doing overall if I see bearish momentum And triple q and spy and I there's going to be a high probability with large caps. This one was nvidia Yeah, it's a little And I know with nvidia it's very similar to tesla. There's large price movements but It maintained bearish market structure. I should have kept that trade um, it was a 155 and this was going to be If I held on to the trade see this would have been like probably like an eight to two Which is a four to one Yeah, that would have been at least a 200 maybe 300 game If I held on especially if I had um, probably the 160 put instead of the 155 Because I entered perfectly I entered on time 935 once I saw that break of b-wap and once I confirmed those liquidity levels on the bottom And using spy and triple q I Should have kept this trade. I think it was just because I was probably concerned or maybe I had to do I had to enter relatively quickly. Maybe I had to do some errands But overall I am happy with the result because I think I got out here around Yeah, when it was approaching so I got out around 156 I should have probably just held on to the trade Just analyze if there is any change in market structure. There was no change Once it hit 155 it began to stagnate and excuse me and then it began to drop down But yeah, um instead of like a one-to-one trade it was a four-to-one trade Should have kept it But each trade it's always good just to review And Just use it as a learning experience Yeah, exactly. And this is what blue jacket is all about actually to Yeah To kind of to get some accountability as well because you're sharing it with the community You have other maybe more experienced traders telling you how you could have done it better You have less experienced traders asking you What you're doing and you get to explain it to them and obviously your your journal in yourself and reviewing trades So there's nothing wrong with making mistakes. It's whether you learned from them or not, right? So that was the thing So that's why I actually really enjoyed about the blue jacket competition because overall it was a win-win No matter what Yeah, because book map discord first of all is free Getting a ton of information And the competition you have other professional traders they can critique Your trades to see how you can actually get better provide that positive criticism And you can actually learn from other traders and also the newer traders that are coming into the discord You can just like bounce off ideas. So overall it was a great experience Participating in the blue jacket competition. I learned a lot I'll focus a lot on Just trading setups Even though like as you can see some of my trades, they weren't the best per se I did try to focus on a certain protocol A certain strategy to find that edge Which i'm dug p discusses bruce j trader A bunch of professionals discussing about all the time On market structure or the content the context sorry context of the market And just trade setup overall and patterns and patterns and like what's the percentage of the pattern? How is how does it work? I learned a lot from the competition and i'm really really grateful once again oen for this opportunity I learned a lot. Thank you so much. Yeah, thank you. Um, if you don't mind, uh, I'd like to ask you A hypothetical if there's a a newer trader Um, it's just coming in and they want to take part in a competition like blue jacket, but they may be not confident Uh, what would you tell them? How would you how would you kind of encourage them to get started with sharing charts? With charts, I would have if it's a brand new trader I'll definitely recommend them to go over the book back educational videos that bruce provides on youtube. It is free Just to get your feet wet with book map overall Because I did come from just basic technical analysis now. I use technical analysis with order flow from book map and level 2 data Because it was a completely different learning experience Um, just speak with the with the professional traders just because you can always bounce off ideas And just participating in the in the competition because overall it doesn't really yes winning the competition is great But just participating in the competition and learning from those traders and absorbing their their information It's so much more helpful. Just yeah, if you don't win just try again. Just keep trying again It's just the accountability the knowledge the journaling The reasoning why of the trades which helps a lot. It's always go It's always good to know the reason why because Yes, I can I can just buy a random put because I see Let's just say for this instance december the nvidia trade. Yeah, I see It's going down. I have no sense of target. No sense of entry reasoning. No sense of risk to reward Let me just buy a random put just because I feel like it. Okay. Okay. Good. I made 20% on this put I'm done for the day. Let me just log out of my computer. You can't trade like that You can't trade you have to have an understanding you have to have protocol You have to have a strategy. It has to make sense. What's your win rate? Journal your trade the reasoning why it's a lot of work when you're trading But just putting the effort if it's a new if it's a new trader just put in the effort With book map discord. It's all free Just have to pay for book map and for this one. This is thinkorswim You're it's a it's a great learning experience overall and for that new person That's that wants to trade and wants to use book map. Just be patient It takes time, but it's a great learning experience overall Yeah, yeah JLA, thank you very much. Well said. Thanks again for taking time out to share more and go deeper into the content that won you the competition in the first place Um, I've enjoyed it. Um, I think the community is gonna enjoy it as well So, um, yeah, thanks a lot again very very much. Appreciate it. Thank you so much, Owen I greatly appreciate all your work. Thank you so much and all of book map as well That was it helped a lot


Welcome to Toffy TV. We are here for our crossbar challenge for our Christmas show. I'll be honest, it feels like summer. It's warm. We have been on the round a little bit, men of our age don't run around the round. Climate change? Climate change? Climate change, although next week there's a snow bomb. But anyway, that's a different story today. We've got a series of challenges. The first one is the crossbar challenge. Ped faces me, and the two whippersnappers are getting in camp, and Nedd is behind the camera. It's going to be a laugh, so let's see how we get on. Come on. Ah, unlucky. It's funny. If only I'd scored one out of one, it doesn't mean nothing. It's not a farmer. Let's see what happens. For the pension! Anything you want to say? Y bawner. Y bawner. I just really needed the bar. If you miss now, the most you can get is a drawer, Ped. How are you feeling? Yeah. Lightweight. It's a good effort. It's off with a net. It's the top of the net. Close, that was close, wasn't it? I'm disappointed, because I only got one out of three. It's not very, I think. I'm a bit disappointed there, I can't get more, but you know, I was in the challenge when you just moved on. Congratulations. Right, penalty shoot out. Me i'n cam versus Baddon Ped. Let's do this. Let's wash it out with knees. Hopefully if there's a break, we'll go in. Old speed it, youngs. Whenever you're ready, son. Go on. Go on, son. Go on. There we go. You're self. Must be Cameron. This one. He's lifted it. It's all over it. Look how easy it is.


Thank you everyone for coming, and let's start. First off, some introduction. You know my name. I'm a bit of a nomad, and what you see in the bottom is gibberish. If you don't understand it, it's fine, because you don't know Finnish then. But that's my song, which means, it says I, it's not my home, which is a good song for a nomad like me. I work for Red Hat and work on FOSS. I've been working on free software and open source for a long time now. And I went to flying, and I love caps. So I had a similar talk at Rustfest, so if some of you were there, then it's a recap, otherwise it's a background story, real quick. So the whole thing started with this project called Geoclue. It's a demon, it's a service on your Linux laptops, which finds where you are through different sources and stuff. And I've been, it's a geolocation service. As I said, it finds you where you are, and it's written in C currently. And I've been a maintainer since the rewrite. It was in 2013, I think. And I thought, like, let's oxidize it, but you will ask why. And I have reasons. And it's called Crash Reports. I got a lot of Crash Reports, and Will was telling me that on their end, in Endless, they saw a huge amount of crashes in Geoclue. So I was like, yeah, I'm working on that permanently. And it's my spare time thing. So I don't want to chase after Crash Reports in C code. Also, like, location is the most sensitive data that is about you. So you don't want to be trusted by everyone and anything. And especially if it's written in a very, very insecure language, it's not a good idea. And I just love Rust for various reasons. I have a blog post about it if you want to read it. So I thought, like, let's do it. Let's oxidize it. But what are the challenges that I was looking forward to? First one was Mason. It's a build system that is being used by a lot of projects out there now. And I thought because Mason doesn't have built-in support for cargo, so I thought it would be a bit of a challenge. And the other thing was Debus. Like, as I said, it's a service on your laptop, so it's a Debus service. I'll talk about Debus a bit. If you're not familiar with it, it's a very efficient binary inter-process communication protocol. And it's used in desktop and embedded systems quite a lot. And there is one crate already existing. It's called Debus RS. And I wasn't very happy with the API and stuff, but I wanted to use it even though it depends on a C library called LibDebus. That library is not very famous for its interfaces and stuff. And I think there's some bunch of other problems with it. I don't think not many people use it anymore even. And so yeah, we had many issues, but I still decided to use this crate because that was the only one and I didn't have a lot of time. As I said, it's all my spare time stuff. I even contributed to it in the beginning. A few patches there and stuff.  We do this Rust GNOME hackfest, which is about GNOME and Rust, about every six months, twice a year. And the one in last year, one of them was in May in Berlin. And I started working on this to oxidize Geoclue. But turns out the Mason stuff turns out to be much easier to work around. The work around was pretty simple and it was not a big issue. So I could call from Mason, I could call cargo and cargo does its own thing and that's it. I didn't need something back from the results of cargo into Mason. So it simplified a lot of things. But the Debus RS API turned out to be quite over complicated and I couldn't figure it out. I asked others around and they couldn't figure it out either. So I was like, how about I write first viewers from scratch? And yeah, I thought how hard can it be, right? Let's check it out. So I looked at what's involved and on a high level you have objects and each object has a path, it's called object path. And it's just a string that represents that object on the bus. In Debus you have buses, think of it as sockets and apps talking to each other on those sockets. And the services expose objects and on those objects you have certain interfaces. Each object can support multiple interfaces or one interface. But it has to support one at least. And those interfaces and then methods on them. So it's a bit dynamic. The reason it's like we have interfaces and not methods and API directly on the object is that it could be more dynamic, that you can on the fly change, like this object now supports this interface and not. So yeah, you have methods on them, simple input-output parameters and signal is just the same it's just the other way around. So you have parameters from them and you get signals called on you like as a client you get signals and you send method calls. And also you have properties that represent different properties on your interfaces. But on the low level it's just message passing on the sockets as I said. And there's a wire format for these, so for interfacing with Debus. And it's also, you can call it G-variant but not quiet because G-variant is a G-lib API to handle this wire format. But the people who are working on that they made some changes. And the intention was to put those changes back into Debus pack. So Debus itself will change. But that didn't happen for some reason. I don't know why. So yeah, G-variant is slightly different than the wire format of Debus but it's based heavily on that. So there's a lot of similarity. So at least you can have the same API. So for example G-lib has Debus APIs and they use G-variant. So you deal with G-variant and they convert behind the scene. So and this format G-variant is used standalone as well. Project like OS Tree and Flatpack and Deconf they're using it. There are some examples but I think there's a lot more out there. And so what is the wire format?  And since it's a binary format there's the alignment consideration in the memory. But it follows natural alignment. So if you have unsigned integer of 4 bytes, so the alignment for that is 4 bytes. If it's 8 bytes then it's 8 bytes and stuff like that. We will see that later. And each data type has a signature. Signature is just a string that represents that type. So the basic types they have one character string like for example S for strings and stuff like that. But for a complicated one you have like longer signatures. But there's a limited to 255 characters because we will see later why. And basic types are like mapping very nicely to the rust basic types. So it's not hard. And containers kind of also like you have arrays which is like vector or an array and rust structure. And dictionary is just like hash map. And we have another type called variant which is very, which is a, it looks very simple but it makes things a bit hard. Because the format, the wire format is not self-defined. So it's you have to have the signature. You need to know the signature or what data is in there. What kind of data to be able to decode it. So it's not self-describing. But this data, this type is because for the signature for this type is dynamic. So you get it in the encoded data what is actually in the variant. So you can put it, any of those types that are mentioned in the variant. And you put the signature before it and you send it to the other side. So it's for dynamically typing things. Use quite a lot actually on Divas.  So let's say you have a string you want to transfer on in this format. So the format like we will go from right to left. Oh and at the bottom you have the byte addresses in the message. And I have highlighted the four byte boundary. So you can tell more easily what's what. So yeah you, the string you, it's supposed to be null terminated. And just before the string you put the byte length. It's not the, yeah sorry. It's the length of the string but without the null byte. That's was, I learned it the hard way. I forgot about that. And that's the case when passing in. Then I found out. So yeah you have the length. And then since the length is a, is the fixed part of this string encoding and that's four bytes, you have the alignment of four bytes. So that's why we needed two bytes before it null bytes of padding to align it on a eight byte, sorry four byte boundary. And in variant it's the same. There's a reason I'm giving you these details. You'll see later. You, when you put a string in a variant it's the same as you look at from right to left. You have the null byte. You have the string. And you have the byte length of it. And again you need to pad it. And since you are putting it in a variant, what you do is the first part is the signature of the data. Because you only know at runtime, if you see decoded it, you only know at runtime what is encoded in the variant. So you need the signature first in it. And signature is encoded in the same way as a string. The only difference is that the length is one byte size. So that is a good thing because then you don't need any alignment because it's one byte. And you, yeah, but you're limited to 255 characters of signature. But that's more than enough. You don't want a complex type, so complex that it's more than 255 characters long. Anyway, so that's how you encode a string in a variant. So I was like looking at that. I was like, that's not so hard. Let's do it. So I was working on in Hackfest and after for three days. And well, I was not distracted by this work thing. So it went very fast. And I managed to do, made some good progress in just a few days. Like established a connection called a method on the other side. And I was like, yeah, I can do it. Let's do it. Cool. So I decided to create a new library called Zeba s. And why name Zeba s? Because it sounds really awesome. So I chose this name. But I thought like, let's start with the hard part at the lower level. So if I'm writing a D bus library, I should write it completely in Rust like from scratch. And I called that part Z variant because it deals with the variants. It's called because G variant and all, you know. So I had these goals in mind, like how I would do things. And I wanted to be it to be very efficient. If possible, even more efficient than the C implementation in G lib, which I think I'll achieve if I haven't already. But the silly goal was I wanted to be efficient from from day one. And I don't think that's a good idea. So if you ever start a project, don't don't do it this way. And I came up with this first trade. I was like, yeah, this is the trade that will all the data type that can be encoded and decoded from from this format, they will implement this interface. And as you can see, there's lifetimes in there. And that's because I want to be super efficient. So lots of issues, of course, any project from if you start from scratch, especially loads of fun with lifetimes. And the variant representation proved to be a bit challenging. Like the most natural I was thinking first was like, I can have generic type on the variant of value, like have a struck signature and then value and that's it. And that would be generic. But then when you are decoding, you need to know, you know, how do you decode? Like you need to know the type in advance, like the whole type. So it didn't exactly work. So I went with enums. It's much better, I think, that way. And but eventually I dealt with all these problems and I had test cases for each data type I added support for and it started to look really good. And I was like about to, you know, I said, like just documented and just, you know, release the first version of Z variant, it would be cool. But as soon as I added the support for hash maps, like the dictionary type, test cases are not passing. I thought it's a test case, but it wasn't. I'll give you a chance. If you can tell me what is wrong with this, this is where it goes wrong. Like when I added, like when I put it in a variant, the dictionary, so I hit a problem. So I was looking at this and it looked right. This is just the same as we did string in a variant. Now it's an array of 64 bit integer in an array in a variant. So how you do it is the same, very similar to the string, you have the array itself and you have the elements, like the first element need to be at least padded. And you have the length of the array in bytes. By the way, this is in bytes, not the number of elements in the array. And then the padding for the length itself, and then the signature, like we had with the string. But this time we will have like A is for array and T is for the 64 bit integers. So you can tell what is inside the variant. But there is one thing that is wrong in here. Can anyone tell me what is wrong here? No, no, no. What about alignment? No. Okay, I'll move forward. So I couldn't figure this out for many days, right? So, and I was like back to DBA's spec reading and staring and stuff and figuring out what the hell is going on. Till I realized that I think I'm wrong about the padding. As I said, like the variant does not require any padding itself because it starts with a signature and signatures length is one byte, so that doesn't require any padding. But the more I read this back, I was getting more and more sure that the array itself or the anything in the variant itself, the value of the variant does not require padding either. And that's what is wrong. So I was like, okay, how do I fix this? I was like, this needs a complete overhaul of the whole, how the variant and coding and decoding is working. So, okay, whatever, I have to do this. But I first was like, okay, let's this lifetimes, like each time I made any change, significant change in the whole thing, lifetime would come in the way. So I was like, this is not good. And that's why I shouldn't have started with super efficient implementation from day one. So I was like, let's kill all the lifetimes first. So the way I did it was I created this data type. I looked around her first, like if there is exactly like something like this, there's cursor, but cursor is not exactly like this. So this allows you to create like a shared, you can have a slice of a data and you can have as many slices as possible and pass it around the clones of it because it's used as RC. And it knows its position in the whole buffer because the alignment is based on your position in the entire buffer, the entire messages. If it's a Debus message, then the entire Debus message. So you need to know where exactly you are at that point. And efficiency is not a religion so we can do it later. It would be nice, of course. So after two months of this lifetime killing and creating this new interface and everything, I was done. And I was like, okay, let's see the test case and I was sitting and I was about to hit enter after, you know, cargo test. And I was like, would it pass? Would it pass? No, it didn't pass. So I went back to more spec reading and byte staring. Turns out it wasn't the padding after all. You do need to pad everything. And it was the length. The length does not include the first elements padding. The specs wrote it very clearly for some reason I missed that. So, yeah, that's the only small thing I had missed previously and I did the whole changes and everything. And it was this trivial thing and I fixed it soon. So it should be 16 because, yeah, yes. So there's eight bytes and then eight bytes. So that's 16. Yeah, trivial to fix. Well, Christmas holiday development. I published the variant. It's out there. You can find it. I've added docs too. It's, you can use it in, you know, in a very easy way. You can, you just, you have this example, for example, you have a string you want to encode. You tell it which format. Currently we only do D bus format. So it doesn't matter. And, yeah, and then you can decode it back. Simple. A bit slightly more complicated integer in a variant, for example, same thing, but you convert it to a variant and then encode the variant itself and then back to a variant and then you can get the value from the variant. So don't use it yet, but because I do want efficiency. So I'm back into that. And I think I'll need the API breakage for sure. I'm not just because of that, but also imagine what first issue anyone filed on this great support for Serde. Like why don't you have Serde API? So I was looking into that and I was like, yeah, it makes sense. And if I can make it work and I'm working on that, I have an experimental branch for it. The main challenge with Serde is that it's way too generic. So I'll show you. So I have a proof of concept serialization, serializer implementation already and it works as far as I know. But if you're familiar with Serde, usually you get like an API like this where you say two bytes or whatever, two write or whatever is the output type of the API. But the only difference is that I'm requiring another trait from the type you want to encode or later decode as well. And the reason is that I need the signature at the moment at least. So I'm trying my best to, I mean, because otherwise, what's the point of Serde? Because with Serde you should be able, anything that implements the Serde serialize or deserialize, that type should be serializable by all the crates that implement Serde. And that's the whole point of it is generic. So I don't see much point of providing Serde if I can't remove this limitation. So I'm working on it. Even if I provide a macro, right? Like Serde provides easy derived macro, so you can put it on your custom type and it has serialize and deserialize then. So you can add one more, but just for my crate you would add that. That's weird. So yeah, I'm really trying hard to avoid that. Yeah, drop it. And once I have that and I look into deserialize, I looked a bit but I haven't done any implementation. And I think the byte order should be configurable right now. I just assume native byte order. It works fine with Gebus because, you know, it's on the same machine. And G-variant support shouldn't be that hard, but fingers crossed. And a few goodies like that, right? In G-variant. And also large array handling. I've been told like some of the projects, at least OS tree for example, store like a large array in a file, which is in a G-variant format, but it's a large array. And it's not ideal to have to load it all to decode it. It's not ideal at all. So I would like to have some kind of streaming API that you can read easily. Like you say, I want to read from index this to this and that's the, you know, elements you get from the array directly from file. So yeah, back to D-bus. What I want to have. So I already have some implementation. I haven't released Z-bus yet at all because Z-variant is not finalized yet. But this is how it currently looks like and it would look something like similar on the lower level at least. So you have, you establish a connection, you tell it which service, then which objects you want to talk to and you tell it the interface and then the method and stuff and that's how you call a method. And then you get a reply and then it's based on Z-variant, like variant API that I just showed. So yeah, this is the standard interface that any D-bus broker on your machine will implement so you can use it. In terms of D-bus, after I have all that I need to do a few things like receiving messages maybe. So yeah. And signals, this is not just methods. Async, hopefully it will be async, just async STD based because it's the coolest API I see for async and Rust. And a high level API then, like once I have the low level so that you can work with objects. I want to model it after G-Libs API where if you are a client you create a proxy object for a specific object and a specific interface and then you can call different methods or get read properties from it and it even caches the properties local, like on your side. And in terms of server, you have something similar, you have a server object and you add an interface to it and then you implement those methods like anything, like any trait. So it will be trait based on the server side. Code generation, a lot of projects out there they use, like especially client side they use code generation because nobody has time to write individual interfaces and like, yeah. So it's harder if you don't use code generation. And in G-Lib there's the GDBus code gen which is really cool. And I think Qt has something similar. I never managed to use it, but it's there. Maybe also macros, that would be cool. Some people ask for it so that it's... I worked previously on a language called Vala and it has like syntax, special syntax for doing D-Bus server and client side implementation which makes it really convenient. So macros would allow for something similar. And a lot of other easy stuff. That's it, sorry. I'm done early. I'm not answering that. The question was if Z-Bus stands for Zishan. First of all it's Z-Bus, not Z-Bus. That gives you a hint, right? Not fully understand what the great difference is with the current... So the question is what's the big difference between this and the current D-Bus RS create, right? The first one is that it doesn't depend on the C-Library, the libD-Bus which is not just that it's in C but it's also the API is not that nice and it shows in the Rust API, the wrapper API. So it would be good to break away from that for multiple reasons. So the whole reason I started with the whole effort was I want something very safe and if you depend on a C-Library for your main thing, it won't be very safe. Yes, yeah. Can I first repeat for the recording or streaming? What was that? For the array? No, there was this... Lucas said that there's a... Usually in, for example, an OS tree where you have the large arrays, they just use memory mapping for... they map the whole file and then they can read whatever part they want to read and that's the way. The variant part is the same as for Zanu. It's the arrays and it's the other data types that are encoded a bit differently. There is some... It's not majorly different. I'm pretty confident that the API I have, it will not need to change. So it should be good. So the question is if I can provide a rough estimate on when Z bus will be ready for consumption. Yeah, basic functionality. Depends on what basic means. I would say, ideally, I think I should be done by summer, but you need to keep in mind it's my spare time thing. So it depends on a lot of things. And I have a life too. So it's... Is it on the code? Yes, yeah, yeah. Even my experimental branch is in there. But on the D bus side, when I change the Z variant API, it wouldn't be such a big change. If you want to accelerate things, please do contribute if you can. And we can collaborate. There was already one person after Rust Fest, they contributed some patch, and it was nice. So it's already possible. And I will handle... Once the Z variant API changes, you have to port it. I'll do the porting, so don't worry about it. Yeah, I only expect it to grow. The existing API won't change much. I don't think so. What's your Rust project? And had some problems finding errors? I would like to ask you if you have some chips on debugging Rust programs. Because what I am currently doing is including a lot of print lines and then removing them again when the release is rolling out. That's sort of primitive. I did that too, to be honest. Yeah. One of the things is that if you go to the channel, the Discord channel, there's a lot of really helpful people there. So I paste codes in somewhere in the Playground, Rust Playground, and I ask, and usually there is an answer. So for me, that helps a lot. And the only thing is that you need to create a small test case for your issue that doesn't involve all the details that are specific to your project. So if you can create a sample code, it really, really helps a lot to help on your issue specification. So whichever it will work. You mean the derived debug? Mac. Ah, okay. It returns the contained value. Okay. So now you repeat it. Sorry. Did you want to repeat that first? So the question, but it was more like a suggestion of how to make debugging easier. And there's this dbg macro that helps with, you know... It returns the contents. You can just edit. Yeah. So I did a question as well. No, first I would like to clarify your question. You had to repeat, right? Yeah, the question is if I have tips about, as I said, I removed the lifetimes, and then it was easier to change things. If I have any suggestion of any other similar examples, right? That's what the question is. The first of all, I would clarify that I removed lifetime temporarily. I want to, you know, first change because I was doing a lot of changes. So that was on the way. So once I have done that, then I can put it back. So it's not like I've removed it permanently. So, but apart from that, I don't think there's any other things that I had to remove to make things easier. But certainly I would comment that a lot of times, rest developers tell you, like, yeah, don't mess with lifetimes and you don't need to know about lifetimes. I don't think that's true. You need to know about lifetimes if you want to do really good trust code, if you want to code it better. The question is since I will only oxidize the server side of Geoclue and not the client side, which is a library, it's really based and it's very good for Geolive applications out there. And also it's good for other languages too because of the geo object instruction and stuff. Yeah, if there would be any problems having these two different worlds in the same repository. No, I don't think there will be any problems and the good thing is that the Geoclue service is quite standalone, the code is pretty standalone. So, no, I don't expect any problems. Ah, I get it now. So, the question is if the recommended method for the apps that are written in Rust would it be to use this Rust crate for to talk debas or to still use the Geolive-based CFPI I provide? No, I think it's up to them, but if I get to the code generation and macros then it would be super easy to create the interface needed to talk to Geoclue so then they can just use that. And I think that's what they should use ideally. Yes? I'm not sure if I understood the question. You want a Z-variant to be able to tell you about the data that is contained. If it is a variant type then of course you will have the signature encoded in the data. But if it's not a variant type then you don't have the signature at all so you can't do that. But if you know the interface you know which signature it would be then you can... No? I'll take some. Thank you.


Hi, everyone, Joe for jaskiescasebreaks.com. Happy Sunday coming at you with a 2021 Panini Mosaic baseball hobby pack break, random team break number 38. This actually might not be the last one. I thought it was going to be, but there's still full spots remaining, so there may be another last one. So keep an eye out for that if you're watching live, jaskiescasebreaks.com. But at the end of the break, giving away 10 quick hit mixer baseball mixer spots. First, the break. Big thanks to this group for making it happen. There are the teams right here. Let's roll it. Let's randomize it. Names and teams, two and a six, eight times. One, two, three, four, five, six, and then seven and eight. Seven and eight. As always, we do the break first. We'll give away a different dice roll at the end. Two and a six, eight times, four, the teams. One, two, three, four, and eight in final time. All right, there's the first half of the list here. No trade windows. Second half of the list right over here. Let's print this out and rip open that pack. Surplus of wings. That sounds to the buffalo wings. I'd like a surplus of buffalo wings. All right, so there's the first half of the list right here, or here's all of the list right here. Final print out. Calhendrick's red. Eudarvish, Ronald Cunha Jr., and Matthew Libertura. And now, let's see, so nothing too crazy in that pack, but let's see who's going to win those spots. Let's go back to the list. Gather everybody's names again from top to bottom, one through 30. There's the dice. There's the list. So it'll be the top 10 after three. Good luck, two and a one, three times. One, two, and three. So it's just the top 10. So from 11 on down, Monty, sorry. But thank you and everybody else from 11 through 30 for giving this shot. Appreciate it. Sad times though. Top 10 happy times because you're in the break. Logan is happy. So is Patrick, Michael, Craig, Monty. Oh, you made it, Monty, Allen, Jonathan, Kevin, Steve, and Rex. So congrats to you. We'll see you in the, hopefully we'll see you for the baseball. Make sure to let us know tonight at askbeatscasebreaks.com.