Welcome to the CircuitPython Weekly Meeting for August 28th, 2023. This is the time of the week where we get together to talk about all things CircuitPython. I'm Paul Cutler and I'm a member of the CircuitPython community. What is CircuitPython? It's a version of Python designed to run on tiny computers called microcontrollers. CircuitPython development is primarily sponsored by Adafruit, so if you wish to support Adafruit and CircuitPython, consider purchasing hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join anytime by going to adafruit.it-slash-discord. We hold the meeting in the CircuitPython Dev Text Channel and the CircuitPython Voice Channel. This meeting typically happens on Mondays at 2 p.m. Eastern and 11 a.m. Pacific, except when it coincides with a U.S. holiday as it will next week when we'll have the meeting on Tuesday at 2 p.m. Eastern. In the note stock, there's a link to a calendar that you can view online or add to your favorite calendar app. We also send notifications about upcoming meetings via Discord. If you'd like to receive these notifications, ask us to add you to the CircuitPythonista's Discord role. There is a notes document to accompany the meeting and recording. The final notes document includes timestamps to go along with the video, so you can use the doc to skip around and view the parts of the video that interest you most. The meeting tends to run 45 to 60 minutes. After each meeting, we post a link for the next week's meeting notes document on the CircuitPythonDev channel on the Adafruit Discord. Check the pin messages to find the latest notes doc so you can add your notes for the following meeting. If you wish to participate but cannot attend, you can leave hug reports and status updates in the document for us to read during the meeting. This meeting is held in five parts. The first part is community news. This is a look at all things CircuitPython and Python on hardware in the community. It's a chosen set of items from our Python on Microcontrollers newsletter. The second part is the state of CircuitPython, Libraries, and Blinka. This is a quantitative overview of the entire project. It's a chance to look at the project by the numbers separate from our status updates. The third part is hug reports. Hug reports are an opportunity to highlight the good things folks are doing, taking the time to recognize the awesome in our community. The fourth part is status updates. Status updates is an opportunity to report on what we've been up to. Take a couple of minutes and talk about what you've been doing in the last week and what you'll be up to over the next week. And the last and fifth part is in the weeds. In the weeds is an opportunity for more long form discussions. These discussions can come out of status updates or be something that you've identified ahead of time is too long for status updates. And that's how the meeting will go. With that, we'll get started with community news. This week's newsletter is jam packed and I'm just grabbing some of the bigger headlines and highlights from it. Please subscribe to the newsletter because it's a great one this week. PyCon AU was held just over a week ago and there's two talks to check out. The first is open source communities and 10 years of MicroPython from Damien George, the founder of MicroPython. It's a great talk. It's a non-technical talk. It's about things that can help your community and the social aspects of engineering. I'm almost done watching it and highly recommend it. The second one is from Matt Trentini. You can't do that in MicroPython. Matt's talk at PyCon AU 2023, MicroPython is great for hobbyists. You can control LEDs and motors. It's so easy, but you wouldn't use it for anything serious, right? Surely not. It's too slow. You can't use all the features of a microcontroller. It consumes too much power. You don't have control over memory. Hint, all of this is wrong. You can do so much more as Anne says. I'll be watching that video next. Next up is Python in Excel. Microsoft combines the power of Python and the flexibility of Excel. They've announced a new analytical capability available within Excel with the release of a public preview of Python in Excel. It makes it possible to natively combine Python and Excel analytics within the same work group with no setup required. With Python in Excel, you can type Python directly into a cell. The Python calculations run in the Microsoft cloud and the results are returned to the worksheet, including plots and visualizations. You can check out the Microsoft Excel blog or the Verge has a story on it as well. Python creator Gito van Rossem shared that he also helped the Excel team with this initiative on Twitter. And the last headline is CircuitPython 8.2.4 was released in the last week. This is a bug-fix revision of CircuitPython. A couple of fixed boards and improved messages and documentation were the notable changes. CircuitPython Weekly Newsletter is a community-run newsletter emailed every Monday morning. The complete archives are linked in the notes document. It highlights the latest Python-on-hardware-related news from around the web, including CircuitPython, Python, and MicroPython developments. To contribute your own news or project, edit the next week's draft on GitHub or take it on Maston or Twitter with Pound CircuitPython or email cpnews at Adafruit.com. And that's community news. This is the status CircuitPython, the libraries, and Blinka. This is a quantitative overview of the entire project. It gives us a chance to look at the health of the project separate from our status updates. We'll talk about the project overall, then separately discuss the core, libraries, and Blinka. So overall last week, in the last seven days, we had 26 pull requests merged. Some names that are new to me. I apologize if I missed anyone else, but Estrelia, C. Cattuto, and Jim McCown were some of the 17 authors. We had seven reviewers with the familiar names and nine closed issues by three people with 14 open by 11 people. And with that, I'll turn it over to Scott for the core. Thanks, Paul. Okay, now numbers for the core. We had 20 pull requests merged, which is awesome. 12 different authors, so lots of folks. Thank you to those folks. We had five reviewers. Some infrequent reviewers are MicroDev and Gambler. 21, so thank you both. We have currently 31 open pull requests, which is more than my one-page gut check, but a bunch of those are super... Let's see. Six of them are a day older or less, so that's the weekend. We should be able to catch up and get under that 25 pull request mark to be on a single page. Issues-wise, we had seven closed issues by three people and nine open by seven, so we're a little up. We're a total of 698 open issues. This is... The little up tends to be the trend and the way that we prioritize the work for these issues for Adafruit-funded folks is through the milestone system. As I tried to imply that if you are... For community members, we encourage you to work on any issue that seems interesting to you, but for Adafruit-funded folks who tend to use milestones. These milestones reflect... tend to reflect versions. So, 8.2x has seven open issues, and these are things that we'd like to get fixed into a stable release sooner rather than later. And then we have 49 open issues for 9.0, and that's the longer term, new major version stable release that will happen probably in a number of months, not weeks. And then we have long term, which is 597 support, and also mainly we have four issues not assigned to milestones, so these are things that we want to take a look at and not urge issues that we need to take a peek at first, and that's it for the core. Thanks, Scott, and now I'll turn it over to Katnie for the libraries. Thanks, Paul. This section covers all of the CircuitPython libraries, which is everything in the community bundle and everything that begins with Adafruit underscore CircuitPython underscore. Over the last week, we had six pull requests merged. Two of the names that were read out earlier are new, which is great to see. In terms of merged pull requests, four of them were 23 days or older, the oldest one being 131 days, so we're still getting through some older pull requests, and we are down to 46 open PRs. We had two closed issues by two people and four open by four people, leaving us with 636 open issues, and we have 20 good first issue labels. If you're interested in contributing to CircuitPython on the Python side of things, check out circuitpython.org slash contributing. You'll find all of this information and more. You can get started by reviewing. You can get started by contributing documentation or code. There's tons of options available, and we have a guide on contributing to CircuitPython using Git and GitHub, which includes two sections on reviewing, and we're always available on Discord to help out. We would like you to be able to contribute in a way that works for you. For library PyPI Weekly download stats, this week we had 139,174 downloads, over 312 libraries. The top 10 are listed in the notes as usual. In terms of library updates in the last seven days, we had four updated libraries, but no new libraries, and those are also in the notes if you are interested. And that's what I've got. Thanks, Katny. Now I'll turn it over to Makar Melissa to talk about Blanka. Hello. So the section covers Blanka, which is our CircuitPython compatibility layer for MicroPython, RaspberryPy, and other single board computers. And this week we had zero pull requests merged. There are currently five open pull requests amongst other repositories. There were zero closed issues and one open by one person, leaving a net of 103 open issues. There were 10,576 PyPI downloads in last week, 10,361 PyWheels downloads in last month, and we are at 119 boards. And that's it. Thank you. And that is the state of CircuitPython, the libraries in Blanka. Next up is Hug Reports. Hug Reports is a chance to highlight folks in the CircuitPython community and beyond for doing awesome things. I'll start and then we'll go down the list alphabetically to give everyone a chance to participate. If your texts only are missing the meeting, I'll read your notes when I get to them in the list. And first up, I have a group hug for everyone. And next up is C Grover, who is text only. He has a hug for Liz Clark for an excellent Synth.io examples and musical concepts scattered throughout the fascinating circle of fifths learning guide. Special hug to Jeff Epler for the impressive Synth.io core module that just works and keeps on giving. Next up is David Glauda, who's text only. He's got a hug for Dan and Jepler for releasing 8.2.4 and backporting many features or many fixes and board support. And after that is DJ Devon 3, who is also text only. He's got a hug for C Grover for the Palette Fader Library and the Help in Discord. It's exactly what he was looking for in a project. A hug for me, Paul, for the advice to use Palette Fader. Hug for Todd Bot for a really neat Synth.io wavetable visualizer on the Pi Gamer this week. Even if you don't intend on using it, I recommend everyone listens to it. It sounds beautiful. Lady Aida and PT for a particularly informative desk of Lady Aida this week that included a sneak peek at a new octal PS RAM version of the ESP32S3 in 40-pin TFTs of all shapes and sizes. And last, a hug for Foamy Guy for two weekend streams on creating a red team capture the flag style challenge with intentional exploits to find. And with that, I'll turn it over to Foamy Guy. All right, thanks, Paul. Harg reports for me this week. Thanks to Mark McGookin on GitHub and also has a blog under the same name. They have a very helpful blog post and helpful helper library that is published on GitHub that makes it super easy to work with AESIO module, which is cool because I didn't know that exists and it's got some ins and outs that you got to do in order to use it. And this person made it a lot easier. So thanks to them to Michael Pocusa for reaching out about looking into even more improvements in HTTP server before I could even get all of my thoughts around what I thought would be cool. Michael's already on it, so that's really cool. I appreciate that a lot. And then the last one for me this week is on GitHub, the user BJAP for supporting a submitting, I should say, a fix in the core for the GZIP module. It turns out that I had stumbled upon an issue a while back and put some information about it in an issue comment and this person has a much better understanding of what is actually going on and has now submitted a fix for that. So that was really cool to see as well. Thanks. Thanks, Foamy Guy. Next up is Jepler. I just have a group hug today. Thank you. Thank you. And I'll turn it over to Katny. Hello. I also have a group hug today. Thank you. Maker Melissa. I also have a group hug for everyone. Love all the group hugs. All right. Next up is Scott. First, a hug to Bill88T for the PicoW Wi-Fi improvements and then also to Dishapoo for helping folks in the Help with Circuit Python channel. Thank you. And last we have Todd Bot who is text only. He's got a hug for Dan H for all the Circuit Python releases. A hug for Clever and Circuit Python Dev for helping me try to understand and characterize quad SPI flash performance on an RP2040. A hug for Katny, Dan H, and Jepler for helping me understand Sphinx Read the Docs and Jepler for a patch in Circuit Python CI that I could use to fix Read the Docs builds for my libraries. A hug for Josh Marinacci for a CP Synth project that reminded me about the PyGamer and Adafruit Bitmap Saver to save screenshots. And lastly for Jepler for adding socket constants useful for multicast UDP. And that was status updates. That was hug reports. Next up is status updates. Status updates is our time to tell the folks what we're up to individually. I'll start and we'll go through the list alphabetically. When I call on you, take a couple of minutes to talk about what you've been doing since the last meeting and what you'll be doing until the next meeting. This is also an opportunity to provide tips and tricks relevant to what people are working on. If a discussion becomes too long for status updates we can move it to in the weeds. With that I'll get started. I was trying to replace a self-hosted MQTT broker this weekend and use Adafruit IO instead and just couldn't get it to work. I came across the Adafruit-IO module or library that's in PyPI for CPython. Installed that, it was just a piece of cake. Didn't even know that existed so there's a little tip and trick if anyone wants to use MQTT with Adafruit IO and CPython. That's all for me. Next up is Cgrover who is text only. Putting the finishing touches on the first version of the IoT-based Windlass Garden Chimes project running on an ESP32S2 feather with a Max 98357A I2S amp. The chime physics and waveform harmonics are sounding like the real thing. All that's left for version 1.0 is to model the wind speed probability scheme to create realistically weighted random playback. Version 2.0 will encompass simultaneous wind chimes of various materials and scales. My favorite scale so far is an ethnic minor key just in time for Halloween, leaning towards camouflaging the electronics in a garden gnome. The reintegrator direct input PCBs just arrived from Oshpark to be assembled and tested later this week. This is a self-powered Class D speaker output with an audio line level signal converter called the DIM Pro AudioSpeak. It pirates the power needed for its dual op amp analog circuitry from the incoming Class D speaker signal. Looking forward to directly connecting the speaker output from a Pi Portal or Pi Badge or Pi Gamer to a guitar amp or my DAW using this device. Thank you Cgrover. Next up is David Glauda who is text only. Wanting to make noise with Synth IO without involving my soldering from last week, I used my Pico DV from Pimeroni that adds DVI plus SD card plus I2S plus 3 button to a standard Pico. After hours of testing with two separate Picos and the firmware could not load, I decided to file an issue. Dan quickly found the bug, fixed it while Retired Wizard confirmed it working. The PR is now in 8.2.4. Tested a few code samples from Todd and implemented my Pico DV based 3 button drums with a list to the GitHub gist. But it's mostly using Gambler 21's drums.py. Thank you. Next up is DJ Devon 3 who is text only today. He's got four matrix panels up and running with the Matrix Portal S3 this week. It's 128 by 64 squished down version of the Feather Weather script. The highest bit depth I could achieve without artifacts is a four bit color background image. I don't think a single Matrix Portal S3 will drive more than four panels with a little bit depth for displaying an image. I'm not even close to approaching the RAM limitation so it has to be a CPU or bus limitation. Plan to experiment with an IMX driving the panels next. Finally had a reason to use Seagrovers' Palette Feather Library to dim an image layer with Display.io. I'm sure it works amazing on TFTs but also works pretty well on Matrix panels too. And with that, I'll turn it over to Foamy Guy. All right. Thank you, Paul. Oops, I have scrolled to my hub reports so I'll just take one second here. There we go. Okay. In the past week or so, I was in particular over the weekend on the stream a couple of times. I was working on a capture the flag type of exercise that's web based, which is basically like a small web application that is intentionally made vulnerable in certain ways. And the player or the person using it to practice can go and look for those vulnerabilities and find some little flags that are scattered throughout. This is a common type of exercise in the kind of cybersecurity circles. And so I thought it would be fun to make one with the HTTP server library, which is always gaining new functionality. And so it was a good kind of excuse to build something a little bit more complex with that. So I had a lot of fun with it. I have been getting back into library reviews more over the past week. I tested out a couple that were new examples, which is great to see. I always love to see new examples popping up in various libraries this morning. I started digging into an issue I saw on one of them where the builds inside Read the Docs are failing. I thought it was a particular library and I thought it was actually due to a change that I had made but digging a bit further. And after submitting a fix for that, I found out it's actually a different kind of situation going on in some more libraries as well. So I've got to dig some more into that, but something is going on weird with the themes in Read the Docs when it tries to do builds, it seems like. I am also this week following up on typing PRs. There's some that got submitted and then had reviews but then kind of got stalled a bit after that. So I'm going back through those to try to get them finished up. And then I have to look at a little while later on this afternoon I want to get a chance to look at the GZIP PR which was put in the core to fix the way that GZIP works on certain types of files. And then last thing I have for the week is I'll be filling in on Friday for Deep Dive so folks want to stop by on Friday afternoon and catch the stream. I will be there this week. Thanks. Thanks, funny guy. Jepler, you are up. Hello again. So my main work last week and continuing this week is to create a circuit python driver for these LCD dot clock displays and that is still at a stage of it doesn't work yet and it's hard to tell when it will. It's maybe a subtle single bug or it's maybe several problems in my work in progress code but I've got to keep working on that. The stuff that I did accomplish last week though I did some documentation build fixes in circuit python I improved the documentation for RGB matrix in the can IO module I added a pointer for people particularly with the feather can which does not use can IO it uses an external module that you load with circuit or from the bundle zip file I created a PR to merge version 8.2 to main although that already needs to be done again because the bug fix for dock building wasn't in there and as Todd mentioned I added some constants to socket pool to enable something called multi-cast UDP and the final thing I did was merged and reviewed PRs and that's what has been going on. Thank you. Thanks, Jepler. I'll turn it over to Katny. Alright, so this week last week the Metro ESP32S3 guide went live there may still be a couple tweaks because the boards went out we made the guide live before moderating it so if there's a couple issues bear with us we'll probably catch them and then next up I'm going to be doing the guide for the iSpy Pi beret which is a little Pi add-on that allows you to connect iSpy displays so, by the cable that's what I'm working on. Thanks. And you're up, maker Melissa. Hello. So last week I worked on my message board guide and so we're going to finish up the guide and then work on various GitHub issues. That's it. Thanks. Next up is Michael Pacusa who is text-to-only he says that improvements to Adafruit HTTP server 301 and 302 redirects form data dot files support for multiple headers with same name and cookie support for request and response. Very cool. Thanks for working on that. And lastly is Scott. Hello, so on my deep dive on the deep dive on Friday I was investigating the issue Katni found about the S3 Metro just like hitting the timer watchdog and realized this morning and confirmed it talking a little more that we had the problem that the 8 megabyte PSRAM uses more pins because it's set up to be in octal mode and those pins are being reset right now. So basically after you use them your PSRAM doesn't work anymore and you have problems. So I'm going to figure out why we allow you to mess those pins up so why is the pin and use check not working. With that we're going to try switching the S3 Metro to quad set up so that those pins can be used. So on the Metro right now they're used in the SD card and the spy pins and we're not going to be able to do that. So when we're pulled the board so you won't be able to buy it and we're going to do a rev as well. But we'll get a build that hopefully will work still just not in octal mode. I was also working on updating SDK configs and the updater script for the IDF5PR.  So it's unclear whether we're going to need to turn some of those back on. I'm comfortable being pretty aggressive and emerge into 9.0 because we have a lot of time before that's stable. This is a holiday weekend so I'll be out Friday and Monday but also I get keys to a new office space on Thursday and the internet install is set up to be Thursday as well. So I'm going to be pretty busy this weekend moving into that new space. The goal is to work from there next Tuesday if the internet is working and I can get my computer and stuff moved over. I'm going to have a lot of other stuff to move like all my dev kits and stuff but that's going to be less urgent. And I got kind of obsessed with how I want to store dev boards in this new space. I've kind of pieced mealed together some options but I think I settled on using custom sized cardboard boxes so they're going to be like there's an IKEA Calyx bookshelf which if you think of IKEA bookshelf you're probably thinking of that one where it's like 13 inch square cubbies and it's like you know 2x4 or 2x2. I ordered some custom cardboard boxes to go that will fit should hopefully fit into each of those cubbies so you can stack as many as 10 of them in a single cubby so that you get like really shallow cardboard boxes so you can just have like one layer of dev boards to go in there and then because they're cardboard you can just write on the side what's in there. So I ordered some of those I'm pretty excited about it and probably I don't know it'll be like a week and a half until I get those but I'm excited about it too. So that's my update. And if you have a metro S3 and need the status updates let me know. Anyway thanks Paul. Thanks Scott. You'll have to give us a show us around in one of your deep dives and show us the cardboard boxes sometime that sounds pretty cool. Yeah yeah I'm considering putting it behind me so it'll just be there in like in the background. So we'll see. Cool. And that was status updates. Next up is in the weeds. In the weeds is an opportunity for longer form discussion that come out of status updates or that folks have identified ahead of time. Today we have two in the weeds and I'm going to read the summary of the first one. David is proposing that we have a simple test like we do in libraries but for boards called simple test underscore dot pi that with every board you get a piece of code that gives you a working demonstration of the sensor the LED the buttons etc whatever is available on the board that file should cover all of the board hardware features that it might have from a micro SD card to audio or whatever it might have. So that's the summary I'll let folks take a minute if they want to read through that but I'll turn it over to for discussion. So the board's ship obviously with code on them that is a demonstration of everything when there's multiple things on the board. It is Arduino the reason for that is the testers which are what the boards all go through being tested before they get shipped and they get flashed with this demonstration code and it is frustrating I guess and much more difficult to do this with circuit python and so that doesn't really happen I understand where you're going with this however it it adds it adds a pretty big extra step for us to do to be able to translate that so oh I see David says it's not for an in factory solution but for first time user after flashing so the I think what we do in place of that is we do the guides which obviously have demos that work with everything that's on the board that is not an all in one solution though it's not an all in one circuit python solution because it's obviously broken up by thing I could see if there was somebody in the community who wanted to take this on we could create a repository to keep them in so that there's a central place to go but I don't think this is something that Adafruit is going to be able to take on necessarily just due to cycles at this point this is an excellent idea I definitely if someone's interested in doing it we would be willing to help out in whatever way we can that's I think where we're out with it David said it is a seed I am planting it the idea will grow and I think that's completely valid and an excellent way to be looking at it so I think I think that's a good I think it's a good idea I think we just need to figure out implementation in a way that works for everybody involved so that's what I've got for it I would be happy to see people to have like simple test files checked into the board directory in the circuit python refill I think that would be fine so that when people add new boards they could add a simple test there that doesn't affect anything else because it's just a file that gets ignored by building and so on maybe we'll have to exclude it from python checks or something but we could put it there I think that's a good spot because that means that you only have to make one new PR for a board well you already have to do it in two places you can do it in circuit python and circuit python.org yeah but I think it's probably better to put it in the circuit python repo given that like if we need to change APIs or anything like they're all be in there and we can do those sorts of changes at the same time I think there's a little bit of weirdness and that like those sample files will probably want to reference libraries and I don't think we want to have explicit dependency listings there but circuit does a good job based on imports anyway right so I think that would be fine David also makes a point about these like super portal libraries and I agree with you the big do everything libraries are great if you want to do what they do but it would be good to have examples that work at the lower level as well so yeah I would say like if we want to have a standard simple test for different boards then doing it in the board directories would be fine that handles the cases where the board needs more functionality than what we do in the native C board for example but as catney says like we may not do that for for 804 boards immediately but that doesn't mean that that doesn't mean that other people couldn't add the simple tests for 804 boards that'd be fine but yeah I like Jeff Jeff also suggested having a standard way to link to the documentation for a board from circuitbython.org and I think that's a really good idea too it could be in like the metadata and have like an explicit button for it rather than just being in the text on the left hand side for example that's worth doing too so are there any next steps around this is this something that needs further discussion that we would want to open an issue for as an example or I think there's two pieces one is if David agrees with the idea of putting the sample code in the circuitbython repo just starting to make PRs that do that and then I think for the redesign of circuitbython.org to link to the documentation for a board we'll have to define like what the the metadata name is and then we'll need to get a slight like change to the site design so we can an issue on the circuitbython.org repo would be good because then we can pull in Tyler to come up with how how to make that look and once we can make it look then someone like Melissa could add it to the gears or how to define boards thank you so we'll wrap up the first one and we'll talk about the next item in the weeds from Michael Pacusa I apologize if I'm not saying that correctly but the idea is for a .py file that would automatically be imported and executed on control C when entering the REPL similar to a bootpie or safemode.py which run during specific events so that's the summary there's a couple bullets underneath that outlines some of the pros and there's some of the risks as well I have often wished for a feature like this in python on standard python you can set that variable which names this file each time the REPL comes up the content of that file is executed you can use it to import things it's very handy so after I read this I've been kind of working on prototyping the addition of this feature I don't think it's too hard so I might put in a PR later today but if I don't it's because I'm doing other stuff the work I should be doing instead of the work I'm excited about doing because I'm easily distracted and you can so there's the run file from list or whatever and I was going to try just putting that before it actually drops into the REPL so you initialize the VM you have this new code that checks for REPL.py file and runs it if it's there and then it continues to run into the REPL to let you do stuff David in the text chat says can we do import REPL.py and have the same effect you could say from REPL import star or whatever file you want and that would run the lines in that file in a module and then import every name in that module into the REPL and so yeah this is something that I do a lot I have a file called go.py and I'll say from go import star and that will set up whatever it is I keep running over again in the REPL very handy and kind of a workaround for not having a feature like this so in CPython you said that you have to set an environment variable is that something that we should do in settings.toml instead of having a magic file name maybe I'm just thinking like trying to make it just like CPython I could try writing it that way if that seems better I don't know what do people think I see at least three people who also want this besides Michael so I'm happy to see it added I just wonder if is REPL.py how we want to do it the Python environment variable is like I didn't know you could do that and see Python is Python start up I guess we could just say that defaults to REPL.py and if you put it in settings then it overrides the file well I think in case you want to use REPL.py for something else if you specify a Python start up for a file that doesn't exist standard Python prints an error file not found so I think if that was specified you'd have to specify it so that would mean there's two things to do as opposed to having a default I would have said maybe this was a Python 2.7 thing that there was a standard file for this but I may just be mistaken if so they abandoned that a long time ago and you can only enable it by setting the environment variable I guess my concern is like whenever we have special file names you end up having conflicts like secrets.py like is it bad to gate it behind a settings up Toml file or not like it may not be yeah in standard Python there are things like site.py and a lot of stuff I will look more into the history of the of this setting in standard Python and see if I can figure out what is best or what my suggestion would be but I would love this feature and I'll stop talking now awesome well it sounds like we know what next steps are for that one with that I'll wrap up unless anyone else has any additional comments this has been the circuit Python weekly meeting for Monday, August 28th, 2023 thank you to everyone who participated if you want to support Adafruit and Circuit Python consider purchasing from the Adafruit shop at adafruit.com the video of this meeting will be released on YouTube at youtube.com and the podcast will be available on all major podcast services it will also be featured in the Python for use letter visit adafruitdaily.com to subscribe the next meeting will be held on Tuesday September 5th at the normal time due to the US Labor Day holiday weekend this meeting is held on the Adafruit discord which you can join by going to adafruit.it slash discord to be notified about the meeting and any changes to the time or day you can ask to be added to the circuit pythenesis roll on discord we hope to see you all next week thanks everyone bye


Next up is a returning speaker to the 21 convention. I had the pleasure to introduce him just a few months ago in London. Amazing speech. Can't wait to hear what Euron's got in store for us today. This is Euron Brook. He is the president and executive director of the Einrand Institute. He's the co-author of an upcoming bestseller, keep your eyes peeled for it, called Free Market Revolution, and you can find out more at Einrand.org. That's A-Y-N-R-A-N-D dot org. So let me help to help me introduce Euron to the stage. Thanks. Thank you all and yeah, it is gonna be a bestseller and I need your help so you can pre-order copies on Amazon as we speak on your phone. So I want to kind of leverage what you just heard from Eric and kind of use the material we just talked about to kind of take it to what I think is there's maybe a deeper level or the next level and build on the material we've already heard. One of the issues that I think exists out there in the whole if you will self-help industry, which is a huge industry and it seems to ebb and flow in terms of the theories and it's, as Eric mentioned, it's been around since the early part of the century and hey, if they got it right, why do we still need more stuff, right? I mean, why isn't this a done deal? And I think that the whole phenomena brings up some interesting questions of why is there need for this industry? Why is it such, why is it so challenging, right? Why is it such that we keep getting these ups and downs and we keep getting all this contradictory advice? And I think it goes back to something that Eric mentioned and it it's it's this notion that the two kind of ways in which to view self-made or to view self-help but to view what it means to live a good life, what it means to live a life. And that is one, this Christian notion that ultimately the purpose of life is not your own well-being. Ultimately, you want to become good at whatever you want to do so you can help other people. So the focus of everything in life is other people. That's one approach that I think is very very dominant in our culture. Think about Bill Gates, right? Think about Bill Gates making billions and billions of dollars. In the 1980s and 1990s, how does he make his billions of dollars? He makes it by creating a product. And what does he do with that product? How do you make money? How do you make money? General question. What? So millions of copies, but there has to be an assumption, right? Because if it takes me, if it cost me a hundred bucks to produce something and I sell millions of copies for a buck, do I make millions? No. So what I have to, I have to be able to sell it for what? For a profit, which means above whatever it costs me to make, right? And it has to be a good enough product so people value it more than what? More than their money. So if I sell you a piece of software for a hundred bucks, it has to be worth more than a hundred bucks the person who buys it. And in Bill Gates's case, anybody have an assessment of how much that piece of software actually was worth to people who bought in the 80s and 90s? That, you know, so you paid a hundred bucks, let's say, for wood or for DOS or something like that. How much was it worth to the person buying it? A lot. I mean, thousands, tens of thousands, hundreds of thousands, a lot. Maybe even millions, because it changed your life, because it changed computers and it changed everybody's life. And suddenly we were all networked, suddenly you didn't have to have a typewriter. You guys are too young to even know what that is. I know, but it's those old things. Suddenly everything changed and the value of that piece of software is a lot more than a hundred bucks. So here is Bill Gates. He's making all of our lives infinitely better, infinitely better. And he's making gazillions of dollars doing that. And as a culture, what do we think of him? Going back to that culture. I mean, is he a good guy? Is this a guy? You know, we all think he's a great businessman. We all want to be gazillionaires, but is he a good guy? Is he like, you know, are we going to build statues to him? Are we going to praise him to the hilt? Is this like Mother Teresa's over here? Where's Bill Gates? Right, way down there. I mean, he's not a good, he's not molly from an ethical perspective, from the kind of, you know, the view of what goodness is, Bill Gates doesn't rank. He's made all of our lives better, but he's made money at it, so he doesn't count. When does he become a good guy? When he gives it away. And that's that view, 19th century Christian view. It's OK to make billions only if you land up giving it away, only if you land up serving other people. That's the purpose of life, is to serve other people. That's the essential. And if you make stuff, money, while serving other people, that's not that good. It's OK, but it's not that good. So, for example, you know, you know, micro loans? These loans, the people going to developing countries, and they give these small little loans to very poor people, and they, you know, to help them start businesses on. It's proved to be incredibly successful in really getting entrepreneurship going in poor countries. So there are companies that do it that are not for profit. And their success is so-so. And then there are companies that do it for profit, and they're phenomenally successful. But who is considered better? The non-profit, because they're not getting anything in return. So notice that there's a, we live in a culture that in terms of respect, in terms of admiration, in terms of what gets moral, ethical, virtue points, right? You get them when you sacrifice. What does the sacrifice mean? You give something, what do you get in return? Nothing, or something less, valuable, right? Because if you give something and you get more in return, what do we call that? Profit, we call it a trade, right? That's a trade. When I give you something and you give me something that's worth more to me, you got something more and I got something more, that's a trade, right? And what do we, that's a win-win. We're both better off. When I buy Microsoft product, Bill Gates is better off, I'm better off. It's a win-win. Sacrifice is, lose-win, or win-lose, depending on what side of the sacrifice you're on, right? So, and that, that is way up here. That's up there with Mother Teresa, right? That's good. So we live in a culture where lose-wins are good and win-wins are just okay. Kind of weird, right? Just doesn't, there's something strange about that. But think about relationships. Think about the value we place and just our terminology. We talk in hushed tones and with reverence towards people who sacrifice, how wonderful that is. In other words, losing is good. That comes out of this notion that your life is not your life. The only purpose to make your life better is to serve other people. The alternative to that has always been presented as, yeah, you should make your most of your life and what that means is, whatever you feel like it is, whatever you feel like doing, anything goes. There is no standard for determining what is a good life, right, whether it's a billion dollars, a hot woman, whether it's this career, that career, whatever you feel like doing is good. Feelings is the, is the guide. Feelings is the motivation. If you think that a good life comes from lying, cheating, stealing, well, we don't advise it because you might get caught and stuff and go to jail, but who are we to say that that's not right? Anything goes. Anything's permissible. That's what being a self-made person is supposed to mean. And nobody actually says it, but it's no because nobody actually tells you to go lie, steal and cheat. Nobody would actually advocate that, but the implication is that it's all okay. As long as you can achieve the outcome, you know, there's a whole school of philosophy in a, you know, going back to Dewey, right, those whole school of pragmatism, right, which basically says, you know, if you can get away with it, whatever you can, whatever will get you to your goal, that's okay, right. And self-interest, when you talk about people being self-interested, when we talk about being, people being selfish, that's the kind of image we have because when you say to somebody, you're selfish, do you mean that as a compliment? No, you mean that as a derogatory term. When we look at somebody and say, that person's selfish, what do we mean by that? We mean he's a what? What? Yeah, but what do we mean by that? What kind of behavior is he exhibiting when we say that? What's that? Do we really mean he's being successful?  That's what we mean by it. But what does selfish as a word actually mean? What does the term mean? Yeah, taking care of self, taking care of self, which is what you're all here to do, to take care of yourself, to make your lives better, to improve your diet, improve your physique. I mean, this is one of the few self-help kind of conferences that actually has a kind of philosophical component to it, but you're here to make your lives better. And yet that term, making your life better, being selfish, is associated with all this garbage, backstabbing, lying, stealing, cheating, whatever it takes, right? The symbol of being selfish today in America is booty made off.  Permit scheme guy, you know, $50 billion. So the notion is that selfish, and then this is how words work. This is our concept to a selfish, i.e., taking care of self equals booty made off. Who wants to take care of themselves if you're gonna be booty made off?   He's a bad guy, nobody. So even, so we've got Christianity over here telling you, take care of yourself only for the purpose of helping other people, and that sounds like a conflicting contradictory message. It's not just Christianity, everybody says that, right? It's secular philosophy. Everybody gives that kind of advice. And then over here is, yeah, but what selfish really means is booty made off. So I don't want to quite live for other people. I kind of want to make myself better for myself, but I don't want to be booty made off either, and it's a contradiction. And this is where I think a proper understanding of what self-interest means and what it requires and what it takes is necessary if you're gonna take on the responsibility of making yourself the best that you can be. Because the psychological traps that are involved in both of these are gonna undercut you constantly. So if you believe that Mother Teresa, that giving up everything, and going and living for other people, that's a moral ideal. Now we don't really want to do that because we like our lives and life's too good to actually do that and dating and stuff like that. She had no sex and everything, right?  I mean, and you read her diary, she was miserable, miserable, miserable, miserable.  That was her goal, right? Because happiness is selfish. If that's a moral ideal, and yet we're living this life of sex and money and doing well and happiness, what are we gonna feel? If we want to be Mother Teresa, but we know we can never achieve that. If we know that's what good means, but we know we'll never be good, what does that lead to a feeling inside? What kind of feeling? Starts with a G, yeah, guilt. And so many people are guilty out there. So many people do not succeed in life, do not attain their values, do not pursue their own values, and when they pursue them, when they're successful, they don't enjoy it. You know how many rich people are unhappy? Lots of rich people are unhappy. Lots of people who, what was it, a hot wife and money, and I can't remember the third one, but all attain those things, right? But they don't, it's meaningless to them because they feel guilty about it. So guilt kills you. And what this, you know, what this religious base, but it's also secular and everything, this idea of living for other people, generates and people trying to pursue self-help is guilt. And that's why so many self-help programs, in my view, fail. It's because what are we leading to? You're not gonna help other people by helping yourself. That's not, can't be the purpose, that's contradiction. And this notion that you can do whatever you feel like doing can lead you easily to Bernie Madoff, and is that happy? Is Bernie Madoff happy? No, he's in jail, not very happy place. His son committed suicide because of what he did. A year after Bernie Madoff was arrested, his son committed suicide. I can't think of a more horrific thing to happen to a human being than to know that you caused the death of your own child, your behavior. But even before he was caught, you think he was happy? How many of you have ever lied? Yeah, you can be honest, come on. For a change, you can be honest there.  Do they help you actually achieve, talk about relationships? Do you think that you can have a healthy relationship with a woman by lying to her? Do you think that leads to good stuff?  It really is a bad strategy for success. It doesn't work in the workplace. It doesn't work with relationships. It doesn't work the worst kind of lies.  Yourself. It completely screws you up. So the Bernie Madoff strategy doesn't work if you want to pursue yourself.  I think that's true.  He says today that he's happy in jail than before he was caught, and I believe him, because he doesn't have to lie anymore. Lying makes you miserable. So this doesn't lead to happiness.  This doesn't make you happy because you're always gonna feel guilty because you're not actually pursuing other people's wellbeing. You're trying to make yourself better. It's a no-win situation. Of course, you need new strategies for self-help all the time because there's no way to get out of this trap. Well, there is. And Eric started to talk about it, and I think it's Ayn Rand's idea of what morality is really about. What goodness, what righteousness, what virtue is really about. And it's not about other people. When people tell you your purpose in life should be to help other people, the real question to ask them is very simple. It's three letters. It's why. And there's never any answer. Why should I help other people? Why should my purpose in life be to serve others? Why? It's because somebody said so that's the only answer that exists. But the real question is, you all will all living beings. We're all living beings. Individual living beings. What should be our purpose as a living being? What is the purpose of every living being? There are no plants in this room. I would have pointed to a plant. But what do plants try to do?  I hope you have plants. Life is good, right? All life. Plants, you put a plant in a shade. What does it try to do? It tries to grow towards the light. Why? What's it pursuing? What's it trying to attain? Life's more. Life. It wants to live. It's trying to figure out, trying to get the value that is acquired for its life. What is the value in this case? Light. If you put it in dry soil, what does it do? Roots go searching for water. For the value, which is water? Because the ultimate value for that plant is what? Is life. Face is a choice, just like all of us. Life or death. Existence and non-existence. That's the ultimate choice every one of us faces. Self-improvement ultimately is all about choosing to live. Making the choice that the plant automatically makes. We're the only species, by the way, who can choose not to make that choice.  We can choose to do it fast by jumping off a building. Or we can choose to do it slow by being born and made of. But he's chosen to die. He's not living. Life in prison is not life. Life as a lying, cheating SOB is not a life. It's death. Very slow, with lots of torture on the way. Just think about what it would mean to lie every day to your best friends and to your family, which is what Madoff did. That's torture. That's death, wisdom death. So every species out there has automatically geared in it the choice to live. We have something unique. We have something special. It's called free will. We can make choices. We can make decisions. Should we choose life, or do we choose something else? Death. There is nothing else other than that. Rand says that the choice of life is the fundamental choice in ethics and morality in what is good. And therefore, it is the context by which we should measure what goodness means. Does it lead us towards life? And what kind of life? Well, a good life. Life as a human being. Life to the fullest that we are capable of of human beings. In this sense, this is the morality of the philosophy that should guide anybody pursuing self-help and a self-help ideology. This is a self-help philosophy. It's about identifying their good, identifying morality, identifying virtue with living the best life that you can live. Living the fullest, most complete. Eric used the word flourishing. It comes from Aristotle. Aristotle was the first one to identify this notion of purpose of life is to live it to the fullest, is to flourish in it.  If you live a good life, why are you living a good life? What's the purpose? What should be the purpose of every life? Is it the billion dollars and a hot wife and whatever the nice car? Is that the purpose? No, what's that even that? Even if those are values, what is that for? What are we trying to attain? Happiness, it's all about happiness. We want to live life in order to be happy. Happiness is the ultimate goal. So the question is for us, for human beings, what is going to lead to that? We know what a plant needs, right? A plant needs water and it needs sunlight. We know what a cheetah needs, right? Or a lion, we know how lions, what lions need. What do we need? Before we get to the billion dollars and before we get to the wife, what do we need? And what is unique to us in terms of values? What is the most important value that we need?  And what you'll see is a pathetic, weak animal. Animal, we are not equipped, we are not equipped physically to survive in this world. Each one of you, I know you work out and everything, it's not impressive.  You try to run down a bison and bite into it. Ever tried that? No fangs, no claws. No speed, not really.  There's nothing there. We're just not equipped physically to survive. We're not, yet we thrive. We don't just survive, we thrive as a human race, human species, we thrive. I mean, where is the sabertooth tiger? We killed them all, we did. Human beings, how do we do that?  Big sticks, but how did, where did we get sharp sticks from? They're what? Somebody said, they're mine. Yeah, so it's all about what's up here. We don't have a gene, birds have a gene that tell them how to build a nest. They just know automatically how to build a nest. We don't have that gene. We started out living in caves, not a good idea. Tigers like caves, bears like caves that are bigger, stronger than us. We had to figure out how to build homes and how to build them strong so the wolf wouldn't blow them down, right? It takes thought, none of us. I drop you into the Amazon jungle. You don't have the instinct to figure out how to survive. You don't. If you just rely on instinct, you're dead very, very quickly. You have to sit down and think and figure it out. When Robinson Cousso's on an island by himself, he doesn't know what to do until he thinks about it and he looks around and he uses his mind. Everything we have, everything you can point at in this room, literally everything you can point in this room is a product of somebody's thinking. Somebody's figuring out. What do we call that characteristic of human beings? That ability to think, that ability to observe nature out, to integrate it, understand it. Do stuff with it, right? Figure stuff out. What do we call that? Starts with an R. What's that? This is how we self-actualize. Creativity is an aspect of this. Starts with an R. Rationality. Rationality, it's actually reason, right? Reason. And kind of again, to hook up with Eric's talk, it's not an accident that the Enlightenment, what's the other name for the Enlightenment? The age of reason. Not an accident. Not an accident that all of, all the, have you ever seen a chart? I don't have a whiteboard here. Have you ever seen a chart of per capita wealth? The history of per capita wealth? That is, dollars that the average wealth the human beings have had throughout history. Have you ever seen a chart of that? So it starts, I don't, I can do it in the air. So it starts at some point, let's say 10,000 years ago. And per capita wealth, that is the wealth on average that a person has is basically flat and flat and flat until a certain point and then it goes like that. Just skywalkers. And what's that inflection point? Anybody know what that date is? That's how it's going up? Now the beginning of the Industrial Revolution, I like to use 1776. It's an arbitrary date. It's anywhere in that period. I like 1776 for two reasons. Two important things happened in 1776. The founding of this country, which creates the political, lays down the political principles necessary for that spike in wealth creation. And one other thing happens in 1776. It's just cool that both these things happen. Wealth of Nations is published by Adam Smith, the first real book of economics, right? A defense of capitalism. But that's an arbitrary date. Somewhere in the 18th century, this happens. And it happens because it's the first century that explicitly recognizes reason as man's tool for dealing with the world. Explicitly recognizes the importance of reason in making human life better. And once that happens, what do you get at the same time? You get a scientific revolution and you get an industrial revolution. And you get whose reason? Who reasons? Eric said something about digesting. We can't digest collectively. Can we reason collectively? Is there a consciousness up here somewhere that you're collecting all our consciousnesses in which we reason? No, who reasons? Individuals. Each one of us reasons. We each have a mind. We can share ideas. We can feed off of each other. We can trade intellectually. But it's us as individuals who are the only ones who can actually reason. So it's not an accident too that the age of reason leads to a political revolution that's about individualism, which is what the founding of this country is about, the right to life, liberty and the pursuit of happiness. You're right. Each one of you as individuals. Not some collective right.  So the age of reason leads to industrialization. It leads to individualism. It leads to that. You don't get that until reason is discovered during the Enlightenment. Before that, if you think of the way, think of the poorest people in the world today. I don't know Africa, Asia, wherever, probably Africa. That's how everybody lived 300 years ago, pretty much. I mean, there was some people who lived up here, but they were talking about income inequality. Income inequality was really dramatic back then, right? The kings and then everybody else. But everybody else pretty much lived subsistence farmers like the poorest people in the world today. Just to give you a sense of how, in a sense, not really lucky, but how much we benefited from the fact that this happened. This is all before us and we're benefiting from it. So reason, reason of what makes all everything we have around us, these lights. I mean, Thomas Edison's reason, right? We get electricity. We get the light bulb. I mean, Benjamin Franklin. Without his work, we wouldn't have electricity. We wouldn't have a light bulb. These buildings, architects, somebody had to figure that out. Again, no gene. But everything in your life is about that. Everything in your life needs to be figured out. You don't have an instinct for mating. We don't. It's hard, right? You gotta figure it out. I mean, you gotta talk this morning about some strategies around that and how to think, how to think about relationships. That was the whole point. How to plan. And it's really crucial. This is about thinking. Even when talking about how to think about yourself and how to undo maybe certain psychological issues, it's about thinking about yourself. There's no other way. They have these rooms that all pattern.  It's fun, but it doesn't help you. The only self-help is from figuring out what the problems are and figuring out what the solution should be. Thinking, thinking, thinking. So if you really want to be properly selfish, not the lying, stealing type, but the type who takes care of self, then the number one value, the number one virtue has to be thinking. Has to be taking reason, taking rationality seriously. Taking your own mind seriously. So we're here about cultivating a body and that's great about how to eat right and how to have a good physique. And you need that, right? Because you need to be healthy in order to do anything in life. But to really achieve something in life, to really be good at what you want to be, you need to use your mind. You need to figure it out. Even when it comes to diet and exercise, right? Who are we bringing? Who is being brought up here? It's people who've studied it, who've done research, who've figured it out, right? They've used their mind, they've used reason in order to figure out diet. And if you spend, a lot of us spend a lot of time reading diet books and reading nutrition books and looking at the labels and figuring out what we can and cannot eat. And we spend a lot of time figuring out what kind of weights to use and how many times a day to exercise, how many times a day, how many times a year to exercise, I guess it's going to be, right? Because the whole idea is you shouldn't exercise too much.  Well, what I'm saying is that's the kind of time and thought and effort and energy that needs to be spent on every aspect of your life. Every aspect of it. What kind of career do you want? What am I really good at? And it can't just be about the money. I mean, money can be important. But it can't just be about the money, because believe me, if you set the career goal, if you set your goal as I want to make a million bucks, but the only way to do that and get a million bucks is to do something that I hate doing. Getting the million bucks is not going to be satisfying.  You're not going to enjoy yourself. Rather be poorer and do something that you love doing than be rich and hate what you're doing. It's about the process. It's about what you love and understanding what you love. Take Eric, he could have gone and invented a light bulb or something, right? But he loves teaching. And you know how much they pay teachers? Nothing. I mean, it's like one of the poorest professions out there. True or not, right? Yeah, absolutely. But he loves it, right?  You know, I would have done, I've got a PhD in finance. I could have gone to Wall Street. I could have gone to Wall Street. But I would have been bored in Wall Street. I would have gone, this is much more fun than making millions of dollars in Wall Street for me, not necessarily for you, but for me. I wouldn't exchange my life for a life on Wall Street any day. Yeah, I'd have a fancier car. You know, I don't think I could have a hotter wife than I already have. Uh, it's true. I'd be married, I'll be married in February, I'll be married 30 years, three zero, so. I can't talk about dating because I don't remember dating. So, for Ayn Rand, for the idea of truly being self-interested, the key is to think, but to think about everything in life, including, as I said, career. What do I love doing? Why do I love it? I love it for the right reasons. Somebody talked about parents giving advice, right? A parent cannot choose a career for you. Cannot choose a career for you, you have to choose it. And, you know, I used to ask, you know, because there's this idea that you should choose a career based on what will do the most good for humanity, right? It's this, again, this 19th century notion. I used to ask my students, how many of you, how many of you made a list of all the professions in the world and then ranked them based on the social utility, where you could do the best for humankind and chose that? And usually there's one poor soul who raises their hand. And then it's to tell the class, you selfish bastards, right? Because you chose based on what you wanted to do, but that's a good thing. That's what it's about. Being selfish is not a bad thing. If done right, if done properly, if done fully in what means, it means to take care of self. So be rational in everything. Now, what does that mean? Does that mean no emotions? Robots, like me, right? Emotionalists, no passion. No, emotions is what you live for, right? It's the emotion, it's the good feeling, it's the happiness, it's the fun, it's the satisfaction, those are all emotions, those are all of feelings. That's what you live for. But the not mechanisms, your emotions don't tell you what's good for you. They don't tell you what's right. They don't tell you, you know. And you don't live for the highs. You live for a constant high.  So being selfish, being self-interested, doesn't mean that if there's a line of cocaine here, I'm gonna take it because you know what? I'm gonna feel better afterwards. Why not? Because I also realized, because I can think, that there's a negative consequence. And in this case, I believe at least, that the negative consequence is greater than the high. So I don't do it. And you can apply this to the kind of food you eat, right?  And we understand when it comes to food, that we sometimes have to avoid that and depress, you know, not follow our emotions, but use our head. Well, again, that same principle needs to apply in everything in life.  And if you sat down for a minute and thought about it, you'd realize it, but you know, she's hot.  I wouldn't know what that feels like, but I've seen the movie, right? It's just not worth it. It's like the chocolate cake. It's not worth it. But that's, you need to be able to use this consistently in your life in order to be able to make those kind of judgments and be able to be strong enough. And this takes strength because we're not taught this. We're not taught to stop and think, particularly with modern education, what's taught to emote. We're taught to follow our feelings. You know, we're very touchy feeling these days, you know? But that's not right. That's not what's gonna lead you to the right decisions. We're taught to listen to everybody's advice. Well, most people don't know what's good for you. You know who knows what's good for you? You do. If you spend the time to think about it. Okay, so my pitch today is thinking. It's thinking, thinking, thinking. Underlies everything. Everything in life and underlies the whole foundation of self-improvement. Every aspect of it, everything you hear up here over the weekend needs to be evaluated based on that. Does this make sense? Is this the way I wanna live my life? Is this gonna lead me to a better life? And that's their burden to show you rationally through reason that it is, that it's going to. Hope I haven't spoiled the weekend, so. I'm kidding, I'm kidding. So that's self-interest. So emotions, good things, but they're not tools for making decisions. Where do emotions come from? How do, what do we have the emotions that we have? They keep us alive in what sense they keep us alive? Yeah, but should we, I just made a whole case for now making decisions in your survival based on emotions. Because where do emotions come from? Are they just random, chemical, whatever in the body? Yeah, I don't, maybe, but I don't think that factors. If ever you had a change in emotion, because change leads one to understand what happens. Because have you ever had an emotion about something and then it's changed?  Yeah, it comes from your, but it's not even thoughts, it's conclusions. It comes from conclusions that you've come to. It's an automatic response, the subconscious conclusions that you've made already. So it's all subconscious, but it's the conclusions and when the conclusions change, what happens to their emotions? Did they change instantly? No, it takes a while, but they do change. So for example, if you're in love with a woman and you discover that she's cheating on you, right? Do you immediately not love her? I wish it was that easy, right? But it's not, it usually takes some time. Because what happens is our minds are these integrating machines, they like to connect stuff and it takes a time for the subconscious to catch up with your consciousness. So your emotions over time will change and they will change if you've come to a conclusion, but it takes time. So emotions are responses to conclusions that we've come to in the past. Now sometimes we've come to conclusions in our childhood about things that we weren't even aware we were making conclusions about. And that leads us to have emotional responses today that we might not even understand because they're based on conclusions that we came to a long time ago. And the only way to undo those emotions, go see a good psychotherapist if one existed, is ultimately to change those conclusions, identify what they were and change them. But emotions are just concluding, they might, those conclusions might be wrong. We might have had a nasty, mean mother and we came to conclusion about women because of that when we were three or four years old, without even really being fully conscious and being fully rational, that might just be wrong and today we have certain emotional responses that just don't match to how we'd like to have. And this is why emotions are not tools of making decisions because we don't know where exactly they come from. You know, I think the more we introspect, the more we think about ourselves, the more we study ourselves, the more we know about our emotions, the more we can fix the bad conclusions and therefore change our emotional responses, but that's hard work. And you're never quite sure you're there and that's why emotions are not the way in which we make decisions. The only time you wanna make a decision based on emotion is in a true emergency, right? When you just don't have time to think and then emotions as good as anything else. And hopefully your emotions are tuned with your conclusions and you're making the right decision, but that's rarity. How many of us really live in situations while survival depends on making instantaneous decisions? Almost none of us. Almost every decision we make, we can afford to stop and think about it. You know, and I highly recommend doing that. Most of us get into trouble when we don't do that. So emotions come from thoughts. They come from conclusions, but we don't always know if those conclusions were right. We don't always know if those thoughts were rational and therefore we can't always trust our emotions and that's why we always need to step back and think them through. Maybe they're fine. Maybe our emotion is absolutely right. Maybe it's not. We have to be open to that. So again, the mechanism is reason. And as a consequence, this is one of the reasons, you know, lying doesn't work. Because if our means of survival, if the way in which we create stuff is through reason, reason means what? Reason means absorbing information and analyzing it and being what about that information? Being honest about it. We want real facts.  You're not gonna get good stuff out of feeding. You have a computer up here. It's kind of a computer. It's more than a computer, right?   And you think that you can hold the lie separate from the truth? Good luck. Because as I said, our minds are integrating machines. They love to integrate stuff. Our mind, our subconscious, doesn't know what you've defined as a lie and what isn't. It's gonna mesh them up. Most people who lie constantly can't tell the difference. Now I'm pretty old, particularly in this room, right? And I have a hard time remembering what actually happens. You know, like a week ago, you asked me, what did you do a week ago? I have to really think about it? I don't remember. I really don't. Now what happens when you lie? You have to remember what you did and then what else do you have to remember? What you told, the lie. And the lie comes with all kinds of complicated circumstances, right? Because you have to remember what you lied, who you lied to, and who you didn't lie to. I mean, it's, wow, it's way too complicated. And you're gonna fail. I can't remember one thing. Now you want to even remember two or three or four. And it's, you know, and it's layered. You know, I used to do these seminars at this company and I used to give this example of a guy who, you know, goes out to drink with his buddies and comes home and tells his wife, all right, it was work, I was at work late. And I used to explain why this was, you can't sustain a lie like that. Even a simple lie like that. Just can't sustain about it. Because what if the wife meets one of the buddies and other buddies have to know that you're lying and they have to say, yeah, he works late. And what if she bumps into your boss and complains to the boss, how come he's working late all the time? And the boss says, he's not. So somebody raises the hand and says, this is exactly what happened, right?  And the wife called the boss and said, how come my husband's working late all the time? And the boss says, he's not. And guess how that relationship worked out, right? Lies don't work because they're anti-reason, because they're anti-reality, because they're anti-facts. Okay, so rationality. Einwand defines seven virtues to live by for good life.  Rationality, honesty, right? We just talked about honesty. And honesty is primarily not faking reality, primarily for yourself, justice. Justice is being rational in how you deal with other people. It should be rational in how you deal with yourself. It should be rational in how you deal with other people. People should get what they deserve from you, good or bad. And you have to be objective and rational about that. Not emotional and subjective about it. Independence, you have reason, you have a mind. You are the only person who can do thinking for you. You can get advice from other people. Advice is great, you wanna listen to other people, particularly smart, and if they have your interests in mind. But you are the one who's gonna make the decision. You have to, you can't relinquish that. It's your life, nobody else's. You can't listen to your mother after a certain age. I mean, she's great, and I'm sure she's smart, and I'm sure she has your own interests, but you have to, you know, you have to make those decisions, you have to understand what she's saying if she's got your own interests in mind, but you have to make the decisions about what's right and wrong for you. Integrity, if you say stuff, if you believe that you're gonna be rational, that rationality is good for you, then you gotta do it, right? You gotta walk the walk of reason. I always miss one. What am I missing? Productiveness, yeah, I miss productiveness. Your life is yours, therefore you are responsible for maintaining it, for getting the physical material that needs, that you need in order to survive. Being productive is essential for your happiness. I'm gonna end with these two virtues, productiveness and pride. Pride is your commitment to be morally perfect, to be the best that you can be, not in a superficial sense, not just the biggest, the richest, the strongest, but the best in everything that you do. That's what pride is, that commitment. And what do you need in order to have that kind of commitment? You don't need to have self-esteem. You need to be, know that you are worthy of being good. And where do you get self-esteem from? Gets from other people, from ribbons, from metals. You know, we live in a generation where everybody gets a ribbon because they think that's how you're gonna get self-esteem. Now, only you can give yourself self-esteem. Self-esteem comes from achievement. But it doesn't just come from achievement, it comes from recognizing the achievement.  Michael Jordan became Michael Jordan because he recognized that he could be the best and every time he was good, he recognized that he was good and he recognized that he could get better and worked hard to get better. He recognized, it's not, you know, if you're looking at Michael Jordan, there's a guy with self-esteem. He's incredibly self-confident, incredible, have a sense that he's worthy of being the greatest basketball player of all time. It's not just an accident, he's worthy of it because he worked hard, he attained it. He's got what it takes. And so it's getting those achievements, recognizing those and what area in life do you think you get the most self-esteem from? Where do you achieve stuff in life?  At work, at work. It's not with family, it's not at the gym, it's not in the front of the mirror, it's at work. So if you want to build a life of self-esteem, then find work you love and do it really, really, really well. Not because other people expect you, not because you'll get rewarded for it, but because you will reward yourself when you make those achievements. Stretch yourself, push yourself, challenge yourself. That's where you'll get the self-confidence to be good at everything else in life. But that's the foundation. The foundation is to be good at what you do at work, being productive. And I wouldn't even call it work, I'd call it a career because a career is something planned, a career is something long-term, a career is something you develop, you move towards. It's not just the work I'm doing right now, it's the career I have. And a career is not about money, it's not about prestige, and it's not about other people, it's about you, and it's about making the most of your life, it's about fulfilling yourself, it's about being happy. So that's the seven. That's the formula for success. But it takes work. I like to say that being selfish is the hardest thing you can do. It takes hard work, because it takes figuring out what is good for me, which is not easy, and how do I achieve it?  But the reward, the reward of that is what life is all about. The reward for that is that flourishing, that fulfillment, the reward for that is happiness. That's the payoff, that's what it's all about. Thank you all. Questions? Thank you very much, I really enjoyed your speech. And I had a question like we, you mentioned earlier about free choice and also how others make you feel guilty and how it's okay to be selfish. But then where does responsibility come into that? For example, let's say you have a sick child or a child who needs special attention, or maybe you might have aging parents, and are those responsibilities that you have to take on? Are you socially, excuse me, are you socially obligated to take those responsibilities or should you have the free choice to say, no, I don't want to do those things and I wanna pursue whatever I wanna pursue? So I don't believe that you have any social obligations other than to leave your neighbor alone, that is not to infringe on his right to pursue his happiness. But I don't consider a relationship with a child or relationship with your parents as social. They're your relationships, they're your obligations if they are obligations. Now, I think there's a difference when you're talking about with a child or with a parent and I'm gonna say something controversial. My son's in the room which makes it even more complicated. I don't think children owe anything to their parents. I don't think children owe anything to their parents except to the extent that they love them. If you love somebody, then that love determines your relationship with them. But you don't owe them anything for bringing you into this world, you didn't ask for it, there's no contractor. You are not obliged to your parents other than you have to do what they tell you to do up until a certain age and if they pay for your college and stuff, then I think you owe them something in gratitude for that. But if you don't love your parents, and I think there are plenty of people who don't love their parents. I think there's a biblical commandment that they'll show whatever to your parents, but that's just a commandment. A lot of people, not most people, a lot of people don't love their parents because their parents didn't own it. Their parents are not that good, they're not nice people. You shouldn't love people who are not nice. You're not automatically obliged to love anybody, anybody. Everybody's love needs to be earned. So I don't think, so if you love your older parents and you feel part of your happiness is in helping them out when they're sick, then do it. Absolutely you should do it. But it has to be in the context of your happiness. If it's a sacrifice to help your elderly parents, you should not do it, it's your life.  So you should help your parents to the extent that it's part of your life. Now I think most of us love our parents and want to help them and don't want to see them suffer. Most of us would help our parents, but I don't condemn somebody who doesn't, who says, you know what, I don't like my parents. I'm not gonna help them when they're old, fine. I think that's perfectly, it's different with children.  They are your responsibility. Even if you don't like them, even if you don't love them, you took on an obligation when you had them. You didn't have to have sex. You could have used birth control. You could still in this country have an abortion, right? Once you chose to have the child, you have taken on a mountain of obligation. It's a mountain. Don't have kids if you're not willing to take it on. You don't sleep the first couple of years.  It's an astronomical amount of money, particularly if you're gonna pay for them for college. They're a huge, huge responsibility in Bhutan. You should only do it if you really want to. But once you do it, you're locked in. It's like, you know, you sign a contract to buy a house. You bought it, right? You signed the contract, you bought it. You might hate the house after you move in. You might regret doing it, but it's your house. With a child, you can't sell it. With a house, you can sell. So, but that's why having children is such a huge deal. Nobody should have children until they are committed to having children. Nobody should have children until they're sure that's what they want. That's why I think it's actually a healthy thing that Americans are having children later in life, because I think they're more mature and they realize what they're doing and they're taking on the obligation much more consciously versus 67 years ago when people would get married in their late teens, early 20s and just have kids automatically. And then suddenly realize, oh my God, you know, taking on this obligation without having the maturity, the wealth, or the thought that's involved in doing it. So, I think it's a very different type of relationship. With children, you are obliged because you took on that responsibility, but you chose it. You can't say somebody forced me. With parents, you don't have that obligation, but it's certainly part of most of our lives because we do love our parents. I think you had a question, right? I suppose my question's a similar sort of vibe in terms of caring about other people looking after, you say like the Mother Teresa example. If she generally got pleasure or satisfaction from helping other people, it was purely selfish. Would that sort of go against your example then? No, if she'd actually got pleasure.  I can really help them become better human beings, I can help them rise up, and she would have enjoyed it absolutely being a social worker is not an irrational profession. You can be a social worker rationally. That's not what she did by the way, right? She didn't help them become better. She helped them stay poor because she believed the poor should inherit the earth, right, the meat should inherit the earth, so she discouraged them from getting an education. She discouraged them from trying to rise up and become middle class. I mean, I truly believe Mother Teresa was a horrible human being. I mean, I'm on record, on video saying that because I think it's true. And she didn't pursue helping other people rationally in terms of her own values, in terms of make, and as a consequence, she was miserable. I mean, if you read the diary, she was even doubting the existence of God and she didn't know why she was doing this. And I mean, it's very difficult when you commit yourself out of a sense of duty. And that's the difference. So I'm all for helping other people, right? You know, I love people. I'm not gonna help bad people. Hitler can come and I'll help shoot him. I'm not helping him, right? So you wanna help people who you have identified as good or who are innocent, who have fallen in bad times for no fault of one. I have a soft spot for children because I think they are innocent, right? To the extent that they're poor or whatever, it's not their fault. It's kind of, you know, it's either their parents' fault or it's just, it's the way it is. So you don't wanna just be random in your help. You don't wanna help, so I'll help children, but I'm not gonna help them at the expense of my kids. So my kids come first. I don't buy this, love the neighbor like yourself. Sorry. I mean, I love my, I don't love some of my neighbors. Some of my neighbors I hate. Some of my neighbors I like. None of them do I really love and none of them come close to how much I love myself. And the kids, I mean, if there's a burning house, who am I gonna save? My kids are their kids.  See, I'm gonna do it and I'm not gonna feel guilty about it.   I reject that.  I'm gonna pursue my values. And I'm gonna help people that I think deserve help and that I get something out of helping. Am I gonna help strangers? Sure, you know, if it doesn't cost me too much. You know, but if somebody's drowning, people always give me the drowning example, right? Does somebody drowning do you just jump in and help them? What depends? It depends. Is it an ocean in which the probability of me dying is 99%? I'm not jumping in, sorry. Not my job. Now, if I was a lifeguard, it's my job, my responsibility, going back to a spot. I signed a contract, then I do it. It's not my job. Is the risk minor and it's just a matter of effort? Sure, human life is incredibly valuable and I would go and jump in and save them. But the fact is, and we all know this, that you're gonna make a risk assessment of what's the cost. You know, every day, every American chooses not to help dying children, right? Because they're dying children in Africa and you could write a check. You could write a check, but you choose to let them die. Rather than give up whatever money it would take to write the check. And that's okay. That's actually good. Because your life comes first. And you shouldn't give up that nice meal. You shouldn't give up the college education. You shouldn't give up to help kids in Africa. And I'm saying it bluntly, even though all of you kind of feel a little uncomfortable with this, right? But it's the reality and we all do it all the time. We all make choices about ourselves. I'm saying stop feeling guilty for it. You don't owe that kid anything. I mean, it's sad and I feel sad when I see it, but you don't owe it. It's not your fault and you are not responsible. You're responsible for you. And that responsibility doesn't mean to be callous. It means to be thoughtful. It needs to be rational. It needs to be figured out what is really good for you. And kids that are close by are gonna be, are gonna get more of my help than kids that are far away because they impact my life more because I'm being selfish. We have to cut lunch, food. Thank you.