Hi, Hamel. You're muted. I said now I understand why you're looking up like this. I will move you down to my level. There we go. Alrighty. Hello, everybody. Hi, Wayne. How are you? Doing good. How are you doing? That feeling a little better today? Yeah.  I hardly ever get hay fever anymore because we've filled our house with air purifiers, which do a great job, but something got past them yesterday and I just, ah, so now I feel like a bit flat after a day of feeling bad. You know, the next day you kind of that.  Do you have any recommendations on air purifiers? I know there's like the Dyson Maldehyde ones and molecule and all this kind of stuff, but I haven't seen it in our community. Oh my God. Do I? Of course I do. Pray to tell. I'm all about air quality. So there's basically, if you Google for like, let me try to think. Oh yeah, CADR calculator. That tells you the clean air delivery rate that you'll need. Basically to get a certain number of air changes per hour, which is ACH. And like if you aim for, I don't know, like five to eight air changes per hour is being pretty good. Then you just type in your room size into one of those online CADR calculators, clean air delivery rate calculators, and it'll tell you what CADR you need. So that is just a case of buying an air purifier that has that CADR and a HIPAA filter. It's like it couldn't be less high tech. It's literally like a piece of woven cloth, which with a fan that blows air through it. That's what an air purifier is. So I got this thing called the UHU. It's like a sense that I was interested to know air quality. And I discovered the CO2 was way too high just because closed windows and things. And so definitely that's easy, right? You have to ventilate. There's no solution other than scrubbing. Yeah. So I had, I went through that last year or the year before with the wildfires in California. And we had to close up all the windows and everything. And, you know, the process I was worried about, like, oh, is that going to be bad? And I bought a CO2 monitor and I discovered our CO2 was like 1800. You know, when the maximum recommended 800.  And so ever since then, I've been pretty careful about CO2. And, you know, that that's separate. Of course, you know, you can have perfectly good CO2, but still bad air quality if there's. One thing that I have is quite high TVOX that are unpredictable. Like, so I don't know if it's the sensor. I'm trying to figure out. Sorry. That's okay. I was just going to say, I don't know if anyone has any experience with that because I haven't been able to figure it out. I've been collecting data for months now and I currently figure out any clear correlation with the TVOX. But they sometimes are quite high and I suspect it affects, you know, sleep and things like that. So I do know there's some sensors on the market. So I just don't know if that's something you already looked into. Yeah. I mean, I've got air purifiers which have gas and particle sensors on them. And so then they have an auto mode where they'll go go harder if there's more stuff. I don't find they seem to correlate with my hay fever though, honestly. So my method of setting the fan level is if I start getting hay fever or turn it up. I don't find the auto seems to work that well for me. Okay. But yeah, that's definitely been a life changer for me is getting clean air in my house. That's basically the first bad hay fever I've had in like 18 months.  Anyhow, that's a bit of a side, interesting aside, nonetheless. Any interesting APL discoveries since yesterday or questions or anything else? That's fine. It's remarkably hard to do simple things. Yeah. Well, I mean, we just started, right? So that's. Yeah. Shockingly hard to load. How's that posted? I posted in the forums a basic kind of genetic algorithm, which was pretty cool, but I saw that. I think I think basic is a is not a fair description. I mean, compared to where at least I'm up to, it looks pretty sophisticated. I feel like there's a lot that can be done to transform it into a more kind of array based solution. Well, that'll be an interesting project for us all to try to help with. I think, yeah, I mean, we're not close to knowing all the glyphs that you're using yet. I think we've got some catching up to do. My goal is to implement Connect4. I've implemented it in so many languages and it seems a good enough problem that is non-trivial. Yeah. So like with an AI that you play against? Yeah. Yeah. Just mini-max kind of implementation. There's a good gaggle competition on that one going on since a while, which is fun. Then we could try slotting in a genetic algorithm to try to optimize it as well. That'd be cool. Yes. But just like the simple, the board and simple. Yeah. How to best represent the array of the board is already hard. Yeah. I'm not even at a point of thinking about doing anything yet. Oh, I just pressed the wrong button. I just had a question from the topic about, oh, sorry. Okay. Oh, I was just going to say, I spent a lot of time the last day trying to figure out how to load images in the APL just to get the pixel values. It was a lot harder. No. No, and I asked on the Discord if there was any kind of beginner friendly ways to load it. And I got a lot of resources that I had no luck deciphering. Was that on the APL Discord? Yeah. I saw a dialogue conference that they're having coming up that this is a hot topic that they're going to discuss. Image processing? Yeah. Awesome. I wanted to ask, we'd be talking a lot about complex numbers, which are super cool. I noticed they're supported in Torch and PyTorch. Is that deep learning uses? Oh, yes. What is that? Absolutely. Yeah. I mean, apart from anything else, there are an input format for audio, for example. We would often represent as magnitude and phase. And we don't normally have to worry about it, but you can optimize convolutions using Fourier transforms and using complex representation. That's kind of handled for us by Cudi and N nowadays. But yeah, inputs and outputs as complex numbers is certainly a thing. And also if you've got layers that represent kind of more like, you know, the activations you hope might kind of represent something from your domain. They might be represented well as complex numbers. You might have loss functions based on that. Cool. Yeah. But the only time I've used them in PyTorch is for audio. But I know other folks use them for other things. I also saw that Adam, who actually works at dialogue, and I think he's the guy in a red cast who said he's like used APL his whole life, answered some of our questions. Okay. So once, okay. So if you use, I'm on Mac, not on Windows. But on Windows, once you've removed some docked Windows, you can click session save. You can right click on the language bar and hide caption. Once you've got boxing on, you can save your session. And yes, I've already started in the forum to get backticks with the in-browser backticks space. So that was good to get Adam to answer some of our questions. And then the other thing I wanted to mention is that Wasim did some really nice notes, which I finally got a note around to reading. And so I actually highly recommend them. So they're linked from the lesson one forum. So thanks for doing that, Wasim. Am I pronouncing your name right? Yep. Cool. Where is that name from? You're in South Africa, right? So funny enough, I'm in Sydney at the moment. No way. My parents, but I'm originally from South Africa. And the name is Arabic. Cool. Welcome to Australia. Better time zone for you. How long before? Until end of next month, actually. It's the most long time. Great. Yeah. If you say hi in the forum, if you want to meet up with any fast AI people, I'm sure there's a bunch of people in Sydney. Yeah, these are great notes. Thank you so much. I love that you've got the juggling notation. Had you come across juggling notation before we discussed it? No, not at all. It's interesting, isn't it? It's like a game changing, apparently. And Aaron Hughes PhD. I don't know how you pronounce this name. Serada, you might know. Do you know how you pronounce this? I guess this is a Chinese name. I mean, I know it's not Pinyin, but it's... No, you don't know. Okay. I thought for APL today... Oh, good. There's a link here. Thank you. By the way, for those of you who hadn't noticed, at least when I remember or when Serada reminds me, I click on the make a wiki, which means that anybody can click edit on these posts. And so thank you for those of you who have been adding stuff to them. I'm thinking like in terms of stuff that's going to help us understand more of the documentation and do more things. I think there's two main things I wanted to cover today, which is left arrow and row. And basically, do they call it left arrow? They do. Okay, cool. So left arrow, which is left square bracket, is used to assign names to variables. So A is three. So obviously in a lot of languages, we would use equals for that. But, you know, a statement like X equals X plus one is not a mathematically same statement. So I'm glad APL does not use equals to mean that. So in other languages, we have to say equals equals to mean that. And I know this is something, you know, the kids I teach found quite confusing when we're doing Python. It's like it's a very strange meaning of equals. So you can absolutely do that. You know, if you've got something called X, you can rebind it to its previous value plus one. I mean, let's try it. A plus one. Okay. And if you add a plus sign before that A, a plus A arrow, A plus one, it'll actually print it out for you as well. Just save your line. I mean, that makes sense, doesn't it, right? Because we learnt that monadic plus is conjugate. Now that won't work for a complex number because it will actually give you the conjugate. But yeah, this is going to return the conjugate of everything to the right. So assignment is returning the assigned value and then taking the conjugate of it or as a result print it out. I think this might be better. Left tack. That's, because that's actually always monadic function same. So if I replace this with that. And I think you can also, when you start nesting these assignments, these assignments can be, you could create a new variable as part of, you can create A is left arrow. B plus one, A plus one. So you can actually nest them. I think if you do left arrow and then the box, I forget what it's called. Assign it in the box. This quad, which is, is that an L there? Yes. So I think if you assign to that. That's what they do with the dogs usually. The mnemonic is you're kind of like saving to the screen. Got it. So that's a special thing to assign to. Yeah. A lot of the IO operations are handled by quad. Uh-huh. Great. Now the other interesting thing, which is happening, is that Isaac has started creating a website for the study group, which is not quite up and running yet. Did you do the settings pages, the GitHub pages, the GitHub pages branch and all that? Yeah. I think we could just probably do that now. So let me, while I remember to get four. And then, yeah, we should be. So for those of you that don't know, GitHub has a very nice feature called GitHub pages, which basically turns a repo into a website. Um, and to use it, you basically go to pages and you say source is this branch. And in theory, I should now be able to click on this. And we may need to, oops. So I can check what's going on by switching to that branch. Okay. So there's definitely something there. I had to do a little after I set the settings and pages.  I've noticed that too. Okay. I'll remove one carriage return from here. And I can vaguely hear, how are you talking? I can vaguely hear your ghostly distant voice. Can you hear me now? Oh, there you are. That sounds great. Yeah. The site is up actually. It's ready. Fast AI.Github.io. Great. Something I like to do is when I go here is I copy this and then I go into settings and paste it here. And that way anybody on my page, including me, can jump to the website. I really wish they knew that automatically. Yeah. Look at that. Okay. Thank you, Isaac. This is beautiful. It all is. So, oh, this is cool. I didn't notice this thing here automatically pops open. So this is Quarto, which is what NB Dev2 will be using, which is full of neat tricks. Tags. So fast. Yeah. A lot of Quarto's commands are really well designed. Yeah. It really is. It's from RStudio, JJLA's company, and everything he's done has been great. He's hired a lot of great people as well. And he's been super helpful. I think we need some image of some APO thing. That'd be nice. It's a very cool image though. All right. Well, that was easy. Yeah. All the images are the Quarto default stuff. I see.  So the way, yeah, so the way this works is, as I say, basically the way I like to do it, and this works pretty easily, is if you have a branch called GHPages, then any HTML, et cetera, in that branch just ends up as your website. So here's index.html and that's the website. And now the way that's being created is there's a thing called GitHub Actions, which is basically something that will automatically run some code for you when you do things on GitHub. They're YAML files, of course, because all the cool kids use YAML files. And so you say, OK, well, when should this run? And oh, it's going to run when you push to master. OK, what happens when you push to master? Well, it's going to run a job called deploy, which will run on Ubuntu. So they've got like every major OS with lots of releases, check out this repo, set up Python, run this script, run this command, and then run this action, which is deployed to GitHub Pages. And I'm guessing, Isaac, you basically borrowed this from NDProcess. It looks similar. Yeah, yeah, I took this from your fast compiler repository and there's some minor changes, but roughly the same. Yeah, so fast Kaggle, I just did NDProcess new. NDProcess is the current name of what will be NDPdev2, hopefully within three weeks or so. And as you might have noticed, one nice thing about this is that we have a, why is this in a separate folder, by the way, Isaac? Was that necessary for some reason? I don't think so. That was the, that was how it, the default create a website Porto function did and I didn't change the structure. Anyway, so we've got a notebook here. And that notebook has been auto converted into a post, which is nice. So once you've got this set up, you can start authoring technical blog posts with notebooks really easily, particularly because if you hit dot, why is it not working? I thought if you hit dot. Yeah, it's meant to be dot, never mind. You can open up the notebook in github.dev, which is basically a slimmed down online version of VS Code. And so I can start editing straight away. I assume that they won't have the APL kernel installed, but I'm not sure. You can't, not sure you can even run Python, can you? But you can certainly edit the markdown and move cells around and stuff. Or you can just put markdown files in there. All right. So let's, in fact, let's go ahead and make this a bit simpler while we're here. Otherwise, I might go a bit crazy. So if we move all that into the parent, then we should be able to remove that. Yes, OK. Well, we can add this to this dot, getignore. So getignore is the file which contains a list of all the things that get will, by default, ignore. So dot, quarter. And if you end with a slash, it means it's a directory. OK. OK, so we should also add dot, i, pi, and v checkpoints to our getignore. And so then let's check. Then underscore, quarter.yaml is where it's kind of defined. So this doesn't need to be dot, slash anymore. Can you think of anything else that might need to change off the top of your head? Isaac. Thank you. Thank you, God, everything. What does freeze do? Is that different to execute false? I'm not sure, to be honest. I think that was a default setting. Check. All right, so get status will tell us how we're doing here. Oh, yeah. And I was going to add dot, i, pi, and v checkpoints. Dot, i, pi, and v checkpoints. OK, so I think that means it's not going to re-render or re-run file unless it's changed. OK, makes sense. All right, so we've renamed some things. We've deleted one thing. We've modified one thing. That sounds good. We haven't got this set up yet. That's fine.  So a will add everything that's not yet added. And m means I'm going to put a message right here. I thought I'd already done that. Oh, that's right. I added that one carriage return. And so now we should be able to go to bus.ai.github.io slash APL study. And it's still working. How about that? And so something that's useful to know is your GitHub actions when they run, oh, didn't work. They get logged here. And so when it breaks, you get across. OK, quite a render is going to change. So that's just no, that's not going to need anything anymore.  We don't have to like switch to the terminal.  And just edit it directly if we want to. And that by default uses the current directory, I believe we can just go ahead and commit that. And I don't know why we have architecture here. I think it defaults to X64, doesn't it, Hamel? Yes. Yeah, you don't need that. And then something else you don't need is this pipe is used in YAML to do a multi-line thing. And since we only have one line here, we don't need that either. But your screen has so much vertical space now. But it's split in half, Hamel, so it doesn't really. So I still have reason to complain about vertical space. Besides which, that's an important part of my personality. All right, so that worked. That's good. And so after it updates, then the GitHub pages bot will actually put that up on our website. Okay. So, great. So this is called a raw cell, which Isaac's created for us. And you can create a raw cell by pressing R during this menu. And things that are between three dashes are called YAML front matter. YAML is yet another markup language. And basically, this is much of key value things in YAML. And yeah, this is where we basically put the information we want. The title's actually not needed because it'll pick it up automatically from an H1. Or to put it another way the H1's needed because it'll come automatically from the title. Great. I suppose I should put my name here since I'm writing it at the moment. Something I find really helpful is I use this thing called collapsible headings. And so I just hit control shift left. And as you can see, it closes everything up. And then you can basically press right arrow to jump to the end of a section. Or to open a section. So that's left, right. And if you're already at the start of the section, you press left again, it'll close it up. I find it really helpful for zipping around quickly. As you can see. So we started talking about precedence yesterday. Yeah, I don't think there's too much more to say about precedence. Maybe we'll create a section called like expressions of which part of that is about precedence. And then the other thing we put in here is about functions. Okay. So in Python, or indeed in math, in math, you would write a function like this. You'd say f of x is, you know, whatever, 2x, say. Or in Python, you would say define a function which takes x and it returns 2 times x. Or you could create a lambda in function. f is a function which takes x and returns 2x. So these are all ways you can define functions in math or these two are two ways you can define functions in Python. They all have something in common, which is that you're telling the reader in the case of math and the interpreter in the case of Python, what's the name of the thing that you're passing in? And you could pass in more than one thing. Right? APL is different.  So to create a function in APL, it's just assigning something to a symbol, right? So rather than saying, oh, I've got to turn my APL thingy on, which means I'm going to turn on my bookmark bar, which I thought I needed a shortcut key to, but I don't. Shift, command, E. Let's try that again. Command, shift, B. Oh, there we go. APL. All right, f. So we can assign a scalar or a list or the result of an expression with possibly various other functions in, right, whatever, or we can assign a function. And to create a function in APL, you use curly brackets. So curly brackets means this is a function. And then inside the function, you say what you want to do, and you don't have to name the parameters. They already have names. If you have one parameter, it's going to get called omega, which is w. So here's a times two function. And to pass the one parameter, you just check it on the right. Okay. What if you want to create a function called g, which does something times two plus something else, then a second parameter will always be called alpha. Now, the second parameter goes on the left. So this will be, this becomes omega. So it'll be four times two, which is eight. Plus three is 11. That's not right. Oh, sorry. It's going to be this. Sorry. This happens first. Yep. Yep. Thank you. So it'll be two plus three is five times four is 20. Okay. Great. As you can see, I'm still not thinking APL yet. That's, I think, all there is to know about functions at this stage until we get to operators. Actually, we should do operators first. Maybe. Do we? No, let's not. I think that's enough. So. What happened? We have more than two variable. Good luck. You don't. You can have zero. One or two. I guess like basically, I have a feeling it can do unpacking. It can. You can do some pattern matching. Yeah. So you could pass the list and then unpack it or destructuring as I think some people call it. I guess we should keep that here because that's actually quite interesting. Can you pass in the function above as to the equation function? Can you pass the function above? What do you mean? Can you put the F inside the G function? Oh, yeah. Absolutely. F and G are now like just the same as plus minus whatever. They're just APL functions that you can do whatever with. So yeah. So we could H is equal to two plus F of omega. So that's something that I like, right? Because all the APL glyphs, at least the ones that are functions, are either unary, monadic or binary, dyadic. And they always, you know, if they're monadic, the thing goes on the right. And if they're dyadic, then they're infix. And the functions you create are exactly the same. And you can create unicode function names if you want to. So you can create your own very APL-ish looking functions if you wish. D structuring assignment. Okay. So when we use the word array, we're using it to mean the same thing that NumPy calls arrays and that PyTorch calls tensors. So they're, you know, n-dimensional, regularly shaped bunches of things. And in PyTorch, we call the rank of a tensor the number of dimensions that it has. So a vector would be one-dimensional. The matrix would be two-dimensional. A scalar would be zero-dimensional. So it'd be helpful to know how to create things. So we know how to create scalars. You just type them in. We know how to create vectors. So rank one arrays. You type them with spaces. So something that's going to be helpful in explaining this will actually, first of all, be to learn about iota. You can also, as an earlier step, you might be, if you wanted to teach the row, you could, you can actually use the row to reshape and give it a one or a zero to broadcast it. Yeah. Yeah, absolutely. Okay. Yeah, let's do it that way. Thanks. Oh, we can just type it in. Let's just type it in. So let's just create something. And let's use our trick now that we've learned it. Okay. So display a list we assigned to A. And we're going to have to do this backwards, but that's fine. Diatic first. So let's look it up. Here it is. And we are going to get to learn a song today. That's the good news. In fact, we're starting to see some of the song here. That's cool. I guess we should mention strings, actually, because they do use them in the documentation a lot. I don't know what they call numbers and strings or arrays. What's the term for those things? Things that aren't functions. I got to call them basic objects for now, but if anybody learns what they're actually meant to be called, let me know. In the box, they say it's a language element. Is it supposed to call all these things? Yeah. Yeah, that's right. But I'm trying to talk about things that aren't those. I'm trying to talk about numbers, arrays and strings, which is none of these things. We'll figure it out. So I'm not sure there's much more to say about strings. What does the language reference say if I search for strings? I'm not quite sure what order they think they're showing this in, but it's definitely not the most helpful one. I see. They don't call them strings. Maybe this is considered a list of characters. I suspect it is, actually. Found another blog post that calls them character vectors and scalars. Oh, right. Because I think this is different, right? Okay, so we're about to get a slightly ahead of ourselves, but this tells us the shape. Okay, so that's weird, right? So I don't think we should do strings yet until we do row, because they don't make sense until we can look at shapes. Okay. All right, so we've got a list. So we can turn that into a matrix using dyadic row, which is called reshape. This is just called row. Figure out what I did with my heading levels here. So that's two. Oh, yeah, that's three. Okay, that's four. Great. So that's reshape. And so that is, I think is that the same as what NumPy calls it? Reshape? Yes. Same as NumPy's reshape. So it gives a new shape to an array. So the shape of an array is basically like how many columns and rows and whatever does it have. So if we want to do three rows of two columns, we can reshape our array. As you see.  I was just going to say at this point, like, or maybe at the very top of this, we should say boxing style equals max. Did I do that? I'll stop boxing on style equals max. You would style dash max, I think. Dash style. Actually, I can see it in the background there. Okay, great. So there we go. What was it doing? Slow. Okay. Okay. So I think Isaac wrote something on the forum about this. So anywhere you see an arrow, that means this is like a dimension that exists, right? There's no arrow here. So this is considered like infinitely thin. So think of this as a vector, not as a one height, you know, as a matrix with one row. This is a vector. I was talking to my daughter about this yesterday and she found this very confusing because she's like, well, it does have height. So say like, okay, it does on the screen, but this is a representation on the screen of an abstract mathematical object that doesn't have height. And it's just that if I drew it infinitely thin, you know, it's like, Claire, you wouldn't be able to read it and you would think that wasn't very helpful, which she agreed was true. Whereas this thing here has two arrows. This actually has three rows and two columns. And then the sprinkle means that this got numbers in. There's two other options. It could have a mixture of things with some strings and stuff in or it could even have other arrays in. They would get different symbols. So I think perhaps one of the more interesting ones to look at is what happens if we have one row with six. And so now it does not look the same, right? No arrow, arrow. So this is a matrix. So the shape is whatever you would put on the left-hand side to create that thing. I assume it's going to be called shape, but I suppose I should check. Shape of, okay. Shape of. So for example, let's call this matrix, okay. And so if we then get the shape of A, a single dimension of length six, where else the shape of matrix is two rows by three columns. That's the question. Yeah. I may have missed this. What is the writing to the box thing do again? It's just printing it in a more nice way for us. So everything we know what I mean is writing to the box. That prints it out on the screen. And then you would sit on the screen. No, it doesn't. If I remove it because I'm assigning, it doesn't display it. Oh, because you're assigning. Okay. Sorry. Yep. Yep. So you're just kind of changing the assignment to the screen as well. And this box. Is that a self-function? Like. Yeah. That's a, but that's a function called quad, which I think does a lot of things. I think this is squad. Is the same thing as quad? Oh, never mind. It's a good question. I don't know. I didn't think so. No squad is used for indexing. Okay. So maybe quad is like. Not a language element. And then it's some weird special thing. What if I search for it? Here we are. It's a variable. Which communicates between the user's terminal and APL. Depends on whether it's been assigned a reference, but it's assigned. The array is displayed. Okay. So it's a special magic variable. Thanks. I'm thinking on these creating and reshaping. Matrices that. Some. For me. I didn't realize I had a bug. Because you can actually reshape. To any size. So if you have. Four numbers and you reshape it to a three by three. It'll just. Look through it. It'll use the first, your four numbers, plus the first two in the array to make sex. So it can broadcast and kind of weird ways. Sorry. I just wondering. Did we. We've got saying here called functions and assignment, but I don't actually see if we ever. Did normal assignment. Because I don't think we missed. Oh, okay. Well, that would be the right place to talk about quad. That seems like a bit of an oversight. Okay. So let's pop it. So actually. I guess. We can do. A function. An anonymous function. Without assignment. So that's a function. And therefore we can apply it to something. And that's the same as first of presiding it to F and then calling F on the thing. Assignments. Okay. So we can go. Equals three. A. And then this is the same thing. But with printing. And we can assign a list. And that's the same thing. I'm curious to see if the. The box still. Own the value three. I guess I could check here. It said that there was some special thing when you reference it. So no. It doesn't. It's not a normal variable. It's a weird special thing. When you reference it, a prompts displayed and input is requested. And then you can put things after it as well. Like IO and stuff to change the way. All right. So. That means we can do. We've got a. We've got a row of our matrix. We've got a row of a. We could do also things like. Row of three. And that's this is special. This is. This is a scalar. I believe. Although it's printing out. Well, this is a scalar. Oh, no, this is not a scalar. This is just a, this is like the empty set. This is nothing at all. Which I think. There's a symbol for. Might not count as a. As it's one of the last three, I think they call it. Just one moment. Yeah. Sorry. So it's one of the last three. Okay. This is a zero or one of the last three. So. This is the zero. Or something. The old day. Empty vector. Is a numeric constant. Okay. Let's see if that displays the same way. It is. Okay. And the shape of that is zero, I think. How do you enter that. To check the shape. How do you type? I just posted it. Did you find that as a matter of interest? It's kind of far right of your keyboard up at the top. Right. Three from the right. Oh, well found. I see. Empty numeric vector. Great. So interestingly, the rank of Zilday is not Zilday. It's actually an array containing zero. And so this brings us to the song, which is that if I, so given that row of mat is two, three, that means row of row of mat is two, right? Because it's like this is a list of one dimensional array, containing two elements. So this is row of two, three. And so row of that is one. And because row of Zilday is this, row of row of that is one. And row of row of row of that is one. And actually let's go higher dimensional. We can do bigger ones. We can say give me two faces, each with two rows, each with three columns. This is like a kind of a rectangular prism, if you like. And that's how they display it. Oh, A changed somewhere along the lines. Let's run this again. Use A. And you'll see it's created two matrices that kind of you can think of them as stacked on top of each other. This is a rank three tensor. And when it ran out of numbers from A, it just went back to the start. So you can use row as repeat. So for example, if I use the scalar, it's just a matrix of ones. So let's call this C for cube. And so we can get row. On that matrix thing, does the thing on the margin of it mean anything to you? This one here? No, like the one above it. This one here? Yeah. Yeah, so this has got two. There's actually two dimensions happening here. There's this dimension and there's this dimension. So ideally, if we had a 3D display, they would be on top of each other. But we don't. So it just prints them with a space between. And it puts two dimension lines here to tell us this is actually representing two separate axes. Because this is two faces by two rows by three columns. I see. OK, so each arrow is kind of a dimension in that sense. Exactly, exactly. Yeah, so we could do row of row of row of C. And so row of row of row of anything ends up being one. And so that gives us our first and possibly only APL song. APL, row, row, Richard Storman. Here we go. Oh, there is actually a dialogue poetry section. That's important. And here's the one about row, which Claire and I have now learned by heart. Row, row, row of X, always equals one. Row is dimension, row, row, rank. APL is fun. So yeah, row, row, row of anything gives us one. Row of something is the dimension. So it tells us how many rows by columns or whatever. I would call it shape. They call it dimension. Row of row of something tells you the tensor rank. So that's why that poem. One above, it's pretty good, too. Nice. Oh, there you go. There's an MP3 recording of an APL song. So to wrap up, let's do iota, which is a nice easy one. So iota is just the same as range, basically. So iota for, it's the same as range, except it starts at 1 rather than 0 by default. You can change that. I believe you can say quadio0 or something like that to change, like, so it starts at 0 instead of 1. I kind of like just going to leave it in the default because otherwise it's just going to get confusing, I think. If you haven't found it yet, one of the really cool things about iota is you can range in multiple dimensions. So if you do iota 202. Yeah, so it's creating basically all of the coordinates to kind of index into a multidimensional structure, I guess. And so this is like the Cartesian product of the set of 1, 2 with a set 1, 2, 3. And so now we've got arrays and arrays. And so you can see the symbols changed. So to create our matrix, an easier way to create the matrix would have been to just go 2, 3 row of iota 6. So iota 6 is 1, 2, 3, 4, 5, 6. And then 2, 3 of that is the matrix. All right, so let's, oh, did I close that? Oops. I had a question. With iota, you know how in Python we have a start, stop, and step? Is there something similar with iota? No, it's not. But you don't really need it, right? Because let's say I want to step by 2. That's easy enough. Or if I want to start one more than that, that's easy enough. So I think that's why, because we don't really need it. OK. iota, iota, iota. Where is it? Here it is. OK. Monadic iota means index generator. OK, so that's why it's called index generator, because these are the indices of all of the locations in a 2 by 3 array x generator. OK, let's just check the help for index generators to see if we missed anything. OK, so r equals iota y. You pass it a scalar or a vector of non-negative numbers and you get back a numerical array, the set of all possible coordinates, which is exactly what we thought. Oh, so that's interesting. So I think one special thing is iota 0, which is another way of getting that order thing. That's the empty set. OK, so the dyadic version is index of, and this won't make any sense really until we've got strings. So let's do strings first. OK, so strings are basically vector arrays, sorry, character, character, characters, and character vectors. So that's a character vector and that's a character. And so now we should be able to understand their example. So I've noticed the examples when I click on the name of the dyadic version, for example, the examples tend to be more complicated than the one in the overall summary, just to warn you. So I'm going to use the simpler ones. OK, so index of takes this array and tells you the index of each of these things. And so remember, this is a list of three letters. I believe it's identical, is it? Let's see. Actually, here's ACF and here's a list containing AC and F. Yeah, they're the same thing. So that's interesting. Yeah, so that is a single character. This is a list of characters, and this is just a little syntactic shortcut for creating a list of characters. And lists of characters appear with no space between them when it outputs them, but they are still just lists of characters. I believe that you put a character on the right-hand side that's not in the left, like the V. It will give you one more than the total length. Oh, good. That's how that works. So that 11 is there, but it's not actually in the list. Thanks. Got it. So then an interesting example they have is what if you've got a higher-ranked matrix? So here they're saying, oh, let's assume we've already got a matrix with this in it, because they're assuming we don't know how to create one. We might get confused. So now that we do, let's go ahead and create one. So we create a matrix, and they used three rows of two columns of iota 6 of a row. OK. And so then they said, given that, what if we do this? Now, what's that doing? The first occurrence of subarrays in Y, which match major cells of X. Oh, OK. So this is an important concept. I don't know the difference between a subarray and a major cell yet. But the idea is, OK, so Y is the thing on the right. X is the thing on the left. OK, so here's Y. So it's going to try to find this subarray in the major cells of X. So they're going to treat this as a row and try to find which row contains that in it. And the answer is row three. Does it work if you put 1, 3, 5 or something? We'll find it, I guess. So that doesn't work. I'm pretty sure it's not going to, because that's not considered a major cell. Yeah. So the major cells of this, so it's rows. So if you wanted to do this, you'd have to transpose it first. And there is a transpose operator. There is. So we should probably do a, I think, something that's missing in the dialogue docs is the simplest possible versions of things. So let's just say let's find the number three in the list. 1, 3, 6, 5, 4. Now, why is, oh, wrong way around. In the list of this, find the number three. There we go. OK. Are we done? I think so. I think we made good progress. I think so, too. Thanks, gang. Are vectors list and arrays the same term in APL? No. An array is like a NumPy array. So an array can be any shape. So a vector is a rank one array. A matrix is a rank two array. A scalar is a rank zero array. I don't know what we call rank three arrays, but yeah. It's the same as what PyTorch causes tensor. Although one difference is a PyTorch tensor can't contain tensors. But I think a NumPy array can contain arrays. So it's probably more like NumPy than PyTorch. All right. Thanks, everyone. That was cool. Well, you all learned something there, hopefully. Bye. Thank you. Bye. Take care, everybody. See you.


All right, so the Red Sox really get the proverbial slap on the wrist. They're not going to get punished at all. They determined that the primary culprit was not the front office nor was it manager Alex Cora or the players, but the team's video replay system operator. The league did not find that Boston's impermissible conduct continued during the 2018 postseason or 2019 regular season because they had done some sketchy stuff in 2017. Rob Manfred said the investigation included interviews with 65 witnesses, including 34 current and former Red Sox players, as well as reviews of tens of thousands of emails, text messages, video clips, and photographs. So this is what it comes down to. Cora is absolved, and his coaches are also absolved from responsibility, and they found that the team's front office effectively communicated baseball sign stealing rules to non-player staff. So that means Dave Dombrowski also gets off scot-free. So the only person who's going to be punished is the video room operator. That's it. His name is JT Watkins, and he has been banned through the 2020 playoffs. And from doing the same job in 2021, Alex Cora has been banned through 2020 and the 2020 playoffs, but only for his conduct with the Astros. And the Red Sox have lost the 2020 second round pick. So nothing. They got essentially nothing. And also, you'd have to think, Don and Peter, why was Cora fired? So you tell me that the Red Sox would not have hired Cora if they knew what he did with the Astros in 2017, because they essentially fired him for what? He didn't do anything in 2018 other than manage very well and manage and get a World Series. I guess because it was like preemptive. Maybe the Red Sox figured it will be less penalty if we fire Cora. Maybe it was just the public relations where everybody else is being let go. So I guess we got to let go of our guy. Stinks, though. Just stinks to high heaven, honestly. You could cheat and get away with it. I'm sorry. I don't care. Manfred can come on and talk about all this is significant penalties. Stop. Stop. The Astros and the Red Sox cheated and got away with it. Period. Done. End of sentence. I'm confused. Yeah, but one thing, though, Don, and I said this at the time. I don't think that what the Red Sox did was nearly as egregious as the Astros. I know Yankee fans don't want to hear that, but it simply wasn't. Well, it just wasn't. Here's what they did. They had communication from the replay room to the dugout to the base runner to the hitter, which is a lot less direct, according to Ken Rosenthal, and flagrant than what the Astros did. It is a very, very tough interpretation of cheating. I think that what they did was gamesmanship. I really do. They decoded the signs, and then they really couldn't do anything with them until somebody got on second base. But then that's a different situation, Michael, because then Rob Manfred could say, listen, we filed an undergamesmanship, and so we're not going to do anything. No, they acknowledged it as cheating and punished one person and lost a draft pick. So Manfred admitted that it was cheating. He disagrees with you. He believes that this falls under the category of cheating. Is it nearly as bad as what the Astros did? No. So the fact that it's less punishment than what Houston got kind of makes sense. But in the final analysis, two teams, one championships, cheated in order to do it and got away with it. Because you're telling me the players didn't know this information? They knew they were getting the information. The league said that 30 players said they had no knowledge of such behavior, that he was decoding signs during the game via the replay system. MLB investigators talked to six witnesses who observed Watkins' writeout signs during the game and 11 said that Watkins communicated sign information in a way that indicated he obtained it during the game. Four witnesses said Watkins used gestures or notes to communicate to them sign sequence information when a major league employee assigned to watch over a video room was present. So there was somebody there from the major leagues and they were doing it right in front of his face. My opinion seems to be about the whole thing in general, Michael. It just stinks. Well, Manfred wrote that Watkins admitted he communicated sign information during games to players, but that he said when he did, so it was based on old information not newly discovered during that same game. Similarly, if a baseron had decoded signs from second base and reported the information back to him, Watkins would circulate that information to other players the investigation found. In fact, he asserted that players were aware that they were supposed to routinely provide him with sign information gathered when they were on second base. So then why is he suspended? If he didn't do anything wrong. He just seems like a patsy, doesn't he? You got somebody's got to be punished for this. Can't touch the players. And it's a little weird though, too.  So I'll put that out front. Alex Cora engineered something so beautifully done in 2017 so wickedly smart that the Astros won the World Series. So he became the manager of the Red Sox and never ever thought of doing it there. Does that make any sense? No. So we knew the Red Sox were going to get less, right? Because we were warned of that from the very beginning. Yep. But basically nothing. You know, this guy, I guess in effect loses his job because I guess he won't be asked back after the suspension is over. I would assume. He could be. I mean, he could be, but can I ask a question? So they're saying, Michael, that the only way the Red Sox cheated was this dude, the analytic film dude? It was, I'm trying to understand. This is the only guy. It was his operation a random, not random, but a guy who's not at a super high level. The front office had nothing to do with it. Cora had nothing to do with it. None of the coaches knew. This rogue JT Watkins, he's the only guy. I don't understand. How is that possible? Why not just say no one did anything then? I mean, it's not possible. But again, this is the fallacy, the joke of this whole thing. Even if he found the players were responsible, you can't do anything. Manfred can't touch the players. That's why this whole thing is a joke. So Manfred said in requiring the Red Sox to forfeit a draft pick, he said, quote, the club must be held accountable, particularly since the club may have benefited from Watkins conduct. And again, Watkins vehemently denies that he did anything wrong. And I don't know who they're going by to actually whack them for this year and next year. But you tell me the coaches and the manager of the team had no idea what was going on. I mean, I can't stand up straight in the Red Sox dugout at Fenway Park. It's so small and cramped. There's no way that somebody could pass gas down the end of the outfield side of the dugout. And on the first base side of the home plate side, they would smell it. That's how small that dugout is. There's no way that they didn't know. I'm not saying they should get whacked because I have been gone on record saying, I don't think that what they did was egregious. But you can't tell me that Alex had no idea what was going on. But again, Michael, that's not the issue. Baseball claims something happened. If baseball issued a statement today believing, saying, we don't really think it was cheating, that more under the title of gamesmanship, then you could agree with them. And maybe I can agree with them, we can move on. They're acknowledging that something was done wrong. But it still goes unpunished. And why? Who are you going to punish? Can't touch the players. We've already acknowledged that from the Astro scandal. You can't touch Cora. He's already been fired. So it's just easier for them to just say the coaches weren't involved because Cora's already the guy that would be disciplined and he's already out of a job. Can't touch the players. So that's why this whole thing's a joke anyway. How about a little hot take? Want a little hot take? Please. Alex Cora is the manager of the Red Sox in 2021. Probably could be. We expected that from the beginning. He's just, yep, he's just holding the place. They love Alex Cora. They don't like him, Peter. Love him. They love him. Wow. And I'm sure that parting ways with him was difficult because they think he's a great manager. And you know what? Around baseball, he's thought of as a really brilliant baseball man. Well, guess what? He's not the only Cora to have a big day because what a night from Joey Cora last night, am I right? I mean, he only homer three times during the regular season. Goes yard in an exciting game. Woof. Now in terms of the players, Manfred said he would have, he would not have had any interest in disciplining players in this particular instance, noting this is not a case in which I would have otherwise considered imposing discipline on players. So even if they weren't given immunity, he's saying he would not have disciplined them. It's easy to say that. It's easy to say that when you know your championships. Two teams, one championships. And really they still have championships. I don't think the Red Sox should have been stripped of it anyway, but the Astros certainly should have been. So I mean, it's a very, very benign punishment. For, again, the Red Sox get lumped into this and I agree with you. It's not nearly as awful as what the Astros did. It is one of the biggest scandals on the field in sports history. I mean, a championship was one beat, you know, the New York Yankees who were probably the most popular team in North America, or at least certainly in baseball. And it went unpunished to the point, Michael, where, you know what? I don't know if it discourages anybody from trying it again. Just make sure that the players are the headpin to it because they can't be touched. It's just, it's so frustrating. And I'm not even a Yankee fan, Michael, but I just think it's frustrating. Even the great Tom Brady served a four game suspension, a quarter of the season for the Flate Gate. Yep, because you know what? Goodell didn't give anybody any immunity. He's not afraid of the players. Like in baseball, they have a CBA that they have to negotiate. He doesn't want to deal with this. But, and I could be wrong about this, Michael. I think you'll probably disagree with me. I think the whole immunity was because he knew we couldn't touch him anyway. I think that's a very convenient thing to say. Well, I wanted a really thorough investigation, so I gave the players immunity so I can get all the information possible to have the investigation. Who cares about your investigation if nobody ends up getting punished at the end of the day anyway? So I think the immunity is just an excuse for knowing that he was completely impotent during this whole thing and he couldn't touch the players anyway. So I don't even buy the immunity. I think that whole thing's made up anyway.


So welcome, we are now beginning the R example, and Sima will show. Yeah, so what we have here in the document editor page are many different examples of our R users. First things first, we need to get R self on version of R. So we can do that by looking for different versions of R with the module spider command. And we will see that there are plenty of these different versions. So what we want to probably do is take the latest one and let's use that one. And we load the module, and now we have R at our disposal. So we can launch R with R if we want to test out code interactively here. But of course, what we really want to do is to write something that can be run on the queue. I'll make the shell a bit smaller so it fits. Yeah, and we don't want to save the workspace image. So let's do something in the queue itself. So we have here a small serial example, serial R example. So let's copy it to the clipboard and write this slurm file for this example. So what we have here is that we ask for five minutes of time. We run with 100 megabytes of memory and then we write the output to this R serial output. And we load R, let's specify the version that we had. I'll quickly check, save this and check what version we had. So we had this version of R. Let's write that specific version into our requirements. So over here. And here we see that we are using this R script to run R. And what this R script basically does is that it's a wrapper for R. There's also this R command batch that you can use to run R non interactively. But this R script is even better. So what it does, it runs a single R file that we have. And it won't save on a workspace state afterwards. And it won't load any previously existing workspace environment. So in R, if you're running it interactively, like you noticed at the start when I opened the R interpreter, it will ask to save the state of the situation. And you might want to do that, but you also might not want to continue where you left off. And in these cases, the R script is better because it runs these clean slate, especially with the vanilla setting where it doesn't load any existing environment that you have currently in the folder. It also will produce the output straight to the standard output. So you will see the output when you run the code. So all the print statements and so forth will be produced to the standard output. So basically makes it look run like a standard program instead of something for interactive. Otherwise you will get these R out files that are normally produces with when you run with our command batch.  It's a bit fancy because we use the command arguments here, but this is just to demonstrate how you could use, for example, a task ID is within the other program itself. So what we are doing here is we are reading the command line arguments. We were giving these two values, the N and M, to this R script. So it reads them in and turns them into numbers within R so we can use them in R. It prints them. And then it creates matrices. First matrices of size N, N times M matrices. First is A matrix and then this B matrix. And then it creates this C matrix. And then it does this matrix calculation where it does a matrix multiplication between A transpose of B and then adds two times C to it. So this is like just a simple mathematics operation. Whoops. So let's copy this also and let's create this R script that we want to run. So let's copy this here and save the buffer. So now we have R script and then we have our serial job. Let's first try running this R, with R script, this R serial without any S-run statements or anything like that. So just to check that it works. Normally, of course, we would want to run this somewhere to, well, maybe I'm not allowed to test that it works. So when we run this, we see with values 4 and 3, we see that we have four rows and three columns. And then when we create this matrix multiplication, we create this 4 by 4 matrix. So this seems to work. Now let's run it with S-run in a node. So with S-run, it's as simple as adding S-run and maybe some requirements of time. So let's put like a 15-minute time requirement of maybe two gigabytes of memory. It's overkill, but nevertheless, it should work. Okay, it works in the queue. We see here that we got something like LC measurement failed using C. So what this means is that the environment when we were running it, it was a bit different than what we're running now. There was something, some language setting missing, but it doesn't affect our results. So it's not something we should worry about. Okay, let's try submitting the script with S-patch. So let's use the R-serial slurm and let's submit it with S-patch. And we see that it's submitted. It has already run. If we look at last few jobs, we see here we have the previous job that we run with S-run ourselves. And here we have the slurm script. And we see that it actually didn't use almost any memory, of course, because it was so simple and it finished quite quickly. And now if we look at the R-serial out that it was creating, because we had defined the output file, we see that here are the startup error messages that we had previously. They don't really matter. We can define this language if we want some to get rid of these messages, but it doesn't matter. And then we get the end results. Yeah, okay. So let's do another quick example of running this with its internal parallelization. So over here we have a link to this. Okay. Okay, it seems to be that we have to update this information. Okay. This R benchmark is something, it's a famous R benchmark, but we probably need to update the link to it. But anyways, if we were to run some R script that we would want to use the internal parallelization within R. R has been compiled with these libraries that can use the internal parallelization. We would just need to specify the number of tasks and set that the number of threads that we want to use is the number of tasks. And that's it. And we could submit it. We'll have to update this. Then there is also a possibility of using this R parallel package to run this parallelization. In that case, we would set the number of threads to one because we will use the parallel package to do the parallelization. And then we would run these, use these MCL applies, which are these parallel applications. There's other statements that we can use to test out, let's say, this matrix inversion here. There's plenty of ways of running R in parallel, these parallel packages. Okay. And that's about it. Great. Thanks for the example.


This study found that high-risk human papillomaviruses, HPV, and Epstein-Bavirus, EBV, are commonly present in breast cancer tissues from Katari women with a co-prevalence of 47%. The presence of HPV was associated with triple negative breast cancer, TNBC, while the presence of EBV did not correlate with any breast cancer subgroup. Additionally, the co-presence of HPV and EBV were significantly associated with tumor grade and stage. These findings suggest that HPV and EBV may cooperate to promote a more aggressive tumor phenotype in breast carcinogenesis, and further investigations are needed to understand the underlying mechanisms. This article was authored by Isha Togupta, Isha J Bean, Reem Al-Sarif, and others.


From the early days to the present, the Navy has been an important contributor to America's efforts in space, both unmanned and manned. In fact, more astronauts have graduated from the Naval Academy than any other higher education institution. I'm Petty Officer Brandy Wells, and here in studio with me I have midshipman second class Lucas Papadakis, an aerospace engineering major at the Academy and a hopeful future astronaut. And live from the International Space Station is Commander Chris Cassidy, a Navy SEAL, to discuss the Navy's role in space and his own experiences. Thank you for joining us today, Commander Cassidy. Hey, my pleasure. It's great to be with you today. Sir, our first question is, why is space important to the Navy? Well, you know, obviously communication is vital to anything we do, from as simple things as our own relationships to war to space. And the space environment for the Navy is critical for our communications network, tracking our ships, responding to disasters or conflicts and everything that we do on a day-to-day basis and having the ability to track and manage all of this infrastructure all around the world. It's actually really critical to our warfighting capability, I think. How has your Navy service prepared you for being an astronaut? Well, you know, that's an interesting question. I think that to be successful as an astronaut, you need to have the ability to think operationally and do things while you're communicating on the radio, while you're processing multiple things. And that's what I've learned over my time, my few months here. And that was really instilled in me from my first days of stepping on to the Naval Academy yard all the way through being groomed as a junior officer and mentored by some of the senior enlisted that I had the privilege to work with. And just really the fundamental things of what we need our Navy warfighters, our military warfighters to do, translates exactly to life in space. It's an operational environment. We're doing things that we can get us hurt or hurt the equipment that we're working with. Neither one of those are good. And it's that innate sense of how to do that, I think, is instilled in every one of us that joins the service. Are there any similarities between the SEAL and the astronaut communities? Well, I'm asked that often, actually, and I think at face value it's very similar training pattern. In the SEAL teams, much like the rest of the Navy, on a typical pre-deployment workup, you go together with some basic unit level training. And then as you get more proficient, you'll start integrating with other units until you prepare for your final exercises prior to deployment. And we have a very similar pattern here in the training for space. At the beginning of being assigned to a space mission, you train up on individual systems, just you and an instructor learning the wiring diagrams and how the system works. And then you build up to an integrated simulation environment where you're working with other crew members from other countries and on multiple systems at the same time. That culminates with some exams prior to launch and we go on our mission. We're up here for six months just like on a Navy deployment is typically six months. So that training pattern is very similar. And then the other thing is my SEAL team life was much more physical. And we do exercise quite a bit up here on space. It's essential. But I think I find myself, it's more of an academic environment in the qualification process to be assigned to a flight here at NASA. You mentioned the physical side, sir. What kind of physical training was required for the demands of living in orbit? Well, you know, it's interesting. We try to, we work out pretty regularly on Earth, but everybody has busy schedules just like everybody else when we're training up for a mission. But when we get to space, it's not just a matter of what our desire to work out. It's essential. We have to do it. If we did not exercise, our bones would think, oh, I have nothing to do. I can relax. I can atrophy. I don't have to carry a load. And our bone density would constantly fall off much like an elderly person with osteoporosis. And the only way to really combat that is resistive exercise, weightlifting type strength training on the large muscles, your legs, lower body and back. And that's what we concentrate on. We do a lot of squats and deadlifts and that sort of thing to keep our, mostly our legs and our hips healthy. That's absolutely critical. We also have a bike and a treadmill that we use as well, but that's just to maintain our cardiovascular health. The real true criticality is keeping our bones healthy. Why do you think the Naval Academy has produced more astronauts than any other higher education institution? Well, I think it's just a matter of numbers maybe. If you look at the astronaut office, about half of the astronaut office is military. The numbers are a little bit different right now. We're sort of going through a transition period. But historically, half the astronauts have been in active duty military and half civilian. And when you look at those military officers that come to the astronaut office, it's probably pretty close. I mean, we might have the exact, the lead, if you will, over the Air Force, which is a good thing because I'll be coming home in the first week in October and going to our homecoming where we beat Air Force. But that aside, the Air Force and the Navy probably have the two close, are really close in the number of astronauts we produce. The Army has some too. The Coast Guard Academy has an astronaut, but it's just a matter of the sheer volume that we have. What's next for you, sir? What's next for me? Well, what I like to say up here is the only important thing in the space station is what you're doing right at this time. Because anything else we can screw up and cause damage to the vehicle or worse to ourselves. So what's next for me is to make sure that I keep this place safe and running ship shape until it's time for me to leave. After that, when I come home in September, I will go through about a two-month rehabilitation period, get myself healthy, make sure and finish close out all the experiments that we have ongoing on ourselves, and then do a little bit of public relations things as I prepare for either my next assignment as a space flyer. But probably I will just work in the astronaut office supporting other ongoing missions and my friends that have the privilege of coming up here. Beyond that, in the five-year time horizon, it'd be great if I could come back to space, but we'll leave that up to my bosses. Thank you for your time, Commander Cassidy. We'll have more on the Navy's role in space in the coming weeks. From the Defense Media Activity Studios, thanks for joining us today.


Welcome back. This is Zona Christie and today we're going to talk about our relationship to our dark side to our shadow side and the reason I'm talking to you here is because I just came on this hike and It's actually a descent down into this watershed on the Rock River here and Then you have to hike back up and what it really reminded me as I was hiking today of the soul journey of this descent and Rising back up the Ascension process and so on my way down today. I was just given this insight into the stages of relationship with the shadow self with the dark side and I think this is a process that we all go through as part of the Ascension process and So here they are there's four stages. So stage number one. I call identification identification with the shadow self and That's usually I think often starts as in sort of an unconscious level Where we kind of get sucked into the dark side of ourselves reflected often as a result of traumatic experiences that we've gone through and whether it's this lifetime or past lifetime and So when we identify with that dark self sometimes it comes Through as just sort of a wallowing in the dark darkness Turning to the darkness for solace in a way, you know, especially if we've had Traumatic experiences that we haven't fully integrated. I think sometimes that that the stage is very important because we we get to fully feel The the effects of the dark and and really bring it home I want to say that the dark is actually a part of us. It's It's something that's part of nature. And if you look at nature, there's always polarities of light and dark, right? And this we see this in the seasons. We have the dark season the winter and the light season We see this in the cycle of the days So I just want to say first of all that dark doesn't necessarily mean evil But when it's out of balance it can It can morph into evil, right or it be can be Just inverted in a way that that can become very very destructive and evil, okay? So this first stage of identifying with the dark it can take a very very a destructive Pathway, but it can also be it's also part of the healing process, right? And so some people I apparently there are some people their soul probably just needs a little bit more of that identification stage But the danger is that you can really get sucked into it And that's what happens when we get into like these dark cults They've identified with the dark to such an extent that they can't get out. They've given themselves over to it that they've Devoted themselves to such an extent that that's Become their identity So that is one of the the real dangers of this phase is is to be caught into this this dark cycle It's it can be very very destructive to self and others on the other hand Sometimes we need to experience enough of that dark in order to trigger us to want to change And sometimes I think we need to hit a bottom need to hit that deep dark, you know part of ourselves So that identification stage can be unconscious and that's where we often see the the artist just kind of expressing it And if it's unconscious it'll often get played out in terms of addictions or depression That kind of thing or it can also be conscious and that's where people start working with like the the the dark occult And that's where you're going to start seeing Spiritual practices that can be very very harmful to to Usually often to other people It's always harmful to the practitioner too, but they may not be aware of it right away What can happen if a person Gives themselves over to the dark is that they can feel a sense of power out of it And what's happening is that it's like grip them and it's actually eating away at them But it's like they don't realize it because it feels like they're empowered Okay, and it feels like they're being given special gifts or special powers or it's like, you know drawing out of that Now the reason is because they're drawing on other people's energies. They're really being an energy vampire But it will always eventually eat away at the self the shadow side of us does You know when we start working with the shadow, it it does bring a certain There's a definite power that we tap into But the thing is it has to be done in balance and at this stage Where it's just identifying with the shadow. It's not in balance Right and so that's where you get things like artists a lot of times will are very creative people Will can spend a lot of time in this this dark face They because you're digging into some deep deep stuff and that can fuel a lot of the creative things that come forth And again, the dark side isn't always evil, right? So the dark side is it's sort of like this this gray mother kind of thing And and it does help to tune tap into that that those creative powers But it has to be done in correct balance with light in order for it to be Life affirming or life supporting Okay, so how this can manifest sometimes a lot of times you see this like it happened to be as a teenager Like a little bit. I wasn't quite goth, but some of that stuff You know wearing black and really being into the dark imagery Some there are certain Religious or spiritual traditions that in modern days have become quite dark And and that's that's tapping into this However At some point you're a person will will either just go fully down that dark path and that that could be really really destructive but then At a certain point a person may realize or their soul may realize it's just like this had enough darkness and there's this realization of Gotta gotta turn to the light and that brings us to this second phase Of relationship with the dark side and that is denial, right? And that's this That's this feeling of okay. Well, we're turning to the light and just bringing in the light Which is really necessary and I want to say all these phases are necessary, right? So I'm not saying this is bad or good or whatever But I'm saying that this this is a phase that especially happens with like people who are kind of starting the starting their awakening process Where it's this like love and light and love and light and love and light and love and light And love love love love love open heart and bring in the light This is realization of oneness of divine oneness where we are one with everything and I am you and you are me and we are all together And seeing the light in everybody and what it does is it's a purifying force that that we work with That that comes through and we're inviting into our body and it is it's it's something that is necessary for reversing any inverted dark energies that we've been working with with that identification process It it's a very cleansing and clearing and purification a sort of phase and again, this is so so important and so healing But on the shadow side of that is a naivete and that's not recognizing You know where things may be inverted not seeing the shadow aspects of other people not seeing the shadow aspects of the self and then getting caught into negative loops into A narcissistic patterning Getting getting caught into relationships where you're giving and giving and giving and you're leading out your energy Just allowing yourself to be taken advantage of By your own darkness or by other people's darkness in the third stage I call resistance And a resistance is when a person becomes aware that That they need to protect themselves right that there are dark forces that are you know will will pull you off balance that will actually harm you and that you need to You know that there is potentially evil in the world and being able to see that The third phase is how you learn about spiritual protection psychic protection And this is a phase of deepening awareness Where you begin to really discern You know what's true to me. What's not what's mine. What's what energies are not mine? It can be a very very challenging phase so This is a time when sometimes when a person has had an awakening from that Identification with the dark into the identification with the light the second phase And you know everything's beautiful And then they have this realization that there's both And that you do have to protect yourself sometimes that's a very very difficult You know part of the soul journey Is uh moving through This learning To recognize where's the dark? Where's the light? How do I tell the difference? and So where the power is of this phase and again all these phases are necessary But the power of this phase is to really learn to claim your power And to own your power And again, it's a it's a further progression of the purification process of coming back to the self Um, so this is this is a very very very powerful and necessary phase to to be able to To recognize these things This is a really a phase where you're resisting the dark Where you're identifying fully with the light but not in a naive way. You've shed that naivete And this is when you're actively choosing. This is where free will really comes in where it's like you have to Stake your claim and say I identify with the light and I'm bringing the light in and I Am a force for life. I'm not going to Support the death agenda. I am part of the life agenda where This phase can Kind of trip you up is when When one becomes rigid in this phase When it becomes very black and white where There's a certain amount of judgment that comes in where it's you know, we have to make these choices We have to choose, you know, am I going to take this action or that action? I'm identifying this way or that way. So it's it's it's a stage where one has to Have this discernment, but when the discernment eventually comes to this point of um discomfort because We all have a dark side and it's part of us and when we start Judging that dark side as being evil or completely You know Something that we're completely fighting against that we're completely resisting It will create this Discomfort within ourselves and so what's happening is we're actually fighting fighting ourselves And so this phase can go on for quite a while. It's the Good versus evil phase and it can last for lifetimes It can last for eons But at some point we have to break through and integrate and come into The fourth phase and these are all phases or stages of ascension The danger with phase three is that you can get so caught up so obsessed with With staying on the light side Or so obsessed with being aware that you That you actually call in You just call in the dark because you're so focused on it And it it's a sneaky way that the the the dark side actually Kind of comes in the back door in the space And that's when you need to really just move into phase four and so in the fourth stage this is the stage of integration to where a person Has done the work of Being able to discern, you know, what's what's mine. What's not What's dark what's light and be able to Come to a place of acceptance Of everything it reiterates the oneness of the second phase in that, you know We see god and everything but then we also are able to see that There's dark and there's light. It's not just light. It's not just dark You know the first phase is we're looking at, you know, really focusing on the dark everything seems dark Second phase is that everything seems seemed light Third phase we have all this kind of discernment and and figuring things out fourth phase It's like we recognize the dark. We recognize the light. We recognize that it is all part of the great oneness and that it is present in ourselves as well And so what needs to happen is that we have to accept And love every single part of us And recognize that we do have a dark side And to be able to work with the power of that dark side because that that's that's a lot of it's the deep feminine It is it does it does contribute to the creativeness, right? Even the dark masculine has its place But we've come to a place where we have enough discernment so that we can You know work with those dark parts of ourselves, which are never going to go away They're part of us But we can work with them without letting them get away with taking us over right and so this is a This is high mastery here And it's a process that never ends. I don't think So one thing that could be really really helpful in navigating all of these phases is a knowledge of the 12 universal spiritual laws if you haven't seen my webinar on that I've put it up on my website if you If you go to artofawakening.life Slash laws And there is a sign up for my newsletter and when you sign up there You will get access to my 12 spiritual laws webinar and it will explain not just the 12 universal spiritual laws that can help you to better able to Move through these phases with more grace and ease But it will also give you a lot of context as to how to use the laws At this time of great awakening both to assist in your own awakening and in this Planetary awakening that we're all a part of So thank you so much for watching. I love you all and remember you were born to be free


Speaking of, it's Python on Hardware Time. Brr, brr, brr, brr. What's the song? Okay, two weeks' worth. Yeah, well, two weeks' sort of.  We have, I think, the most popular, whatever, if there's a way to do that. I want to say it's the most popular song. Yeah, so there's thousands and thousands of people who subscribe to Zeta for daily. Python on Hardware newsletter, we don't track, we don't do metrics, we don't do anything. You can subscribe, unsubscribe at any time. It's on a separate website, datafordaily.com, because we don't even want it to be associated with your shopping experience at all. Is that a substack?  We don't, but we do want to do newsletters and more. So we've made a separate website called Data For Daily. And that's where we have multitudes of newsletters, including this one. So first up, we have some stories, some news in the world. This is kind of good news for everybody who's been paying attention to this. The Raspberry Pi Compute Module 4s are coming back into the retail channels if you've been waiting, they're happening. It's slowly but surely, just like all of this. Pi 4s are all completely in stock. Yeah, by the way. You can get one right now. Yeah, we changed the limit too, so you can get more than just one Pi 4 right now. So we do have those. You can check out the benchmarks for the Raspberry Pi 5, talking to an oscilloscope with Python. This is interesting, you know, while we were on break for one week, OpenAI collapsed and then came back and Lamor had done an article, interview with IEEE Spectrum. And it was kind of interesting because there's a lot of stuff going on right now with OpenAI and how these models are trained and everything. But just to summarize, in chat GPT style, chat GPT appears that was trained on Lamor's code so much that it's a very good coding companion for her. So when she's writing Arduino libraries or certain bits of code, the code that's outputting for that type of stuff looks like her code because it was probably trained on her code. And we're actually fine with that. When we use chat GPT, we'll put it in either the readme, we'll put it in reword that we say, hey, we use this and then we put the link to the actual chat GPT session so you can see that. No one else is doing that, that's fine. We think that's good because this is changing. Every day people are using these tools for more. We think this is a good use because it's Lamor's code and then it's popping out more of her code companion.  Yeah, do it. Because LadyAid is not gonna be able to be a one-on-one code coach for you. But with this, maybe she can in some way. So anyways, there's an interview with her and you can see, they're very nice graphic too. Yeah, they did a good job. I tripled you, that's the deal. And so anyways, and that being said, I wanted to go to Playgrounds and have you talk about this project. So Playground is our new... Oh, you scroll down. Oh, yeah. It's in the newsletter we highlighted. We highlight projects in newsletters by the way. So if you want your newsletter highlighted, Playground is a great way to do it. One last thing I should mention, Hackspace Magazine is out.  And then if you want, you can go to playground.atorford.com and check out or just go to learnsystemlearn.atorford.com and check out Playground. Because on Playground, there's all these guides that you and the community can do and then we put in our newsletter. So it's a full circle of things. Yes. It's an ecology. Yeah, so you want to talk about this one? Yeah, DJ Delty did a project. He showed it off on Show and Tell a couple of weeks ago and I was like, that's a cool idea. So there's a lot of people who play like truck simulators and you want to use a microphone. Well, so they use a headset but they're like playing with other people to like pretend like they're on a CB radio. But he's like, wouldn't it be cool if actually you could use a CB radio? And so this is a project showing how to turn a CB radio into like a, you know, you click it to mute and unmute and then you can use the microphone inside as a mic. And so it's a bit of a build but I guess he really likes playing this game. And so this is a really neat hack showing how to take existing hardware. Like, I don't even know. I mean, I'm assuming it must be very easy to get CB radios are probably not super popular anymore since everyone's got, you know, telegram and WhatsApp and phones but you can make cool props for your video games. So I just thought this was neat and a great use of Circuit Python because it's really easy and it's accessible and you know, shove some wires into the CB radio thing and you put it in a nice case and it works great. And there's been a lot of Circuit Python projects published on Playground. So check out the featured projects. You have this Wi-Fi matrix. No, wait, can you go back to Playground? Yeah, lots of lots of lots of lots of projects. So check it out. Lots of Circuit Python in particular. It's a good place to post up your... Yeah. And you know, in the past, one of the things that we were asked is, hey, I have a cool Circuit Python project. Can I publish it on Learn? And now we have Playground which is exactly that is the same authoring tool and you can put it there. Then we see it, we feature it on the blog, we feature it on the newsletter. More people contribute to your project and we're keeping this ad free, tracking free. It's just for you to use and no strings attached. It's just to help you document your project somewhere. There's lots of places you can do it online but you need accounts to view like the whole thing. Sites kind of hide the content behind a signup. I get that that's our model. We don't have the model, we just, we make hardware, open source hardware and then we do this as a community service for everyone. So do check it out and put a guide up. Okay. So you can do this every single week. It's delivered to your inbox. It is AdafruitDaily.com.


What's going on everybody? This is Giovanni from the options trading channel. I know it's been a while since I made a video It's been quite some time and I've had a few comments as to why I haven't been making any videos and I always want to come at you as clean as possible with the absolute truth and here it is Let's just cut to the mustard. Let's get right down to it The account is down significantly from the highs. We hit a high of 470,000 and then it just came down like a freaking rock It's currently trading at 405, but we actually got down as low down as low as 389,000 we are dead even for the year and it's halfway through March. This is scary It is scary regardless. It's not my money. It's still scary. I still am somewhat attached to this whole account emotionally But I'm trying to think about this as rational as possible. Let me explain What has been going on that necessarily talking about the stock market, but the account itself? And then I'm gonna get a little deeper into The psychology the emotional aspect of making videos for you guys in the YouTube world for Trading in the stock market. So we went in heavy on Chuck Hughes's plays. I'm not talking bad about the service Just just bear with me. Let me explain. So we went in heavy at one point. We were about a hundred and ten thousand dollars Into as much as plays. That's how many how much money we had in on his place So we didn't go in, you know, not even definitely not 50% of the account That's not where we were gonna be but we were we were up there in the 20 25% range Which is probably more than what we should have been putting into these plays, but Anyways, we never went in more than, you know, gosh $10,000 per play Then the market started let's just call it's moving down because they didn't crash, right? they from the highs they started crashing down and that's where we lost the majority of Our account when we were up at four hundred and seven. I should just cut my losses, but you never know where you are In the grand scheme of things it was coming down and at that point you have a decision to make either just pay cut loose or Trim down or get out all completely you have many choices and Obviously we didn't pick the right choice We just stayed in there and it came crashing back down. So This has been going for the last what three weeks or so Just haven't had much material to give to you guys, but here is an update I can do screenshots. We don't have to go back to the actual, you know, live screen I'll show you screenshots, but currently making this video. It's at four hundred five thousand four hundred dollars So we're up a whopping three hundred dollars a year to date. So definitely nothing It's even Naked options. Um, it scared us. It scared us after the Macy's and Beyond Meat plays that went terribly wrong I think Macy's After really thinking about it Macy's went up because of the whole gain stop Wall Street bats situation Macy's was heavily shorted and it just went it popped up. It just we had bad luck Bad timing. We were at the wrong place at the wrong time. It is what it is Moving on I'm I'm I've come to realize this and I knew this a long time ago years ago and making my youtube channel that's been growing Slowly that is fine, but I'm I realized this a long time ago that This is why People like personas like Ricky Gutierrez people like Patrick Whelan a slew of other warrior trader I can't think fast enough off the top of my head, but the reason why these people Don't do strictly trading the stock market because it's extremely difficult beyond difficult I don't believe that These you to personas people youtubers just in general I don't believe that any of them actually know how to truly trade and stick to the markets and flow with the markets and Truly be dynamic enough and have enough knowledge competent enough to Truly make a living off of just trading This is why Ricky Gutierrez makes videos about his cars super cars real estate Lifestyle videos and why Patrick Whelan in my opinion, this is all my opinion by the way I should done a full disclaimer at the beginning of this video, but why Patrick Whelan is making more lifestyle videos He did make a very sincere Video genuine video a couple weeks ago months ago pop probably by now But if you don't watch his channel, I think it's a good good channel with or without trading He has this awesome persona period, but Ricky Gutierrez. That's why he sells you courses That's why you know, he he does other things on the side because well, not only is it smart to have Multiple streams of income income streams and it's wise right because you diversify yourself You don't depend on one source when one is doing bad one might be doing good So I just wanted to be very upfront and give you my opinion and give you Sort of an update why I haven't been making any trading videos Nobody wants to actually watch these videos where you know, I'm trading $400,000 not at one time But hey people want to be entertained and I've realized that I made a very honest review. Sure. Maybe I've met of overdone it with bashing on him and joking on the video, but I made a video you know last year and I can't even remember the guy's name, but he made completely fake Trading bots and people ate it up people ate it up People just want to be entertained people don't they want to be lied to they want They want that and I don't know how to do that Maybe I might start another YouTube channel where I do Lifestyle videos and I cars I love cars That's something that's that's sort of been in the back of my head for a long time. I just bought a car It's a monster of a car 800-wheel horsepower all-wheel-drive car You know comment down below if you guys want to see videos of that I may be branching off to other things while still giving you updates on the channel I I couldn't get an affiliate program going on for you guys or discounts for you guys from check Hughes's plays, but I will link his website in the description down below I think that his service is one of the very few True trading services that will give you entries and exits I'm Don't I'm not affiliate with him. I'm not affiliate with his services in any kind of way We are Subscribers to his service again full disclosure and I'm thinking about putting this thing on autopilot Getting in when he gets he gets in and getting out when he says get out And we're not again. This is all just a service I'll put a link in the description down below so you guys can look at a service if you guys are interested in not affiliate whatsoever, but I'll be honest I have been making a little bit of money on the side with earned to trade in those two videos that I made about Reviewing earned to trade service. That's been really cool.  I only made about $200 but consistently I was making about $300 $400 every month. So that's really cool And so I've been thinking I've been thinking the wheels have been turning I've been thinking about branching off and starting another YouTube channel growing that You know to Turn into a lifestyle YouTube channel car channel car YouTube channel. I have a lot of friends in the car YouTube World automotive world Maybe I might get help from them again comment down below what you want to see from for me this channel Maybe the future tell me what you would like to get entertained by Also, I'm thinking about switching over not giving you so much updates on the actual account But give you tutorial videos on, you know, how to find inflated options The tools that we use how we use them I've been promising that for a while and I just haven't gotten to him being a dad being a single Dad and having a full-time day job. It just keeps me really busy Not giving me enough time to you know, do what I love which is making videos for you guys But I don't have enough content or I should say I don't have Content that's entertaining enough for the YouTube trading world community So anyways, thank you so much for watching guys. This was a lame video get it But I did want to give you an update now that I have time I have I have a day off and my I don't have my son today So I might go work on my 800 horsepower will horsepower car It does need a few things several things But I got it at an amazing price and I'm excited to dig into it But yeah, I am into cars Again comment down below if you want to know more about that about that side of me and again Thank you so much for watching everybody. See you guys here on the very next trading video hoping it's a green trade See you guys later