All right, so I'm just out for an easy run today, the leaves are turning brown, still beautiful, though, check it out. So last week was my first ever 80k week. That's 50 miles, halfway to 100 miles per week. So that's cool. It was really easy. I felt like there was no issues. I was able to maintain the mileage, no problem. But of course, there's always the second week syndrome. The week at a higher mileage always goes fine. And then the next week, that's when the problems start cropping up. So I've been having a little pain under my foot this week. So I'm taking it easier, backing off a little bit this week. And then we'll see next week, maybe I'll hit 80k again, etc. But I wanted to show you guys a little bit about how my training is gone over the last few weeks on Strava. And then we'll take a look at my training plan for the next few months over the winter. So let's do that. All right, guys, here we are in Strava. Let's take a look at my training log. So here it is. And the week I was just speaking about in the intro is this week here, this first week of 80k. So as you know, I did my half marathon, that's back here, right? I recovered for a week, did some easy build up again. I was slightly injured actually after the half marathon. So I needed some time to recover and building up my volume down again a little bit before hitting that 80k week, solid 80k week, spreading out the mileage as much as possible. So you can see my longest run was actually just 18 kilometers. That was in order to just spread it out as evenly as possible across the week, because it was the first time with the new mileage. After that, as I said in the intro, I was sort of having that second week syndrome, you know, some minor niggles. So for the first few weeks of the, for the first few days, sorry, of the next week, I just did, well, some short runs there and then some cross training, cycling and cycling. So I just, I was just cycling a little bit on the indoor bike at the gym and back into running before hitting another 80k week. And actually these, I'm now, this is today up here. So I'm now in my third week aiming for 80k. So I successfully managed to do two weeks of 80k each, that's 50 miles. So I've done 100 miles over this, these two weeks. And now I'm in this third week of 80k here. So pretty happy about my volume lately. It's been really, really good. Been doing some long runs of 20k, 16k, 17k, but spending a lot of time running, because some of these long distances here, like this one, 17k and the one yesterday, took over two hours to complete. And that's because it's like super technical trail. It's out in the forest. There's a fair bit of elevation. As you can see here, it's about 500 meters of elevation. Yeah, technical trails takes a lot of time. So I'm happy. I've been getting a lot of volume in my, I'm working now in the face of building up my mileage. So let's jump from this training log over into my training plan and have a look at what I'm planning to do over the next few months. So here we are in Excel. My training plan, pretty basic training plan, no real workouts or anything. And that's because I'm working on building mileage. So as you can see here, there's basically two macro cycles. Just the first one here leading up to, well, you know, reality. It's just one big macro cycle actually. It's just aerobic base building. That's what I'm going to do over the winter leading up to my next half marathon buildup, which starts in the beginning of March 2019. And I'll get into those races that I'm going to do next year in another video. But for now, let's just say I have a half marathon coming up in May. I'm going to start to build up for that in March with specific workouts and that sort of thing. But before that time, I want to get my mileage up. And I've been seeing the benefits really, like from the mileage that I've been doing now, the 80k weeks. Already, even though most of it is at an easy pace, my easy pace is becoming faster. Like I am definitely getting fitter from just a lot of easy running. So that volume is really key. So I want to get that volume up to 90 kilometers before I start my half marathon buildup next spring. So let's take a look at the week stage. So there's one big macro cycle of aerobic base building. You can see the months going down here, the weeks going down here. So first sort of cycle is the what I call the base one, which is leading up to Christmas. Okay, so 52 the week 52, the last week of the year. That's the Christmas week. And that's a recovery week for me. As you can see here, I'm going to take a complete break from Monday through Thursday, not going to run at all. There's just around the Christmas days. And then after that, I start my base two phase, and then base three. And we'll talk about those phases now in short. So you can see here the kilometers that I'm doing, you can see how many runs per week that I'm going to do. And this is the distance of the long run in kilometers. And then I have a description here and some in some details, we don't need to talk about that all too much. But basically, as you saw, that was my first week of ADK up here. And then I had that down week and this is are the three weeks I'm currently in the middle of this week here, right? So that's what you saw in the log. Aiming for a 23k long run this Sunday. Then I'm going to step it down. After three weeks of doing ADK, I'm going to step it down a little bit, right? Go down to 55k, 16k long run, just a little bit of a recovery week, just to be able to absorb the training that I've done and be conservative in terms of potential injuries cropping up. So as you can see here, it's all going to be easy as I'm increasing mileage. But this week, which and that's this week here, I'm going to do all easy plus one optional short, strong aerobic run and a strong aerobic run basically means you're in the aerobic range. So you're below lactate threshold, but it's high end. You're working pretty hard, but it's definitely comfortable. And that's actually what I'm going to do today. It's optional because I wanted to see how I felt. Actually, I don't necessarily know if I'm going to do it or not. Once I head out my run after this video, I'm going to gauge whether or not, you know, am I feeling great? Are my legs feeling great? In that case, I'll do the strong aerobic run. If not, I won't. And then same for next week really optional short, strong aerobic run, then we're jumping up to 90k. So this is the first week of 90k. And of course, I'm going to keep it all easy. There's no point in doing any hard running in the same week as I'm upping my mileage to 90k. Long run stays is 23 kilometers. I'm going to do eight runs per week. So basically Wednesdays and Saturdays, I'm doing two runs per day. And they're both very easy and pretty short recovery days. It's just very practical to do two runs sometimes. So after that 90k week, I'm going to step it down to 70k just a little bit of a breather after that high week, because I know of that second week syndrome that I spoke about earlier. After absorbing that a little bit, I'm going to step it back up to 90k for two weeks before Christmas. So two weeks of 90k just to sort of, you know, get used to that mileage up the long run distance from 23 to 25. And that'll be on the 23rd of December. And then bam, I'll take my recovery week. So that's good. And that last week there of 90k, if I'm feeling good, again, I'll have that optional short, strong aerobic run that you can see here. But really that's not so important. It's really just about easy building up that mileage. Then again, building up again 60k for the first week after Christmas. And then I'm going to head down to Nice in France. So the weather there is going to be much better than Norway at this time. There's going to be, you know, comfortable running weather basically, no snow. And so after one week of 60k here in Norway, I'm going to go down to France and bam, it's going to hit 90 again. And we're going to do that three week streak of 90 kilometers.  So I've touched on 90. I went down to 70 again. I went up to 90 again, two weeks this time. And now, just to get it really solidified in my legs and make myself comfortable with 90 kilometers, I'm going to do three weeks of 90k there. Slowly upping the long run, as you can see, from 23 to 25 to 27. And then again, during these weeks, I will include a short, strong aerobic run. Okay, so short, meaning I'll do a warm up, maybe 15, 20 minutes of easy running. I'll do a cool down at the end, another 20 minutes of easy running. And in the middle there, I'll probably do 20 minutes to half an hour at just below lactate thresholds. So maybe 80% of max heart rate, maybe even as much as 85% of max heart rate, just below lactate threshold. Still aerobic though. After that, stepping down to 60k again, just a bit of a recovery week. I like to do those every fourth week or so. Step down a little bit in mileage and intensity. Allow a little bit of recovery, absorbing that training, etc. And you'll see I'll also include a session of strides, fast runs basically. Short, short, fast sprints, 30 meters, that kind of thing. Just to sort of prime the legs for what's to come in the next mesocycle, which is base three. Base three, now I'm used to 90k, right? 90k is something that I'm good with at this point. So that means the whole of base three is going to be 90k. 1990, as you can see. 60 again to recover before we start to have marathon buildup afterwards at 90k. But in order to add some new adaptions, because we're now used to 90k, if I just kept running at 90k, sure, I'll still get aerobic adaptions. But I want to add in a new stress now, just to train myself even further. So long run goes back up from a little bit down again, because I'm adding a new stress that I'm going to talk about in a minute, but then slowly working yourself up to 27k again, which is what I touched on there earlier in base two. Anyway, the main focus for this period is keeping that model steady while doing one strong aerobic run plus one repetition speed training session at the track. So the strong aerobic run I've already explained, but as opposed to the last ones, this is an actual full-on strong aerobic run, whereas these ones were short strong aerobic run. So a full-on strong aerobic run is something I would say at least half an hour, probably 45 minutes, possibly even up to an hour at that marathon pace, really. You know, when you're sub-trechel, you're really talking about marathon pace, the pace you could keep up for up to three hours, right? So that's good. Each week I'll do one of those strong aerobic runs, as well as a repetition session at the track. And that's essentially speed training. So I'll go to the track and I'll do 200 meter reps, or maybe even 100 meter reps, just neuromuscular training. Get those legs used to faster pace running, because of course, as I start my half marathon build-up, I'll start doing interval training again. We go to max intervals, and I want my legs to be ready for the faster pace by then. So that's why I'll do three weeks of speed training, leading up to that, just to prime the legs. While keeping that mileage the same, gaining those aerobic adaptions, working a little bit on those high-end aerobic adaptions through the strong aerobic run, and slowly just getting used to that long run, moving up to about 27k. And then as I start the half marathon build-up, I'll probably keep my long run between 25 and 27k throughout the build-up. And that'll be my longest long run, 27k, before the half marathon. And as I said, I have the half marathon in May. So starting in March, I'll have two months of proper training, and then some tapering. In terms of races, I have two options here, down in France. There's a... I'm bad at pronouncing it in French, but trail de aide, or something like that. I don't know, trail de aide. Aise is a place, so it's a trail run in aide. Basically, 11k or 19k, that's what... there's a 30k as well, but I'm thinking maybe I'll do the 11k, and I'll do it as the strong aerobic run, right? 11k, I can probably... depending on the elevation, I can probably do that in a little over an hour, so... Yeah. So I'll do that as my strong aerobic run, probably. Possibly also do a half marathon, even at a very easy pace, or 10k at a sort of harder pace. But that comes in my easy week, right before building the... starting the build-up. So I'm not sure if I'm actually gonna do that one. Maybe I'll just do it as my long run, 20k long run, right? So I could do the half marathon as a... as an easy long run maybe. Maybe just as a social event. That's it really. That is my training over the next few... few weeks, few months even. So I'm excited. After I did my Lideard coaching certification course, I have become more... more, I guess, inspired about aerobic base building. Really getting that mileage up and seeing the benefits of just volume. You know, just doing the volume. So even though it's easy mileage, even though I'm running fairly easy most of the time, I'm gaining adaptions, aerobic adaptions from just having that volume. So that's what I'm gonna work on for the next winter. We'll do another video where I'll talk about my whole year, what I'm planning on doing next year. But this is the next few months and this is what I'm excited about right now. And that's what I'm gonna do. So if you're interested in a training plan, as I said, this is a very basic training plan. There's no real workouts here or anything. It's just sort of an overview of mileage increasing. If you're interested in that, I would be happy to do, you know, offer you coaching. I am working on launching an official coaching program for the loan trail. But if you're interested in me making a plan like this for you, maybe just for how to increase mileage safely over a few months, or maybe you want some specific workouts, maybe you need a half marathon buildup program, anything like that. I would be more than happy to offer that to you. You can contact me through the loan trail Facebook page, and we can work out some prices and talk about what your goals are and all that good stuff. So please do that if you're interested. In the meantime, subscribe to this channel, of course, and check out some of my other videos on training plans and similar videos to this. All right. Hope you're having an awesome day and that your running is going well. Post a comment down below to tell me about what you're doing for the next few months over the winter. And I'll see you in the next episode. Bye.


what's good youtube this is boy chi world back at you guys again with another step by step how to cartoon yourself tutorial if you're new to the channel go ahead and hit that like button comment subscribe make sure you click post notification so you wouldn't be notified every time your boy Johnson hit and without further ado let's jump right into this video first thing you want to do you want to go find you a picture with a lot of shadows and that stands and I already got my picture say just say that we're gonna do this we're gonna do this 21 savage picture and as you can see a good thing to do if you ain't good at making like your shadows and stuff find pictures that got a nice shadow that you can follow along with you know I'm saying because as you can see on this picture like that shadow is easy to follow along and then the more advanced you get you can go to pictures that where you got to really know how to just improvise yourself you know I'm saying so we finna use this 21 21 savage picture what I'm gonna do is I'm gonna draw the opacity and the size of my my art template I like to draw on is 18 by 18 inches that's a great size for like you know I'm saying instagram and stuff like that what you want to do you want to drop the opacity down on your picture after you do that you want to lock that layer create your new layer then I set my brush I get a lot of questions asking what type of brushes I use I just use one brush and it's the brush that adobe illustrated give me after I set the uh pen pressure sensitivity and what I'm drawing on is a ug tablet and go a little stylish pen to it you know I'm saying I'm drawing right on to the to the stream if you want to know everything I use I will have the links under this video well yeah let me go ahead and set my pen pressure and the only way you can get this option right here if you have a digital tablet you know I'm saying you can't you can't get this option with just your mouse so I go to my pressure and I set both of these bottom numbers to three and click okay and then right after I do that after you set your pen after you get that little that little style of brush you see me using and it's really I just I just start light then I press hard in the center and you'll just start making your own technique with making your lines look good but it's just the pressure sensitivity that's the only thing I do now main thing you want to focus when you're doing these cartoon heads is make sure you're doing very clean line work the better your line work is the better your cartoon heads will turn out I'll just come in make sure I'm doing some very clean lines and a little filling technique you want to come to your pencil pencil tool you got my settings for my pencil tool okay keep this layer locked and swap the black move the black to the top right here and now what you want to do you want to trace in the inside and to fill it in for you you feel okay we already did the nose and then I just keep going back and forth with my pencil and my brush for fillings to keep making our line work clean with these eyes a pencil tool to the top to do the filling and make sure the bottom layer is locked we might just go ahead and use our pencil tool um you spin on your line work don't worry about being too fast just worry about getting it right you know I'm saying you can clean you feel me we taking our time and a good thing about Adobe Illustrator man you get to zoom in as close as you want to so if you're trying to get your drawing real clean and nice go ahead and zoom as close as you can so you can get like the fine see the finer details love this well favorite thing I like to do we're back to your pencil and the inside and then go do the finer details at the end with the brush what we're gonna do we're gonna do the get the pencil tool again to the top and we're gonna do the filling for all the dreads and after we fill them in we're gonna come back and add detail it can clean what you're gonna do is like everything object expand the pen merge on your path finder so all your lines can become just become one big so now what you want to do I'm gonna drag your line work to this blank sheet of paper to make a copy lock the top copy and now we can delete picture photo the base color to start out with you want to go to your red tangle tool and you want to drag that color over your line work now you want to right click the color go to arrange and send to back and now if you look over here at your layers you'll see your line work sitting on top of the color now what we're gonna do is we're gonna select all of it together and click merge on our path finder to make it one with the color after you do that you want to right click it go to isolate select group and now we can make changes I'm going to leave this out of brown because it's isolated because we made sure our lines was closed off do you see you see colors it's trapped in the hair now it'll take all day to try to just go through manually and get the color out so what we're gonna do we're gonna click the drop down menu on our layer that we just added color to then we're gonna stroll down till we see our last black line to the last black line I was just at it right here we're gonna lock all the black lines so just hold the lock button and stroll up but leave these top two unlocked and now you can close it so now we can go to this white arrow and select it and delete it and it won't select our black because we just locked it so we're just strolling through to leave that color out of the hairs colors out of the hair come back to this arrow right here right click isolate select the group and now we finna put our base colors down hold shift to color more than one thing at a time base color down what you can do is you can lock that layer create a new layer in between and we're gonna start with our darkest shadow first so sample the skin tone and let's find a nice little blend between that got always tweak tweak colors so so after you do that you want to come to your pencil tool make sure your color is at the top and this is why I said find a picture where the shadows really stand out so we can you know what I'm saying so it'll be easier for you until you create your own method of learning how to find the the shadows I'm just looking at the original picture however I see the darker tones at my place in my shadows I can feel it in that area now we got the first layer of our shadow with our dark shadow you know what we're gonna do I'm select our shadow color and we're gonna make this color a little lighter so this is our in-between color our in-between shadow so we're gonna sample the skin again nice in-between color like your shadows don't you can just throw them anywhere if you really get them as close as you can it'll make a big difference with your artwork our highlights every time we do it we go from dark to light and every time we do it we're gonna keep adding the layer under the next shadow just like this the reason I do that I'm gonna show you on my shadows it'll fall right behind that's why it's good to put your shadows on different layers so you can always go in and tweak that's but not least we're gonna put a layer at the very top make sure you got out your gradient chart right here we're gonna select the gradient you see this black on this side this side it don't have to be perfect there you have it you guys how to make a dope cartoon head man make sure you hit that like button and leave a comment Mohi coming soon and I'm out this thing


Good morning, good afternoon, good evening wherever you are today. I hope you're all enjoying the OpenJS World Conference. My name is Beth Griggs and for the past four years I've been working at IBM as an open source engineer in the Node.js Runtimes team. Our team's original focus was to bring Node.js to IBM platforms but over time our team contributed ports for these platforms upstream and now we maintain those out in the Node.js community. One of the areas that our team explores is how we can encourage and support our enterprise customers to leverage Node.js and its module ecosystem. So you'll probably know firsthand the value of Node.js modules. I personally think they're one of the most powerful things about Node.js but they're the one million modules on the MPM registry. There's a high chance one already exists to support the task you have at hand. Node.js modules can make it quick and easy to get small prototypes going while also promoting code sharing and reuse. As an example, I've written a small program that will obtain all of the OpenJS World Tweets. This can be achieved in just 17 lines of code and installing one direct dependency, the Twitter module. And this is just to demonstrate the parallel of modules and show that they enable you to be productive quickly, not solve problems others already have and enable you to focus on the business logic of your application for after the lower level implementation details. But the usage of modules can pose different challenges and these challenges can apply not only to the users and consumers of the modules, but the module authors and maintainers too. Today I'd like to share some of these concerns and later talk about how the Node.js package maintenance team is working to alleviate and provide guidance for some of these issues. First I'm going to talk a bit about the risks of consuming Node.js modules. It's probably safe to say almost all Node.js developers fall into the user or consumer category, even if they are authors and maintainers too. Going back to my other example, I built a small program just using the Twitter module and 17 lines of code. This example program had just one direct dependency, the Twitter module. But that's actually a lot of code in production. When we look at the whole tree of dependencies, there's actually a total of 49 unique packages. This is because the Twitter module depends on many other modules. If we look at the lines of code, there's almost 60,000 lines of JavaScript covered by six different license types. And what this shows is the amount of code you write is significantly different from the amount that you deploy and are responsible for in production. As a developer, it is just as important to think about the code you did not write as much as the code you did. And this is what concerns some of our enterprise customers. The more code you deploy into production, the more risk. These are five risk areas that I found pop up a lot in discussion with our clients and customers. The risk areas are security, licenses, maintenance, breaking changes, and compatibility. And I'm going to dig into each of these a little bit. Looking at security, there was a survey of NodeJS developers conducted in 2017 that covered the state of NodeJS security. Those results found that 84% of NodeJS developers were moderately too very confident in the security of NodeJS core. This means that NodeJS developers are confident with their use of NodeJS runtime. They're confident that generally security issues will be detected and resolved in a timely manner. When it came to looking at third-party modules, only 16% of NodeJS developers surveyed were confident that the third-party packages they were using were vulnerability free. Each year, we get a few notable security issues pop up in NodeJS modules. But there are steps a user can take to mitigate against the security risk. Those include making use of MPM audit. But that itself comes with a challenge, as it cannot tell you if your application is actually susceptible to the vulnerability that is detected. You can use features such as GitHub security alerts. You can lock down your package JSON or publish a package lock JSON. This will stop you automatically picking up new module versions in your production deployments. And then you can enable tools like dependable to help keep your dependencies up to date. And there's also a variety of commercial security tools that can detect vulnerabilities in your Node module tree. And then there's license concerns. I'm going to pre-empt this section with the standard I am not a lawyer. But why should users care about licenses? Well, if you link with open source libraries and then distribute the software, you need to make sure that your software is compliant with the licenses of all of the link libraries. And this includes all of your dependencies in your whole Node modules tree, not just direct dependents. Sometimes it's unclear what's meant by deterrent distributing software. So I'll dig into that now. Transferring software between employees of the same company is not normally considered a distribution. Users interacting with an application over a network is not generally considered a distribution for most open source licenses. But there are some network protective licenses that put restrictions in place for this scenario. And hosting JavaScript files on the public web server is definitely considered a distribution. License types can be loosely grouped into the following three areas. You have protective or copy left licenses. And for these, your software has to be bound by the same conditions as link software. You have weekly protective licenses. These generally have less restriction when you're dynamically linking. And then you have public domain or permissive licenses. This includes licenses like the MIT license that allow you to do almost anything except sue the author. It can be difficult to understand the license terminology. Luckily, there are a few tools that can help with this. The first is tldrlegal.com. And this helps to convey software licenses in plain, easy to understand English. And there's also the GitHub licenses view where it will break down the license into what permits you to do limitations and conditions of the license. Some tools exist to help you understand which licenses are included in your whole module tree. You can use a module named license checker. This will provide a summary of all of the licenses it can detect in the tree. There's a big caveat with this, though. It will only show you what the license field says. It will not check the license text itself. So it's still very possible that a clause is you're missing. Or perhaps even that the license field in the package JSON doesn't match the license file in the repository itself. However, this tool does help give you a general overview of which licenses are included in your module dependency tree. Now to consider maintenance. I'm sure most businesses understand that once you've built a piece of software, there is an ongoing maintenance cost that you need to account for. But if most of the code isn't your own and it's coming from your dependencies, you also need to consider how well maintained your dependencies are. There are a few questions you can ask yourself to help determine how well maintained a module is. Those include, is the module deprecated? Are issues in the module being fixed? Are there still regular releases of the module? Is development still active and how many maintainers are there? If there's just one maintainer, what would happen if something happened to them and they had to give up the project? There are some tools to exist that can help you analyze the activity and maintenance of the module. Those include the GitHub insights view, which will show you metrics such as the number of merge pool requests, number of closed issues, etc. And there's also a website named mpms.io. And this website ranks MPM modules by quality. And to determine quality, they feed in similar metrics such as the ratio of open to close issues and the number of maintainers. Both of these tools can help you answer the question of how well maintained is the module. And there's a question of how can I manage the maintenance risk? And I personally think the two key ways of doing this is to firstly contribute back. So if you can contribute back to the maintenance of these modules, that reduces your risk because you have the ability to patch bugs or maybe magical requests when required. And the other option is to financially support the modules. Another concern is breaking changes. Some projects, particularly in the enterprise, still have relatively long release cycles. So choosing a module that makes breaking changes too frequently could be an issue as your upgrade cycles might not be able to cope with you may need time to migrate to the next major version. The first thing to check is whether the module dependency you're using is following a versioning scheme. The MPM modules semantic version is a popular one. The semantic versioning scheme indicates that the first number will be incremented when a breaking change is made. The second number is incremented when a feature is added in a backwards compatible manner. And the third number is incremented for any patch or fix that's applied. Once you've established whether the module is adopting a versioning scheme, you then need to ask yourself how strictly are they following the versioning scheme? And also how often are they making breaking changes? Another question you need to ask is whether the module that you're using supports the Node.js version that you're using. Some modules will restrict which versions of Node.js they support. Happy, for example, presents a support matrix which details which versions of Happy run on which versions of Node.js. But publishing of this isn't widespread in the module ecosystem yet. So that covers some of the issues from the user's point of view. But what about the author? Let's take a look at the issues from their perspective. Imagine a scenario that an author creates a module just in their free time as a hobby, and then it gets really popular. What challenges will they face? The same five areas of concern apply to authors too. So looking at security. For the author, there may be an expectation that they will respond and fix the security vulnerabilities. But can the author commit to fixing them in a timely manner? And can they cope with the influx of reports they're getting? In enterprise settings, there's sometimes an expectation that a security problem will be fixed in a given number of days. That expectation doesn't translate to the open source world. And then there's licenses. These are important for authors too. They need to make sure that they're choosing the right license for their project to protect themselves in the future. So that's a website called chooselicense.com that can help with this. And then there's maintenance. Maintenance is a concern just as much for authors as it is for users. The maintenance burden of maintaining an open source project can be huge. There may be expectations from users for responses, for bug fixes, for feature requests. Breaking changes are also a concern for authors. How does an author know which other modules are relying on them? How do they know that when they fix a bug it doesn't break a feature for a user? And how can they test the impact of their changes? Compatibility is also a concern for module authors. How do they keep their module up to date with the latest Node.js releases? And also how can they manage the expectation of which release lines they support? Also what happens when a module author no longer has time to look after their module? How and who can they ask for help? And how can they find someone trustworthy to hand over the module to? I don't know if you remember the Flatmap stream incident. This started off as a social engineering attack. In this situation the maintainer of the module no longer had the time to maintain the Flatmap stream module. The attacker originally appeared to be acting in good faith offering to take over maintenance of the module. But once they gained the access they needed they published a malicious release. And this really highlights the need for some defined processes for handing over modules. So that covers some of the challenges from an author's perspective. So now we've covered the user and author's concern. How does the maintenance fit in? At this point I would like to introduce the Node.js package maintenance team. The Node.js package maintenance team was established in 2018 and it was established to focus on the sources of friction to module ecosystem adoption, particularly in the enterprise. I was already recognised that the highest level of comfort was with packages and modules that are stable and where there is confidence that there will be ongoing maintenance, predictable releases and easy upgrades to new Node.js versions. Unfortunately at the time we also found that there were a number of packages that were broadly used in the Node.js ecosystem that may not be getting the basic maintenance required to keep them up to date, reliable for the widespread use they have and usable for the latest Node.js versions. Today the package maintenance team has representation of all three of these personas. We have users, authors and maintainers, including maintainers of some popular modules and also including maintainers of the Node.js runtime itself. And there are a range of companies involved including NPM, IBM, American Express, Netflix and Neerform. So what is the aim of the Node.js package maintenance team? The package maintenance team covers a few different areas. The first it would like to document some best practices for module authors and maintainers. It would also like to document processes for authors and maintainers to follow in certain situations, for example when you're handing over a module. The package maintenance team also wants to encourage and promote responsible and sustainable consumption of modules and also is working towards encouraging clearer and closer communication between users, authors and maintainers. So what is the package maintenance team actually doing? So we've got to set the groundwork first. We're trying to understand the state of the ecosystem. We're doing this via surveys, but we're also getting together and discussing the common problems users, authors and maintainers space. We're also asking what are the most time consuming tasks for users, authors and maintainers. The package maintenance team's also been working with some pilot packages including the express module. For working with the express maintainers we've been able to identify some key problems that the maintainers are facing. The first is that they're struggling to keep track of the status of all of their issues across express modules. The express GitHub organization has several repositories. So with issues being opened across them, things can get very fragmented and difficult to follow. And also generally they're struggling to keep up with all of the issues raised where express is so popular. And the package maintenance team has been working with express to find a solution to their key issues. And one of those we're investigating is triaging efforts. So the package maintenance team is working to define some best practices for triaging issues. They're also working to define a pathway for volunteers to help modules so that people could volunteer to maybe triage for modules such as express. And the package maintenance team has now successfully recruited volunteers to help with the express triage. Members of the package maintenance team have also worked alongside the express maintainers to help create and enhance their status board. So the status board is a view that helps the express maintainers keep track of what the top priority issues are or the issues where help is wanted. The package maintenance team are also working on publishing best practices for authors and maintainers. All of these documents are viewable in the Node.js package maintenance repository. Some of them are still in draft phase and this is because we're still working with authors and maintainers to gather a variety of use cases. In some areas we may go a bit further and provide resources that module authors and maintainers can use, such as for testing. We may provide a sample Travis Yammer file that enables you to configure your Travis CI to run across each of the support in Node.js versions. Another area we're investigating is the publishing of support information. We're first encouraging authors to document their support commitment for their module. Be that whether they're open for commercial support or they are willing to provide support on the best effort basis or even if they're not willing to provide any support. And secondly we're exploring whether we can define this information in the package JSON to allow it to be machine readable. This would enable us to build tools to provide to users so that they can validate the support information of their module tree. Generally the purpose of this support information is to manage the expectation between users and authors. It can give users the confidence and information to make a solid judgment on whether they should use a module and also provide an avenue for authors to maintain expectations. We're also ensuring that the support information can be integrated with newer features such as MPM Fund. The package maintenance team is also working on tooling. We've spun off all of our tooling to a separate GitHub organization named PKGJS which describes itself as tools for package maintainers by package maintainers and we've already started work on a variety of tools. One of the first tools created in the PKGJS August of Dependence tool. This tool is aimed at module authors. It helps authors answer the question who is depending on me. It helps them find a list of their downstream modules. You can pass this tool a package name. So in this example we've passed it the package express and it will then scrape MPM to find all of the modules that are depending on express. You can then also filter these results, for example by the number of downloads to find out what is the most downloaded module depending on you. Another tool in the PKGJS August is the detect node support tool. And similarly you can pass this tool a module name and it will try to scrape which versions of node the module supports. And one of the larger tools we're working on is a tool named Wibby which stands for will I break you. And it's a tool that will help module authors test whether the changes they're making in their module will impact their downstream modules. So kind of think depend upon for testing whether you as an author are breaking the modules depending on you. And this Wibby tool will rely on the dependence tool I mentioned earlier. So what are the next steps for the Node.js package maintenance team? Well we're going to continue to seek consensus on best practices for module consumers, authors and maintainers. We're also going to continue to build tooling to support consumers, authors and maintainers. And also we're looking to support more module in need of help by recruiting more triages and in particular at the moment Node.js is looking for help. If you're interested in getting involved in Node.js package maintenance team there are a few ways that you can do so. The first way would be to check out our guidelines and if you disagree with them let us know it's likely that we've just missed your use case or scenario. You could help us build tooling to support module users, authors and maintainers or you could become a maintainer so help triage issues and contribute to popular modules in need of help. All of the information can be found on our GitHub repository which is Node.js slash package slash maintenance. We've covered some of the concerns that users and authors face with Node.js module ecosystem. We've also explored the work that Node.js package maintenance team is doing to try and help alleviate some of these concerns. If you want more information you can find me on Twitter and I hope you all have an enjoyable remainder of the conference.


Asked is now starting. All attendees are in listen-only mode. Good morning, traders. All right, well, welcome to the Bookmap Platform Details webinar. This is Bruce at Bookmap. A risk disclaimer. Trading futures, equities, and digital currencies involves a substantial risk of loss and is not suitable for all investors. Past performance is not necessarily indicative of future results. So the goal in the webinar here is to go over some of the basics, define what Bookmap is, show how you can connect Bookmap to the markets, and how you can subscribe to Bookmap, the different versions of Bookmap, and then we'll jump into the interface of Bookmap and look at the live markets and start to understand some of the basic elements on the Bookmap chart. From there, as we start to define them, we'll also start to look at some of the basics in the order flow and how Bookmap is displaying that information, because that's where you're going to get the advantage, is the visualization of Bookmap compared to other platforms. It has something very unique and that will give you an edge in your trading. So now, Bookmap comes along with education. There is a four-part educational course that comes with the subscription. In that course, we start with the basics in order flow and work on up into much more advanced concepts along the way. So you can understand order flow and what Bookmap is visualizing with the education. Now, we back up the education process every day in the live markets with the advanced order flow webinars. They start at 11 a.m. Eastern time every day. So we'll jump right into the order flow and start to go through some of the advanced concepts of what Bookmap is showing you and start to analyze the current market. And then based on the education and our analysis, we start to anticipate future price movement. So you can really start to understand how to use Bookmap in the live market. So let's jump over to the website and scroll down a bit. There's an intro video here. A bit further down, just information about Bookmap in general. Bookmap for equities, I'll go over this in just a minute. And a bit further down, connectivity and we'll stop here. Thanks, Andre. I had a good long weekend. It was nice. Some nicer weather and it looks like the summer has begun. So yeah, it's about time. It's been a long winter. Anyway, what is Bookmap? Let's define it.  We just visualize the market in a very unique way. And we're not a data provider, nor are we a broker. So you will need to provide the data for futures and for US equities. Now, we also connect to digital currencies. So Bitcoin, for example. And that's through the GDAX exchange. And that data is actually free. I'll go over the details in a minute on the subscriptions. But to connect to Bookmap for the futures and US equities, these are the different data providers that you can use to connect. Now, you can see there's a few platforms listed here as well, just like we are. We're a platform. And you can see Ninja, TTX Trader Pro, and Interactive Brokers Traders Workstation. So you can connect via the API of these three different platforms if you want to go that route. If not, and we recommend not, just connect directly to CQG Rhythmic Gain, IT Feed, Transact, or Dev Experts. Now, the Dev Experts is for NASDAQ TotalView and for EdgeX. So let's scroll back up. And that's for all US equities. You can read about it here. It's a great data feed. And here's the different options that are available, NASDAQ TotalView. You can subscribe to that. You can also subscribe to EdgeX, which is BATS. Or you can subscribe to both of them together, EdgeX and BATS. And that's actually a deal right now for $59 for the first month and then $119 each month following that. Anyway, let's continue on. So we've defined what Bookmap is. You know how to connect to the various markets. And let's go down to the different packages that are available. You can subscribe yearly and get a 20% discount, or you can click here and go to Monthly. And you can see digital versions and global versions. So let's describe the differences here. Digital version, you can see this is free. It connects to only one digital currency at a time through the GDAX exchange. And it's very limited. Limited support and limited education. Now the digital plus version, what you get with this is the data is free for the GDAX. And you can record and replay. And you can also trade right from the Bookmap chart into your GDAX account. Now you can also access up to 20 different digital currencies at a time. And you also get access to the advanced education and full support. The global version, now the global version moves beyond digital currencies. Yes, it includes it as well. You still get everything in digital plus, but you also have the ability to connect to the futures market and the US equities market. And you will need to use those data providers that I just went over. We don't provide the data. And you get the advanced education and full support. Now the global plus version, the difference between global and global plus, global plus includes everything. It also includes our proprietary add-on indicators that we put together. So for example, there's the ability to trade right from the Bookmap chart into your futures or equities account, which is a great feature because you have the liquidity heat map in front of you. You can front run high liquidity or hide your stops behind high liquidity. There's the large lot tracker. We're looking at specifically larger players in the book holding the majority of liquidity. In balance indicators, iceberg tracker here. So again, looking at larger players using iceberg orders. And our algo can start to identify them. And correlation tracker to correlate other markets right on the Bookmap chart. So that's bookmap.com. Some other references here. You can follow us on Twitter at bookmap underscore pro. All sorts of information. You can see there's a new interview here with Jason Ramis. If you want to read about that. And all sorts of other stuff here. All right. So the YouTube page as well. You can subscribe at bookmap on YouTube and some intro videos here on the front page. Features and components. If you want to understand what some of those are. And then these order flow video snippets. I would recommend watching as many of these as you can to understand what bookmap is visualizing and how you can benefit from it. These are very short, concise videos. And we go over this kind of information in detail in the advanced order flow webinars. Right. That's pretty much it. Let's take a look at bookmap here. We're going to look at the NASDAQ. And let me close this up. All right. And what are we looking at? Okay. So for those of you unfamiliar with bookmap. Well, this might look very foreign to you. Lots of different things going on here. It's actually really straightforward. And I'm going to close up. We have a indicator subpanel here. I'm just going to close that. We can go over that another time. And we also have some other indicators on the chart here as well. Like a historical VWAP, which is a great indicator. You can see how it's bouncing off of that here in the NASDAQ. And this blue line, which is a point of control. Now we're going to close up that as well. And point of control. And then just look at the basic chart here. So what are we looking at now? Well, it looks like it might be pretty complex. It's really not. It's really straightforward. There's only three elements on this bookmap chart. And none of them are derivatives of time, price, or volume. You're actually getting a very objective view of the market. Okay. So what are we looking at? Historical best bid and offer. There's no aggregation here in a timed chart or bar rotation or anything. There's no bars. It's just historical best bid and offer. And then you can see all these dots. Well, these are transactions that took place on that historical best bid and offer. And then the last element is the heat map, that third element. And all that is, is the liquidity from the dome. Okay. It's taking the data from your depth of market, your dome. And then all we do is record it in a heat map. And then we project it on the chart historically. Okay. So you can see where people are bidding and offering. And you can see, like, if they get filled or not, or if they pull. Okay. This is the real benefit here in bookmap. So let's actually kind of use a backwards way here of describing some of this. And we're going to take off all of these elements. And we're going to look at a candlestick chart. Okay. And this is a five-minute candlestick chart. Now, what's going on here in this five-minute candle, for example, is an aggregated period. There's only four data points here. Okay. Open, high, low, and close. And that's a problem here because it's very opaque what's happened inside there. We have no clue. Okay. Just for volume alone, let's cover that. Well, where did the volume take place within any of these candles? We have no idea. Okay. That's an important aspect to know. Okay. Now, you might have a footprint chart and you can understand exactly where volume is trading on your candlestick. However, there's still some issues. Number one is you're not going to be able to access microstructure. Okay. It's within an aggregated period here. Okay. We want to understand these little structural areas that occur. And how do we do that? Well, we can very simply do that by showing historical best bid and offer. Okay. And there it is. All right. So now we have an understanding of microstructural areas. Okay. So what do I mean by microstructure like within this period, this time period here? Well, here's a microstructural area down here. Okay. In fact, it's not so micro. It kind of fits into bigger picture here. Okay. So let me explain. Okay. Well, you can see that price came down, bounced off of this area a little bit, found a few buyers. This candlestick shows a bit of that. But then we trade through. Okay. Well, we broke down below this structural area. Okay. And we accepted down here for a little bit, but then we found some buyers actually and we broke back up into this bigger range here. Okay. So understanding these little structural areas down here, though, are essential to understanding the moves that can take place afterwards. Okay. And this is how we can anticipate price movements by understanding these structural areas, the volume that traded there and who's in control, and then also by the auction, where are they bidding and offering and how they're behaving in that auction. All right. So let's add some of the elements on here and let's just show the volume. Okay. So pretty typical. You can see here the volume. For example, look at this nice little move to the upside here. Okay. Well, that's, you can see the green dots pulling that market, lifting the offer higher. That's the aggressor on the buy side. Okay. They're hitting the market buy button and they're lifting the offer. Actually, pretty typical in a micro trend here, as you can see, more volume, aggressive buy volume trading at higher highs, pulling that market upwards. Look at these little pullbacks here. Okay. This is very typical in a trend in the order flow. And this is true not only in micro structural areas, but on macro views as well. You'll see it again and again and again, it's just how the market works. Okay. So what do we see here? Well, there's very little activity here. There's very little selling, in fact, in these little higher highs here. And the buyers are clearly in control in this micro trend to the upside. Okay. And this is where it actually broke from in the micro structure was down here. Okay. And you can see even like a smaller micro structure, there's structure within structure here. The markets are fractal. Actually, you can see the buyers start to step in here and they broke this little structure here with their buying. And then they broke the bigger one up here in that swing. And look at the volume and look where it accepted. Okay. In fact, we can draw a nice line across here. And you can see that it accepted above that line. Buyers are in control. Okay. And we're just looking at the volume here. So let's zoom in and let's define these two elements now that I've added onto this chart. Okay. And there's only two elements here. One is the historical best offer and best bid. And the other are these volume dots. Okay. The volume that traded on that historical best bid and offer. Okay. Now, if you want the precise number, we can hover over this dot here and it gives us the date. Very precise time. This was on the ask here. There was four contracts at this time at this price level. And then the volume here was, this was for volume of one. Okay. So someone hit the market buy button for volume of one. Okay. That's it. It's as simple as that. And, but the insight here that you can get is, is pretty incredible. You can see how they lifted the offer here swept the book higher understanding just these small little things make a massive difference in understanding order flow. And in fact, let's zoom in here because we'll probably see more transactions here within each one here. And indeed we do. Okay. So actually you can see when I zoomed in here, we see that there's actually three transactions for each for volume of one. Okay. So let's zoom back out though and notice how well we're down here at macro. I mean, sorry, at microsecond levels. Okay. So we're looking at millions of seconds. Right. We can even look at billions of seconds. We can continue to zoom in here and get down into nanosecond level like this. Okay. We're showing every single market event that took place and plotting it on book map. Okay. So that's what you're getting with book map a very, very precise data and every single market event. And now as I zoom back out, look what we do though just visually graphically. We have aggregated this into a bigger dot and it shows volume of three. Okay. As I hover over this one, this one's for volume of two. Okay. There might be two transactions in there are when I zoom in. Okay. So anyway, now as I zoom back out, notice how bigger dots. Okay. And let's actually bring up the size a little bit. So bigger dots, there's just more volume. Okay. Like this one down here, this one's for volume of 12. Now this one actually is kind of interesting because it shows that there's both buying and selling within that area. Okay. It's a pie chart. Okay. So what happened there was a flurry of activity very quickly and both buying and selling took place. So let's zoom in here though. And I'll show you though that we don't aggregate the data. Okay. So you can see exactly what occurred here. Okay. All at the same price level. You can see that the best bid and offer changed. And yet buying and selling all took place here at the same price level. Okay. As I zoom back out though, it gives us a neat pie display that shows the overall here about three quarters of that volume is aggressive buying. Okay. So that's, that's how we're displaying the volume and the benefits here in the way that we display the volume. Okay. Number one is you can see microstructural moves. Okay. You're not going to get that on your footprint chart. Your footprint chart is going to be aggregated within a bar timeframe. Okay. Or a bar rotation. It doesn't matter. It's still going to be aggregated within a bar. Okay. So you want to understand though these areas here in microstructure because they lead to bigger moves. And when you can start to understand that the buyers are in control here and they come back and we test here again, we found more buyers lift the offer and we break up above here looking for the next swing up here. Okay. To be tested. Now this is just that second element on the chart and understanding the volume is important. Okay. And the speeds of these moves as well. Okay. You're not going to see that in your footprint chart either. Okay. Now the, the, now this is great. It's great to see the volume. Okay. Very precisely displayed exactly when and where it traded and by whom and by and how much very precisely. Okay. So, but that's really only one side of what's going on here. Okay. There's so much more. And this is where book map is interesting because we're going to, we're going to turn on the heat map. Okay. And this is whole other side that happened outside of the transactions here that we want access to. Okay. And that's through that historical dome. Okay. The heat map. Okay. Now we're getting insight here. We turn that on. Let's turn off our candlestick chart. Okay. All right. Now, how does this help us? Okay. Well, you can see here, for example, they're starting to absorb. Looks like on the buy side here with very high liquidity here, this orange, orange and yellow lines. Again, orange and kind of red down here, they're starting to, it looks like a absorb in some of these areas. So we're starting to see, you know, on the bid here, there's some interest in buying. Okay. Well, that led to, you know, maybe exhausting out some of the buyers and finding, or sellers, I'm sorry, and starting to find some buyers. Okay. And they'll come back in and lift the offer up into some of the higher highs here. Okay. So anyway, let's understand how this is all derived here. Because that's important. It's all derived from the dome. Okay. Your depth of market. Okay. And all the insights that we're going to get here, well, we're going to go through that in detail in the advanced order flow webinar, but I can go over some of the more simpler or straightforward order flow phenomena. Okay. But let's define what the heat map is, because this is where people get kind of a bit confused. Okay. It's really simple. It's really straightforward. Most of us are accustomed to the dome. Okay. Your depth of market. Okay. So this is what it looks like in book map here. Okay. Everything to the right of this vertical white line here is the current market. Okay. Now you can see the heat map is changing here. Okay. Let's zoom in a little bit more. Okay. Now you can see this is your best bid and offer here. Here's your price ladder for the NASDAQ. This is current price. Okay. This number is the last traded volume here. And then we're looking at the depth of market here. This is your dome, COB column, current order book. It's showing your depth of market on the offer. These are traders or contracts waiting to transact, providing liquidity at these price levels. Okay. They want to be sellers up here. Down here they want to be buyers and they're providing liquidity. This is the auction. Okay. This is the current auction and what's going on. Now note some of these changes that are just taking place now. So when these numeric values change, the contracts, they're either added or pulled. Okay. It's reflected here in this window. Okay. With the heat map. Okay. We'll see a change and it's changed in the heat map. Now, where it gets really interesting is we take that data and then it's recorded and transposed on the chart historically. Okay. So how does that help us? Well, let's zoom out. Okay. Now we can start to use the dome, not just for the current market, but we can start to use it on the higher time frames and start to understand the relationship of sellers up here with price and the aggressors, the buyers. Okay. And then the buyers on the bid down in some of these areas and how are they behaving? Okay. So now we're starting to get a really big picture and understanding of not only the current market, okay, but the historical market. Okay. So for example, why is price starting to reverse right now? Well, look at them. They traded up into these pretty high contracts up here. Okay. Looking at this 69, 66 area here. Okay. Well, the buyers ran into a lot of sellers willing to looks like stay in the book here. And let's zoom in here and let's just make sure. Okay. Yeah. A little bit of polling here, but 49 contracts are here. Okay. As you can see. And then what traded here is actually about 37 of those. They started to pull some of it, but some of it traded. Okay. And then very high contracts here, 85 here, as you can see in the, in the dome at the 69, 66 price level. Okay. And as I scroll forward, okay. Well, did that area trade? And here's our answer. Yes. Okay. This is real liquidity. These 86 contracts, they traded. Okay. We see 20 that traded here so far. Okay. And as we start to zoom back out, well, in the, in the end here, it looks like 84 of those traded. Okay. So it was 86 out of those 86, 84 traded. And that's fact. Okay. Now we understand and know that larger players were here. Okay. And they stayed in the book. This was real liquidity. They had the intent to trade. They are now sellers. Okay. And we came up actually one more price level here. Okay. And traded into this higher liquidity up here, about 50 contracts. And it looks like about 40 of those traded here. Some of it was pulled. No doubt. No doubt about it. But you can see some of it traded too. Okay. Right. So now we've seen larger players starting to absorb a lot of the price activity on the buy side. The buyers hid into this liquidity. They lifted the offer up into this area here and traded in the transactions took place. And they absorbed once twice thrice. Okay. Now they didn't absorb. And, you know, in total, all of it on the way up. It does look like they did appear because there was no more, I mean, price reversed at this point. Okay. There was no more buyers. Okay. The buyers are exhausted out here. Look at the best offer actually one tick higher and not one contract traded up here. Okay. So now we know larger players are positioned on the sell side here. Okay. We get one more test up above and find some buyers. Okay. Lift the offer a bit higher. And actually that looks like some more absorption here took place as well, or at least transactions were met between the high liquidity here. It was about 36 contracts at this point. And it looks like about 51 traded. Okay. All right. And anyway, we found the buyers and the sellers and transactions took place. But we didn't really find any more follow through on buyers. Well, why is that? Well, I mean, they just, they, there weren't more buyers. If there were, they would have lifted the offer higher up into this area up here where there's even higher liquidity. Right. Instead, we didn't find the buyers. We start to rotate back down. And well, what happens in some of these areas? Well, we start to find some sellers. Okay. And look at little micro structural areas here that are broken. Here's the sweep of the book to the high side. Okay. Swept the book. They took all the liquidity from some of these price levels. And then actually they didn't support it again here. No more buyers. Sellers came in and sellers really came in down here. Right. And so they're pulling that market down. Okay. So as you can see how important it is to understand the reaction or relationship between those that are providing high liquidity and the, the aggressors, how much buying or selling pressure there is in the marketplace. Okay. When you start to piece some of these things together, you can start to anticipate the price movement based on what you see. Okay. And that's what we do in the advanced webinars. So anyway, it's time to go. Let me know if you guys have any questions. And if you're signed up for the advanced webinar, we'll see you over there. Okay. Thanks.