All right, good afternoon to everybody to get Our windows streamed out so I don't this right now You want this just behind And we turn review we could probably Part is it to see the text. It looks pretty hard. Maybe it's just because a small Well, there's really no text in there. And it's partially the way back So Good afternoon to everybody my name is Tim This is the deep dive live stream, which is weekly live stream where we are working on circuit Python related stuff If you are brand new to this or you're catching this in the future and you don't know what I am talking about Circuit Python is an implementation of Python that runs on tiny computers called microcontrollers Such as for instance this one right here This device is a pi portal has a nice relatively large touch screen there on the front Or a screen with a touch overlay, I guess But the core idea here is this tiny computer is able to run circuit Python Which means when you plug it into your computer, it's going to show up like a thumb drive There will be a Python code file on there. You can edit that file in order to Interact with whatever hardware is connected to the tiny computer So in the case of the pi portal, it's sort of main feature is the screen and the touch overlay Which means your Python code can draw stuff on the screen But there are many many different shapes and sizes of these devices with different capabilities built in Some of them have more some of them have less some of them are tiny some of them are huge Pretty much any kind of different form factor. You could imagine The thing that ties these all together is Running circuit Python on them. So they all kind of behave the same way with regards to being able to be Coded with this Python code If you are interested in learning more you can go to circuit python org That's the main website for the project. You can also join us on the discord Which is linked below EDA fru.it slash discord and if you happen to join us during a live stream There's a live broadcast chat channel on the discord, which you can join Which is the chat that is on the stream right below me There's also some circuit Python related channels that are active all the time whether or not there is a stream going on Circuit Python is an open source project. Anybody is allowed to use it. Anybody's allowed to port support for it to their own hardware So third parties can make their own devices and add circuit Python support to them like this Raspberry Pi device Or Cduino or wave share or Arduino or Individuals they can all create their own devices and add circuit Python support for them You don't have to pay in order to do that The company that makes that possible is a to fruit and this is their website a to fruit calm They are providing the financial backing for a circuit Python by paying the folks who work on the project There's a team of folks who work on it full-time And there are some folks like me who work on the project part-time who they also pay in order to work on it So thank you to Adafruit and if you want to help support the project One of the ways you can do that is just by heading over to Adafruit calm and buying hardware from there So thanks to everybody who does that how's it going some nice over in the discord Quinn man What you doing that? Yep? I will what you covering I will I will say just a minute what we're gonna be working on although Spoiler alert it has to do with what's on the screen now. So you can kind of get a sense maybe Differences between circuit Python and micro Python. I am not necessarily the best suited to answer it specifically But I think in the documentation There is a section about this differences from micro Python. I would suggest start with this I'll link that and then if you have any other questions or interests beyond that Feel free to come join us on the discord and ask Any more specific questions if you can happen to track it down? Well, it's probably really hard right now There was a an AMA on the Python subreddit Which also had a decent answer from both Scott the lead of a circuit Python developer as well as I think either Jimmo or one of the other micro Python developers But I think this is not something you can see right now unless it's archived somewhere Or do we know just released the uno r4 Wi-Fi no r4 Wi-Fi that sounds pretty sweet, you know Wi-Fi oh Wow with a whole little grid of Let's see the picture of it, please The whole little grid of LEDs that's pretty sweet Who's that thing run off of r4? Is that the name of the CPU? I guess our for a R a 4 in one huh, oh Okay, okay ESP 32 s3 nice There's if this you said they just released this there's probably no support for this here yet, but I do think I Do you think that? ESP 32 s3 there are some devices already Based on this chip that circuit Python does support so presumably it should be pretty straightforward to add There's Python support for this device as well. That's pretty sweet Available for pre-order it looks like right now Yeah, thanks for that. I didn't know about that. It's pretty cool All right, so what are we working on today? We are working on this outlined text and to be more specific We are working on taking What is currently just hard-coded? stuff inside of a code file and Refactoring it to make a new class that is a special type of label that will allow us to set the Outline color and the outline Size and then it will draw the outline according to those values What I have in this one here that's driving this thing is I have this function add outline Which is taking a bitmap and a target color and a outline color and a size and Then processing the bitmap In order to add the outline to it whoop something saved the code So it's gonna restart here on us, but We want to pack this into a label object so that we can have like You know, maybe it would say like outlined label or something here, right? Like You know you would make it like this and you would include a bunch of these same properties But you would also include the outline color and the outline size Don't dive too deep. We're gonna be diving pretty deep into the code though No water here. I have a question regarding pie portal on the website. It says it has 256 K of RAM while the ESP 32 S2 feather has 2 mega PS RAM is it really an 8x different seems a bit strange Well, I mean the pipe portal is very very old at this point, right? Like when was the when was the pie portal released? So it's a samd 21 whereas the ESP 32 s2 is a much newer chip, so You know a light like with a lot of computers. They tend to multiply Pretty quickly. I don't know off the top of my head if those if that's like a hundred percent That's a hundred percent correct, but I mean it sounds sounds right to me not Not super big on the stats of everything so I don't I don't typically know the exact like CPU or RAM or Any of that stuff the the one stat that I'm more up on for most of the devices is the amount of space that you get to save your files I know that for more devices than I do processor speed or anything else Ram Yeah, I don't know for sure hundred megs eight megs of flash this one doesn't seem to say RAM I you know that sounds reasonable to me Sounds like it could very well be the case to me that it's eight times But I don't know for a fact, but I do think it's just a lot about the newer chip Last week you mentioned libraries that were frozen in and Not needed or used in the lib folder. How would you determine which libraries are frozen in? Yeah, good question. So the best way that I know if to do that is inside the core project If you know what device you're looking for you would go and find the Folder for that device which is going to be inside ports Then you need to choose what port it is. So like let's just take the pie portal for instance Since that's the device I have here. We would go inside at Mel samd. We would find The Boards folder right here. We would go inside boards We would find pie portal which might be ater for a pie portal, but might be just pie portal Yeah, okay pie portal right there we go in that and then I'm not sure which file it is I think maybe this one. Yeah, this one right here. So mpconfigboard.mk inside the device folder that's gonna have this list down here, which is gonna List out all of the libraries that are frozen in or any particular device Ram is mentioned in the primary guide rewrite makes sense considering the age The other thing that I do have also is I have a I should We make a PR for the new version of display text before I jump all the way into the add outline Let's do that So as part of this effort to make the outlined text I Ended up with Three can side the core to two things one new feature one new functionality with the originally bitmap dot blit function to add the Skip self index. So I modified the core to add this in order to use it for the outline text But also it ultimately got refactored into bitmap tools Which means that the actual bitmap label the regular one the existing one not the new outlined one I want to create it also does need to be changed in order to Be able to use that new version of circuit Python when that core PR would get merged, which it's not merged yet So it's not need to be right now, but it will need to go along with that. So we'll check out What remotes do we have get remote? Okay, let's rename that get remote rename origin Probably want to be adding foamy guy Yeah, for sure. You're welcome foamy guy make a new branch get check out dash B. Let's see. This would be the lit refactor It's from your fruit main track and It's really not that much to change Have it in this just copy that and then paste it and it shows the difference Need more of a difference. Okay, so importing bitmap tools There was a lot more of them. Let's go By get back. Let's say rollback We'll just change the one thing. I think it's the import and then Later on down there. It will need to use the new version Sure why the invention is different. I must have run control alt L on boards I have micro SD card like the pipe portal does the drive That it uses use the SD card as root. Yeah, another good question. It does not the SD card is a separate thing You have to explicitly Initialize and mount the SD card in your code and then you are able to access files that are on the SD card You can I believe I'm not a hundred percent sure But I think you can save Python files on the SD card and then like import or execute them So like you can run code off of it, but it's not treated as the root You have to explicitly initialize it and mount it and the default code that you'll find for mounting it will mount it at Slash SD rather than like slash as the root by itself. This is gonna be Yeah, so the part that I changed was add this which says if bitmap tools has blit then use that Though this used to exist on the bitmap object itself. I refactored it to here In order to save room on some devices that did not fit anymore So now this code will handle and so and then since we have the if statement here it means No matter which version of circuit Python you run it under it's gonna work So if you run it under like current one, it would be this The new one after it gets merged to be this you're not under a super duper ancient old one That doesn't have this then it would actually fall back and do the Python code here So I was curious about that. Yeah, for sure. That's all we Import and then the if statements like the change. I think right. Yeah, okay Let's make sure that's all we need by grabbing this copy and paste it back on the device. I'm gonna close this He's gonna assume the left is the one I want to go So I'm gonna click to that a million times if it's not It's this in here That get overridden and make sure it still works Which it does Then we can go back to our display text. We can run pre-commit pre-commit run a It will format. Please tell me it did not just changed all the same indentions that I got done I did not it did only just a little but it Expanded that one. That's it Okay bitmap tools stop blit Factors support this we will go from a guy remote display text. Let's say So that so that devices that aren't the same versions can still both work library And it created as a draft is it really should not isn't need to be in Arguably probably shouldn't be merged until after this which is set for nine point no point no Because it breaks the changes the API But we'll do this we can get this in now and get the actions worked through if there's anything it needs. Okay Now we can make a new branch and start our outlined label. So let's go get Check out new branch outlined label From so do I want to I mean ordinarily we would go from main I think I actually want to start it from I think I want to start it from blit refactor though Because we're gonna want the version of this that's modified because it's using the new code which is on my device And we want to use the new code because it has the new functionality that allowed this to work so Yeah, let's I Guess it will just go from the branch. We're on but I don't know how that I'm not sure if that's how it works Let me just go new branch from here Branch name will be outlines label Now do we need to copy paste bitmap label or could we extend it? So inside bitmap label. It's extending label base I think if we if we if we I Mean we could basically at the end of this function You could Pretty much kind of like call our ad outline thing here and that should give us the outlined text Can I over? Can I override this and then? Call the parent version, but then add something else to it. It did fail talks me I Run pre-commit, I guess I don't think I read um that's gonna be it is the docs and because that's a core module that needs That needs to use the lock See is this This one. I don't think needs to be here though. This is a library. It shouldn't still that that's either here or there He dogs, but now I'm on a new branch extra space back to outline label I'll merge emerge from this just so we get the latest stuff Python Let's rerun Python override method And call No, these call super dot show Okay, so I think we want to override bitmap label override place text Call super dot place text and then add our outline And then return the result that we got from super place text And I think like everything else pretty much should be basically the same as bitmap label We'll add like properties for the color and the size of the outline But I think everything else should not need to be different. So Let's Copy how does this one work? This extends label. I'm just gonna I'm just gonna make a new one back to outline the label outlined label fix this Just try to tab to the next field in the text file Uh, this is outlined label Why that slowed down? Let me displays Oh This is a subclass of bitmap label that adds outline color and stroke size Version I don't really need time. I don't think We do want bitmap label and we're gonna make our class label extend that We want init def init we want to I guess we're gonna have like We need to do args also So we we would eventually we'd be at well, I'd say eventually we could add it now. So let's go outlined no outline color Um, should we default it to a color or should we default it to none Let's see much sense in defaulting it to none. What color does the label default to label base default to gray That way whether they have white text or black text, it'll still be visible. I don't know if that's That's logic in the world, but go with it for now Uh, so maybe like Nines Uh outline Size equals we'll just say one is the default We're gonna call super Knit we are gonna also get quarks past quarks up Okay, we're gonna override underscore place text. Whoa Dang, okay, put all that stuff in that's cool. We are gonna first call super super dot place Text and we're gonna just pass through all the same stuff Are they Only this one has a default. So I think they're not they're just uh Quarter-based or whatever, right? We can just say bitmap and then text and then font and then x pause y pause skip index and Yeah, we could I guess pass outline stuff here, but I mean I don't know that we need to necessarily because We're gonna have self and we can just look it up off of self inside of Well inside of this function, which is here. So Yeah, yeah, yeah, actually no, yeah, we would never be passing it up to the parent function. Actually that makes no sense So what I'm talking about there Let's get our Imports working here. What's wrong with this? So I think Protocol I guess I don't know is that font I oh Turn is it terminal? What that's from Did that come from? Only for types the font protocol Contact and then I guess we'll say I mean bitmap, but I mean let's try like I don't know we might need we might need it like actually need it for something other than types But I'm not sure you already know what the outline label looks like uh What it looks like will look like as you're developing it I mean if you if you mean visually what it looks like on the display I do like it will look like this effectively. I mean you'll be able to change the color and the size of the outline um But it will look like that visually if you mean the code, um I don't have necessarily a clear picture of how that works. I'm just kind of Flying by the seat of my pants so to speak just kind of trying to Work it out as we go. I mean ultimately I would say what I'm aiming for on the code side is as little code as possible in the outlined label Class and instead hopefully we're relying The majority on our parent class the bitmap label and just adding a little tiny bit of extra functionality At the end at the end of when it renders its bitmap Uh, and then if you meant something else then Feel free to clarify if neither of those was what you were talking about I don't know why Skipindex, why is this unexpected argument? Did it why why do we have? Not sure enough. I don't know Oh, no, it's there. Oh that one. That's the one that is by name. Okay. Okay, so we need skipindex equals Yeah, it still doesn't like it. I guess probably I have a different version of display text installed in my python Environment that's not this version and I guess maybe that didn't exist yet or something. I'm not Why it's not uh It's not recognizing that but that's fine. We'll just go on it's mad because we haven't returned this. Let's get uh parent results And at the end of this we're gonna return that return parent To make it work on images or bitmaps. So Yeah, I think The way that I'm gonna implement it right now is on the label class, but the next level of this Is going to be to try to add it to bitmap tools inside the core make a new function on bitmap tools Called, uh, maybe dilate because I think that's what this process is called And that one that's in the core it will work on Any arbitrary bitmap, um Like a single colored shape inside of any arbitrary bitmap. It won't have to be text. So My immediate Like first goal is the the outlined label to make it specific for that, but I definitely do have in mind Trying to generalize it one step further and also move it into the core which should speed it up some as well um And when that second step happens it would then be able to be used arbitrarily on any kind of bitmap essentially I was referring to the visual aspect, but I appreciate learning a bit more about the development process too. Thanks. Yeah, for sure Thanks for the question Yeah, and and that's the thing too visually like it's very, um It's it's very much up to the font like whatever font is there will have a huge impact on how it ends up looking We we could change a few other things about the visual like right now I am doing I don't know if there's a technical name for it, but I'm doing I guess a square dilation um, you you could do a rounded like a circle dilation instead and it would make Some of the corners look more rounded. So like the top of the h here for instance Right now it's like a square cut 90 for both the foreground, which is the white and the background the outline Which is the black it's a square 90 if you use a circle For your dilation instead of a square then you could end up with a rounded corner For the black up there Which might be a nice effect So like that that may be something we do eventually as a way to kind of give it a little bit of a different twist visually um But that's definitely a relatively minor thing grand scheme of things is it will only really affect those Corners those hard cut corners Everything else would end up kind of looking the same Okay, so we want to here. I think we're gonna just call a function that's called add self dot add outline I we could make it and um Yeah, I don't I mean it's kind of the same deal We don't really need to pass anything to it because everything is going to be on self anyway, so I mean like we could pass arguments, but it's not going to change anything You know one thing we will need to do is probably set up more colors. Where does our palette get created? Is this reset text? Where does it come from the first time that background color? No, but that's only that's just setting items Who creates this? Maybe it's the parent Oh, that's gonna be gonna make it a little tougher, isn't it? Self-taught uh, there it is. Yeah. Yeah. Yeah, okay Um Yeah, we're gonna need a new palette as well because we need to add a third color for our outline because you're gonna be allowed to have Foreground background and outlines so technically you'll be able to have the foreground like the white text The background like the black rectangle here But then you'll also be able to have the outline so you could say have like a red outline for instance And you could have the black rectangle with the red outline around the text too You can take the background out if you want like you'll have your choice of how to do it But we need three colors if we want to be able to support all of those which means we need to change this palette You have three colors, but you can't I don't think like change Palette to have more so what we'll do is we'll say uh foreground color Is equal to self dot palette Z I think zero goes to the foreground That was over here where we set that Set background Okay, zero is actually the background color But that makes it seem like at least so we'll say foreground is one Duplicate background That'll be zero So we'll save those two into their own variables and then we're gonna go self dot palette Is equal to a new palette But we'll have three colors instead of two And we'll technically also be throwing away the old palette here And So then we're gonna turn around and go zero equals background one equals uh foreground Two Will be the outline color Okay, so now we have three colors in our palette and we have the outline color too Got our parent result we add the outline to it return the parent result So Yeah, aside from the fact that this doesn't exist and therefore obviously this won't do anything And this looks good. I'm gonna make sure by just creating this Add the outline And I'm just gonna put pass inside of it and then I'm pretty sure we should be able to create one of these objects and put it on the display It won't have the actual outline in it yet. It will just be a copy effectively of bitmap label at this point But this will tell us if uh I have completely broken the location at all So bitmap labels are fine. We want to make sure that outlined label. So is working So what I'm gonna do is I'm gonna change this bottom one here From being a bitmap label to being a outlined label and I just said it's not actually gonna have an outline yet, but It's gonna tell me if I've already broken something or not other. No, what is it? It's um Rectangle text area this one. So The change our import Outlines label I mean to put this. Oh, did I not call it label? I called it outlines label What are you for scrolling label? I think we will call it out. I think I'll keep it as called outlines label since it does a different thing So bitmap label and label Both contain a class that is simply called label But that is because they are essentially meant to have the same api. They're kind of meant to be like drop in replaceable Outlined label and scrolling label have different functionality. So I think it stands to reason It would have a different name, which means we'll need to do this too But other than that, it should just work. Everything else should kind of follow through from being a bitmap label. Hopefully Attribute error dict has no Get glyph Definitely broken something outline label 41 Which is just where we call super Oh I'm pretty sure I need to do More like this, right? Oh, uh, maybe font actually as well Probably, right? I'm a font though. Can we get that from parent? It's because it's not a quark though. It's a uh A um position based one, so I guess maybe we can't uh Maybe that should work Skip index we change the error at least add outline. Okay at 51. Oh, no, no, it's still Oh, no codepie 51 It's a creep Still 41 here still director Basically get all the way into reset text Reset text is going to call place text, which is going to call Outlined label place text, which is then going to call super and back into Bitmap label place text, but it's failing 66 Got multiple Values for skip index So like here it just doesn't pass it So it's a none to write all pixels. Otherwise skip this palette index when copying glyph bitmaps imported for slanted text where rectangular glyph boxes overlap How would we have multiple values? I don't really get why we would have multiple values When in doubt turn it out You know what they say I don't know if they say that but they should Zero real looks like one value to me Um, let's look at 209 reset text It's here. That's where we're calling place text We call place text. We pass bitmap We pass text or possibly reversed Pass font Padding left padding right Well minus some stuff Plus some stuff two three four five out of one two three four five six Does it get used in here? This is actually used It's passed a blit But yes How does it think there are multiples? Okay, here's what we're gonna do go back to 209 Right before we call place text I mean I can't print out skip index though because I don't have skip index here But it would default to zero here but We would call inside place I'm glad I I did this before we had any of our actual outline functionality because if I was trying to troubleshoot this while also trying to troubleshoot like Radiuses and bitmap manipulations and blitting and all that stuff like we just have so many things Wires crossed. Okay. I wasn't scrolled down. It was like that's a surprising output Okay, so inside bitmap label place text Actually, I'm a little surprised by the order of that, right? Didn't those Be in the other order. Oh nine is here out to call place Yeah, here we're inside reset text inside How to call place text The way I thought this worked is When this calls place text, I would be expecting it to call Outlined label place text since that's what our object actually is In the case of our code over there This does get tricky because I have the other labels actually still on display Let me turn those off. So we're only looking at pronounced from the one new one A bunch of stuff for that problem or back to the same thing. We only should have only pronounced from our one We're inside label resists replace reset text. We're about to call place text Okay. Yeah. Yeah. Now we're inside outlined label place text We had skip index of zero Because it was not passed and the default value is zero Just got printed from here Then we try to call parent Place text Is it not supposed to be this? I don't It's still orange like that to Seven positional arguments, but eight were given so Not supposed to be positional. Yeah, I'm a little Stumped on that why Be a lullo That is that is bizarre. I don't like that I don't think this Doesn't tell you what's wrong. Like I don't I don't understand how I mean it Obviously it does tell you what's wrong. So there's just it works in a way that I don't understand but It would be nice if that error message was like somehow related more so to self and First argument rather than the last argument I guess like everything shifted so Okay, okay. So everything shifted which means that It was treating y position as skip index and then it was treating skip index as skip index But it It would also be nice if maybe that could like check for self right if that's the common way that that happens Maybe just check for that and make the error message say something about it. That'd be pretty helpful Okay, we made it though. Thank you stack over flow hug report for sure. I didn't see the username, but thanks to that person Um, we do have our box now, so we should be good add outline. Let's just make sure one more thing real quick Let's make sure our add outline is actually like doing something Doesn't matter what it's doing Just yet, but let's make sure it's doing something for now. Let's just um draw a line inside of the bitmap so bitmap tools dot Draw a line bitmap is self dot Map and then x1 y1. Let's go zero zero Not tall it is for sure. I guess, uh, maybe let's just say like 50 and Value, uh, so let's do two because that That should be our red Oh, you know what I just realized we're gonna have the same problem That we had with our palette, but with our Bitmap it's probably gonna be the case because score bitmap is Going to get created from the length of palette It's gonna be two when that happens Oh, but this is inside reset text actually so I kind of had assumed that would happen inside of a knit But I was wrong. Okay, it gets set to none here. It might it might actually just work actually Okay, red line. Nope out of range. Um It's 10 too much 10 is too much 50 I guess You should make the outline. Oh, I would try and see I would try and see sure what you mean Range of targets still Do we not have don't have the bitmap out of range of it's the size With the 289 At the 37 Yeah value Well out of range Yeah, I think it's telling me this one Yeah Okay, and there's our line right there as well. So we can't paint our outline color so Reset text gets called from init of bitmap label And at that time When that happens There is only two colors in the palette Because this happens inside of here Both of those things happen. It creates the palette with two. It calls reset text Therefore our bitmap gets created with two. We then create a palette with three out here But our bitmap still has two and reset text does not get called from Reset text, I guess Okay, what if we just do Inside outline label? What if we go here and do it again? So let's just say self dot Copy whatever it says Okay, so no change, but can we use red now? I think hopefully we should be able to from here well Oh, you know what I'm saying red, but like is it actually red? I ever even set it up Create a new bitmap unless it can be reused So probably it probably thinks it can be reused since the it's only checking the size here Well, it's checking none, but It'll be none And the size will be the same so it thinks it's reusable. Therefore it just does this So calling reset text at the end of here does not actually help us Box this is all like so much stuff up here Uh bitmap is none. So what if we go What if we do this? Can make it none in our case Out of range of target It would not be red. It would be this color because we didn't Add anything I'm sure right here. Um, okay, we're gonna I mean it has to be the colors So What if we go self dot bitmap? We just set one pixel. Did we get the exact same error? Oh, but yeah pretty So it's like our bitmap still has the wrong number Colors print Creating bitmap with this many colors Length of self okay, how many do we get? Getting bitmap with two colors Never did it again. So that did not work By bitmap label reset about to call place text Wait, we never got the new one Outline label 41 Calling a knit of bitmap label. So bitmap label a knit 113 is gonna be Set text Set text to 11 place text This text goes inside outlined label Outline 61 Okay, we have not really a race condition, but kind of because This whole chain of events is Happening because of or inside of this A knit call here. This is causing everything to happen Including reset text place text and all that Which is causing us to add outline which is causing us to try to do this but all this is happening from Inside of here all this is happening because of that call at the end of a knit Which means we haven't even finished A knit of bitmap label yet, which means we haven't made our new palette Set our bitmap to none. We just haven't done any of that stuff yet. We're basically still in here Hmm That is tricky I don't Like it It's probably not The actual ultimate solution But if we just ignore that will the rest of this work If we fail to add the outline then don't bother Okay, okay, uh Yeah, I guess I I do have it. Let me actually do make it red Okay, I think the red pixel is there I'm gonna switch it back to the line because that'll be much easier to see Than the single pixel I don't know if we have a different way to do that though honestly because I mean I should say I can think of a different way to do it, but it involves essentially copy pasting a lot more of bitmap label Because like we could copy paste a lot more of bitmap label and then we could change a knit And then like the rest of it can follow suit and we can tweak anything we need But it would be ideal if we can avoid copying like the entire bitmap label class essentially if we can override it instead That's so much nicer And if we override it We need to hook into place text. I'm pretty sure And if we need to hook into place text and we need to call our add outline This is always gonna want to fail the first time it gets called because It's actually gonna be from the init of the parent class rather than Our class so we haven't set up any of our special stuff yet and we can't do it this way because All these things rely on stuff that got done inside of here.  I guess we could like literally like Flip a boolean for first call or something like that, but that doesn't seem great either Well, we'll keep kicking it around the whole brain. We'll see if uh See if anything Better than that comes to mind at any point, but the good news is we have our label showing We are calling our add outline. It's actually being able to add some red pixels. So we're like Most of the way there. We pretty much just need to grab This code Put it inside of here. Hopefully we need Yeah, let me keep all that stuff for now. So add outline Okay, so Yeah, no, we don't need to pass any of that stuff. I don't think We need to pass any of that stuff. I don't know. We don't need the Okay, so stamp source that is our uh, that is our square I was explaining that square and circle dilation This is effectively choosing whether we're going to get those rounded corners or not And in our case, it's a square. So we're not changed to be Here because we need to create one Although we should not really be creating it every time we call add outline because that's going to be every time We change the text truthfully we should create our stamp source Inside of a knit I'm going to put it on self It's going to be a bitmap the size is going to be the outline size How did I do that outline color index? Plus one where because it just it needs to be Big enough it needs to have enough indexes for us to set the index we want So in our case, I think we So outline color index is always two so this could just always be three And that should work as long as this doesn't change then this should work outline color index But it would be two not three there because it's not plus one like that one was okay So now we have our stamp source. We create it inside of a knit so we can use it later on without Having to create it again. So now that's gone, which is nice. We won't be creating that bitmap every single time we change the text Bitmap that height so that's going to be self bitmap and self bitmap And you guessed it Self bitmap target color index now that's going to be That's going to be the foreground color But it's going to be the index of the foreground color Which is One bitmap tools blitz self Self size that is outline size. We should save that on self. I don't think we did that yet We'll make a Property later as well with a setter so this can be set and get We should save the outline color as well. We might as well We're already setting it on to here. I guess but Yeah, actually we're already setting it on to here. We don't need to save it We're going to be using the index anyway. Okay, but size this would be Yeah, that's would be outline size. Yeah, yeah target color index Uh, so that is our foreground color, which is one I'm gonna skip anything else. No, I don't think so stamp source. Oh self dot Wait, who tried to use stamp source? outline label has no stamp source 85 Oh, I did it underscore. I think I did it underscore It has no stamp source either What did I call it? Okay, we have the same chicken and egg problem again because We're inside of this one, which means we haven't set that up yet And so maybe that's what we key off of That's what we key off of If self dot stamp source Then we And we do all this stuff should filter out Not only the first one, but any one that happens to ever happen before We have this I do like this a bit better than the try catch Works Which it does not so I'll add to check if we have it It's like has adder at that point. I thought it would be none if if we didn't have it doesn't get to be none All right. Well in that case, we are just going to go back to try catching and we're going to catch the value error which will come from Not being able to use the correct color yet And we are also going to catch the attribute error We now know comes from Having a stamp source yet attribute error Why is this whole red? Oh our convention Outline still black instead of red Line might be black instead of red. Let's take off the background color First set it to none So is this code adding the Backbox I'm missing something No, that's not adding. So what is adding the black box? Color color background color kinds of trouble So does background default to black or none? What's to none? Color is none It's because we made a new palette Is there a get transparent? I don't think there is Is transparent or is nice. Okay, so we will say Back into outline label Before we throw away our old palette. We also want to say Background is transparent equals palette is transparent index of zero. How's it going DJ Devin? Good evening So if that is will be true or false that's going to get stored in here and then after that we'll say if Background is transparent then self that palette It's parent zero I have no more black box You get no bed either so Oh, that's turned back on actually Yes, we're always getting these exceptions. I have to assume we're always getting these exceptions Just back So it's not a list Isn't isn't there a better way to do that? Did it will just print correctly? Did it print? Print trace print exception. So we got one That we did not have a stamp source And then we got another one that we did not have a stamp source Uh, no see because now we call reset text here So let's put these before that Nice Okay Now we get red and we can change the color now here inside of our constructor Green let's say although green is going to blend in with the Raspberry Pi so that wasn't a great choice You can still see it pretty well. Oh, yeah, okay um Let's make sure if we change the text that it Like works nice Now one thing that might break it is Changing the text color That was fine. Okay. Uh, what about changing the background color? So what if we did bring back our background color? And let's also change the background color here But I do that before the sleep. No, it's interesting how it's interesting that it refreshes Before it changes the text like we get to see these two things happen Before this one pretty fairly significantly timed One thing we may still need to be doing is the patty I think he did not offer all this padding. We might actually Not have a Outline that works correctly It's like a real outline or stroke or customizable. This is like a real outline or stroke and customizable. Awesome. Yes. Yeah actually not Parable So one thing is down here. We don't have a green it looks like And I guess maybe like one pixel on the left. I'm not sure about the left, but maybe one pixel on the left is cut off Definitely the bottom of the p though I think we need to like intentionally make the padding bigger A little bit like we need our padding to be our default padding should be based on outline size Should be like some Feel like the outline size plus something plus some static constant And padding bottom of one is actually not quite big enough yet because we still Either have one or zero pixels of green down there. I'm not sure but it's definitely not two, which is what our outline should be Maybe that could be There you go You find out we could definitely be counting pixels if we do that If it I will say like if it was quicker to get it from the sd card into the computer I hope that one day we will have passed through sd card to where the pie portal can be plugged into the computer and then On the computer we can see The files on the sd card blue pixel down I guess we don't need to have one. Do we want to have one extra? It's arguable. I don't know the Super strong preference I guess There we go now there's actually so random though one on the top four on the bottom Two on the left two on the right and we could probably get away with one on the right Can we or to put it another way? I'm pretty sure the right had Two pixels of space and the left had one But we could have also put the left on two instead of putting the right on one but Get down from the top And yeah I it hit some kind of snag of some sort I don't recall or I don't think I ever really knew what the details were I do remember when Dan was working on it and I think I recall a an update on the uh Maybe an update one week on the meeting or something that was about whatever problem that ultimately came up Something with usb. Maybe tiny tiny usb something It's updated in there or something to support it. I'm not sure But yeah, that would be super duper sweet if we could do that Or uh screenshots Okay, let's make a color so that we can change Rather, I mean, let's make a property so that we can change the outline color Uh, we do need to oh We do need uh, no, we don't need to save it actually we could get it from pallet No, for sure if that's actually gonna work. Let's change it to red nice Uh, so really the only thing left is I think the size Actually Let's change it to one here. I guess So we can't really go bigger just yet because the paddings don't get adjusted Actually, I don't know the paddings Is padding a They're individual pat properties for the paddings or those only set from the constructor Those are only set from the constructor right now. I'd actually need to be able to get those because I think we need to check the current padding and see if it's big enough and then if it's not make it bigger Um, I will be right back though Or anything about usb host device Do we're working on lately possibly something like that instead of hosting externally? Uh, yeah, that's a good question. I do not know I know the only thing I know about the host device stuff is um It would allow you to plug in a keyboard. I'm pretty sure But I that's really the only thing I know about it. I have not actually caught show and tell Uh, I watched yesterday's show and tell but I have not caught the last couple before that I think it's been shown off a couple of times, but I'm not sure the details So we're gonna have a problem if we try to make the outline size too big because We're gonna need to increase the size of the padding as a result of making the outline size too big quote-unquote Uh, which is actually ultimately it's gonna kind of have a cascade. It's gonna have to end up making a new bitmap as well Which is not super efficient. So Yeah, the recommendation would be probably don't necessarily change the outline size dynamically unless you really have to but I suppose we could just not provide the property for it It looks like it worked anyway, though That still looks like two to me Oh, but you know what? It's not gonna call reset text or whatever, right? You know, I think we need to call reset text After we change the outline size so that it will get re-rendered Don't have font Um, is that get stored somewhere? Elf dot font probably I'll score On board so I have an sd card the only thing I use before is music and screenshots What does padding do is that for within the rect? Yep. Yep extra size inside of the Inside of the background of the label That looks like we went down to one on the left and the top but not The right and the bottom Well, you know why that would be because Whenever we change the outline size we actually need to also recreate the stamp source And that is now now our red is actually one and we could theoretically I think set it to anything But if we go bigger than two We're gonna start cutting off the Outline by the edge of the rectangle on the right edge. It feels cramped a little bit The bottom it no longer has its blue line, but I think the outline is all there, which is nice The left looks like it doesn't have its blue line either Pop is now down to one Well, we've made it pretty darn far. I think what I'm gonna do For now is copy this stuff back Into display text repo, right? And now a bunch of this is gonna have new print statements, which I have added a A lot of Is it in here if they're identical Sense is that very much, but okay We can get rid of all these prints now now contents are identical if I So again, it should well, that's probably why You can treat it as a difference though This is a whole this does have a lot of print statements in it as well There used to be a thing called compare with current Or something to that effect and it's not here anymore I don't know how to do it like I think there used to be one called compare with current revision And it would compare the code that you have in the file against the code that is Currently committed in the branch so it would effectively give you your diff of whatever you've changed Since your last commit It's also what this is, but I'm Kind of weirded out by this contents are identical like why is it treating it as a change if the contents are identical? I guess we're just gonna have to live with it though I'm gonna turn off the prints. I think let's get rid of this You can also delete this now. Yeah, I mean I guess we could go back to passing on those Okay, only two that are left are commented out Eventually we could also get rid of some of this code as well, but I'm gonna keep it for now because it's kind of In the mix with the core pr so outline label That's the lines too long valid names Unused variables does not like my commented out print statements That's it, right? I'm gonna go ahead and push it for now. Even though it's gonna fail the uh pre-commit check All right, so that'll fail, but that's fine. Okay. I think I'm gonna wrap it up there for the evening So we created I don't know if I ever did look back on this one again. Yeah, there we go. Okay. We did pass the second time so it's nice Um, and then we don't I don't think we want to create this one yet Uh, especially since it's not gonna pass Actions I think it will definitely fail all that same stuff we just saw So it's nice to have it pushed and up into github I'm just like saved somewhere other than my computer, but it's not quite ready for the pr just yet Um So I think I'll cut it off there. Thanks for hanging out. Uh, everybody. Thanks for all the good questions We have a lot of great questions tonight. I'm always happy to answer your questions about I mean pretty much anything circuit python related whether it's what I'm working on or not. So Um, yeah, feel free to come back on Friday afternoons if you have questions And I will certainly attempt to answer them to the best of my ability Um, thank you to everybody for hanging out. Um, I will be back in the morning tomorrow morning at 10 a.m Central time over on my own channels I will post the links in the live broadcast chat just like I do every week. So if you want to watch more uh circuit python programming content like this you can find that tomorrow morning and If you would like to do so then I will see you then I hope that everybody has a good rest of your evening and a good weekend and all that kind of stuff And otherwise I'll catch you next time whenever it may be Let me see the chat here. Nice feature to have. I've been shooting using the four. Yep. I saw Yours with the the kind of offset four Would have such a huge performance hit on the s2 or s3 stopped using it. So hopefully be more efficient It should be. Yeah, I think it should be for sure because it will at the very least it's it's no longer using uh multiple copies of the whole bitmap so Yeah, it should it should take up less ram for sure. I would think So yep, uh, thanks again everybody and I will see you later


To je vse človak, da počakam, da počakam, da počakam, da dočakam, da to je poslubitivno izgleda izgleda zelnostivnjega djela, v zelo velika vzela izgleda in izgleda. Vse predstavimo, da vse zelo izgleda, K machu da vsej pridragao zhousna vjadeki in sosialu krti vsih nekajvanih, maskovnih izgledaj, in srednjih, vsej odmah, odgledaj, ki se bozivovano vsejzinih,takej z njenom izgledaj, morajo otvariti. Prijetnega do konferencije, uvr轉 lemo, into elimination of binary gender. I'm not a woman, I'm not a man, I'm a woman being. We are aware of the limitations of the archaeological data and subjectivity in hand in interpretations, after all we are part of our interpretation. And we are going to make a tour in past time V izglednih kvaliti, že izgledne rekočje in nekaj nač Solosveni načinba jazne neštisedne izgledne gobri, zato sebega izgledno sej, na tukali izgledne.  Genarkeologe v spanishi prejstori, vzveč v Andalusijali prejstori, propozitva in aktivna in sentra za vljubi v dergari domestičnih spasih, kaj je to rekonstručnje, vzgleda z vzgledajstvih aktivitajov, kaj je vzgledajstv, kaj je praktyzov in vzgledajstv. Vzgledajte vzgledajstv vzgledajstv vzgledajstv, or Belbica period in the second half of the millennium Calbici. Did women become invisible? Archaeological literature have emphasized the mild protagonism or metallurgical activity, alliance networks, warfare, mainly based on exceptional individual graves and those of Amesbury in the UK, Night Kingdom and Hinterdago Bränke in the Northern Portugal. And in the right hand I have a very well furnished Belbica man. And you can see in the lower part of the slide are the goods that were composed in the Quinta Dagobrenka votive elements. But women were there too. In some calcolitic macro villages like Prvigam or Portugal there were women pit graves without any funerally goods. In other cemetery in the region of Madrid women graves generally display copper walls but in few cases they were furnished not only by walls but also by weapons. Copper Palmela Ruetz and not only in a marked pit graves but also in monumental burials like the Funerally Enclosure Bella Vista 5 we have already seen. A previous ditch settlement enclosure was transformed into a single monumental grave for a unique woman who was older than 70 years. And this data supports the proposal of the existence of multiple feminities and masculinities in that early Bronze Age. A binary gender model proposed by some scholars for the second half of the Third Millennial Calvacy where all the social power and wealth were in the hands of men is being contested in some years for some years, namely by Alice Rugens who studied 246 women burials from 116 netloppels in the UK and concluded that female funerally rituals were complex and variable, mainly by age. So, being a female was not to be part of an homogeneous category. Women were active members of communities and in some cases they had been worried with so-called weapons. We cannot assume a straight division of male and female artefacts influenced by our cultural patterns inherited from the 19th century. Let's step back in time. The ambiguity and intersambule of feminine and masculine sexuality of several calcolithic figures from the first half of the Third Millennial BC in southern Iberia are telling stories of exchangeable functions performed by women and men. So, for example, the idol, the figure, the ivory idol from the calcolithic site of Malagon it has a feminine body but he has a masculine attribute clearly expressed. In this ambiguity it is very characteristic of the images from the calcolithic period of southern Iberia. Ideological representations with sun eyes have bisexual connotations that are poetic. Although, at the first glance, the cylinder idol supports the male concept, female attributes can be perceived on it. Therefore, we have a synthesis of the masculine and feminine which means the possibility of the existence of a defined gender. Two specific contexts now. One is the fortified settlement of Porta Skaredes in southern Portugal in the bank of the Gudjana river and from the first half of the Third Millennial BC the functional plan of this settlement showed in zones that zones I and G were dedicated to weaving. In zone I there was an engraved cheese plaque among the concentrations of lung weights. This can be interpreted as a connection of weaving craft with the ancestor megalithic feminine divinity created with this. A tolož of Montelier in Sevilla the big funerary chamber revealed an extraordinary concentration of adults women. About 75% of the total buried individuals without non adults. The funerary items were also notable with exotic items supposedly ornamented clothes with mineral, shell and amber beads ivory votive shears gold and huge amounts of scenario. So everything was red. Bones. This context has been reflected as a tone of women collective of a women collective dedicated to religious functions which opens a window to more plural and complex activities for women in late prehistory. A reconstruction and from the one step back to the knowledge. And we are arriving to the main point of the main topic of my communication. There are a knowledge foundational myth that shows sexual equality in the middle knowledge. In the megalithic schematic art the expression of a probable foundation myth can be read in a manner of Sagres, southwest corner of the Iberian Peninsula. And male and female are completely undifferentiated in the form of two similar snakes that came from Earth and the egg of life emerged from the coplar and in the other side you can see another expression of the same myth in the painting from the domain the Antelash where we can see also the two snakes and for conclusion in the late prehistory after Bronze Age with the emergence of the state Argyric state or late southwest Bronze Age state we can root a probable binary gender social organization with male dominance connected with the control of plural culture and the political power metallurji and political power although it is a very general and hypothetical picture it doesn't show the whole reality that archeological record has been revealing even if the accessible past is limited and fragmented we can suppose for the Neolithic Iberian societies there is a scenario where multiple genders or zero gender situation could have existed Thank you very much


Starring Burgess Meredith in Assignment for the Prompt on the DuPont, Cavalcade of America. One of the most unusual, now it can be told, stories of this war opens a new Cavalcade season. Burgess Meredith in Assignment for the Prompt on the Cavalcade of America, sponsored by the DuPont Company, maker of better things for better living through chemistry. You can make your home fresh and attractive by painting your walls with speedy-Z wall finish. Speedy-Z comes in 11 beautiful pastel colors, and it's easy to use. All you do is thin it with water and apply with a brush or roller. Speedy-Z will cover wallpaper and most other wall surfaces in one coat, and it will cost you less than $3 to do the average room. It's Speedy-Z wall finish, and it's made by DuPont. Tonight's Cavalcade drama tells of a fascinating secret of this war, a dangerous adventure undertaken by a civilian. All names of persons are fictitious. The DuPont Company presents Assignment for the Prompt, starring Burgess Meredith as Professor Harold Moffat on the Cavalcade of America. A warm, lazy spring morning in the southern university town of Valehurst. Harold Moffat, professor of geology at the university, is standing on the porch of his house, gazing up at the clear blue sky. He's concerned with only one problem at the moment, whether or not his rose vines are going to bloom. Morning, Professor. Oh, good morning, Charlie. Looks like you're going to have a nice cup of roses. Looks like the Charlie a little worried at first. Too much rain this month brought the A for south, but this spray will get them. Yeah. Isn't the radio this morning? The radio? Oh, yes. Think the big show will start over there soon? The show? Oh, the invasion, the second front. Oh, I don't know, Charlie. I'm not a military man. I leave those things to those that know about them. Yeah, me too. But it's going to be something when it does start. Yes, it will, but I hate to think of it. Yeah, me too. But it's got to be done if we're going to get into Berlin. They say those beaches in France are so well guarded that a flea couldn't get through. It's not going to be easy. Harold, Harold, it's ten after eight. Yes, I know, dear, thank you. You have to take the car to the garage this morning, you know. Oh, good morning, Charlie. Morning, Sally. Well, I've got to be going up to the campus, Charlie. Well, don't forget now. Leave the car at the repair shop. Pick it up this evening. Stop at the store for those things I wrote on the list. No, Sally, dear, I may be a professor, but I'm not absent minded. Absent minded? Anybody who can play bridge is the way he does. No, Charlie, don't get him started on bridge. All right. See you later, Charlie. It's your thing, Professor. Wow, you're not taking that spray gun to class. What? Oh, no, I'm sorry. And don't forget the list. It's in your right-hand coat pocket. All right, dear. Oh, great guy. I think so too. Good morning, Miss Byrne. There's not much mail. Just a letter from the geologist's journal. Your article is due in ten days. Your first class is at 9.45. It's always at 9.45, isn't it, Miss Byrne? Mrs. Moffat called. She wants to know if you left the car at the garage. Yes, I did. I also have. Yes, I do. I have the list in my right-hand coat pocket. Now, these are my notes for the morning. Yes, and you have a luncheon engagement with Dean Collins. Yes, I know. Thank you. Well, time for class. I have been discussing with the class. Lies more on the realm of archeology than it does properly in the geological study. However, ladies and gentlemen, there is... there is an overlapping of the two sciences. Excuse me, Professor, but there's an important telephone call for you. For me? Oh, very well. Class, let's see. It's only five minutes left of our time. I think we shall dismiss. Good morning. Is it my wife? Oh, no, sir. Washington's calling. Washington? Which wife? DC. You mean for me? Oh, yes, sir. No, this must be a mistake. They asked for Professor Harold Moffat. I see. All right. Thank you, Miss Burns. Excuse me. Professor Moffat speaking. Yes. When? I see. May I call my wife? A plane? Yes, I know where the airport is. Very well. I'll be there. It was for you? Yes, Miss Burns. I have to go to Washington. Oh, is there something wrong? I have the slightest idea. The War Department has an airplane waiting for me at the airport. The plane, they'll have me back here in time for dinner. Oh, why? What's the matter? My car's at the garage. Oh, I can drive you. Thank you. Well, let's go. This is extraordinary, Miss Burns. Just think, a plane waiting to take me to Washington. Professor, you will want a 20-man investigator for a certain job. You're a geologist, a soil engineer with a great amount of field experience, right? Well, yes. We're going to ask you to go on a mission. Highly dangerous, highly secret, highly important. Yes. You will be asked to leave this country for 90 days to serve the capacity for which you are so admirably suited. As a geologist? Exactly that. I can't say any more now. Will you take the job? Well, now, may I think it over? No, you must decide now in this office. If you say no, there's another man waiting. Now, I can refuse. Yes, you can. If you take the job, you may not come back. Oh? You are 48 years old, Professor. Yes, that's right. I mention that because you will be subjected to hardships which will tax you to the utmost. I see. Mental strain will be worse than the physical. Is it a worthwhile job, Colonel? I mean, it's really doing something. Yes. I can't refuse then, can I? I didn't think you would. Thank you, Professor Moffatt. The plane will take you back to Valehurst. And, by the way, we leave it to you what to say or not to say to your wife. Ah, thank you. I'll think of something. I don't see why you can't write to me. I'll try to, dear, but you see this is a somewhat secret mission and the government doesn't want our route, no. Oh, of course. Well, no, you're all packed. Yes, I'm all packed. Sally, there's something that I... Yes? I...  And I'll miss you, but 90 days aren't so long. No, 90 days aren't, but I... Hal, will you be gone long? There's a chance of it, Sally. Well, we'll make the best of it. No, Hal, don't think you're a young man and go running around with just a shirt and no coat.  No, I won't, and please take care of yourself and don't worry. Goodbye, Sally. I haven't been kissed like that for a long time now. Yes, sir. That one has to last you for 90 days. General Beecham, this is Professor Moffat. Welcome to England, Professor Moffat. Thank you. You're the last to arrive. Please join the others. Gentlemen, you are scientists from all the English-speaking allied nations, civilians. However, I shall talk to you as I would men in my command. Because technically, you will be. You know this assignment is dangerous. You know you may not come back. You've been investigated thoroughly, but... and please listen carefully, gentlemen. There is always the chance that someone may talk. I am going to tell you plans known only to a handful of top-ranking officers. Before I do so, I order anyone who thinks he may talk to leave this room now. Very well. If someone does talk, if there is a leak, if security is breached in any way, you will not be court-martialed, you will not be fined, you will not be censured.  I know that sounds rather melodramatic, but millions of lives at stake. There is still time for any one of you to change his mind. Good. Now, this is your mission. Certain beaches of the Normandy coast have been selected for the invasion of Hitler's European fortress. That, gentlemen, is the secret. It is imperative that we have more information concerning both beaches. We must learn where steel mats are necessary to support the weight of our equipment, where equipment may be put to shore without mats. How much weight every section of the landing beaches will support without giving way, causing our trucks, tanks, and other artillery to bug down and perhaps spell failure, even disaster. That is your job, to test those beaches. You will work at night, high during the day. You will work in pairs. You will undergo a rigorous combat course before going to war. It's nice to get up in the morning. Does it ever stop raining in the British Isle? It develops into a thick fog after the bits. And you may have my word for it that the fog is every bit as wet as the rain. Oh, I'm tired, Mac. That I am too, Professor Moffitt. It's not a good thing for men of our age to be wallowing in the mud and climbing fences and walls like small children. Every bone in my body is bruised. Well, cheer up, Professor. The worst is coming and not far behind is my guess. Maybe so. We've been training for three weeks now. Three weeks, eh? Oh, when I think of my cozy flat at the University of Edinburgh, I wonder why I didn't open my mouth when I was asked if I wanted to decline this. Probably for the same reason I didn't. Eh, well, I'm going to catch some sleep. You? I will if I can get my legs into bed.  Professor McKenna, Professor Moffitt, fall off immediately, full equipment. Oh, not again. We just got back. Well, there's nothing for her but to play along. Now I know what they meant when they said we may never get back. We may never even start. We won't be able. Gentlemen, this is the real thing this time. It was necessary to do this suddenly. Arrangements have all been made. You know the beach is your test. You're familiar with your inflated boats. You land by rowing the shore. Your boat officer will give you final instructions. Goodbye, God bless you, and the best of luck. Moffitt? McKenna? Are you ready? Yes, I believe so. The Normandy coast is clear ahead. Five hundred yards. You? Then, eh, yes, we are ready. Your rubber boat is inflated. This way, please. As quietly as you can. Cut the motor. This is quiet. This is the grave. Grave. As soon as you didn't mention that word. I'm sorry, Mac. You heard it correctly? Yes. Equipments loaded in your rubber boat. When lots of them briefing, as soon as you hit shore, unload, deflate the boat and hide it. If you run into trouble before you reach shore, file a rocket. You'll be waiting out here for fifteen minutes. If we don't see your rocket, we'll assume it. You're all right. And if it's me asking too much, when will you be back for us, Ladi? For a night from now. Go out here and wait. Suppose, and pardon me, suppose you don't show up? We will. But let me warn you, gentlemen, that if you're not here, we'll wait until just before dawn, and we'll leave.  Good luck now. Godspeed. You're listening to Burgess Meredith as Professor Harold Moffat in the dramatic adventure, assignment for the prop on the Cavalcade of America, sponsored by the DuPont Company. Maker of better things for better living through chemistry. As the second part of our story opens, Professor Harold Moffat, far from his southern university campus, is crouched in a small boat off the German-held Normandy Coast. This mission, one of the most dangerous of the war, is to test the beaches for the coming invasion. That was the insides of the Dales partner. How long have we been patrolling? Fifteen minutes. Well, we should be there. Do you see any lights? Not a sign. We, Professor, look to your right. A flicker. Yes, Mac. Paddle to the left. That must be the centric post. Hey. Come, hurry it up, Professor. Hurry it up. Watch it, Mac. Will you? I've got the equipment ashore. Deflate the boat. Here it goes. Devil, it says load as the Midland Express on the moors. Put the valve under water, quick, Mac. Stay right here, Mac. I'll check the orientation points. Take care of it. Yes, don't worry. Set the equipment up to the first test. Right, man. Hey, Grilla. Same deal. That is the centric post up there just beyond the curve. You remember the photographs where there's nothing to be used for almost five hundred yards? We'd better get to work. The best way is to take sections of the beach for about, oh, hundred yards each night. We can make the tests at ten yard intervals. Right. Here's the first quarter pipe. We'd better sink it in the section. Hold it, Mac. Go ahead. I've never known a rubber mallet to make this much noise. Like thunder it is. It's the pipe sinking. Aye, fast. There's the soft stuff here. Steel mats will be needed. Professor. Got dogs. Yes, well. We'd better keep going. When dawn breaks, I'll take the first turn sleeping. You stand guard. You need to spot the centuries when they make their rounds. How many there are. Once we've learned that, we can work faster. All right, Mac? Here we go again. Where were you? Dinner is ready, Professor. What have we got tonight, Mac? K-erations. For a change? Three days and nights here without so much as one hot bean. Oh, I'm telling you, man. Once I get back to Edinburgh, I'll never look at another cold meal. Well, only one more night, Mac. What have you got there, Professor? Oh, it's a rose. Yes, I found it beside the ruined house where we hid yesterday. I grow roses back home. Back home? Here we wipe, we'll be proud when she hears it. Mac, did you hear a dog? Oh, I've been hearing things these three nights. It's nerves. You've inflated the boat, haven't you? Oh, hi, every night in case we need it. What's that? That's Germans. Keep down. Dogs got our scent. I will have to make a run for the boot and our equipment. It's buried safe. Here they come. Give me the rest of the K ration. Are you doubt? Make for the boat, Mac. The school will throw the dogs off the scent. Now go ahead. I'll leave you here. Don't go ahead. I tell you, I'll launch the boat. If they're shooting, I'll come back for you. This ought to do the trick. That'll hold them. Wait, Professor. Here now. I'll lend you a hand. Start paddling, Mac. They're coming. Mr. Ammunition. Fire in the dark. Oh, well, here comes a jury we approach. The flashlight won't shine this far, I hope. Anyway, the dogs are following that K-Rash night-scattered. Good for you, Professor. Now, let's go out to sea. We've got to save our records. We'll land in another place and go back for them tomorrow night. Lean to your paddle, Professor. I think it's down this way. Come on, we've got to get that equipment before the jerry... Aye, this is our last chance, Professor. But if their dogs traced our scent... No, I don't think they did, Mac. Last night's tide must have washed all the traces away. I hope the jerry's have relaxed from the scare we gave them last night. Do you hear anything? Our equipment hasn't even started yet. We'd better hurry and load the boat. Aye, that's the last of it, Professor. Now then, let's paddle away. We'd better be sure we didn't leave anything. I would never do it. They should can what's about to happen on these beaches. I see the mallets are here, the corpash. What's the matter? There's something on the beach there, Professor. Jerry's just one century. No dog. He hasn't seen us. But he will if we stay here. If the sand he is. He's suspicious, Mac. I... If he sees us... He's coming this way. There's only one thing to do, Mac. Did you ever kill a man? No. No. I'd never either, but... You've seen the book, Professor. I think so. Oh, no worries, but... You stay here. I'll work around in back of him. Good luck, Professor. Come in the back of the boat. Professor. Professor, are you all right? I think I'm all right. You got him in the nick of time. Oh, you cracked his skull, Professor. Is he... is he dead? I didn't know, I didn't care. Come along, we've got to run for it. He made enough noise to wake up the whole of Europe. They hurt it? Into the boat? Go ahead, I'll push on. To the Urus, Professor. Pull hard, lad. Pull hard. Look, search light. Oh, the devil. If they get us in that light, we're done for. Can they pull any harder? To the right, Mac. Can they pull hard with all the stuff in the boot? We've got to get it back. Hey, then we'll have to pull it. Let's pull out. Mac. Oh, Mac. There's nothing left. Across the shore, that's all. But you'll... you'll have to pull by yourself. Yes. A boat? Not a boat. Out of the way, but... But it's ours. It's ours. Can you make it, Professor? Oh, I think so. I've got it. Good morning, Professor. Oh, good morning, Charlie. All rested from your trip? Oh, I'm all over it now. Well, you know it's almost 8.30. Good morning, Charlie. Morning, Sally. Professor looks fine, doesn't he? Wonderful. That trip did him a world of good. Yes, you've been listening to the news this morning, huh? Yes, looks like the real thing, doesn't it? Oh, it's D-Day all right. 11,000 planes for cover, tanks and trucks landing right on the beaches of Normandy. That takes nerve, doesn't it, Professor? They're brave boys, Charlie. They sure are. Now, you and me, Professor, we're a little too old for that sort of thing. I guess we are, Charlie. A little too old. Now, Hal, you better go. It's all right, dear. Goodbye. Goodbye. Don't forget the list in your right-hand coat pocket. No, I won't. Bye. Yep, he sure looks great. Yes, he does. You know, he ought to take more trips like the one he just came back from? Gave him a good rest from that teaching job. Yes, sir. Good rest.  Now, now, here is Gain Whitman. American industry will make every effort to provide the greatest number of jobs now that the war is won. Here is a statement about jobs, quoted from the Army Navy Journal by Mr. Walter S. Carpenter, Jr., President of the Dupont Company. Mr. Carpenter said, everyone agrees that our number one objective, now that the war is won, is a high level of productive employment. But it's not enough, it seems to me, to talk of providing the returning service man or woman with jobs. It is our plain duty to see that they return not only to a wage and a task, but to an economic environment in which they can do useful work and advance and develop. It is our hope that the chemical industry will be able to contribute in an important way to this prospect. The expansion in chemicals and allied products since World War I, as reported by the Census Bureau, has been encouraging. In 1919, the industry gave employment to about 70,000 workers. By 1939, after a series of depression years, the number of chemical workers had grown to nearly 300,000. That indicates a sturdy, if not spectacular, rate of progress. But chemical manufacture is a contributory industry, an industry which exists to supply and develop other industries. And it's in this phase that its effect on national employment has been notable, and in which it offers its greatest promise to future gain. Scientific progress, as represented by chemistry, has created, since 1920, many and entire new fields of enterprise, each of which, in turn, has generated new auxiliary activities and markets and job opportunities of its own. There is, first of all, the actual manufacture of new chemical products alone. There are many thousands of Americans today making cellophane, nylon, synthetic rubber, holding jobs which did not exist at the end of the last war. There are thousands of positions created by product improvement and development. In 1945, for instance, there were 19,000 employees reported in rayon manufacture. In 1939, there were nearly 50,000. In 1919, the air conditioning and refrigeration field was so small that it occupied few more than 5,000 workers. In 1939, there were 35,160. The long before return to this country of veterans over a comparatively short period of time will no doubt create many problems of adjustment for them and for industry. These adjustments will require some time and a great deal of thought, forbearance and industrial statesmanship. But American industry must and will go forward and will need the help of these men to do so. In this program, the chemical industry must and will surely play an important part. Certainly, that is the result of the Dupont Company, maker of better things for better living through chemistry. Cavalcade programs of particular interest to servicemen and women will be broadcast overseas through the worldwide facilities of the Armed Forces Radio Service. The music for tonight's Dupont Cavalcade was composed and conducted by Robert Armbruster. Our Cavalcade play was written by Russell Hughes and Bernard Feins. We invite you to listen next week to Michael O'Shea and Richard Cotty in Cargo Over Burma on the Cavalcade of America, brought to you by the Dupont Company of Wilmington, Delaware. This is the National Broadcasting Company.


When we look at the Nazca lines, we are looking at ancient geoglyphs that can only be seen from the sky. It is an astonishing revelation that these glyphs were obviously meant to be seen from the sky, leading to an enormity of speculation regarding flight in the very distant past. Of course, it is told in the ancient texts that flight in ancient times was a very real thing that was taking place. There are descriptions of vehicles in many cultures, but these vehicles are not present and have never been found despite the ancient records overwhelming suggestion that these people had these capabilities. One of the strangest and most striking features present at Nazca is that of the waving man. Who or what is this guy waving at? It does appear for whatever reason that Nazca was a place of mega importance, whether that being a playground for the elite of the time or an airport for visitors to the earth. Our purpose were at play here thousands of years ago, whatever it was. We can all agree in one thing, and that being that these things were designed to be seen from above. Wait, do you hear this? The anomalies at Nazca were only found by modern people with the birth of aerodynamics in the 1920s. Before we took to the skies, we were completely unaware of these very anomalous features that tell us overwhelmingly that there is more to our story and in fact, we are missing something of such importance that it sounds like we are exaggerating. Well, there's no exaggeration guys. You can't deny these things are present here and no other logical explanation is apparent when considering what this place actually is. The fact of the matter has to be that we are missing the bigger answer because there was a break between the ancient civilization and our current civilization that is dating back 5000 years. This is one of the world mysteries that slots into the category of the unknown just like we see at our locations across the planet. It's stunning and only a game changer if you want it to be. If you were to consider what the waving man of Nazca is signaling, then no matter what conclusion you arrive at, it always tells us it's something in the sky, something that can only be seen from the sky. It's crazy. These lines are over 2000 years old and it can only be fully appreciated when viewed from the air given their massive size. Despite being studied for over 80 years, the geoglyphs, which were designated by UNESCO World Heritage Site in 1994, are still a mystery to researchers and alternative thinkers the world over. In 2011, a Japanese team discovered a new geoglyph that appears to represent a scene of decapitation, which, at about 4.2 meters long and 3.1 meters wide, is far smaller than other figures and not easily seen from aerial surveys. These people were known to collect trophy heads and research in 2009 revealed that a majority of the trophy skulls came from the same population as the people that were buried here. In 2016, the same team found another glyph, this time one that depicts a 98 foot long mythical creature that has many legs and spotted markings and is sticking out its tongue. And in 2018, Peruvian archaeologists announced that they had discovered more than 50 new geoglyphs in the region, using drone technology to map the landmarks in unprecedented detail. The Waving Man, also known as the Nazca Astronaut and known to archaeologists as the Alman, is an etched geoglyph in human form, approximately 100 feet high, measuring about the same length as a football field and situated between two etched parallel lines on a hill near the Nazca Plateau such that it could be seen from the coast. The longtime scholar of the Nazca drawings, Maria Wright, named the figure the Alman when she published the first aerial photograph of it in her 1949 book, The Mystery, The Desert, which suggested an astronomical purpose for this and other Nazca etchings. It became known as the astronaut only after ancient astronaut writers popularized the image. For example, Erich von Daniken has suggested that this figure represents the beings who landed their craft thousands of years ago on these planes. He maintains that the whole area has been carefully designated as a marker to guide other worldly visitors back to Earth safely. This has fulfilled the question of the gods. For if we humans want seen things in the sky that we could not understand, then we would see that as god-like activity, much like we see with the cargo colts of the 20th century. The study of the Waving Man at Nazca is almost non-existence, close to nothing has ever been published about this stunning geoglyph, except for what ancient astronaut writers have written. Mainstream sources are content merely to refer to it as an anomalous etching created by ancient people and have even attributed it to religious impulses, perhaps depicting the oculate being. This has given certain thinkers an open invitation to write whatever they wish about the figure and its supposed resemblance to grey aliens. After the following, this thing huge and etched onto the side of a mountain facing the sea, is it really possible that all this is for is to alert passing ships in the sea and not craft in the sky? Maybe he is signaling the sea people to come to Nazca for trade? Maybe, but then maybe not. We came across this theory on a blog post where the author even included a traced over drawing to highlight this guy. Just like he has something like a sack over his shoulder and waving to grab passing attention, you must consider that this is as plausible a theory as any other theory proposed and could shed some light onto the apparent nature of the lines not being related to this guy, but of course further study is needed and like we said earlier, none is being done. These lines were discovered in 1927 and are the most extraordinary legacy left by a culture that flourished over 2000 years ago. These lines and other geoglyphs as a series of complex designs, some miles long, which can only be seen in their true dimensions from the sky, the pre-Columbian culture is not believed to have been capable of flight, but the question still remains as to how they crafted the drawings, what technology they used and what purpose the lines served. The town of Nazca was founded in 1591 by the Spanish conquistadors of the Nazca Plateau without any knowledge of what lay nearby. Today a sleepy little town exists slowly developing where the main economic activity is based on tourism of the lines, agriculture and trade. Since discovery in 1927, then exploration by American scientist Paul Kosak and German mathematician Maria Reich in 1939 and through the continuing efforts of Maria Reich for more than 50 years, the lines have remained a perplexing enigma of scholars. Originally thought to be the remains of irrigation lines beyond the verdant Nazca Valley, it wasn't until they were seen from the air that the lines were fully recognizable as the vast network of incredible artifacts that they are. Another less scientific hypothesis involves the work of David Johnson, Johnson has researched the Nazca lines and their apparent connection with underground waterways. Johnson allegedly used dowsing to track these water tunnels, claiming that the lines indicate whether the ground contains water or not. The areas with the most juglifts are purportedly centered around areas with high amounts of underground water and are usually close to wells and other onland water sources. A suggestion Johnson makes is the fact that the inhabitants living in such a dry land would spend a significant portion of their time searching for water sources. By creating a giant full-scale map, they would know exactly where to find their water no matter what area of the desert they were in. The juglifts would then be religious figures for the gods or names given for each water source. That being said, the information should be taken with a lot of care since Johnson used the very unscientific method of dowsing to locate the purported watering holes. Another hypothesis contends that the lines are the remains of walking temples where a large group of worshippers walked along a preset pattern dedicated to a particular holy entity similar to the practice of Lamberth walking. Residents of the local village say the ancient Indians conducted rituals on these giant drawings to thank the gods to ensure the water would continue to flow from the Andes. This view correlates with the purposes of other North American juglifts. However, the emergence of ritual after the fact does not prove that ritual was the reason or the basis for the creation of the juglifts to begin with. To the contrary, it is common for practices to de-evolve over time from fact to mythology. Also according to another fanciful recent hypothesis from Michael Valent, conductors under the form of very slim gold or copper leaves would have been stretched on the ground. These conductors would have been used as antennae to collect the very low frequency magnetotellaric waves produced in certain seismographic areas and that occurred a few hours or days before the signs. These hypothesis rely on controversial theory named as seismic electronic signals, however there has never been any remnants of these antennae found. As far as the waving guy, well we like to speculate that this was a culture either left behind or signaling for the return. The guy is a representation of people running with their belongings and waving to draw the attention of the operator of a vehicle in the sky. Seems he missed his flight. Whatever is going on at this place, whatever the reason is and who created these things, we can surmise that the waving guy may not be what we think it is. It is more crude than the other features that are present and this suggests that whatever created the Nazca lines did not create the waving guy, but the people who created it oversaw the etching on the plateau so had basic knowledge as to how to create this piece of ancient artwork. What do you guys think he is waving at? Comments below and as always, thank you for watching.


What's up everybody? JC of Rajaspy's casebricks.com. We're giving away two flawless spots in this 1920 Panini Donorous basketball hangar one box break ground team number three So it was works as it's first everybody's a random team in the one box break at Donner's hangar remember no veteran commonship then at the end of the week we'll randomize all three customer names again and The top two names will win a spot in flawless random hit break number four So let's roll a dice And we got a two and a five for seven times. Good luck one two three four five six and seven Trevor Donna Dwayne. I had seven times here now one two three four five six and seven Wizards down to the bulls So as it came out as is really quick guys reals is going to Bradley Pallagin's gonna Bradley the way with the bulls Got Lakers up here doing so stick to what you got guys is a quick hangar box And then we'll see who wins spots in the break itself After we go through the hangar what a great night bath for Galamax make it three little Rui Relic Where there's gonna Trevor Jackson Hayes greater rookie green James Harden so good don't boil PJ Washington, Jr. Kevin Porter, Jr. Cameron Johnson Hi, there you go. Now. Let's see. We'll get spots and flawless guys. Remember two out of the 30 Good luck Roll it and we got ourselves a four and a two for six times six times. Good luck us one two three four five six Bradley and last but not your Bradley. There you go, man Top two you are now in Appreciate it Two more ways to win now guys number four is on the website and we got a Phillip also number five Appreciate it guys. Jasper's case race.com