Hello, everyone. My name is Kayvon Kamali. I'm a member of the Galaxy team at Penn State University. I'm going to be presenting Galaxy ML, let me share my screen. Okay, Galaxy ML, an accessible, reproducible, and scalable machine learning toolkit for biomedicine. This is a work done by a member of the members of the Galaxy team at the Oregon Health and Sciences University and University of Freiburg. I'm a new member of the Galaxy team. I'm going to, I'm working on some extensions to this work regarding marker basket analysis and deep learning. So this is the overview of the talk. I'm going to be talking about machine learning in biomedicine, the Galaxy ML toolkit, some use cases and results and summary and future work. So ML is essential to make sense of high dimensional data sets and we have many of those in biomedicine, genomics, proteomics, and energy. There are two types, roughly, of a machine learning algorithms, supervised and unsupervised. Supervised ML is when data is labeled and unsupervised when data sets are not labeled. So in supervised machine learning, we're going to use the labeled data set to build a model for prediction. It's the labels have a continuous value. It's a regression problem. It's a discrete value. It's a classification problem. Unsupervised ML, the data set doesn't have a label and we're trying to find patterns in the data set. There are various techniques like clustering, association rules, and dimensionality reduction. So there are many, many applications of machine learning in biomedicine. Here was a few developing models for drug metabolism rates using brain images, genotype phenotype association, prediction of broken structures, and so on. So using machine learning in biomedicine is challenging. There are multiple challenges. One is tool integration challenges because a successful ML application spans biological analysis tools to ML tools. And these are all used for feature engineering model building that evaluation. So we have to have both of these tools accessible. Also, ML tools must be scalable and reproducible and workflow engines, software package managers, and job schedule learners are needed for scalability and reproducibility. An integrated software solution is needed to address these challenges. This is to make a machine learning accessible to the informaticians with limited programming knowledge and connects to connect machine learning tools with biomedical analysis tools and a scalable computational work branch. So our solution is Galaxy ML toolkit. And it's a toolkit of machine learning tools for the Galaxy platform. The Galaxy platform is a user friendly web based computational work branch used by tens of thousands of scientists for biomedical and bioinformatics data analysis offers over nearly 8,000 tools at Galaxy ML allows the Galaxy community to incorporate machine learning into their analysis and it's installed on over 80 servers worldwide and the tools have been run over 10-12,000 times on USMU servers. So how do we address accessibility? You know, Galaxy's web based user interface basically allows anyone to use complex analysis tools and workflows without detailed knowledge of workflows, software dependency, or job schedules. Those are all abstracted away and people with limited programming experience can use these tools and these functionalities. Galaxy enables iterative development of machine learning because in our future engineering future selection hyper parameter tuning is iterative in nature. This is a overview of Galaxy ML figure A. We have the number one box is how we define a learner. The number two box represents the input and we train and evaluate the learner and visualize the performance. Image B shows a ensemble method tool on Galaxy that's the user interface.  Very simple and figure C is a workflow, which is a sequence of actions you do in your analysis. This is obviously a very simple one, but everything that the tool, versions, parameters, etc. They're all stored and this makes the producing results very easy. The availability, large machine learning analysis required building thousands of models and we can use Galaxy's workflows to execute large scale analysis. This workflow system distributes jobs across compute clusters to be run in parallel. As for reproducing reproducibility, you know, all the parameters tool versions and workflow versions are safe in a workflow and this allows the research to be the results to be reproduced easily. There's some effort to allow reproducibility outside of Galaxy. That's by making Galaxy workflows compatible with common workflow language. This is a working progress. So Galaxy ML implementation, there are libraries for pre-processing, modeling, assembling and evaluation. Scikit-learn is a very popular Python library for machine learning. Scikit-rebate is for feature selection. Invalence-learn is for when our datasets are in balance and we need sample techniques to come up with new datasets. XGBoost and LightGBM are extreme gradient boost and gradient boost in libraries. ML extend is for meta ensembles or stacking as it's called and also for association rules and Keras is a very powerful deep learning library on top of TensorFlow, which is a Google library. Keras has a very nice API version to use. So there are multiple use cases. First one is 10 machine learning benchmark. It's 276 datasets, 164 classification with a binary or multiple and 112 regression datasets. There was a previous analysis that compared various classification regression models. What we did was we created 15 models for classification 14 for regression and we used hyperparameter optimization for a total of 4,028 models. So that's basically we specify a range for parameter and try different values in that range and we find which value results in the best model. Evaluation was done by using 10-fold cross-validation and for classification problems we use F1 score, which is a harmonic mean of precision and recall, and for regression we use R-squared, which is a standard way of assessing their regressors. So this is the result. As you can see on the left-hand side, you know, you can compare various techniques. So what this means, for example, the way to interpret this is if you look here, XGBoost is on the wins row, you can compare it with the losses column. For example, XGBoost is better, 38% of the time compared to gradient tree boosting. Also gradient tree boosting is a better 11% of the time compared to XGBoost. So if you add these two numbers up, that's 49, 50% of the time they both perform the same on the data set. And on the right-hand side is the improvement that we see by hyperparameter. This is the same thing for regression, basically the image on top of the bottom right. This has the runtime, so certain methods, for example, extra trees, they yield the same R-square, but they take much longer, so they should be avoided. So results, we got agrees with results in the original study that shows that the Galaxy ML time used to solve real-world machine learning problems. The second use case is predicting drug response. We used meta ensembles to predict what response of cancer cell lines. That's called, this is a technique called stacking. So cancer cell lines gene expression and drug response data set came from cancer dependency map project, 50,000 gene expression values over 1,000 cancer cell lines. So very high number of dimension, very limited number of samples. There are 256 drugs. So we also, this is a regression problem, but we finalized the data. So we also could also use classification techniques. We use eight regression 11 classification techniques. Some of them use principal component analysis for reducing the dimensionality of the data. And we obviously did hyperprimer tuning. And this is a result, you know, the, this figure can be interpreted the same way.  So that's one of those for classification. The other one is for regression models. Again, this is very comparable to, I think this was based on our previous work. So this is satisfactory results. So the third use cases DNA sequence analysis, this was a, we basically reimplemented reproduce the deep learning models that were implemented this in Salin, which is a deep learning library for biological sequence data. And then we trained an existing deep learning architecture called deep sea has three convolutional layers, two layers, one fully connected layer and one statewide output layer that's a convolutional network. And the second one, we compared the performance of deep sea deep sea with an extended architecture that includes three additional convolutional layers. So this is the comparison of the first and second analysis between galaxy and all on Salin as you can see the accuracy and area under the curve. They're very there's a fourth use case that's perfect currently under under development if you will. So we're using market basket analysis market basket analysis is a technique for finding correlation between different entities according to their core currents in a data set and this can uncover extract useful trends in the data set. It's a two step process. First we find frequent items that's in a data set we define what frequent means based on the support parameter, then we generate some association rules that satisfy some criteria, like confidence, connection, so confidence is basically conditional probability left is joint probability divided by individual probabilities and conviction is a metric that has a direction, it's not symmetric. So we're using market basket analysis offered by ML extend library their algorithms are a p a priority and as we broke. We're using market basket analysis to variations in HIV to loop region. And the goal is to generate rules that we take association between positions among the samples. So, we will be able to present this results. There are other unsupervised machine learning techniques. So galaxy ML supports virus clustering and dimensionality reduction methods. And also, our program are pursuing density this possible that principle component analysis as we discussed for dimensionality reduction. Also, galaxy supports various deep learning architectures via the Paris library, which is a very easy library to use. So we're using tutorials on people were neural networks with criminal efforts and convolutional networks to basically allow any users of galaxy ML to be to learn to to learn how to use deep learning in galaxy neural networks are usually used for image and video processing with criminal networks, usually are used for sequential data, whether it's time based or order based and feed forward neural networks are used for more traditional classification. So results in summary, use cases showed that ML tools are general powerful enough to support realistic use cases. So analysis are reproducible workflows, which store all the parameters tool versions all the steps allow us to reproduce results galaxy ML is accessible if you go ahead provides a web based UI, and people without programming knowledge can do complex analysis. And like similar scalable, you have a job scheduler that distributes jobs across one or more compute clusters, allowing them to run in parallel, even some of them can run on GPUs. So that's great. And that's similar is extensible. I think you can add extra libraries to galaxy ML, and then it becomes available to the whole community, not only the whole community to use and all the features of galaxy, like workflows, scalability, sensibility, visibility, they're all there as well. So, thank you very much. And please let me know if you have any questions.


Now, here's, here's something interesting. You can think about this for a minute. I went and saw an autistic woman speak at one point. Her name was Temple Grandin. She's really worth looking up. Temple Grandin is a very interesting person. She's very... I had Temple Grandin on my podcast actually. I think he's had her on a podcast when I was looking for this video. Interesting woman. Seriously autistic when she was a child, but her mother and her worked her out of it so that she could be... She's very functional. She works as a professor. I don't remember where. It's in the Midwest somewhere. Now, she's famous not only for being a highly functional autistic person who talks a fair bit about what it's like to be autistic, but also for designing slaughterhouses across the United States. And the reason she can do that as far as she's concerned is because she thinks she thinks like an animal thinks. And so she doesn't... And she's identified maybe at least part of what the core problem is with autism. So she... The talk I heard her at was in Arizona and it was a really... Yeah, it's quite like a... I think it's become quite like a conservative figure. The reason why is popularity kind of skyrocketed because he was in this whole debate about the use of pronouns, I think. In trancing talk, she showed some really interesting pictures of animals. So what she's done is she's redesigned slaughterhouses so that when the animals enter the slaughterhouse, they go in like a spiral, basically. They can't see what's around the corner and the walls are high so they're not distracted by anything outside. So one of the things she showed, for example, was a bunch of cows going through a standard sequence of gates, essentially. And off to the side, there was a windmill spinning and the cows would stop because the windmill... They didn't understand what the windmill was and they'd stop or showed other pictures where cows were going down a pathway too and there was a coke can sitting in the middle of the pathway and the cows would all stop because they didn't know what to do with it. Or she had another picture of cows out in the middle of the field all surrounding a briefcase and they were all looking at the briefcase. And the cows didn't like anything that shouldn't be there and had a hard time mapping it. Now she said, here's a little exercise she did, she said, think of a church. Okay, so maybe you think, imagine a child's drawing of a church. It's like your standard house, like a pentagon, right, which is basically how children draw the front of a house with a steeple on top and maybe a cross on top of it or something like that, which actually isn't at church. It's an icon of a church. And you think about how children draw houses too, pentagon, rectangle, what is it, trapezoid, chimney, almost always with smoke, which is quite interesting. I don't know where kids get that exactly, but they almost always draw a chimney with smoke, even though chimneys with smoke aren't that common anymore. But anyways, you can see what a child's picture of a house looks like in your imagination. One of the things that you might want to think about is that is not a picture of a house at all, right? It's an iconic representation that's kind of like a hero glyph, because no house looks like that.  And you show it to somebody and go, that's a person. It's like, really? It looks nothing like a person, right?  Well, what Grandin said was that when she thinks of a church, she has to think of a church she's seen. She can't take the set of all churches and abstract out an iconic representation and use that to represent the set of all churches. She gets fixated on a specific exemplar. I think it's really important to highlight here that what Temple was talking about and what Jordan was trying to explain is this idea of thinking in pictures. And Temple was a really big proponent that all autistic people fought in pictures like this, like the way that he's talking about. The interview that I did with her, when we were talking about some of the changes that have happened since she was within the autism agist, she's kind of one of the biggest autism advocacy people around. She kind of brought it into the mainstream very much so, very influential kind of figure of a time, but obviously got a lot of things wrong because it was from just her perspective, just her perspective on things. And there's actually a lot of autistic people, as she said, Kerry, if you have a fantasia, it's probably going to be quite hard to think in pictures. Some people think in language. I'm a very much language thinker. That's why I'm very interested in psychology, philosophy, things of that nature. There is another one that I think she was talking about, maybe it's more like kinesthetic, based in terms of practically manipulating objects, things of that nature. But that's basically what he's talking about is this idea that we think in pictures, which is not completely always the right thing, but for her and for some autistic people, it can be like that. And the idea about the iconic representation of a house, it still holds true to some degree, not because it's not a house. And I think I've had a lot of those experiences of being like, what? As a child, because obviously, it doesn't make sense that people have these icons that represent something, but it's not actually the thing. It doesn't really make sense to me when I was a kid. It's that abstract idea, that non-certain, more, I guess, different way of thinking about things. Non-specific is probably the best word for it. One of the problems with autistic people, and they have a very difficult developing language, by the way, is that they can't abstract out generalized representation across a set of entities. They can't abstract. Of course, if you can't abstract, then it's also very difficult to manipulate the abstraction. It's less natural. We can. It's more lent. It's less transiently learned. It has to be an active process. You see very strange behavior with autistic children, for example, so they don't like people. And that's because people don't stay in the perceptual boxes. Like a human being is a very difficult thing to perceive because we're always shifting around and moving. They don't like people. I think a lot of autistic people might agree with that, but I love people. I think people are great. I don't like people because they're indirect, usually, and they're sometimes a bit hard to understand objectively, which is always going to be hard because lack of certainty, subjectivity, it's a quite scary thing. I guess that's kind of what he's trying to get at. Different things. Like we don't stay in our categorical box. So autistic people have real trouble with other people, but they also have trouble. So for example, if your autistic child gets accustomed to your kitchen, let's say, and you move a chair, then especially if they're severely autistic, they'll have an absolute fit about it because you think kitchen with chair moved, they think completely different place. I would say I've had experience with this recently. I don't live moment with my dad, but he recently renovated his front room. And I had quite a hard time like feeling comfortable in that place because I've always been, you know, thought of the dining room like that. I mean, throwing a fit definitely not the best language there, Mr. Jordan, but Mr. Peterson. Meltdown over stimulation, possibly not a fit. They can't abstract the constancies across the different situations and represent them abstractly. So I made this little diagram here to kind of give you a sense of what you might be doing when you're abstracting perceptually. And so you could say, think about something that's that complicated. It's sort of my model of how complex the world is, but the world is a lot more complex than that. But the world is made out of, everything is made out of littler things, and those littler things are made out of littler things and so forth. And those things are nested inside bigger things and so forth. And where you perceive on that level of abstraction is somewhat arbitrary. It has to be bounded by your goals. That's the other thing is that your perceptual structures are determined by the goals that you have at hand. I mean, some of that, that's not completely true, because your perceptual systems also have limitations, right? There's things you can't see or hear even if you need to. So there are limitations built in, but within that set of limitations, you're still trying to tune your perceptions to your motivated goals. And that's also very useful to think about when you're trying to understand artificial intelligence, because for human beings, without goals, there's no perception, because there's no filtering mechanism that you can use to determine the level of resolution at which you perceive. Anyway, so there's a thing made of smaller things, which are made out of smaller things. And it's so, it's kind of my iconic representation of the complexity of the world. And then you could think, well, what is this? How can you see this object? And I think if you just look at it, you can detect, it's like a necker cube. You know those cubes that are line drawings that you can see the front of, and then it'll flip to the back. Have you seen those? So this is kind of necker cube like, or at least it is for me, in that when I look at it, my perceptions play around with it. Sometimes I focus on the kind of cross-like shape in the middle, and sometimes I can see these other lines, and then sometimes I'll focus on that square, and sometimes I can see the little dots there, maybe one dot. And my perceptions are going like this, trying to fit a pattern to it. And you can kind of detect that when you're watching it. And so I would say, well, you have the options of perceiving this in its full complexity, or you can simplify it. Essentially, there's lots of ways you can simplify it, but some of them are laid out there. So you take the complex thing, you make a low resolution representation of it. So that's it's rough. That's the rough area that all those dots occupy. That's the rough area broken down to its four most fundamental quadrants. That might be how you would look at it. If this was a map of an orchard, and you were trying to walk from south to north, that would be a useful representation. This combines this and this. I think for autistic people, we can sometimes perceive things in a much kind of different way to people, I guess. And we might see the details a little bit more clearly. Perhaps sometimes have a difficulty seeing the bigger picture from my experience. This is just me talking about myself. Good in certain situations, perhaps not another of ones. Highest level of resolution that you can perceive this object at, that's lower resolution than the object itself. So the first issue is, how should you look at things? Well, that's a problem that intelligence has to solve. So that's one of the problems that intelligence goes after. And then I think what happens is we have the thing in itself, and then we simplify it with a perception. And that's like an iconic representation. And then we nail the iconic representation with a word. And that's how we compress the world's complexity into something that we can manage. We take the complex thing, make it into an icon and represent the icon with a word. And then when I throw you the word, so to speak, you decompose it into the icon and then decompose it even further into the thing if you know the icon and you know the thing. And so then we can use shorthand, right? Because you have representational structures and so do I. And I'm just tossing you markers about your representational structures and you can unfold them. That's what you do when you're reading a novel. Because the novel comes alive in your imagination in your own idiosyncratic way. And it wouldn't if you didn't understand the references of the novel. Reduce the speed. The novelist has to assume that your basic perceptual structures and your intuitions and your instincts are basically the same as his or hers. Because otherwise they have to assume that because otherwise they would be lost in it. So one of the criticisms I think a lot of people have of Jordan Pearson is that it's very good at explaining why things happen in any kind of a way. But it's not necessarily like a revelation, I guess. Basically what he's trying to say is you convert ideas of things into icons and then those icons into words.  And it's just a basic way of interpreting communication, I guess. Infinite regressive explanation. So it's problematic often. For example, if you start reading Victorian novels, you may find that it takes a while to get into them because the presuppositions, the expectations are slightly different and so is the language. You have to update the representation. But anyway, so that's roughly, as far as I'm concerned, that's roughly a representation of what intelligence is doing in the world or a big part of it. It's how in the world do you look at things so that you can use them for the purposes that you need to use them for. And then the next problem that intelligence has to solve, which is related, is once you've got the perceptual landscape sorted out, how do you abstractly represent the action patterns that you're going to implement in the world? So it's, how do you perceive where you are now? How do you perceive where you're going? And how do you construct up and then implement strategies that enable you to move from where you are to where you're going? How are you doing things? What are you going to do with things basically? So it's a continual process of mapping and movement. And so it's navigation. That's what we're doing in the world all the time, is navigating through it because we're mobile creatures. We're navigating through it, attempting to make the world manifest itself in accordance with our wishes. And that's the fundamental problem that intelligence has to solve. And animals have their perceptions to rely on. But we have our perceptions and our ability to abstract from those perceptions multiple times and then to abstract finally into language. So we live in a very abstracted world. And it's not also something that's just that humans experience. Animals do as well. I think the best example of that is a crow. Crows are probably one of the more intelligent animals that you can come across. I think it's a crow. It might be raven. It's a particular breed, particular species of crow. Very highly intelligent. You kind of perceive things in order of their use to you. It's kind of not really... I guess so. But then you could say, oh, what is the use of grass to me, other than I like looking at grass? I suppose if you're doing your gardening, Ned, you might perceive the grass as a task to be managed. So it means that we can learn a lesson in one place and generalize it across many other places, which is also something that animals have a hard time doing because they don't know how to do that initial perceptual generalization. See, that's an interesting part. And I feel like the whole thing about autism was kind of like a springboard to talk about perceptions and things of that nature. I thought it was going to be a lot more to like the title of the video, how autism and intelligence connect. It's not really that, is it? It's definitely not what the topic of it was about. It's basically about how we perceive things. One thing that does seem to be quite apparent in autistic people that I've talked to myself and through the literature, that we do struggle to transfer skills between areas in life. So this very much plays into the idea of the spiky profile. Some things we are exceptionally good at, other things that people expect us to be good at, but not so good at. For a long time, I've been very good at public speaking. I wasn't so good at chatting to people, actually socializing with people. But people make the connection that he speaks well, he communicates well, should be good to talk to, like good in social interactions, not necessarily. It's the generalization of those skills. Sometimes it's quite hard for us to apply them to new situations that we haven't experienced before. So that kind of leads us, I guess, to a little bit about the autistic experience, which I thought this was going to be a bit more comprehensive on that. But there we go. That is Jordan Peterson, how autism and intelligence connects. I think it was posted by philosophy insights. Didn't really feel like philosophy to me, to be honest. But like a bit of psychology. I mean, it's a psychology person. So, you know, me and my dogs are very similar with buses and noise. Dogs and curts and autistics don't like noise, don't like any shifts either. Yeah, and I think there's different reasons for that. I think the sensory components for dogs, cats, they actually do have better hearing than us, so they just experience the world very keenly. Whereas for us, the sensory overload component of our sensory experiences, what causes us to become overloaded by that stuff, is due to the interaction between our sensory organs and our brains. So it's not like we have super hearing. We can sometimes be a bit more astute, like acute to recognizing small changes in our environment. But it's more like an amplifier that's built into our brain rather than better sight, better taste, better smell, better, you know, audition might make us a bit more astute to changes, but we definitely don't have super hearing. I think that's a very big misconception, I think, that a lot of neurodipicals that I've talked to about it. It's like, oh, if you must have super hearing, can you hear me whispering over here? Oh my God. And then there's the aspect of energy sifts. In childhood, we tend to struggle a lot with indirect communication. That means body language, tonality, social expressions, little things like that, that kind of morph the meaning or the intended interpretation of what someone's saying, rather than direct the actual words that they're saying to you. So usually with that, when we get into adulthood, we do become attuned to it to some degree and we can, to some degree, like, observe that something's changed the energy shifts because of the negative experiences, you know, humans very attuned to keeping ourselves safe, things like that. Very important for survival, we always notice things that are different, just because, you know, things that are normal, certain, not so dangerous, things that are different, you know, we got to analyze them, pay attention to them. And so we can almost become, can also become a situation where, in a lot of circumstances, I've heard this from another autistic person that I podcast with recently and something that I noticed in situations, especially within relationships, friendships, even parental family stuff, we can almost have like an overreaction to shifts in people's behavior, or like the energy, as you would say, like, we don't necessarily know why, what it means, or what it could mean. Sometimes we might if we're, we've worked on our indirect, indirect communication skills, it's definitely something that I've worked on. But we can sometimes be, I have very negative reactions very quickly, and that leads into like stuff like rejection, sensitive dysphoria, which you experience with ADHD a lot as well, you know, being hyper aware of changes and assuming the worst.


Let's review the process for collecting evaluation data for the Gearing Up for Kindergarten program in North Dakota. We collect evaluation data two times, once at the beginning of the program and once at the end. NDSU Extension Service will send evaluations, ID labels, registration sheet and instructions to you before your scheduled start date. Please note that there are two identical labels for each participant. During the first or second session, please have the parent sign in on the registration attendance sheet. Place one ID label next to their name in the ID label column. Place an identical numbered label on the participant's evaluation form in the upper right-hand corner. The label replaces the need to collect the school, town, parent's name and child's name on the evaluation. Therefore, it is important to make sure that the ID labels are identical on both the registration sheet and the evaluation form that you give to the parent. Administer and collect the surveys during the first or second session. Please fax the registration sheet and then mail the surveys to NDSU. The next time we collect evaluation data is during one of the last two sessions. NDSU Extension Service will mail a second set of evaluations and ID labels before your final classes. Please assign the same label number for each parent and child that was used previously at the start of the program. For example, if a parent and child was assigned number 255 earlier, that same parent and child should be assigned number 255 for the last evaluation. Place the matching ID labels on the registration form and the time to evaluation. A third matching label will be placed on a teacher's assessment evaluation form for the teacher to complete on that student. Once these evaluations are complete, please mail them to NDSU. Thank you for following these steps to continue to show the impact of the Gearing Up for Kindergarten program in North Dakota.


Welcome to my desk. Happy evening. It's the end of a nice weekend. Next week is circuit Python week. Don't forget. Yeah, special show and tell on Friday at 7 30 p.m. Ask an engineer at 8 p.m. These are all Eastern times and also all of our shows and all of our team will be doing festivities and more throughout the day. Check us out on Discord, all the social media places, YouTube, probably where you're watching this now. It's a big old day of celebrating Python on hardware. Come on by. Enjoy. Yeah. Okay, so we're at my desk and see stuff scrolling by. So I thought I would show some of the stuff I've been hacking on that's not like hardware, but it's actually kind of soft for you because this is actually a lot of my time is spent when I'm not doing hardware is fighting with software. And in this case, I was, you know, I recently finished the design for this Metro S3. Maybe go to the overhead. I'll show it off real fast. Okay, so focus in. So the Metro S3 is a ESP 32 S3 Metro. And whenever I make these Metro boards, you know, these all in one Arduino shaped boards, I try to like stuff as much can Billy into them so they're they're good for developing new software that then we can pour it over to, you know, a smaller feather board that doesn't have as many pins and have Jtech connectors, etc. So, you know, DC power and USB micro SD card. This is my new favorite micro SD card slot. It's like the Molex. It's such a great quality card. We covered this in the great search a couple of two years ago, but ever since that I've been using it on everything. LiPo battery, five volt DC from the DC jack. Debug pins here for the hardware you are. RX and TX which we'll use for this project. SWD, semi QT reset button, boop on lipo monitoring so you know jam packed and a lot of memory, both flash 16 megabytes and PS RAM eight megabytes and that's a lot for our ESP 32 S3 feathers normally do the metro first but like because of part shortages is actually got delayed. For the feather, I don't use the big room module I use the smaller mini module that only has four megabytes of flash and two megabytes of PS RAM, which is still like a huge amount compared to most micro controllers. But again, you know, this is super chunky and they make even bigger ones to I think they make a 32 megabyte flash 16 megabyte PS RAM but like the pricing does get a little bit high and I'm like, well, do people really need that much are they willing to pay for it. I think this is very nice and chunky. You can run TFT screens you can run emulators. You know, you have a lot of space. And one thing that's kind of neat is that there's also a UC Linux build for this chip the ESP 32 S3 that was done by this person named Max. And 10 apparently the extents of 10 silica chip had already been ported like 10 silica is a chip set that has been used for processors for a bit there is a Linux port for it. And what this guy did is actually do all the patching to make it run on a small micro controller like this. Now, you know, the first thing I said one like this came up was like, well, there's no memory management unit when you run code on any ESP 32 it like everything runs as route there's no protection for memory like any process can touch any address. And that's what you don't want an operating system you want to have hardware protection, as you can do like you know page mapping and you can have to have swap and you can have rings of protection. I mean, obviously some of that doesn't software but having like some hardware assistance with it is like super helpful. But turns out there's a type of Linux a variant called UC Linux that does not use an MMU. And that does have consequences like you can't run a lot of software and like I'm kind of learning about this UC Linux I've never really used it before. But you know trying to compile some code for it for example, I was like oh let me try to get links working on it so I can like browse the internet from this chip running UC Linux but it won't compile because like I don't know what fork is. And I'm like yeah I guess we don't have a memory management unit maybe you can't fork off a new process I think every all the code is running within like one busy box process or something I don't know it's kind of new it's kind of new to me. Anyways, so back to my computer. Sorry to quick intro I don't have done a couple videos on it but like I have to assume nobody's watching any of the other videos. Yeah, just a notice when we do the 10pm shows it's they try we try to get these out at 10pm because it's funny. But the first two were 10pm on a weekend. And I think I might have to specify again why we're doing this it's not saying hey companies where is your engineer is at 10pm. Why aren't they working for you company. It's actually saying it's 10pm do you know your engineers because what the engineers are doing for fun is what's probably coming up next and that's what we're doing is we're celebrating like it is amazing time to do electronics and engineering. And since there is a lot of people motivated to be crummy to one another online we're like well someone has to be the voice to celebrate this all. So why not us. Okay, so you want to do videos but we're going to cover kind of everything and I'm going into more depth because here I have you know a good 20 minutes. Okay, we're seven minutes and okay so let's go to the computer. So I'll show the script. So this is a script. Eventually I'll be able to memorize this JC MV BKBC, which I'm going to call Max because his name is Max or their name is Max. And they have a script for for doing all this build I mean they've they've sort of documented it but now there's this like script that you can go through. And this script absolutely will do the build for you like 100% but you do have to have like exactly the kind the right kind of Linux installed to do it like I'm running Windows because so much electronic software is Windows only and I know a lot of who also running Windows like I didn't grow up with Windows I actually grew up with Linux I ran like Slackware one and net BSD and then free BSD and open BSD and then a lot more Linux and then you know Mac us but now I'm like to Windows because again like so many customers use Windows and almost all the software that I need to do my job. It runs in Linux only wins in Windows only. So, you know within. If you want to run script like this there's a couple options and windows you can use something like msis, which you know I do here. And msis is actually pretty good it's it's like you can I can compile circuit Python within it I can do like most of your GCC builds, but it couldn't do this I don't remember why it like could not. There was something missing or like it the wrong whatever version and then I tried WSL which is also really great because it shares your file system but it's like a true Linux build and this does get quite far. But it fails because it failed originally because my path had spaces and there was some tool that was like I can't deal with your I think the cross tool didn't like that you're my path had spaces and it and I was like, I actually kind of stopped there like and it was like I would try something else because I figured if that wasn't working something else would work, but turned out I just changed the path and it did compile, although it took a very long time under WSL. And then I turn a Mac and the Mac didn't compile because the brew the homebrew cask of curses was not built with L menu there was like some some symbols weren't exported or it wasn't compiled with the menu symbols I don't you know I kind of looked into it and then I was like it didn't care anymore. And it you do you couldn't you can fix it but then like you're kind of messing with your homebrew install. And I was like I really don't want to mess with it. And then I was like, you know, I did get eventually working on WSL but one of the issues I have is I can't just have something work for me, because I want to write a guide I want to have a tutorial I want to be reproducible. I like it when there's instructions are like look, you'll be able to do this no matter what when where because when you have these very delicate setups to build like maybe it runs on WSL now but it won't run after WSL does all these updates and something changes. It's going to be very frustrating for people. And, you know, I know I'm not the only one who's had issues doing this build it's like it's non trivial to do across across compile build of a UC Linux kernel and build root for the tensilica processor so you know thinking oh right like I've used I've had this issue before with TensorFlow if you remember that from four years ago when I was doing TensorFlow light micro builds and also would not build on my windows it wouldn't build on windows I was like very wacky weird reasons very complicated build. Using the Google build system which was like, I don't remember what it was called had some basil. Yeah, it was like this huge basil thing. This is by the way why I like circuit Python because it's like once it's built it's like there's no tool chains. So what I decided to do was to make a Docker and Docker is kind of neat and it's gotten a lot better and faster in the last couple of years too which is great. So Docker is free for personal use it's not for commercial use just be aware of that. And what you do is you can create just like when we have actions and continuous integration and GitHub like whenever we commit to circuit Python or toward we know we quickly. Maybe I'll show this is actually kind of for people maybe don't know about actions when we push. Let's see I'm trying to do like let's say you know this this library and actions whenever we commit. We have a built CI looks like there's actually a bug in this PR one second. How do you use windows. Whenever you commit a release we do a test run that, you know, starts up a miniature computer, a virtualized computer that runs Linux, it like boots nearly instantly because it doesn't have like drivers and sound boards and whatever. It you know which went into memory and it runs a couple commands like here we install you know Python and then we. Let's see. We actually do the tests. We check up the repo. And then we run pilot on it. Oh, man, sorry. It's been a while since the once I build workflow this workflow is huge. Okay, we install this code. We run pilot, and we lent the code and we run black and yaml checking and we check that the licensing and all this done isn't is done a little like grow Linux computer. Similar to Docker till container. And as soon as it's done it disappears so you you've created a completely clean environment.  You don't have to worry about it because everything is kind of frozen into this crystalline reusable computer configuration file, and that's what Docker does so it's something for your home computer where you can quickly create. They'll miniaturize virtual computers they run very, very fast because they don't have, you know, window management and drivers and all user interfaces and their file systems are like really minimal. But they are minimal.  But if you want to have some for something like this where it's like look I just want to do one thing I want to compile this tool chain, maybe configure a couple files. And I don't I want to have it separate than my setup because like a common issue is I have to compile something Oh no the version of AVR GCC has to be different version of Python to be different. And like now my computer gets really confused because it's like there's three versions of Python installed. And it messes up my personal workflow so this doesn't this doesn't mess with your workflow because it's like again it's it's a little jar you can you can take it so the way you do a Docker is going to show this failing but whatever we'll just close this is you create a thing called a Docker file let's make a new one and I'll show kind of how these are done so you make a new file and you you remove the txt and then I'll just open this up in xemax. So the first part is that you want to tell it what kind of computer and it's going to copy and paste over from here. What kind of computer you want it to boot so you know they boot Linux in this case I'm going to miss you know I originally did Demian. Like it you know start with a Debian build the problem is the Debian build I found like later like 99% through is that in the Debian build comes with Python 311 and the expressive tool chain has a bug that doesn't make it work with 311.  And then you have these run commands where you tell it what you want to run so let's just start with like app to get update and that's like all we're going to do to start. So then in your PowerShell you do so I'm going to remember the command it is Docker build t build dot and it like stopped immediately and you're like wait did it actually do something yet actually that's it it created your image for this new Ubuntu. build that all it does is an app to get update and you can see here it actually it's what's funny is it's cached it knows like oh hey you you had a very similar computer you were building earlier so I'm just going to like we use that same setup. And then under your images you'll see this new image that's like that's the crystal right and then you can whatever sprout the crystal. I think this is it and then you'll run it. And then she did I do this correctly. Sorry. This is Docker build make sure I didn't want to have the wrong one Docker T Docker tag Docker T. Oh I want to tag it with the name. That's right. I want to tag it with. desk. Let's just do that. Okay. And let's let's delete this. Okay back to your images. Okay. So we have this all right this makes more sense because it was cached from the previous one. So this one small it's only 120 megabytes one nice thing is that it will increase the file system works with virtual box you have like, you know you try to like set the file system and then like you can run out of disk space. Okay so you run this. And what's interesting is that it exits it exits immediately and you're like this is kind of messed me up I was like wait I want to like one commands I can't. Turns out you have to at the end tell like it actually ran it and then it's like I'm done I'm going to quit now because you didn't tell it to like continue running it's like when you run a Python script you have to have a while loop at the end if you want it to keep running.  And then you just rebuild. And then in your Docker images. It's like oh you know you have this one that's leftover. I'll delete this. Also delete this cash one. And then I can run this. Okay, and now I believe. Oh, I did not. I have to do something else. Hold on. Okay. What do I have to do. Also my savings in the right directory. Yes, is going to run for me. I didn't notice maybe I didn't select the right thing. So now I have a shell. And I'm in this like miniature computer. You know what you can see inside inside my windows that is is again a miniature machine. And this is handy if I want to like mess with files or like test commands, because as I was going through and porting over the shell script. You know, let's say you're going to do. I want to do like the I'll just do the first command to demonstrate it. So the first command is to create to build of autocom for the latest version of autocom. You see we W get it we untar it.  Now you want to do this in your Docker file wrap up here. You can, you know, it's more of the same. You want to set up a work directory so it's like okay. Everything goes into all your working is going to be in this one folder. And I just use app because every other Docker file seems to use app, and then you do a run. What you could do is have a run for every command shell script command, but every time you have the run like capital run, it starts over kind of clean and like a fresh shell environment. So what you want to do is, but it's always in like slash app. What you want to do is have all the commands in order, and then you do a little like and new line break, so that they all happen logically in order and also gets treated as like one command which simplifies the size of the the Docker treats every shell command is like a layer, it seems like and so you can say you know it's it saves the state at each one command so it's better if you kind of group them together logically if possible so this is like one command so okay we're going to you know tar and then I'm not going to push the that's kind of a bash thing we just do CD and then config and then this and then make make install okay and then you actually don't have to do poppy because at the end again their next one command is going to start with a clean shell so let's let's see if we can so let's let's quit our existing Docker I'm going to delete these they don't get confusing.  Okay so I saved let's rebuild. Okay, and then it's it's interesting that commands in that run. It'll tell you hey like I couldn't do it and it says W get not found just because this is a really really minimal version of Linux it's not like your Debian or as being billed where it comes with like everything built in a lot of stuff doesn't come with it.  So then here you're going to do a run apt get install why W get. Okay so then you we want it. And it will say install the because I miss spelled this. Okay cool so it's like you get to do it. You know, apt gets and then it fails differently. And it says XZ cannot exact and then you're like I don't even know what this area is you Google it and you find out it's because tar calls for XZ files you have to have like X the XZ unzipper X unzipper whatever it's called. So that's actually XZ utils. Turns out you add that to your. apt get install and then you know it we want all every time you change a line is going to rerun that line. So installs and then it's like I failed on something different. It's like I can't I don't have m4 and m4 is like a compiler turns out like there's no compiler built in so you kind of you kind of go through this and this is where you can like terminal in. Because when you terminal in it might be you know you can run the commands one after the other without having to try to craft this but perfect file. But you basically like you know you need live tool and get an end curses everything has to be but like doesn't come with Python doesn't come with. You know any tools so you know you need like g++ and CMake. Eventually you know you come up with. You know this perfect apt get in the beginning that has everything you need for later. It'll do all the you know installation and then it's like great you know I'm done and then. We can docker in. So let's go in notice it's a lot bigger now at 600 megabytes. We run it and we terminal in and now you'll notice there is autocomf and autocomf is. bash. autocomf is built and the binaries have been installed so I can do you know autocomf. And you can see that it's installed so now we have this. This first part of the tool chain installed so it's not a one to one against all like you can't just paste the shell script in and like you're good to go you do have to kind of do this matchy matchy part. So it's kind of like took me like you know one one baby nap. Maybe maybe one and a half going through and adapting all of these instructions to make the Docker problem not going to do the whole thing but you see how the process starts. But at the end when you're done you can push the file to well first off you have the Docker file Docker file is now here. Under the learning system I don't know kind of seemed like that was the right place to put it I don't want to put it in its own repo. S3 Linux. And we'll do a little tutorial about this because I think it's interesting. I will say though it's like you know you're running Linux on still machine it does it's again very minimal you can't do that much like you can run. You can run micro Python because build route has micro Python support me we'll cover build route next week. But like you don't have GPIO access and like the file system is compressed so like you you can went to TAMP but it's you have Wi Fi but it's like not that fast you know it's a little micro controller. The Docker file is here. Ironically it is faster to like Docker is quite fast I find. It's almost faster to run it than to pull the compiled version over the Internet down but if you want you can actually I pushed the whole image like the completed like OK this is done version of the computer to Docker hub. If you want to go in and you want to do a menu config somewhere in between here and you're like oh I want to change the amount of flash want to change the host name all that good stuff you can do that. Under. Docker hub. And it's here so I pushed it a couple days ago. It's big. It's a couple you know how much it is it's like. It's like you know 20 gigs. I don't clean up the files because I'm expecting them to have to read you know like I you know build the crossed compiler and I don't delete all of the intermediary files and don't do it clean because I'm assuming that. As you know people will do ESP 32 S3 Linux there's going to be more. Like patches and stuff so you know just keep I keep all the working files there but you can just download this image and run it immediately you don't do any of the compilation but it only takes about. 20 minutes to do the entire Docker build so. I know that was kind of like a quick intro to using Docker but I think. For projects like this where you know you need to replicate the instructions. This is kind of the best way to do it and even though 20 gigabytes is big. It's way smaller than virtual box like my virtual box when I tried it in virtual box it was like 50 megabytes or something or 50 gigabytes. And I think this is really big and it's like slower because it's it's you know a bigger virtualized machine like it's a virtualized computer not just. A virtual Linux install one thing that's nice is Docker now use W that uses WSL underneath and so it's like you're using your full computer speed it's very very fast you're not like doing this emulation. Even if it's a very thin layer of emulation you're still not doing emulation. Okay, so that's that's Docker for everybody. So check it out very useful for for Linux builds in particular and we'll do some build root stuff. Next week Phil you need any any any elucidation or do you think I covered it. No, just from, you know, my point of view, and I'll keep my rant tiny since it's your show. There's a lot of like gatekeeping stuff in the Linux world and what we're trying to do is also make it so if you're new to this you're not getting yelled at or chased away or told you're doing it wrong. I guess we have quote a tough skin. So when we see someone do that we're like well let's make it easier for everyone to get more people involved. Because if you look at communities that aren't making it I'm going to say like ham radio for instance it's like really difficult to get in and when you're there you kind of feel pushed out and this is what we've heard a ton of times. There's some great people in it but a lot of it is this like a lot of crankiness. So I don't want to see that happen with like Linux. There's there's there's enough we all need to do and for folks to not even be able to start like everyone was a beginner once. So we think this is this will help get you past the initial like there's no way I'm going to figure this out. And it's just the yak shaping it's like you're not you're not even getting to the fun part yet you're like I'm installing binutils. I just want to show one last there because people are going to try to use this on my you know you build it. Once you're done you terminal in in app built release within the Docker image there's the boot loader bin networking actor bin partition bin and the file system and the kernel image. And then you do need to use ESP tools to burn those files into your ESP 32 s3 the network bin partition table bin and boot loader bin. You know I have an example in the Docker file of what you want like you know change it for your port etc. And then you need to use this thing called part tool and you know and it's actually kind of cute because what happens is the partition table is burnt into the ESP 32 s3 to make as much. You know the kernel is whatever amount of space in one partition then immediately after is the file system or maybe the other way around. But you want to make the file system is as big as possible while making sure that you had enough space for the kernel and so you need to use part tool which is in the ESP IDF and I do you do have to install ESP IDF on your computer. You don't have to do any other work with it and the installer isn't too bad like that does run in every operating system. But this reads the partition from the ESP 32 s3 and then writes the file system to the correct location. You I don't want to give you the hard coding numbers because if you do any other tweaks or changes or something. You know if you make any adaptations those partition tables might move and so you want to use the proper tool this is like one thing that. It took me like an hour to get where I was why does the expansion table. That's why but then you'll then you'll have everything the right location and then you can boot boot it up and then just use this USB serial cable because it doesn't go through the USB. Native USB it uses the the hardware you are is how you connect to the Linux build in the end. Okay, we'll do more next week. Okay, so let's go to the great search. The great search watcher by did you key in it for thank you. Did you key every single week lady to use the power of engineering to help you? Yes, you find the things that you're looking for part substitutions just about anything you could possibly imagine make or need on digikey.com. Lady what is the great search of the week this week? Okay, somebody was asking me about this connector on the ESP 32 s3 metro. Let's go there and show it off. Oh, sorry the overhead. Let me apologize. Yeah.  And then there's this and they're like what is this connector? What do you why do you have this here? This is a, I call this an SWD connector, but technically that's not correct. It's a J tag slash SWD connector, but 98% of the time it's for SWD, a single wire debug. This is a two by five 10 pin shrouded IDC cable that is used on almost every arm core chip. But also you can use it on like 10 silica with for J tag debugging. And this is used for trace debugging and like breakpoint debugging when you when you need something better and like memory analysis like you want to look look into the memory in the middle of debugging. You know printf debugging is is pretty common or a oscilloscope debugging I do it all the time. But there's a lot of times we need something a little bit more powerful. Also on some chips is used for the programming part. Some chips they don't you can't you don't have a built in USB boot loader like this one does where you can check the USB or through your and boot load immediately as a ROM loader. For a lot of chips they come like blank blank blank you need to load code in. And so for example, you know here I've got a a program where this is an ML ice and you'll notice so tough to see but there you go Sam and AVR it uses those connectors as well to this cable and then you can connect here I don't have enough space for a full SWD connector. So I just have some wires and I have a breakout instead and what I like about this breakout is it also shows you the pins. So this is the SWD pinout which is you know power a bunch of grounds SD IO SD clock SDO which is the actual debugging if you're not just programming but you want to send data back and forth output the reset and then. I don't know if I have I don't have the J tag pinout here but maybe let's go to the computer and I'll show. We do have this SWD I you know we stock and this adapters also available on the key, which also has the J tag pinout so SWD is a Cortex M zero specific debugging interface. J tag is the universal one so the pinout is also used for J tag where you have, you know, MS clock data out data in for J tag, and it replaces this original huge connector this 20 pin character which you know how would have a lot more possible data transfer but most people cannot fit these gigantic connectors on their PCB is bigger than the rest of it. These are much more compact and let me also so let me show so I had the AVR SWD so let me show off two more options. Okay, so can you go to the overhead again. I'll just show this quickly.  What's interesting about because I'm, you know, be later be like what's what's a two side shroud connector. There are some times where you want to have much more debug data going over you want like trace data and Scott actually did a stream Friday and last Friday about having a one of these longer connectors and they look similar but they're. They're much longer. This is your standard two by two by five connector and then this is a two by eight, I think two by a connector. So it adds another four pins, which is used for more debugging data. And for that reason, you might see see how it has it's it's shrouded. So it's got like this two pieces of plastic here for the key and a piece of plastic here to help you orient but it doesn't have the full shrouding. See how this one has four, let you know four sides, because this longer style connector would not fit in so it's kind of like this is like a backward compatibility mechanical connection, but you still want to have the key. There's a little key plastic key here you can you can see this plastic nubbin. And then also, of course, your your wonderful standard J link, J tag and debugging by Seger, a nice German company. And you can use in this case you use a Seger they have the old connector use that adapter and you go to this cable. Okay, so now I've shown you this cable and the shrouding because that's important. When you choose which one you want. If you need to have you know compatibility with this wider shroud but we're going to just go look for this kind of standard two by five connector, and then go to the computer again please. For our feather nrf, you know we have here we sometimes stick it on our feathers, it's like oh you want to debug it. Here you go and then on the Metro RP 2040. We also, we have it here and on the Metro. Sam D series. Sorry, Sam D 21 ditto. I like to you know in the metros I like to put them on there because there's space or feathers I don't always have space, although I think the original feather RP 2040 has a spot for it. So sometimes I don't can put it on but it's like because it's like so. It's not really used common. It's not used by beginners and makers it's often used by more advanced people who are doing the software development. So I put a spot and you can sort it in and I tend to use the SMT version, but I will say there's a lot of people who use the through whole version of this connector. Okay, this is a very long intro, but now let's go to did you key and find this part. Okay, so we want to scroll under header, because it's a header. And you can see even that the default image sort of looks a little bit like what we want. Now ironically if you go to this category that has 550,000 different components in it. The first one is actually kind of what we're looking for but that's just like a total coincidence. And you can see that it has a little pick plate on it. That's the plastic piece for the picking place to be able to pick it up because obviously it's got mostly pins. So these are very, very, very popular headers but let's pretend that it isn't like the first thing on the list right to some coincidence. So let's look for active components only. And we want it to have the most important thing to watch out for is the pitch. You want it to be 1.27 millimeters or 0.05 inch pitch. So it's half pitch, half of what you're used to much a smaller and let's apply. There's a significant number of boards that have that pitch. Okay, so we want to have two rows, two by five and number of positions, 10. And it's confusing because there's like 10 plus eight plower. Just ignore those. We just want 10. And then we also want to do the number of positions loaded. And this is confusing also originally I clicked 10 but that was incorrect. What you want to click is all or dash, which is like, you know, unknown. Okay, so we did the pitch and then you need the row spacing. Sometimes the pitch like between row pins is not the same as the row spacing. It can vary. We want it to be the same. So I'm going to pick row spacing of 1.27. And then in this particular case, I'm going to say surface mount but again you can, well, I'll do that actually next. The next thing that I do like to select is I want to have gold contacts. I feel like these days it's like gold contacts are so much less likely to oxidize.  The gold is literally one atom thick so it's not like it's going to add a significant amount of expense, but I feel like the quality is much better. And then let's go with in stock. Okay. So now we can look at some of the options because you see that there's this different shrouding. I thought that was kind of the most interesting thing to note. So first off, there's two whole versions. I find these annoying to solder. I find the pins are very close. I almost think like the surface mounts easier, but you can get two whole versions of these. You can get right angle. So it sticks out the end. This is like the minimal style. It doesn't have any shrouding at all. However, I find, yeah, these are not cheaper because they're not very common. Let's see if we can find the two shroud. Yeah, here you go. So that's sort of what we saw on that ST debugger where you can put in a two by five, but then you can have more pins coming out the sides. You know, more expensive. This is going to be, you know, about $2 a piece, not like 60 cents. So let's go with surface mount. Let's see where was that shroud here. Surface mount only. And let's say it's shrouded, but you know, I don't care if it's two wall or four wall, but I don't want the unshrouded. I like to have the little things you don't plug in, you know, backwards. I think that's that's wise. If you're going to pick a keyed connector, stick with the keying. All right. So next up, let's look by price, sort by price, and a couple good options here. So this comes in trays. This is for hand placement. I'm CNC tech, but they also version that comes on tape and real and to be honest, it's not that much more expensive. You know, the initial tray ones. I mean, if you're, if you happen to have a pick in place, I can pick it up, but I find it much easier to go with tape and real. So this one is in stock and it's, you know, 60 cents a piece. A good deal. And then one thing to watch for is some have little nubbins placement dots. Let's see if I can, I'll show you, I think the feather RP 2040. I'll show you. You see here. It has the mounting posts. You can select to get ones with mounting posts. Honestly, I've never had an issue where these snap this to protect you from snapping it off by accident. As long as you push down and pull up when you're inserting and don't try to wedge it back and forth, you shouldn't have an issue. I don't know if they have. Yeah, they do have board guide here. I think it's what's called board guides. Maybe. And shrouds. Heeing shroud meeting flange. Let's see if that gets us ones that have nubbins. Let's see this one. No, just, oh, it does have a board guide. You can kind of see, I think, with posts. Kind of hard to see, but here's the post. So you can get ones with posts. If you so, if you so desire. These are slightly different keyed versions of the keys in the on the edge there. So this is meant to not be compatible with all some other connector. But you don't need the keys. So I'm going to go with this one. This is my pick. 3, 2, 2, 0, 10, 300 TR for CNC tech. A lovely SWD connector. And that's a good church. Thanks for joining us, everyone. We'll see everybody throughout the week. We got a bunch of stuff going on. Don't forget, circuit Python day is this week, Friday, August 18th. All sorts of fun, amazing things to do all day. We'll see everybody this week. Thanks everybody. Thanks for joining us. Longer stream, but I hope you learned a lot.


Hey, thanks for watching. Please like, share and subscribe. Also, don't forget to hit the bell icon. You apparently won't see my new content without it. If you like my content, please consider supporting me on Patreon or PayPal. You can also support me on Subscribestar. You can find the links in the description or in the pinned comment. Thanks.  I'm not a white supremacist. I'm not a white nationalist. I don't support nor do I interact with those types of people. I would never even talk about this racial stuff if it weren't for the media and the Democrats on the left trying to make racism a mainstream concept again. CNN and the media at large have a serious problem with people of a certain skin color and a certain gender and they're not afraid to show their bigotry in the open. The scourge of the planet Earth. The enemy to all that is good and colorful in the world. What people are we talking about? Well, we're of course talking about the colorless cave beats known as white men.  It's because people like these keep insisting there's something wrong with it. Over the course of 24 hours, CNN hammered on Beto's quote, white maleness, a total of 52 times. The media and the Democrats have taken issue with all the white males that are running for president in the Democrat Party for 2020. But in this case, they focus specifically on Beta Beto. It seems his little nickname is not going to shield him from attacks from the regressive left on his skin color and his gender. Ask yourselves, how completely brainwashed do you have to be to preach about opposing hate and racism, and then turn around and fear monger about the skin color of one of the presidential candidates. Just take a look and see for yourself. This is seen as a moment by some where Democrats want to nominate either a woman or a minority. Beto O'Rourke is neither of those things. O'Rourke is a white male. Something that's very evident to everyone and that is that he's a white man.  They may not be open to another white male. Another white male. Another white male. A lot of the energy in the party right now is not for a white man. Vulnerability is running as a white man. As a white male. Being a white man. Something he can't change.  Gosh, you know, to say that it just sort of drips of white male privilege. Beto O'Rourke benefited from white privilege. One of the big debates is whether 2020 is the year of the white man.  So he just has to accept that. Not the right time for a white man to run for the presidency. He's a white man. The right guy to, you know, to be the next nominee. There's still an issue in this country where people just get very, very excited about white men. He seems very self aware of his perceived weaknesses.  Just replace all the times that they said white males and replace it with black males or brown males. And suddenly it sounds a lot more insidious, especially John Berman there at the end saying that his white skin color is a weakness. I wonder if he realizes he just admitted that the Democrat party doesn't like white people. And isn't it interesting that a lot of these people complaining about the white skin color of the presidential candidates are themselves white males? I wonder if they consider that one day maybe it will be them giving up their jobs because of their skin color and their gender. Maybe they have taken that into consideration and maybe they're just playing along because they think they'll get a pass. But they're giving Beto no pass at all.  Although CNN was out there today praising him for all the apologizing that he's doing, saying that maybe Democrat voters will give him a chance despite his white skin color. Well, I think that, you know, these two men are talking to distinctly different audiences. That works for Trump because the people who support him love that about him that he never apologizes.  I mean, that is his strength and they want to hear him apologize, say how his views have changed. And I think that people will give him a chance. I think that the left loves men that apologize profusely because they like weak leaders that can be easily manipulated with screaming and lamentations from their small but loud mobs. If they must have a white male leader, they want one that's weak and easily controlled. I can't believe I'm sitting here defending Beto, especially one he won't even defend himself. But I do think it's necessary to call out this rhetoric when it's being repeated over and over in the mainstream mass media.  They don't care about content of character and they don't care about getting the best person for the job. They only care about skin color and gender and the most shallow of senses. I'm fine with whatever gender or skin color the president is, but I will never choose my president based on those factors.


Hi, my name is Andrea with Food and Mentory Adventures in Food.  On our channel, you'll find simple and tasty recipes using everyday ingredients. Hey guys, so today is Saturday, December 2nd, and I have decided to do a low-spend December, just like I did a low-spend November. What that means is just using what I have on hand and going to the grocery store less. So I'm trying out a new recipe tonight. It is a cheesy broccoli tortellini, and I'll make sure to leave the recipe in the description box. But in this skillet, what I've got is some fresh broccoli. Yes, broccoli. That's Harrison. So in this skillet, I have fresh broccoli simmering in some heavy cream. And then I've got some Parmesan cheese over here and a family-size package of three cheese tortellini that I picked up from Aldi during your recent shopping haul. And right over here, I'm just waiting for that water to boil to add the tortellini in.  You're supposed to add pepper, and I'm not going to add any salt because that cheese is salty enough. But quick and easy dinner tonight. Okay, so here is everything all plated up. And I will say that that pasta is really good. If I would change anything about the recipe, I would probably add more broccoli to it. And I was right. You definitely don't need any salt because that Parmesan is so salty. So you don't need any salt serving it with a bread stick that I popped in the air fryer. And then also I have a Caesar salad kit from Aldi. This is probably our favorite Caesar salad kit between store brands and name brands. This one is our absolute favorite. And here it is. So this is what we are having for dinner tonight. And we will see y'all next time. Hey guys, so for dinner tonight, we are having a couple of steaks that I had in the freezer. I found these steaks on clearance at Crowley's. And this is what it looks like. I had to get rid of the box to make room in the freezer. But it's just a thin crust pizza with Italian sausage and pepperoni. So this is what we are having for dinner tonight. And we will see y'all next time. Hey guys, so for dinner tonight, we are having a couple of steaks that I had in the freezer. I found these steaks on clearance at Kroger a while back ago. They are garlic butter boneless sirloin steaks. And I got two of them in the packet. And they were 463 a package, which I thought was very good. So Howard grilled the steaks. And we are having a baked potato with it. That is some salted butter, salt and pepper. And then I just threw together a little side salad with some red onions, olive garden salad dressing and Parmesan crisp that I just crumbled up and added on top. So this is what we are having for dinner tonight. And we will see y'all next time. Hey guys, so for dinner tonight, we are having this last box of butterfly shrimp that I had in my freezer that I picked up from Kroger a while back ago on clearance for 450. This family size pack, which I thought was a great deal. And we're not eating all of it, we're just eating half of the box. And we are also having some steak fries on the side that I also had in my freezer. Of course, I didn't feel like pulling the bag back out, but they are just H-E-B steak fries store brand. H-E-B is a grocery store that is here in Texas. So this is what we are having for dinner tonight. And we will see y'all next time. Hey guys, so for dinner tonight, we are having this chicken. These are chicken wings that I picked up on clearance at Tom Thumb. I guess it's been a few months ago now, but I paid half of that 6'10", the member's price. And this is a bourbon and that black pepper seasoning. And I think it looks like there's about, I don't know, seven or eight wings in here, I'm not sure. But I think this is a very last package of these wings that I had in the freezer. But anyway, Howard's going to grill these wings. And then once I get everything plated, I will show you our plates. Okay, so I've got dinner all plated up. Here are the grilled chicken wings. And there were seven in the packet. So you can't beat three bucks and something for seven chicken wings. Serving it with some broccoli cheddar rice on the side. And then a salad. I have Olive Garden salad dressing, feta cheese and slivered almonds on there. So this is what we are having for dinner tonight. And we will see y'all next time.