to have him here at Nagarajas today. So thank you so much for coming. Pleasure. Thank you. Right. That's pretty much it, really. Hey, thanks so much. It's my first time at Bangal Jaya. I'm very happy to. I thought you were not going to stand this way. You need to sing for us. I have like 30 minutes to do something which is bordering technical, like at least creating the surface to kind of stay relevant. So thanks so much. So big fan of his. My superheroes are a little different from yours. That picture is actually scaled down to fit the screen. A full-size picture would actually need a PBR Gold Plus screen. But hey, that's how it is. So no worry. Just that you know me. For the people who have not met me, my name is Harish. I take out front of this stuff at this company called Mintha.com, which is trying to make you buy T-shirts, shows, trousers, more personal things so that I can keep my job. I also moonwalk with a brand called Aadu. And I tweet at Sibram. And most importantly, I'm a very nice guy. Did you say you moonwalk with Aadu? Yeah. Is that a bad thing? No, I don't moonlight. I moonwalk with it. Well, this is my talk today. Set of random falling objects. Not really. How many of us are working with Canvas here? Cool. How many of us are wanting to work with Canvas? All of us would be wanting to work with Canvas. Whether or not we want to work with a different issue. When you ask the question, everybody wants to do whatever. So people working with Canvas, a quick question.  Read, read, read. JavaScript. JavaScript APIs. Just JavaScript APIs. Read some 3JS stuff. So that's pretty awesome. 3JS is pretty cool. Anybody doing anything else? PaperJS? Oh, thank you. I might talk. I was just trying to pimp EselJS today in the stock. Two reasons. I have been using that ever since it was sort of conceptualized and implemented by Grand Scala. I used to work for Adobe at that point in time. I also had an opportunity to contribute to some part of EselJS in its early times, which I had to detach off. So I have like 25 minutes with you guys, and hence what I intend to do. So for people who are already working with Canvas, I'm just trying to introduce a new framework called EselJS to you guys, if in case you're not working with it. For the people who are not working with Canvas, I will actually put a couple of points forward in terms of why the stock is more about EselJS and less about Canvas in itself, and then we can get started. So before I started working with HTML5, per se, I came from Adobe Flash as a runtime, and I'm sort of used to working with drawing surfaces, as you understand, like stuff onto which you draw pixels. But what was interesting to me when I started working with Canvas is that one find I was thrown with, literally, what is a Canvas? Like you can only draw pixels into it, and everything subsequent to that that is drawn into it is just their pixels. So very simple things. What I used to be very familiar with was I have three shapes, and to be able to click each one of them without having to write a lot of code, suddenly became a lot of code. Because Canvas only gets an event at Canvas level. Then you actually go and dig what pixel is behind your mouse, and then understand what that is, and so on and so forth. So for me, who was pampered by having a display object based on a kind of like flash, I found that counter-intuitive. I found it difficult to work with. That's when I started looking at this framework called, I actually started with Paper.js, and if somebody has seen that, it's a nice little compositing based library, which also does a bit of Canvas, a bit of SVG, so on and so forth. Then I sort of bumped into Esel.js. It's actually now a collection of frameworks called create.js. So it has got Esel.js, preload.js, sound.js, and so well, so that's the deal. And so today, here's what I'm trying to do. So I just cooked up this demo. This is something for the folks who came to my JS food talk in Bangalore. I see a bunch of family faces, but how many of us were at my talk at JS food last year? You have seen this. So unfortunately, it's going to be sort of a re-run for you as we've already seen this, but for the benefit of the larger audience here, I'm going to re-run some of my talk. So this demo is about building a funny, functional, sometimes addictive game using Canvas, ground up, right in front of your eyes, in the next training. I'm not going to run through code. Nor am I going to say, this is what I did, and so on and so forth.  And the aim is not to teach you Canvas programming. Canvas programming is a whole lot more than what this trivial demo is about, but I think it should be a good start point for you to start looking at pre-JS as a library, isn't JS as a library, and how do you program with that?  So you can just keep busting them. I'm trying to write a Facebook variant of this by replacing those faces with faces of people whom I don't like. And I think it is going to be pretty addictive. I've only identified the people whom I'm going to act with, and also have some sound and assorted effects to it. But to kind of maintain the political correctness of a user group meeting, I've just changed to faces that sort of look like the people whom I dislike. So that's the deal. So somebody from the audience, this is something which I always ask for the fun of it, and also to kind of keep time sanity. Sometimes the audience have to keep time for me. And you're the organized. I don't trust you. Somebody in front of me, I'm just kidding. Yeah, so we should be done with this in 20 minutes, like building a ground up, following all the orders of engagement. I'm going to code this whole thing up, but I'm not going to code things that don't make any sense. For example, if there is a pre-constructed array of objects, I'm not going to type it out for you guys just to prove that I know how to create an array. No, I'm not going to do that. I'm only going to write sensible code. So if that's too bad, that's too bad. So and secondly, whoever is keeping my time, if I'm scratching my head, or if I'm fiddling with my laptop, or if I'm generally looking, wondering what life that turns, time doesn't count. You will count only the time that I'm actually writing code over here. Like sometimes the map just decides to crash, or the monitor kind of goes off, that doesn't count. So the 20 minutes that I'm kind of trying to promise you guys is the real coding time that I have. Any questions? No questions? Sure. Fair. Awesome. So let's get started. So who is keeping time for me? Barbara, are you keeping time for me? Are you keeping time for me? Yeah.  We are starting at, what time is it now? 12 o'clock 3. 12 o'clock 3. And what time do I have to finish? 12 o'clock 3. 12 o'clock 23. Oh, it's going to be rough. But let's do this. OK, I practiced this a bunch of times. So I have a backup which is open on the right-hand side of my sublime text, if in case I screw up, then I have the holistic escape route of copy pasting and saying, hey, I still wrote it, just that I wrote it a little earlier. So that is my fallback plan. So let's get started. At the back, can you see the screen? You cannot see the screen. I'm going to pull it up a little, but not a whole lot. Let's go to the back. All right. Otherwise, you could just move it just a little forward. Right. OK, so this is my stub. Now, I have nothing here. I have just three libraries linked, preload.js, easel.js, and sound.js. I'm not doing any sound today. I have three variables declared. I have a window on load, and I have a canvas. That's all I have. And we're going to build. And we'll assume that I have all the assets that I need for this, like the images and stuff I already have. Right? OK. So speaking about create.js, easel.js framework, the biggest benefit that it gives is it actually brings you a display object-based programming. When you say display object-based programming, every entity that you add to the canvas are now event-aware. You can control them as separate entities, as opposed to just deadpixes. So if you add an image to the canvas using create.js, it typically means that that image can be accessed by an identifier, typically like an ID. But in reality, when you're using straight canvases, you cannot do that. You have to figure out a way to find out what that is. So that is the primary value proposition of having a nested display object structure where you can actually have access to the elements that you're adding onto your canvas. So let's get started. So something very rudimentary, let's say. I'll type fast if there are any typographic errors. Please point me out so that I can fix them quickly. Then waiting for me to realize it myself. Any questions? No questions. So now here's what I'm going to do. So I'm going to do something like this. This line is important. So stage is a class that create.js gives you. So what stage does is very simple. You have a canvas. You assign the canvas to the stage now that deadpixel surface now becomes programming-aware, like becomes display object-aware. So whatever you are now adding onto the stage can be accessed back. Again, if you don't do that, you're only accessing pixels, but when you actually do this assignment, you can now get started by doing stuff on the things that you're going to add on it. And all of us know how animations or how canvas works. It has got a frames per second concept, and it actually works on how many times do you take to actually be able to do animations and movements in it. So there is a class called ticker. And I'm going to just set a frames per second to 60. And say, what does this do? Basically, we are just passing the window object to the ticker, so it understands how many times the window object is actually giving you a frame per second. So EasterJS internally implements this add listener and points that back into a method called tick, which is already defined over there. So it is at the framework level. So whenever you do that, it always redirects back to a method called tick. And when I do a console log here, you should be able to see that this should be OK. Let's just run this. It is running what happened. So now we are going to get started. So now what do we have to do? This demo, this game is simple. It has got a bunch of phases that appear at random places, and then they start dropping. And then there is a set of clicking them and making them drop faster. So to get started, we'll first add those things. So if you can see the tick runs for crazy amounts of times, it's already at some 1,800. So you don't want to have 1,800 items on your screen at any point in time. You want to control as to how many you want to show. So what I'm doing over here is just programming. So something which is not really specific to Canvas, I'm not going to explain what I'm doing. If you have a question, you can just ask. So I'm just going to do this. Create a random number and say if r is greater than 0.4, this is a good enough condition to have. So that you're actually controlling the number of items that you're going to have on screen. Let's say create a new image, set image.src. Fine, I'm just setting the source to that. Now what we need to do is, this image now needs to be added to the stage. So we create. See, bitmap is a class that ESL.js gives you. So you create an instance of bitmap and pass the image reference to it. And finally do a, I was curious as to how it ran earlier. You have to call a stage.update inside your tick to be able to kind of update what is being added. So till here, any questions in terms of what we have done? We just create an image. You need a map or write a script? Maybe not. Anyways, let us for, okay. Let us. Are you going to be adding the same character to the stage every tick? See, I want to keep this less about good coding standards and more about how you do with cameras.  So don't tell me you didn't put a semicolon or your variable name condition is bad. Accusation taken, but I don't have time for refactoring it right now. Let us just run this and see what's happening. Okay, there is that face of my friend appearing there, but the thing is it is not interesting yet because it's appearing one on top of the other. Correct, now there are two things that we need to do. One is to make it kind of scattered over the screen. The second one is to give a perception that they're actually happening in sort of, with some sort of a depth perception. See, this is all silly feelings in a demo, okay. You don't really need them all to learn this, but I generally want to look like something who has admission in detail. I really don't. But I'm just going to do that. So some very trivial math we are going to do, right? So we'll say, let the Y be always at 10 and let's say, how much do you want this to? I constructed some algorithm here, man, which actually keeps the answers good. My width is 800 pixels. So I'm just creating a random position, right? So I'm just saying math dot random and yeah, it's just a random calculation. So you don't have to fret too much about what this is. Let's see what this looks like when we run this, time check, please. That's good. So it's now appearing in random positions. Now the next step that we need to do is that they actually have to appear with some sort of a depth perception. And I'm going to cheat that by actually scaling this element. So I can just do something like, right?  So you can actually scale an element, a bitmap that is added onto your screen. So this should start looking a lot nicer now. Well, better. So now this has got issues. If I keep leaving it like this, it's going to add bottomless number of elements on the screen and very soon, any great browser of the world is going to die. So we're going to change that in some time. Like at the moment, let's just assume that we'll very quickly refresh before we get into that situation. Now, let me ask this question, very simple physics math question. When we say an object moves from one point to the other, what is exactly happening? It's just a translate, right? Either next or Y translates. And translation has two parameters that drives it. One is the position A at T of one and the position B at T of n, correct? And what the difference between two objects that I'm translating is a parameter called speed or velocity. So these are things that we need to remember whenever we're moving things. Whatever is the speed, it moves from T of one to T of n at that speed and the translation happens. So even for falling objects, if you actually have same velocity for all of them, it will look as if like one frame is entirely moving down. Like now you actually drew a picture with all of them at random locations, they all moved in there. That's what the perception will get. So to be able to crack that, we'll assign random velocities to the individual objects and kind of drop them at those velocities, fair enough. So let us create a, I want it to be always greater than one and multiply it by a factor. There's just some random calculation you should not necessarily bother about this and simply say y is dot well x. You're not translating in the x direction, you're only translating in the y direction. So, fine. So now we have assigned a velocity to this. Now what we need to do is we need to make them drop down. For them to drop down, so right now what we're doing is we are just adding each of these viruses that we're creating to the stage. And sometimes there are two things that you can do. One is go to the stage itself, just got a property culturally. To find out what you have added, you can iterate through the children of the stage instead of find out what are the references you have. Or sometimes it is better to persist them yourselves. So I'm a big fan of not chugging the display object to find out elements. I tend to keep them as references. Now we can argue back and forth on this in terms of what is more valuable in performance. And I tend to think that if you're actually maintaining it differently, you have the extra risk of actually having to maintain your display object and your array parity. So, but the benefit is you have like a smaller data structure to work with. The flip side of reading the entire display object tree is that it will have elements that you don't need as well. So you're actually writing additional code to skim out things that you need. So it is a programming choice that individually we make based on what performance we want to achieve. So in this particular case, considering a performance is not for an private drive home, I'm going to keep that separate as an array. And I'm just gonna, I think I've declared it already. So I have an array called viruses here. I'll simply do this. I come over here and say, so I have a reference to each virus that I create keeps getting pushed onto this array. Now, what is the next step? We need to start dropping them down, which is sort of very simple. I'll tell you. Just going backwards on the array and you'll say virus. Any questions here? None, right? You just get access to a particular virus and you'll say virus.y plus equal to, can you tell me? Simple mathematics. So they should start dropping the objects now already. Who thinks it will work? I think it will work. Wow, look at that. There you go. So you already have stuff dropping at different velocities, but there is a small screw up here, right? Can you see that small dot? It gives the game. I can't hit that. Sometimes it would just happen to be the guy whom I hit the most. Right, so I want a certain hit area that I always need. This is just programming sanity, but what the hell? So I'm just gonna do here. Not the most intelligent program, but never mind, it just works. So that I always have a face to hit. Right? You can anyways do a random number, so it will be important. That's true. That's true. So in this particular case, considering the fact that I'm going the quick and dirty and want to win in 20 minutes more, this is the best I can do, yeah. So maintaining reference to the objects by yourself. There's one specific con with it that I even, yeah, especially when you're doing animation of thousands of objects. Memory leaks. Like even here, you basically have a leak.  You know, when the viruses drop off, there are two things that I will do. Hopefully in this talk, one is when the height, when the y position of a virus crosses 500 pixels, I will knock him off the display object and I'll get the reference and knock him off the item. Oh, okay, awesome. Okay, yeah. So I will have to do that. So like I said, you don't have to do that. If you don't persist it separately, you just have to say if the elements, y is greater than 500, you'll simply say stage.removeChild, that. But the only problem here is sometimes the stage might have elements like my score, like background and things like that. Then my iteration will have to go through unnecessary children of the canvas, which at times can get complicated because right now it is like a straightforward hierarchy. There was no composites. And if you had more time, you would actually make another hierarchy. Correct, so I would build composites, right? This whole thing could be a composite and just working within a composite. So those are the stuff that we have to do. But here at least, I will clear it out, at least for the, to start with. And the point is very pertinent. If you don't maintain your equality between the array that you're creating as well as the stage that you have, A, you will have memory leaks, B, you're not working with the right objects anymore. Because what you think was the object in the past will never be the object because you've knocked it off the stage anyways. So good points to remember. Where am I in terms of time?  Hang on. So, see, but that five minutes does not count all this cross conversations that I've been having. So it's not five minutes, right? Nevermind. So the next step is to actually click the virus and make it die, right? So, I'm gonna code fast now.  Takes an event and say virus is equal to event. You're putting pressure on me, man. Very simple, right? I click, I get the event of talking to the SNM property. JavaScript is beautiful. You can just randomly assign properties and not just add any objects. So I just add a property called a skill. Now, all I need to do is come here in this for loop and say if virus.is is killed, what should I do? I just increase the velocity of that so that every increment, it actually goes faster, which gives you the illusion of this thing falling down. Somebody give me the sound effect, man. I didn't get time. I got more or less where I wanted to. How, now I'm on the stretch time. How much more time do I have? I can take my own time. You know I'm in business right now, right? I got something working. Yeah, sure. The click is like pixel perfect? The clicker's pixel perfect, primarily because what ESLJ does is whenever you create a bitmap instance, it actually creates what is called a bounding box based on the number of pixels you're drawing into that particular area. So when you're creating a bitmap, so it actually has this imaginary bounding box which it believes the space between the colored pixels and the clear pixels. So if you're clicking within the bounding box, you'll get pixel perfect click. Now there's a catch over here. If you're using transparent PNGs which does not have, you know, which has got clear pixels, those clicks will not dispatch because clear pixels travel through to the canvas. So you'd use that for example to have custom hit areas and stuff like that. So basically if you wanted to collision detection for instance for this thing, you should probably depend upon the bounding boxes. So but typically what happens is it actually flattens it out to bitmap. So majority of times what you actually get is all colored pixels. You don't necessarily have situations where you have like, you know, pass through pixels and create by default when you're working. Unless you're using your own methodology to actually kind of create those elements which has got clear pixels in them. Create.js typically creates painted pixels.  So your clicks should more or less be- I think we can add an image listener which will, you know, use the get image data and check for the- Yeah, so the only problem here is get image data would actually mean you're actually going and digging into the bitmap object and finding out what you need to do. You might not want to do that in reality. And yeah, so the hit area is generally pretty low. So if one object is overlapping on the other, only the top object gets a click at the moment. Because how are you registering it? You're registering it per instance. So if the depth of that instance is on top, it is not gonna pass. So that is not something that you have tried. So it is basically bubbling. If you're actually saying this thing actually bubbles all the way up and kind of you have to figure out who's behind it and track it as well. The framework in itself does not tell you what is behind. So when you see him in my code, I have no logic which tells who is behind, who and how many of them are on stage.  But in reality, if you're trying to do stuff like what you're mentioning, like collision detection, heat testing, like multiple event pass-throughs, we would have to code it for them. So just taking a step back, ECLJS is a lot about abstracting out what used to be code pixels into a more display object, what we used to call as a movie clip based programming model. Like it is like, you know, you have specific identifiable instances of shapes that you're adding to the canvas and be able to act on them, see. And that is one of the primary, you know, plus points I saw when I got started to it. But ECLJS itself is a monster. It does like really crazy things. You know, transforms, it can do like, you know, pixel blurs, it can do kind of pixel modifications and a hue saturation controls. It can literally do like, you know, pixel level mathematics to do crazy stuff. I will probably take like a two minutes extra to kind of show you a couple of demos that he has put up on the ECLJS page itself. It kind of tells you what more you can do with it. And this is probably the real lowest common denominator of what you can do with ECLJS. It sort of begins here. And the other extreme of what you can do with it is actually pretty crazy. You can really do mad stuff. So with the liberty of another three, four minutes, can I just, you know, I will, so let me, let me ask you this question. If all of us are kind of familiar with it, I will not quote it up, I'll just show it. How many of us are working with CSS Sprites? Okay, how many of us know what it is? All of us do. CSS Sprites, Sprite Sheets. Well, okay, so one feature which I really like about ECLJS is that it actually allows you to use Sprite Sheets to actually do animations within the context of Canvas. I think it's pretty cool. So what you can typically do is you have like a Sprite Sheet. You can animate that within the context of this. So for the people who do not know a Sprite Sheet, you go to like, let's say yahoo.com and right click on an image and say show image. It will, instead of showing a single image, it likely show up a big image with images placed one on the side of the other.  It's utility is not about animations. Utility is that kind of allows you to batch images into one and kind of ship them only once when you're hitting the server so that you don't have iterative server calls to bring your images which enhances the performance of your paid. But then when CSS3 came through and I didn't do that. I didn't do that. Yeah, so that's, so I mean it's a fairly known concept so I'm not gonna tell you what that is. So one good thing that Grant has done in ECLJS is that he has kind of figured out a way to incorporate Sprite Sheets to animate stuff within the run. So if you see my, the demo that I already cooked up, you can see that those respective objects animate. You see that there? So those are done using a Sprite Sheet implementation.  You should probably trust me that I know how to do it. No, they're not. So GIFs are about multiple frames at authoring time. So basically they have frame information when you actually create them. But canvas is a bitmap drawing surface. So what you draw into canvas is pixels.  Only the first frame gets drawn. So that is why it's not, and we're all in an unfashionable world if we actually say GIFs. This room is actually pretty kind. So you should. Certain other nefarious quarters you can do. If you had to do that, then you would have to take a GIF, write your own logic to extract the frames and then stick it together. Because for pixel drawing surfaces, only the first frame is drawn in the main is muted. And somebody in Brigadier told me GIFs are old school. And you look very unfashionable when you say GIFs. So that's the reason I generally try to, I generally try to give the impression that I'm always on the top end. Sorry, what's that? Cool. No, if GIFs are awesome, they're awesome. I mean, I'm not taking sides. I just said what I heard. I think we are missing web development with application development. Generally, we are using building websites and applications wherein more of the GIFs are there. But for such an application, we store so much totally canvas away. That's true, man. But I somehow still get worried with all those jumping monkeys, which are almost always GIFs. Today's sound very opinionated. This is my sprite sheet. So it's more or less a Flickr effect, right? Flickr book. Which one? Flickr book. Flickr book. Flickr book. Yeah. Do that. Yeah, that's how sprites work, yeah. So that's excited me how sprites work. So I'm not that good at creating these things, but luckily for me, I still own a copy of Flash Pro. Despite having less of a job from Adobe, I still have a copy of Flash Pro. So I just, I just... You want to strip that generates this. No, no, Flash Pro generally. You can actually create a tween animation using Flash Pro and say it's for us. You can't sprite off it. Yeah. Yeah, and I got pampered with certain stuff that Adobe puts forward, and this is one of them. And there are multiple spriting tools available. You don't necessarily have to... As a developer, which is the easier approach? Because when I saw the demo first, I assumed that there were three or four moving parts that you have code for each one. What are you saying that it's a sprite? Which one was easier for you? Since you have Flash experience, I'm guessing making something and just generating a sprite is faster. Generating a sprite with the right kind of tool. Like for example, using Flash Pro, generating a sprite is super easy because it's like one click. Like you actually... See, I'm sometimes hoping that, you know, I might never be able to draw the shape. This particular one I got my friend to draw it for me because it's a whole wide shape. And she just did a tween animation, like an classic tween, which is like... This thing just rotates. And I go to the library panel of Flash Pro and say export into sprite sheet. It just gave me that. So I think it's super awesome, but if you want more complex things, I think graphic designers have their way out in solving this. Other than that, I could have just... See, the other approach for doing this would have been, if it was just a spin. For the ones which are spinning, it's probably easy to just add the symbol and kind of increment the rotation property. But it does more than that. And if you see, this fellow does not rotate. He actually does something else. So when you have more detailing, sometimes you might have to work with sprite sheets. And I found... I'll just show you the code. Working with sprites is so easy in CrayJS. See, you just have to... See, I just cooked up this array. If you see there, there's an array called Sheets. I have multiple properties. I have an image reference. I have the Wittgenheide registration and registration by a number of frames. So I just have to create a sprite sheet object, which is, again, something that CrayJS provides. They can just look at the function. The load sprite sheets, I can just walk you through them. It's nothing. So you just create an image and pass a reference to a random image and then create a sprite sheet parameter property, which has got an image, the frames that you need to run with, and an animation that you need to do. So the animation here is... I'm calling it spin, but it is an animation that runs from frames 0 to a number of frames. So let's say the first image has 73 frames. It's going to run from 0 to 73. If the other one had 86, it's going to run from 0 to 86. And you can... And CrayJS abstracts out a method called go to and play. For anybody who came from the Flash world would remember that syntax go to and play is to kind of go back to a particular frame and play from there. So if you say go to and play spin, it's going to play from the 0th frame to 76th frame and then end up P2. So that is what has been done in this example. So if you see here, the code, everything that we wrote still remains the same, excepting here, see? Instead of saying why is there a new bitmap, you'll say new bitmap animation and pass a sprite sheet to it. And the remaining of your code sort of remains just as is. So that's pretty simple. And there are a couple of things that we need to see over here. See, one is what Sunil mentioned, like right now it is adding stuff and they're not getting cleared of your memory. So I'm not going to write that now, but always remember that if you're adding objects dynamically, you always want to clear them based on certain exit criteria. In this particular case, the exit is at crossing the Y boundary. In certain other cases, the exit could also be, and not just that, the exit could also be like a click. If instead of moving them down, you're actually popping it away or, so whatever it is, you need to know what your exit condition is and always clear out your display object area. If you are actually bombarding with a lot of content, then you're actually going to do another job. There's another concept that you want to apply in Canvas. How many of us know what is bitmap caching? How many of us know what caching is?  It's not everything, but it is something. Bitmap caching, for instance, what Create.js does is, if you have the same sprite or same sort of bitmap that is getting added multiple times into your Canvas, Create.js has a way to actually cache those number of pixels and re-perfect it, instead of actually having to draw them again and again. So what happens is when you actually cache them, it actually gets put into the GPU and runs on GPU, which gives you really fast performance. He has a very, very nice demo on the Create.js site. I'll just quickly show you that. So this is the site. You guys can kind of go take a look at the Create.js. So if you look at this, can you see this is like, this is crazy, right? This is pretty similar to what I'm trying to do. There are random elements being added. And you can see it's running at 26 frames per second. So there's a small bit of checkbox that is put on top, right? Enable caching. So it runs at 47 frames per second. It's pretty cool. The only caveat, as he calls out is Safari 6, which apparently has a different way of treating this, but pretty much across everything, i.e. Firefox, all of them kind of do 47 or more. In certain cases, i.e. do a lot more than, the newer versions of i.e. is doing a lot more than Chrome or Firefox in certain scenarios. I think that is Indian exploring. See, what are you going to do, what are you going to do? The MS evangelist in the back is going to kick you out of this room. MS evangelist will not kick me out of this room. She'll be happier I'm saying this. No, no, no, like, like, yeah. Raj, you can buy me a beer later. Right, so, yeah, it's, and finally the most amazing things that most of us developers like and our companies don't is that this is free open source, available to use whatever way you like. See, most of us want to work for companies that pay you pretty high, but BRs just don't want to buy anything. That's the software engineer. Yeah, which is the way I am also, and I have had this dual life of wanting to work for a company which clearly wants to sell tools and make money to a company which is making you buy T-shirts. There's commercials at some point in time. So never mind, but this, let's not come with a commercial standpoint. It's free open source, pretty well supported, and it is pretty inactive development, and there are a lot of high-end sponsors there which is in the silhouette. I don't want to pimp those companies, so make what you know of those logos on top. Use a general knowledge. Those are logos that you know. One is Raj's company. One is my ex-company, right? So there are quite a few good sponsors for this project, so he is, Grant is gonna keep building good stuff on this library and you'll have fair liability. And along with ESLJS, this is another library. Somebody mentioned D3. D3 is a pretty cool library as well. It does a lot of SVG stuff in addition to Canvas. The other one that I sort of like. D3 is not necessarily for animation. D3 is not necessarily for animation. D3 is more with respect to do data visualization and kind of. For complete application, people generally use a combination of three and D3. So three is more for your 3D stuff, right? Something like that Mr. Doop's thing, you're right. Mr. Doop's thing. Yeah, so this is paper. It does little more mental things than, that it actually does path morphing and so on. So there's like some really cool demos over here. I'm just throwing this out for you guys. This is pretty cool. I really like the way it works on the browsers. It's pretty amazing. How's the performance of SVG and Canvas? Usually SVG performs poorly compared to Canvas. It's subjective, right? Where are you running the SVG on? It has a lot of error. You were spoiled by class, actually. In SVG, tracking clips or things out, it is very easy. Correct. Can I look at this? I've done a bunch of stuff on SVG as well. So I did a project to compare between SVG and Canvas. I'll just quickly show you that. Both had its own caveats. So SVG, I used a framework called RafaelJX. So it sort of obfuscated a lot of things that I did not want to know about working with SVG. The only thing that I predominantly found a challenge in SVG is actually working with complex paths and kind of animating paths and things like that, which is kind of a little easier to do in a more display object-based model. But in terms of click-through and performance and so on and so forth, I sort of found both. I'll let you make the judgment yourself. So I'll just throw up in my... So this was last year, Google put out their Zeitgeist charts. I don't know if you remember, last year they did a really good job of putting out like a map-based thingie, like a 3D map. But the year before that had some really unreasonable visualizations. So let me just try and see a little bit. This is the last thing that I'll run. So I tried to recreate that to try and understand what it means to sort of... So this is SVG. So this is done entirely using Rafaal.js and SVG. And it works for me with fair amount of reliability. So here. So all those objects that you see, those isometric projections and so on and so forth, it's all, this is all done using Rafaal.js and SVG. So it sort of worked really well. At the same time, this is all Canvas. See, this I did in Canvas primarily because this extrapolation was really, this interpolation was hard to do in Rafaal at that moment. I didn't know enough Rafaal to pull that off. So this was easy to do in Canvas. You can see those line charts sort of animates along with the movement. And your background animates, there's a bunch of things that is running one on top of the other and works pretty smoothly. So this was the other thing. So I mean, I don't think the performance battle is an incorrectly pitched one. It's largely about which runtime are you working on? See, if you are saying like an older Android browser where there's patchy SVG support, and if you're actually choosing SVG, you're probably in the wrong direction, so. Can you say that again, please? I've been image-intensive. Oh, really? Oh, that's not cool, yeah. Yeah, I found Canvas hard to use for printing an image. Canvas hard to do for? Canvas hard to use for printing an image. Probably, yeah. So yeah, that's a good standpoint, right? So he has a use case where he generally found SVG to be the better option to go. So I would not take slides. I think there are things that you can do with SVG really well. And I've got an opportunity to work on a lot of SVG plus-plus features when I was in Ruby. I think it's pretty cool. But it's largely depending upon your own use case and your own requirement and your own interest in terms of how you want to program with SVG. So one obvious thing that I really like about SVG is the fact that, of course, the vector aspect is one. See, the one thing which I really miss in CSS animations at the moment, unless somebody else says polyfill it or something, see, I don't necessarily have the ability to do sequential eventing. See, I don't know how when the first animation finished and I want to trigger second and I want to trigger third and I want to trigger fourth. This is something which I find really hard if I'm actually doing direct CSS animations, unless I'm putting a JavaScript shim on top and kind of figuring it out.  It's still a fee, but if it really comes through, then that solves a lot of problems because it's inherently vector. You can actually do scaling, morphing, and whatnot, but you can actually do part morphing very easily. You have a tick morphing into a cross. It's like super duper simple to do if you're actually working with SVG. So typically stuff like morphing and all. So SVG definitely has its charm and value. It's universally applicable. It's every problem that canvas can solve and solve with SVG. At this moment, I don't want to comment. And that definitely gets into a space where we are taking sides and we're actually going through this. Now, the moment you get into particle systems or anywhere which is not a vector specifically, it's not a vector. Yeah, and one thing which I, which again, I like about canvas is its ability to actually crunch pixels, like if I'm actually doing, I don't know if I'm actually building.  I find them very easy to do with canvas. So I am unsure as to how SVG would help you do some of that. I have gaps in understanding. I'm not saying SVG can't do it. I'm probably not very sure. SVG has filters, and then there's the Adobe filter spec also for CSS, which should work on that. Which is correct, which is correct. So what happens is the Adobe's, the CSS filters that they're talking about, the CSS filter lab, so that is the other one, right? So I mean, one of the other experiments, right, it's talking about that, not necessarily trying to pimp my own work, but this is interesting. If you guys are interested to take this and kind of contribute to this, I'll be very happy that if somebody can. So it is on my GitHub. This is a plugin that I am building for folks who are working with JavaScript and who don't necessarily care about CSS. So this is all CSS filters, and you can actually work them through jQuery. So you can actually say stuff like, you rotate this. Yeah, so it is just jQuery. It's like a very thin library. It's about 4KB library that is there. It's just pretty rudimentary right now, but if anybody's interested in kind of taking this forward, I have stopped building this. I don't have time to spend on this one. You can even do like, you know, stacked effects, which is really hard to otherwise cook up using CSS. So you have hue rotate plus CPR. You can change stuff like this and you can even do, so this is one, you can do stuff like this. Now you can do a hue rotate animation. It rotates it and fires a complaint. You can do stuff like this and you can even do stacked. So you can do a CPR plus VR. And it actually follows the jQuery's syntax itself. It's calling the direct jQuery.animator. It's actually an extension on top of that. So basically you can do stuff like this, but CSS filters in itself is very, very speccy at the moment. Now there's stuff that you can do, there's stuff that you can do. So basically the question is about just blur, sand, you know, CPRs and race caves and all that, point taken. But how are you gonna do stuff like this? I still don't know. So I mean this is, it has got that whole HDR-ish thing that's happening. It actually is using a custom CSS filter which is separate on top of a DAV and then there's an alpha transpose put on top and things like that. So I don't, that's what I said. So I don't know. Probably you can crack this, but in Canvas I already know how I'm doing this. So with SVG I do not know how I'm doing this. So that's the reason why I still probably, it's interesting to point out. And I think that is the point. So probably, you know, maybe we'll be happy to hear you out in terms of how you went about that so that we can get a benefit from that. Now have you already spoken about that here? Have you already spoken about your work here, Mavi? You interesting to see. I significantly overshot, so I just want to stop here. I mean, I will be happy to take questions offline. I don't want to hijack the remaining proceedings. I'm right here. So find me, speak to me and thank you so much. And that's me. Harish, you're our questioner. Thanks so much. So we're going to take a quick five minute break. In case you have to go to the bathroom and then we'll carry on with the second round of my flash talks. Thank you guys. Is there a space? Oh, no, no, it's okay, it's okay. No, no, no, it's completely cool. I thought if there was time, just a little bit. If you have speakers, then yeah, of course there will be. Next time I'll have something to do with it. Yeah, I'll do it.


Many quizzical looks during the break. I'm not real confident about this one, Mike. He's not feeling great. The Delta Dental, can you guess this tight, Mike Rable? I think Delta Dental is going to win. I think they're going to win this week. I think that is Jeremy McNichols. Jeremy McNichols, that's an interesting guess. I would go with Marcus Johnson. Obvious choice, he had a good game. I was going to say Nate Davis, so I wouldn't have had. No, I knew it wasn't Nate Davis. OK, so let's talk about Marcus Johnson for a second. Marcus Johnson is a guy that the Titans pick up right before the playoff game last year. You re-signed him in the offseason. It's a really good camp and then gets hurt. Yeah, a frustrating camp. He did do some really cool things. He was only here for a short time. But we all thought he had a really nice skill set and had a good offseason, had a really good camp, and put himself in a position to try to help this football team. And unfortunately, he got hurt. He took a lot of reps. There was a lot of guys out, and he was always out there. And that's why he probably got better. It's why he gained the trust of the quarterback. And so now we brought him back. And he practiced last week, and then we were able to bring him up this week, and started, and had some big conversions on third down, had a couple of catch and runs, and really had a good game for us. He had a couple of nice blocks.


Hi, welcome. Your course is leading organizational change and we are covering Unit 3 of your study guide and course in this video. Your course layout, Unit 3 is Organizational Failures in Change Management. Here are the unit learning outcomes. Interpret Failures of Change Management to better understand change in the organization. Examine the reasons organizations fail to change. Compare ways to motivate employees through the change process. Analyze how to avoid change process failures in a given organization. Differentiate the positive and negative effect leadership has on the change process. And why are learning outcomes important? So they're tied back to everything in your course whether it's your course materials, the content in your course, any test questions, case studies, any assessments, all of those are tied to your learning outcomes. And from those learning outcomes, we have your topic overviews for this video. So we will review business change failures, ask the question why do businesses fail to change, ways to motivate employees to implement change, and then how to avoid those change process failures, and then any leadership effects on the change process. Here are your vocabulary words for your study guide for Unit 3. And we're gonna be covering these terms. All right, so interpret Failures of Change Management. One of the things, there's many questions that you can ask when you're looking at why companies might fail and why it's important to study those failures. So what can we learn from them? Why do companies fail to change? Why is it important to study change management failures? And then also how can understanding the failures in change management help your organization? And then how can you determine what failures have occurred in change management implementation? So researching and studying business failures of the change management process is needed so that these failures would not be repeated. There's also quite a few learning lessons that can be learned when we understand why companies, not only why do companies fail, but why do companies fail to change once they know that they have some issues. So there's numerous examples of the big stores that have failed to change, and then their business failed as a result of that. So as a manager, you must understand why failing to change has affected the business overall. So some of these examples that were mentioned in your course of some big companies that have failed, they include Blockbuster Video, Hummer, Sears, Kodak, but there are really thousands, if not more, examples of small local stores that have failed as well. So refusing to change will affect the business in some way, and as a result, the business most likely will not survive. Today, change is really inevitable. With technology, everything is changing so quickly that businesses are almost forced to change, kind of look at their processes, and then make a plan for change. So understanding the failures gives you a better idea about why that change is so important to your business. Blockbuster, and of the perfect example, and they had any many reasons for failing, but Blockbuster was at one point a place that everybody went to get their DVDs or even before that, their VHS or both, and it was the place that you went to get before streaming that we went to get movies, and so one of their problems, Netflix, they actually at one point had a chance to buy and purchase Netflix, and they didn't, mostly because they didn't have the money at the time that it happened, and I'm sure now looking back on it, some, you know, the CEO, the former CEO is probably like, oh my gosh, we should have just figured out a way to come up with the money, but they failed because they didn't have the money to change, they failed because they really weren't thinking about the future that had such a successful business, and then everything started to change around them, and when streaming came out, I mean, now we have so many streaming options that it's not just Netflix anymore, there's a lot of competition out there for Netflix, but Blockbuster is not one of them. They did try, they had their own streaming service for a while, it wasn't obviously as popular, but it is a perfect example of why it's important to change. There is actually one Blockbuster store left.  All right, so examine the reasons organizations fail to change. So why is it important to understand why a company may not want to change? What will happen if a company doesn't change? Companies may be afraid to change, it's another kind of consider, they may be fearful of the change, and then as a leader, what can you do to encourage change? So how might an organization fail to implement change? Why is it important to understand an organization's failure to change? And then how can you use change failure information to help your company now? So just some of the questions that we can answer in this video. So being uncomfortable with change is personal, and it does appear in business. You'll have some business leaders that are very comfortable with the way that things have always been done and kind of the status quo. And then when change is required, they may need to be dragged through that change. So if a leader is incapable of change and making progress, they may be responsible for the business failure. As a manager, it is important to be able to be open to change and then seek it out when you can see that your business has become stagnant. So great leaders are constantly looking for ways to improve or make processes better. So employees will follow the lead of that leader, and if a leader resists change, the employees will as well. So a leader can keep the business running smoothly by remaining open to change and then seeking out new, more efficient ways of conducting business. By resisting change, a business will eventually fail. Another example of this would be Sears. Sears had been around for more than 100 years, and it was for the longest time, it was a catalog-based business before we had the internet, before we had streaming videos. They had, you had the Sears catalog, and I think it started out as like a farming community and equipment and that kind of thing. And over those 100 years, they really did figure out ways to change and kind of adapt. Once they realized that there was a market out there for general merchandise, those catalogs became extremely important. The catalogs were mailed to your house. There was a big Sears catalog that included everything. There was a special Christmas catalog in the 70s, and I wanna say 80s, maybe even 90s, that came from Sears.  They had their own appliance brand that they sold. They sold some other appliance brands, but they really just couldn't adjust to the world moving into an online format. And it was very difficult. I remember it was almost painful, I think, to watch for a lot of people had Sears in their lives for decades. And there were other similar stores like Sears, Montgomery Ward, that was a popular department store for a while. And it was amazing to see this company that survived for over 100 years and had stores and their catalog business, and they just couldn't adjust to the online environment. And that is why it's important. It's why we need to adjust and change otherwise in this day and age, if you can't adjust and change, then your business becomes obsolete. Compare ways to motivate employees through the change process. So we've talked about this several times, you're gonna hear me say it over and over again. It's extremely important to get the buy-in of all of the employees when you're trying to make a change. If you don't have their buy-in, the change will not happen. So why do employees need to be motivated to change? How can employees be motivated to change? And then what will happen if they do not want to change, which we've discussed? And then any success stories, so it's really kind of check in with employees daily, tell them about success stories. They not see it on their level as these changes are being made. So it is important to maybe discuss that with them and then encourage them through the change. So you wanna encourage those employees who come to you with ideas who are more innovative than others. And even if you don't end up implementing one or two of their ideas, it's still really important to encourage them to continue to bring ideas. So all of these things are in kind of discuss in relation to change. So employees, they're the main reason that change is either effective or ineffective. If employees don't understand the change or why it's needed, they're going to resist it. And the intended change process will fail. So it's important also to motivate these employees through the entire change process. And as a leader, you're going to have to check in with employees throughout the various stages of change. If you sense any resistance, you're going to have to address that issue right away. If one employee is resistant, that can easily spread to other employees, making the job of implementing change almost impossible. And then each change model has a stage in which employees are informed of the change and why they're needed. So once employees understand why the change is needed, they may be more likely to help initiate the change and continue that process until it's been implemented. So motivating employees might include some small steps just to ensure that everybody hears about those things. So those success stories, checking in with them daily and then demonstrating the visible company growth to them. So as a leader, it's important for you to focus on your team, check in with each team member daily to see how that change is going and then any issues that you might, that any issues they might have and then what you can do to remove those roadblocks as soon as possible while you're working out the change process. Analyze how to avoid change process failures. So some of the questions we might ask, so how can we analyze the change process failures? Why is it important to analyze those process failures? And then how can leaders make a difference in the change process? So if you understand what might go wrong, then you might have a better chance of turning that around immediately. That's one of the reasons that we would analyze any process failures that have happened either at your own company or with similar companies or even companies that have already gone out of business. So leaders can make effective changes and help to successfully lead employees through the change process. One of the key reasons that the change process will fail is employee buy-in. So as we've discussed previously, if they do not, the changes will not occur. So it's important to monitor the various stages of change and then ensure that they're implemented properly. And if you do see something that might be a red flag when it comes to an employee making those changes, it's really important to just get in there right away and acknowledge that there's an issue and deal with it. The longer that you let it go, the worse that that might become. Another reason that change process failures occur is if the implementation is not well suited to the business. So in the last video for unit two, we talked about how important it is to make sure that your change model is matched with your type of business. So it is really important to make sure that not only that that is reviewed, but also your company culture. So you have to take that into consideration when you're looking at how to make these changes. So if the change process is improperly implemented, then change will fail. As a leader, it's important to monitor the change process and employee responses and report any issues immediately to resolve them. If you delay, then the change process may fail. Hello, quote. So don't wait for the right opportunity, create it. It's interesting. Change is an interesting thing because for the most part in our personal lives, we want to change. We get excited when we hear stories about people who have changed jobs. Maybe they're making more money. Maybe they've lost 30 pounds. We get really excited when we hear stories about personal change. Or maybe somebody who comes from the wrong side of the tracks, goes to school, gets a bachelor's degree, or something gets accepted into an Ivy League school. We love stories like that. But when it comes to business, we're a lot more resistant. And one of the things to consider is that we've all been at businesses where they've tried to implement change and it didn't go very well. It didn't go very well at all. Maybe people left. Maybe people were like, I don't want to deal with you know, and they left the company or they just gave up. They stopped complaining. They just gave up and kept their head down and did their job, you know, and went home every night. Once you've been through a bad experience of change in the workplace, you're really hesitant when you hear them talking about, oh, we're gonna have these changes. It tends to make people freeze up a little bit. Oh, don't wait for the right opportunity. Create the right opportunity. So some of these things that we talk about in this course are really, they can be difficult to understand, especially if in our personal lives we're excited about change or we're excited when we hear about our friends and family members who have experienced change in a positive way. So kind of an interesting. All right, so in conclusion, what we talked about in this video, so interpreted failures of change management to better understand change in the organization. We looked at examining the reasons organizations fail to change. We compared some ways to motivate employees through the change process. We analyzed how to avoid change process failures in an organization and differentiated the positive and negative effect that leadership has on the change process. And then what's next? So the next video is going to be on unit four of your course and it's on talent management and facilitating change. Thank you.


And this is a rhyme I think I learned at a mother goose workshop. I think Jane Cobb was teaching at the time So you probably all know it and I think it's a Caribbean song perhaps So it's just Kamalukkasi, so it's a finger rhyme Kamalukkasi Here's my mama Kamalukkasi Here's my papa Kamalukkasi my brother tall Sister baby I love them all


Thank you Tish. And thanks everybody for giving us the opportunity to share this work that is called operational models for delivering healthcare in insecure settings. They want to show the strategy and the intermittent preventive treatment of children for malaria plus vaccination in Central African Republic. This work is based in one of the big challenges that MSF continues having. And as yesterday was mentioned in different presentations. How to assure access in insecure settings. So just let me go through the factors that took us to arrive to these two strategies. The one shot and the intermittent preventive treatment for children. We have security challenges for sure and we have as well in Central Africa health system constraints. Those health system constraints are taking that our teams cannot access to the population or that the population cannot access to the health services or structures. This population is as well affected by by displacement. The displacement can be different of different magnitude and different frequency. At the same time in Central Africa we have one of the big diseases that is malaria that is affecting many populations and is the first cause of morbidity and mortality for children under five years. And last we had as well that since 2013 the coverage of vaccination has been weak due to the disruption of the system. So this map show us the places where MSF works at the moment. These experiences have been developed in three of the projects we are which are Cabo, Batangafo and Endele. Just to illustrate a bit what is our usual way of working in Central Africa I want to use the chart of Cabo where we are going to see that we have the star in the Cabo village that is the city of the of the district and we have then the peripheral areas know the part of Mayansido, Basara and Farazala. So in each one of these places there are structures which MSF supports with the different components that we develop in the program that goes from pediatrics, maternity, HIV, tuberculosis, etc. Our teams support in terms of training and as well in supplies and constant presence when possible. Usually we do movements from Cabo to the periphery to do this this job as well. At the same time we have a community network through the health workers which who support the activities that we develop not to complement in terms of information and as well tracing of some patients. When we have problems of access usually is mainly in the periphery that makes that we cannot access to the periphery or the population cannot access to the town. But then what is it what is what we call the one shot and what is the intermittent preventing treatment. Let's start by the one shot. The one shot is a movement that we do quickly to the periphery when we have the opportunity. We offer the package for the most vulnerable population that we said that is going to be the children and the five the women especially as the pregnant women and if needed we are going to offer as well mental health. When we talk about the intermittent preventive treatment for children and vaccination we are talking about administration of Arte Sunat Amalia Kind for prevention of malaria, vaccination with a measles vaccine, festivator thing that for pneumococcal and pentavalent and the distribution of mosquito nets. How was it done? The one shot experience we developed in 2015 in Batangafu as an alternative for the different incidents and problems that we had in the periphery. We did or the way that it was done was through the movement to the periphery when we had the security window and using always the harm reduction principle. We was needed as well the information to the population through the health promoters that we will arrive that date. For that we needed always to keep good contact with our networking. In the case of the intermittent preventive treatment and vaccination it was done in Cabo Batangafu and Endele in 2015 at the real level and the city level. The alternative is an alternative during the high malaria transmission period and use the massive vaccination campaign format to deliver the service. For this is very important to use the community and city session in order to transmit properly the importance to participate in this campaign and how it's going to be done because we set up different sites in the periphery. So what were the results? In Batangafu in 2015 through the one shot activity we managed to do 18 movements to the periphery. In those 18 movements we covered 3,300 children with vaccination. We did 50 unit counseling sessions in mental health in five points where it was considered due as well to the incidence of the situation at that moment. 2,400 children were screened for malnutrition and those who were found with the criteria to be included in the program were therefore included. 150 cases of malaria were treated and 45 reproductive health consultations were done. 30 of them were for a pregnancy. In the case of the intermittent preventive treatment for malaria and vaccination, four rounds were done. In Averash for the four rounds we got coverage for the artesunate amodicine administration of 86 percent over the 15,300 kids that were targeted as an estimation and we distributed more than 48,000 mosquito nets. In the case of the vaccination coverage we used for the presentation measles and we got 81 percent of coverage. We refer as well some malaria cases complicated. Although we cannot go so much in detail in this presentation I just want to show with this graphic something that we keep still for analysis that we have seen a reduction in the number of cases of malaria that have been in the external consultation. In the green line is the data for 2015 and the red and blue are for 2014 and 13. The arrows are just showing the moment where we did the campaign of the intermittent preventive treatment. As conclusions we can say that for us the two strategies have allowed us not to have a delivery of service to the population that otherwise with our usual model we have not been able on that period. Then we have as well that the sexual reproductive health was a missed opportunity taking in consideration that children are taken by moms, sisters, aunties to these kind of activities and that most probably we could have been done more but the reasons given by the teams is the volume perception. The coverage of vaccination although was not fully measured we have noticed that we were able to increase more than 10 times the number of children that get in contact with the service compared with the previous year and that these strategies could be considered and be adopted wherever there is need. The challenges that we face that we continue facing for in these activities is the data registration, the difficulty to know exactly when we could do that movement because it depends as well of the security window, the way to include better these sexual reproductive health elements and the think capacity in terms of flexibility and way to adapt and react on time to adjust for the moment. The limitations for the work that I'm presenting today are mainly related to the data collection because as I said before we miss better data to present the vaccination coverage. We realize that could be interesting as well to have an individual database to see how many times the kid has contact with these kind of activities and make a better follow-up for the child and the difficulty that we had to launch the coverage survey that was planned for last year but due to security issues we couldn't do it on time. What are the next steps for us? Well we can and we are in the line of continuum to look for alternatives for this kind of context and specifically how better we could adjust and deliver the service to see as well that these strategies could be as well a need or a possibility for other emergency contexts to avoid missed opportunities in sexual reproductive health. As minimum we would like to introduce and already the teams are doing this year the vaccination of women during these strategies and to maintain the catch up vaccination as a basic in the component due to the positive results in the calendar for the kids. To improve of course the data collection system. So as acknowledgement of course we have the population and staff from Batangafo, Cabo and Endele and today I would like to mention as well in memory of our colleague from MSF Hola who was killed this week in one of these incidents a driver in Bosangua project and of course to all of you thanks for your attention.


Bum bum bum bum bum. We're live. What's up guys? Back with another random show. Haven't done this in a while, so it should be fun guys. So basically the format today is kind of Q&A. I've done these ones in the past. So if you have a question for me, just put it in the chat box. I will be monitoring that as we speak. And I won't be answering any prediction questions and et cetera, et cetera. So real good questions guys. Okay, here we go. Hola, como estás? I love my poetry, or she loves my poetry. Thank you. What do I think about the price dropping? Welcome to a marketplace. Prices go up, prices go down. That's it. Do I think the crypto is crashing? No, so okay, seems to be on top of mine for everybody. Like any marketplace guys, this is no different than what has happened in the past or non-crypto, my hair is crazy. Oh my God, I need to haircut. Whether it's crypto or non-crypto, this is part of the marketplace, the economy of a certain marketplace. And it's manipulated obviously like any marketplace. And in the crypto space, you have a couple of ways to manipulate it because it's so small. Number one is psychology. A lot of people fall for FUD, fear, uncertainty and doubt. And basically combined that with, let's say the herd mentality or the sheet mentality combined that with what's happening with exchanges and miners and certain government regulations around the world, you get what happens today. Is this bad? No, it's healthy. It's part of an ecosystem. What I find more scarier is when a market place can grow by billions of billions of dollars within a couple of days, that scares me. So I'm a firm believer in sustainable organic growth that equals long-term sustainability and accountability. So this dropping down is okay in my eyes. People who actually believe in projects is a great opportunity for you to go in and invest in the projects that you love and that you support. As opposed to just screaming, oh my God, this is Armageddon or crypto-geddon as they say. Okay, so that answers that. Next question, any new ICOs that I'm interested in? Good question. I don't know. I haven't really been paying attention because I don't really invest in ICOs that much when I did a couple of them. I don't know, no, not really. I've been too busy building my company Blockheeks. So if I do find one, I'll let you guys know. It's not, okay, so it's not like I don't do ICOs. Like any startup, I think many are, best way to say this, they don't need a token. And they don't need a blockchain. And the problem they're trying to solve is not really a problem. That's not to say I don't like ICOs. I think ICOs are actually revolutionary. I think we're gonna have an evolutionary process of how they evolve and how they're utilized and how token distributions are created, how crypto token economics are understood and executed. And I'm quite excited for the future of ICOs. I think they give a lot of option to both investors and founders. And it's in the incentive models line up both for investor founders and users of an ecosystem. Do I think it'll keep on going? Yeah, I think this will be, this whole crypto temporary bear market will be done by in no time, a couple of days guys. Is this a correction or a crash? Well, what's the difference between a correction or a crash? Amir, am I open to the idea of cryptocurrency falling and becoming something of the past? Yeah, many of these cryptos will become ghosts. You won't see them anymore. That's a guarantee. Pretty sure it's a guarantee. Amir, I recently started a YouTube, SteamMid and DTube account. I'd love to interview, is it possible? Yeah, email me, amirablockgeeks.com, we'll see, yeah. What's my opinion on Hashgraph? I don't know. So people keep on asking me on Hashgraph. It's a private code. I have no idea. It's not like you can audit it or look at it. What do I feel about? We just had a guide on BlockGeeks. Check it out. Go to BlockGeeks. Publish a brand new EOS guide, EOS guide. And that's our opinion. I think the more competition in an ecosystem is really healthy. So all the power to EOS. Once I gotta go back, this is a good question from Robert. Why aren't there more people expressing concerns about Ethereum in the large attack surface on Turing complete virtual machine provides? I love smart contracts, but I can see more skepticism. Great question. The reason why is because people just don't know about that, simple as that. One time I was actually talking to a mining operation and I asked him about proof of stake models coming in the future, such as the delegated proof of stake for EOS and Ethereum, et cetera. They actually blinked twice and had new idea what I was talking about. This was a mining facility. I'm like, okay. Question about Monero, great dev team. Use cases are interesting. I like them. They're great. What is the last psychedelic you took? Ah, micro dose of silly cybin. Funny enough, if you guys are in Tulum, I'm going to Tulum with Dennis McKennan at Crypto Psychedelic, so check out cryptosecadelic.com. I'll be there February 2nd till the 5th. Tax question, Amir, can you please recommend who do you use to get taxes? Oh, that's not my ballpark. Tax to your legal counsel and tax attorney where you physically live and how you're set up. That's way out of my ballpark. Adidas beats, what do you think 60-something percent of the value of ETH transactions going through privacy mechanisms? What do I think about them? Hmm, nothing to really think about that. Maybe if you refrained the question a little bit better, I would give you a more clear answer. Is Neo rising because the ICO is being released on the platform? Well, guys, listen. The reason why anything rises is a multitude of factors. You can't just justify something increasing by say one variable, right? You have exchanges that control prices. You have miners that control prices. You have whale groups, pump and dump groups that control prices. You have OTC counters that control prices. And this is an organic organism. Corresponds and ebbs and flows. So there's not one thing that you can say, hey, it's because of that, that increased. But remember, human beings were very irrational creatures. So I always find it odd when the price is going up, people tend to vibe. When the price is going down, people tend to sell. I'm like, whoa, that doesn't make sense. It should be the opposite. The Ethereum network, good question from Smith. Ethereum network is quite congested at the moment. Any projects you particularly like that are tackling the scaling issue we're facing, counterfactual, non-token guys, counterfactual, which is state channels, generalized state channels. Well, Liam Horne and Jeff Coleman, that's really interesting. Plasma, the Plasma, that's really interesting. Cosmos, so that's Ethan Buckman. That's a very interesting project. They're here in our office. Those are really interesting ones, those three. And for Plasma, I'm pretty sure Misi Go is utilizing that. They'll be the first scale use case of it. What is BlockGeek, so what is my role? Founder and BlockGeek's Trains developers online. How much money have lost today? None, I lose nothing. Why do people want to know how much money I lost? Silly question. Raiden, oh yeah, I forgot about Raiden. Yeah, I still don't know why they really need a token, but okay, how many years will the crypto market remain bullish? I don't know, it's really, really hard to tell. If you look at the S&P, it's been bullish for the last like 100 years or something, or 80 years. Just look at the S&P, it's ridiculous. It's the longest bull market ever. What's my portfolio? Crypto, crypto, crypto and more crypto. Ayota Future, you believe in it? A lot of issues, a lot of very smart engineers that I know have a lot of issues with it. Let me put it that way. Do I think atomic swaps are going to affect Litecoin? I think atomic swaps are very interesting technology and I think we're gonna have a lot of use case for it and a lot of utility for atomic swaps in like a year or two. What do I think of Tonebase? I don't know the guy really. I met him once at a conference that said hello. That's pretty much it, so, hmm, seems nice. EOS is reinvesting a billion dollars in new projects thoughts. EOS is competing against Ethereum and they want to attract devs and they want to attract companies to build on top of them so they will market. No different than any other company competing against any other company is you market and you brand yourself and you attract the right people. Welcome to Business 101. How do I educate myself in this space? I just talk to people that I know. That's a good question. Twitter is actually a good source. If you make a good Twitter list and follow people, I'm blessed enough to have many bright minds here in our office and Toronto is a center point in the blockchain space so physically speaking there's a lot of very smart people in our city. So proximity is important but for the most part Twitter is a really good resource. Do I think DAG is a future of Bitcoin scaling? We don't know yet. I actually wanna see how Lightning Network is deployed. It's a very interesting scaling solution. Who to follow on Twitter then? I don't know, there's so many. Who is your favorite Twitter followers for crypto? Oh, I got a bunch. Chris Brunski is good. Brunski, sorry. Follow Vitalik. Joy Krug is good. I'm just top of my mind. Ari Paul. Yeah, there's a bunch of other ones but I'm not really good with names. John McAfee, yeah, he's doing his thing. That's a classic pump and dump. So tell people exactly what you like.  Chris, what would I do if I lose 100% of my investment? I don't know, I don't care. I've lost investments in the past. Who cares, move on. You learn from your mistakes, right? Warren Buffett has a saying, a smart man learns from his mistakes, a wise man learns from others and he also has another investment rule. First rule of investing is don't lose your money. Second rule is referred to rule number one. So you always want to hedge and protect your downside. It's very foolish of people to put all their eggs in one basket.  I highly recommend you guys read the book, Principles by Ray Dalio. Shrooms, I've done shrooms before. Would you recommend DMT? DMT is interesting. It's not like Aya. It's hard for me to recommend. I don't, it really does depend on who you are and what you want to achieve and what's your purpose of it. If you have a calling for it, if you have that year and to explore yourself a little bit deeper to really understand your psyche, then sure, try it out. But I'm a firm believer in having a proper shaman in your presence to guide you through the experience. Am I a smoker by any chance? No, I don't smoke. I used to smoke cigarettes 12 years ago. So how do I diversify in crypto? I don't invest in crypto then. That's how you diversify.  You leave crypto. You have a small, okay, so if you're looking at portfolio guys, and listen, I'm not a professional investor. I don't invest for people. I don't have any fiducia responsibility, right? If you look at any investment thesis and Ray Dalio talks about this and Bridgewater Report, it is all weather portfolio. Like if you're looking at, say, 100% your money, you have a small allocation, let's say in crypto. He doesn't say this specifically, but I'm saying his model. You have a small allocation crypto. You have another allocation in long-term safety holds, whether that is mutual fund, index fund, REITs, whatever it may be. You have another allocation in, I don't know, stocks. You have another allocation in something else. It's up to you, right? But at the end of the day, you're diversifying between different asset classes. That's what I'm talking about. Not diversifying between crypto. There's no diversification between crypto. Not yet, that is. What will it take for crypto to go mainstream? More time, that's it. What do I think about Kin? So they left Ethereum, which I knew they're gonna do, and they're supposed to go to Stellar, and they just left Stellar, I think. So I don't know what they're doing. What do I think about Steemen? I think Steemen as a first-generation pioneering platform is phenomenal. Does it have issues? Yes, it does have a lot of issues, but all the power to them for what they've accomplished, I think there's many lessons to learn from it. Obviously people want to use it, but I think we're gonna see much better iterations on generation two and generation three models. Tron. Well, just go to Twitter and look up Juan, who is the founder of IPFS and Oslo Filecoin, and you'll see what Tron did. Do I think the crypto world will remain dependent on miners? Well, it depends on the consensus model they have. If it's a proof-of-work model, then yes, but systems like PufaStake for Ethereum that they want, pretty sure they want to launch this here, they're on Testnet right now. We'll see. Depos, Delicated PufaStake for EOS, they're switching over to virtual mining, so staking mechanisms. What's my view on forex trading? I do none, don't know much about it, so I have no idea, I can't really add value there. I don't actually, guys, I do zero crypto trading, I do zero trading whatsoever. I like building businesses, which would be better to learn Solidity or JavaScript. Actually, you need JavaScript to learn Solidity, so both. Is Google Auth safe? I think it's one of the best devices, believe it or not, for security, for your cell phone. Please, if you guys have like a two-factor text messaging on your phone, eliminate that right away. People can easily clone your phone, but they can't clone Google Auth. Have I looked up Maker? Yeah, Maker Die, so they have an interesting system. But then again, the system works in a closed system. They still have to test out a bunch of things, but for me, stablecoins, I find it hard to believe how they're gonna work on a market that's variable, meaning how they can control the variabilities for their token to be stable on exchange. That's what I still don't get. But let's say they are in a closed system. They have an interesting model where, let's say like Die, you have Die over here, and we have $1 of Die. Let's say you have to hedge maybe $2 of Ether, I'm just drawing something over here, and something called Peth, I believe, Peth, I don't know. Let's see, Ether's limited by two, and maybe you have to make like two Peth. So like Die in a nutshell is kind of like this, where let's say you want to have a stable Die, you actually have to stake your Ether. We can't stake one-to-one. So let's say Ether's like, I don't know, $1,000. So let's say you have to stake $2,000 of Ether to stabilize one Die. However, Ether is at the mercy of the market, right? What's going on? So let's say next day it's not worth $2,000 anymore, and it drops value in half, right? Obviously this isn't your collateral anymore to hedge against Die. So basically what they want to create is a temporary thing called Peth, right? So then Peth would come in, and then Peth would be the temporary substitute for the Ether that is devalued, until then Ether goes back to the original value as collateral. And once Ether is original value, say $2,000 for one stable Die, that two Peth, or whatever number you want to put arbitrarily, speaking, gets burned away, they burn the Peth, right? So that's kind of the model in a nutshell, give or take, when it comes to make or die. I met the team, interesting team. Stable coins are interesting. I don't know, for me it's hard for me to give you an opinion about it. I have to see them actually used for something, and at the mercy of the ecosystem, and actually test it out, and see actually how it's utilized. Blockheed's courses, good question. We are ramping up, we hire two more teachers, we're hiring another four teachers in March, we're finalizing a series A, so we're ramping up the courses as fast as possible. We're just, oh look at my hair, it's going crazy. We're trying to just make the courses, as you mentioned, as high quality as possible. Okay, next question from Happy Wolf in the Forest. Good name. Do you believe that every smart contract token on Ethereum should be audited for, yeah, every contract, if it's responsible for holding money, should be audited, yes. Taxes in crypto, Canada, a couple of gains tax, so it's considered an asset, like real estate. A good question, what I've been reading lately, actually this book, actually rereading. I haven't really bought too many books this year. So this book is really good. If you guys like marketing and this one right here, this is a really good book, these two. This one's really good. Like if you're into like wordsmithing and if you have to do a bunch of copy and emailing stuff, this is really good. Also understanding psychology, they're both really good psychological books, but this one's amazing, so for any marketing nerds out there. I mean, do I watch boxing? Yes, sometimes. Lemachenko is one of my favorite fighters. Guys, footwork is crazy. Oh my God, oh my God. Insane, insane. Question, so one second, this is a good question. If I was 25 against him, 32, so if I was 25 again, and I had made, is this 10 million dollars or a million dollars? One, two, I'm counting as zeros. One, two, three, a million dollars. I made a million dollars in crypto or if I had a million dollars in crypto and always wanted to start your own business line, would you continue working in a job in your passion about or build a business?  If you're not passionate about anything, it was listen guys, listen guys.  Whether that is slowly looking for a new job or getting out of your relationship or getting out of whatever. I can't fathom people being depressed and hating what they do on a day-to-day basis. I can't fathom that. So I implore you if you are in that situation, do whatever you can to leave that situation. Raphael, what do I want to accomplish before I die? It's a good question. I used to want to leave a legacy, but that's all very egotistical. There's no need for me to leave a legacy. And then a lot of people say, well, I want to inspire people. I don't want to accomplish anything. As long as I'm happy and I'm adding value to people, and what I'm doing is improving the quality of people's lives and actually changing the world, then that's all I need. I don't need to leave anything or try to accomplish these crazy goals. As long as I do that from a day-to-day basis, I'm content and that keeps me very, very happy. Which wallet do I use? Ledger Nano, I don't really keep anything online. So, simple, awesome. There's a link below the video if anybody wants it. I love them. Questions, questions. Chris, did I back up my private keys? Yeah, if you go through a process for Ledger, you'll go through a process of storing your seed phrases. So yes. Okay, let me look at the questions. Any idea on requests, network token requests, requests. Is that that exchange? I forget, guys. I can't keep up with all this stuff. I'm gonna be honest with you.  Like, it's ridiculous. I don't have people of time for this. If you're building a business, you're working like 100 hours a week. I really don't have people of time to read up all this stuff. What's one of my favorite projects? ZeroX, Bankchain, Trubit. Those are just top of my mind. Platform plays, I like people actually creating other platforms and becoming competitors to each other. So the big platform plays, whether that is EOS, Neo, Waves, Wantom, what else? Yeah, there's probably other ones, but I like these platform plays. I like people to challenge each other and push the boundaries of what's possible. All right, guys, I'm gonna take, or maybe I'm gonna wait for one final question. What is my favorite book of all time? Anything by Joe Campbell. And also, Shanta Ram. That's a really good book. All right, guys, I'm out. Always a pleasure. I'll try to do these a little bit more. And hopefully my new office next time or Shisei Studio, finally.


Hi guys, do you know some of us we are in this Gulf countries but we've never seen our QIDs? I know you must be in the same situation, you've worked in that company for almost one year or even eight months, but you've never seen what you call your QID. By the way if it's your first time you come across each other, remember to subscribe and give me a subscribe, by the way don't forget to like and share the video. Yes, let us try to talk about what we call the sponsor, work with the sponsorship and we talk about the QID and some of the companies.  I know most of you must be in those kind of life situations, you are out there many. Yes, this is a lot of use or this point of it all to happen. What can you do if your sponsor does not give you a QID? Yes, most of the times I keep on telling people you have the right, yes there are rights that we have according to the law. There is where you need to play it cool or is where you need to play it in a 50% percent for you to survive in this Gulf country. We talk about the residence permit or we talk about the ideas. My best advice will be for kind of scenarios or for kind of things have got slow or people have got to meet with. I think most of them like around 30% I get to talk to. They are working in the companies but you do not even have ideas. They done the medical, they did all the medicals, they passed the medicals, they are working in the company, they do not have their QID, they are being paid salary every end of the month, they are given accommodation, they are given housing. What incentive becomes in your mind in that kind of state? Yes, the first thing I will let you know, your sponsor has the QID. Because you cannot survive in the country to be in the country for more than that six months without a QID. So that sponsor has that QID. But he does not have to give you, does not want to give you the QID because of the hostility. Oh, what he sees around. Yes, we've been so unlucky to sometimes especially people who are coming from Africa that we are one person, we are one people that we are sometimes get to be impatient. So most of these employers in the Gulf countries are tentative again to learn. Or get to know how our collectalistics. And they definitely know that. This him or him not giving you the QID is just enough to protect you. He will get to money, we call it money. Which may be true to some, which may not be true to some. Yes, it is unsafe for you to be in Qatar without a QID. But it is too bad to be in Qatar without a sponsor. That is something that definitely need to understand. You can be in the country without a QID, but you have a sponsor. Or you are still under what you call a sponsor's custody. You are working in that company. You are getting accommodation in that company. You are being paid salary in that company. And that company knows that you are working and you are paid salary every end of the month. You are more safer than a person who is outside is not under anyone's custody. He does not have a QID. That person will be in overstate. He can be arrested and no one is going to cover up. Most of the time I tell people, if you don't need the QID, you may not push it out too much. You need to be a little bit patient and knowing how to push which kind of levels for you to follow, but not to jump levels. Because once most of the time these employers get to realize the kind of aversive behaviors that we tend to improve, they tend to eliminate you out of the company. They will terminate you or take you back to your country. So you end up losing the job and even lose focus on what plans that you had when you were coming to this country. So, yes, we may hold the QIDs, but let us not push so much. Yes, the law requires us to have the QID. And the reason that I have to let you know why you are still in that company and you still in that country or you still in that country, then you must be sure that your QIDs there is just that the employer does not want to give you to you, depending on that kind of situation that is available. Because you cannot say in the country for more than three months and you have no details and they cannot track of you because already your visa is yours. So the ID is there, but the employer does not want to give you that ID. So what do you need to do or what do you have to do? Your visa will not expire. Let the visa expire when you are still working for that employer. Let your QID expire and you are still working for that employer. It's not your fault. It is his fault. Once your ID expires and you are still under his custody, all the charges, all the extra fees on the charges will be bought by him not to pay up the charges. That is what I have to let you know. So long as this person is still paying you salary, he is giving you the accommodation, he knows you are working in your company, even if you are being arrested by police. Just give the mobile number of the human resource of that company or give the company address. Definitely they have the records within their systems. Unless you are telling me that you need so much to push, to pressure or to create all situations for the ID because you want to go out with the ID to do other businesses that are outside that are not related in the country. Then that's where the problem comes from. So don't create too much situations, especially in this period. It's not minute. They will get rid of you.  And if you don't exit the country, you will definitely begin filing what you call filing the case against you in metro. Yes, sometimes some people talk about what you call termination and you look at termination. Termination may be in a different way but remember what words are written in that termination. If these are words, the bad words are written in that termination that because of a passive behavior, don't disrespect, don't expect the new employer or the person much as you have the gross period of 30 days to look for a job. So the person will ask you to give us the termination. You get to read through the termination and it is all speaking what you call bad words against you.  So I think that will be the best option for you. It is to stay cold. Approach every situation in a very smart way. And let alone, they will give you the idea. That is what I have to let you. That is sharing it my own view because I've never stayed in a company for one full year and there's no idea for me. The next year, I did not know when even the first idea expired but I will go to work, come to see it, I will go shopping. I was even one time stopped by the police and when the police asked me, I told them my employer and I gave them the number of my human resource. They put in the system, they put in the company, in the system, just a few minutes, they told me no, go. So unless you are going to use that idea to do what you call immoro or to do activities that are not allowed in the country, then there's not so much time when you need to worry, especially in the situation where you have your target and you are still employed by the company, you are still paid and you are under company accommodation. Hope I've tried to share a little bit of my experience. You can pick out a few things, get that advice and see what is the better thing that you can do but don't create an hostile environment for that employer. He will get rid of you. Hope I've tried to share something for you. Thank you so much. See you again in the next video. Remember I'm next from the next question and I am next and from the MITIC Talk account I'm I am next and next question giving you all the updates. Thank you so much. See you again in the next video.