Got him get him Good glorious day everybody. I am so excited about today's video because I have got the whole family with me That's right. The whole lake life family is here Stephanie literally has not been in this boat Amy obviously has not and this is our first family getaway Road trip together, so pretty awesome. We're about five hours away from where we live in Dallas, Fort Worth So what in too bad of a drive the adventure getting up here at everything is over at the lake life channel Which will be linked down below, but There's a squirrel running on the dock but I could literally catch anything from Spot of bass to walleye out here right now I just want to try to get on a top water bite, so let's get the silver bullet fired up Wait a minute. Oh, this is not good Oh my goodness, I was so scared right there. I was like I have all this water and I cannot explore Okay, we're talking later. It's time to go fishing. I gotta take you along obviously get that first cast out there The lake is not high But it is up from where it was and there is some flooded vegetation and in some parts of the lake There's actually grass that grows Like hydrilla milfoil. I got a little bit of information from one of the local fishermen last night when we got here And he was telling me about you know the lake kind of breaks down from You know east to west and one side has grass And the other side is more like a deep clear Rocky situation. Also, what's going on is we have bluegill that are coming in to spawn right now and There's always bass that are gonna be hanging around those bluegill beds this time of year so Most of the bass are gonna be out deep, but there's always those shallow ones that go after those bluegill I'm just gonna buzz through a couple of banks. I don't get bad. I'm just gonna go right out to the main lake I've seen most of the boat activity Right there got him. Oh gosh. He got off. That was a decent one. Oh Man didn't have my drag set that good. Oh, he popped it Literally popped his popper. That was a decent large mouth, too.  I'm hoping for more top water though. My my chances are fading though. I got up at 6 a.m I should have got up to like five I figured something out Not fishing wise but important Those white buoys mean that there are big rocks sticking out of the lake Big shoals. I haven't haven't hit one. I just I noticed when I was running by I was like, oh, that's huge That's real big but a lot of times on these Highland reservoirs There'll be fish out on on these points and out on these like little hazard shoals not going to the plastics until I See a need to Okay, I'm already doing it. I'm going there. Oh man. That looks so good Went up to about 15 20 feet and Well, bam started seeing fish So first point I've got on them actually started seeing fish so fish on the back deck so I can look the electronics front graphs Don't work and oh my gosh Fish just came up right over there top water First fish first fish of the trip. Okay, not a big one, but we found something spotted bass. I'm guessing Yes, it is spotted bass Came up popped it Didn't give you a sniff. I know there was a bigger one in there these spotted bass getting schools in the summertime And sometimes they're huge schools. Oh man Just could get a little fun here thinking I need to get a big crankbait on to or at least a medium-sized crankbait Gosh, I just hooked into something big On a crankbait this can't be a bass The heck is this? Oh, it's a drum dear goodness I mean he absolutely Freaking bonked it. Oh I thought I'd foul hook something look at that big old drum. Holy cow That's one of my biggest drum ever right there You need the big pliers Bucks here Just want to kind of pick him up. Oh, okay. He got away Got away. Oh Man, that was a huge drum Pause the crankbait and it just started ripping. I was like what in the world. She literally fished right here below the boat There's like a one random tree that has a bunch of marks on it.  It is time though for the funny hat Because I feel that Sun That's going on Usually the time here when the funny hats and see there's a fish right there Funny hats and drop shots come out. I could literally see these bass and I think they're spotted bass Roaming around this point like they'll come up. They'll pop up.  It just seems like I'm chasing them. I'm trying to get on the school. Oh My gosh right in front of me This is right where the school was so well, so far I have definitely found fish I've lost fish and I Can't catch the fish that I'm seeing coming up to the surface.  We have my lovely bride. What great timing Get in there Well, hey girls Good morning We got up. We got it early. We went for a little walk got dressed.  I've caught a few fish, but they have not been the right size that I'm looking for I caught a gigantic drum though. Oh, yeah a huge drum. This is the mountain harbor Resort and spa. There is a spa portion of this. I'm not sure if OSG is She has not figured that one out yet, but I have a feeling that that might happen She's found some trails though. So so you're gonna be doing some trails with emmy I got you a snake stick don't worry. I brought one never go anywhere without a danger noodle stick There is a subway on the lake Yes, there is but this one lands like at the head of a mountain or at the very top of a mountain I don't have the fish figured out yet, but I've got the food figured out y'all So if y'all ever come up here to the mountain harbor make sure to get the catfish Grilled and fried try a little both some of the best catfish. I've ever had actually their big juicy filets And I just had the Southwest omelet and it was delicious. I'm perplexed on the fishing y'all Here's what's crazy about this lake if you look up Lake Oachita the amount of fingers on this lake are crazy it's the biggest lake in the state and There's so many different species and everything It's it's a really cool lake to come out and if you just like like fishing in general the stripers are gigantic They have 30 pound stripers in here caught on the regular then they have some super Mondos. I go for today. It's just a Figure out Something on the lake that I can kind of lock into Bluegill are up in the shallows right now y'all because they're coming up here to spawn in these coves Look, there's a bass right there chasing around this bluegill Look at that right in front of me literally chasing the bluegill around and that's not a big one But that's what he's up here for let me show you guys what we're staying in here Just step outside on the back deck here So we have an overlook view of the harbor the lake the boat dock is right down there There's the silver bullet is right down there I think we're allowed if we feel like it or just chill or we can just hop down into the hot tub As y'all know I am perfectly happy sleeping in the woods And being by myself and but when the family comes along It is nice to have some amenities by the way Nothing out there There's no homes on this lake. This is a hundred percent a natural body water surrounded by a national forest So there is there's no houses out here And then they've got these cabins that are right here and that's it. Oh another two. There's two bass Right here hanging around these bluegill And that one just looks like it's sitting on a bed. There's blue go right here.  I just had an epiphany. There's Thousands of bluegills up in the shallows. I am equipped as usual for crappie pan fish just about everything Could get the cooler out fill the cooler with bluegills and just have a good time I can keep 50 of them out here and I can get stef and emmy out And fish for a little bit and they can catch some too a little micro jerk bait right there And guess what they have crickets at the marina. This could get a little crazy here.  I've had hundreds of them come up and hit it They're at the reception area right now. I'm gonna go pick them up take them back to the cab It's a long way around. I'm gonna go pick up some crickets smaller cooks So right now all I can do is just catch those those bigger ones which I want to but I'm tired of seeing them hit this thing and not get off Well, I got me a tube full of crickets here all of them's go in here to check out look what they got in here Dragon drops Pretty cool Look at him Oh my gosh Just won't eat it It is cricket time. I'd literally see a bass Chill in there And gills everywhere Okay, first things first. We got to put on A little tiny hook I'm using six pound Gug and mono In case you're curious This is really like a crappie fishing reel. I'm gonna try a straight-kick cricket first and then I'm gonna put it on a bobber See what happens I'll get one of our crickets out of our our tube Through the through the back meat right there See how that plays out Not bad Not bad Oh god right away taken gone. See ya.   It's been a long time since I've fished this way This is what I plan on doing with emmy Either getting on our on white bass or doing something like this For our first experience, but it might just be back at this place Because the gill population is absurd suckers will get out of your grasp if you're not careful Okay, let's try the bobber method Oh much easier to cast Oh, it's gonna get slurped Gone got him Oh, yes Beautiful long ear Look how pretty that fish is y'all that hook is key Going with the crickets. It's it's night and day Night and day difference. Oh, yeah already on it. Oh, you might have took me Got him this guy pretty much just ate the legs Boom Oh, wow, I know that's a small bass a little bit of a spotted bass See buddy got him just on the leg Only have the leg That guy smoked it Oh, okay We were getting somewhere now It's just loaded under this bridge try to go through the back and then out through the butt Looks like you're rigging a texas rig and then slide it up on the shank right there in that area. I think so That's gonna happen. Yes. Got him. That's your standard female bluegill right there Not much color Got him got him There we go Couldn't resist I need to get osg over here Little fishy on all of the ones that are stealing my bait Got you.  I have figured that out today Oh, ah, he took it Smashed it. Yeah, that's a good Good little long here Ain't nothing for the well Little scooby-doo I'm gonna find another spot. This bridge has been excellent. I'm probably gonna come back to it Okay, I know the sun is pretty much right on that but If you look at that little section right there Those divots those are the bluegill beds So that is what we're looking for osg's up there. I guess she's eating Uh, I left my phone and my car wasn't there.  I'm a fishless mom Okay, honey, there's your crickets. All right. Got some lovely crickets The fish are right behind us over there.  Yeah, I'm gonna rig you up You got one already. Oh, it came off. It came off. Why'd you let him come on? I'm sorry. Probably took your crickets. It probably did Yeah, there's I'm telling you dang that happened fast. I like them a lot Oh, yep, ate it clean off the hook. Cricket is gone. Okay. Let's get you another one. Okay. Here we go You're gonna watch daddy They are literally up there on this point this rocky area. Oh, that's Not the best of cast but here we go. Oh, I think there's one on there already Yep Oh, dude, that's a bluegill. So you don't have to don't have to smash him with the hook set I was excited. Hey, this is my first fish I've caught. Oh my gosh, it is I think you're gonna be shocked at how pretty it is This is a bluegill. It is a sunfish. That's uh, that is a long year, I believe It's really pretty. Look how pretty that is.    Get it off her nose. I'm so sorry Oh, you're you're crescent into the lake like family now That is you didn't even cry. You were just like, yes, doesn't that look like something you'd see in a tropical It's beautiful museum. All right, Emmy Welcome to the tribe Got him get him What was that? It would just swam off you gotta like at least reel into him a hair. I was like, what what are you doing? We're so too aggressive. Totally ate your cricket. I mean Don't hook your daughter. Oh god. I'm taking easy Not bad Oh, she's more interested in the bugs. Yeah, she likes she likes the crickets Okay, I mean one day we're gonna be doing this with these crickets.  Who knows what I'm saying.  You're not quite ready yet, but you've got a good crescent today Ended the evening last night on a great note Savagely ripped apart my snacks First bass on Got him on a drop shot. Please don't come off. It's a good fish. It's a good spotted bass Oh, man There we go. Yes Thank you He was up there too Come here, baby I need to give you a good sniff God that fish skyrocketed out of the water when I first hooked it Oh my gosh, that's not spotted bass. It's a largemouth.  All right I'm gonna get a quick picture of this guy because I'm actually pretty proud of it And then I'm gonna let it go. All right, you go have yourself a wonderful life here in lago watch da I Enjoyed catching you had a lot of fight number two on a frog man. That's a fun little bite Got a couple of bass got to give one a sniff I think we're good here y'all I would go and fish a little bit longer I don't want to cut it too close. Oh, she's probably getting up I'm gonna eat a nice healthy breakfast And I'm gonna take care of emmy why oh, she goes to the spa Alrighty y'all the sun is coming up hot the lake is heating up It's starting to get pretty busy out here and it is time for us to leave lake watch it all I'm pretty sure that's how you say it I keep wanting to say lake watch it all but I don't know if that's correct I think it's a watch it all and on the next video We're going to be doing a special catching cook not only with blue girl Which I have never done before but I've got a uh a new cooking device that I want to try out So stay tuned for that subscribe right here So you don't miss a single dangle and I will see you right back here on the next one


It's time for another JPE's workshop, John Park's workshop. Who am I? What are the names of my shows? I don't know, they just blurred together on me. More coffee? Why yes, thank you. Thank you for stopping by. We've got some people over in the chat. Hey, Johnny Bergdahl, Dave Odessa, nice to see you. We have some people over in our Discord. And that's the place to be if you are somewhere like Twitch or Facebook and you're wondering where is the chat happening. That's it right there. The Discord is at adafruit.it slash discord. And you can head there and you'll get an instant invite. And then you can join in. We've got a bunch of different channels there. I'm just showing this one, which is the live broadcast chat channel. But if I grab these controls here and show some extras on the side there, you see that.  Anything from the welcome to pet photos to help with a bunch of different topics and on and on, circa Python dev. But here we are in live broadcast chat. So stop on by, please. I encourage it. So I'll keep an eye on those chats today. And I'll especially be mindful of noticing when people are telling me that my microphone has stopped working because my batteries ran out last show on Tuesday. So thanks. There were people screaming at me in the chat. And I didn't notice it for quite a while. So I'll try to pay better attention today. So thank you so much. Let's take care of some housekeeping things. First of all, if you're looking for work or if you're looking to hire someone, you could head to jobs.adafruit.com. This is our free to use job board. Let me scoot to the side of it there. There are some new positions that are in here. Since I last checked, there's some company called Mean Stride Technology in Burlington, North Carolina, looking to get someone to do some contract work, actually, possibly three-someones. Custom module for the RP2040 in Circuit Python, a UART module for it, and an ADC, ADAC, analog to digital control also for Circuit Python. So what are they up to? That's a good question.  All you need is an email address with Adafruit in order to use that. There's no fees. There's no charge. You can hire someone. You can put your resume up there if you're looking for work and be found. So go to jobs.adafruit.com and check that out. Let's see. Keeping my eyeball back over here on, uh-oh, almost went down the wrong way. Oh. Sorry. Was I going to say, hey, I've got a show on Tuesdays, and that's called the JP's product pick of the week show. And I like to take a look at a product, either a new one, as was the case this week, a pretty new one, and make some silly photo shops, and put together a little show for you where we cover for about 15 minutes, 20 minutes, a product pick.  And you have the chance to buy it usually for 50% off. It's a native fruit product. We let them go cheap. And you don't need a coupon code or anything. Just put it in your cart. If it's a popular item, check out right away because they can go fast. This one this week, I don't think it sold out, so that was good. And what I like to do is make a little one minute recap so you can see what was what. So here it is. It is the LiPo Charging BFF. Best friend forever. Add on for the QT Pi.  Now you can see this example here. I've got some header pins on there. This gives you a JST plug for adding a LiPo or a lithium ion battery. It has a little on-off switch there that you can use to turn on and off the battery power to the board. This makes for really great wearable projects. QT Pi M0 plugged right into the BFF and I've soldered those with the cast-alated pads. Got this nice little Neopixel demo running here. Battery power. Can turn that on and off with the power switch. And we can also charge that right off of the USB. My best friend and yours forever. It is the LiPo Charging BFF. Add on for QT Pi. Yes, that was it. There it was. And in fact, I've got one that I'm gonna be using in today's project because I have found that it's a super useful add-on for QT Pi, not just for the battery charging. So wait and see some of the other secrets revealed. Stay tuned. Next up, if you weren't aware of it, a lot of these microcontrollers that we use, they can be programmed in a number of different ways. Anything from Arduino to MicroPython to MakeCode to CircuitPython. CircuitPython being the fork of MicroPython that Adafruit started, kinda forked it off there and we've added a bunch of functionality to it and made it particularly suited to adding bazillions of libraries for all the sensors and things that we create and more. It's not just used by us. And one of the things I like to do on the show here is a little nugget of info on using CircuitPython. I like to call it the CircuitPython Parsec. Perhaps you do too. Okay, look at that light show, huh? For the CircuitPython Parsec today, I wanted to show a very simple way to do disco party lights using CircuitPython, in this case on a QT Pi. So I have a little QT Pi M0 there and I've also plugged in a NeoPixel strip for a sort of bonus. This was a Todd Bot tip and trick, actually from his QT Pi tips page, which we can put a link in the chat. And I've got a nice diffuser here. It was actually a broken light bulb, LED light bulb, but decided to pop it apart and use that little dome end there as an extra diffuser. But why don't we pull that off while we talk about it here? So what I'm doing in code, all I have are a few libraries I'm importing, including Time, that allows me to do a little delay. I've imported the Board Library, which gives me pin definitions, makes it easy to talk to some of the pins on this board. I have imported NeoPixel, which I'm gonna use to light up these RGB LEDs, and I'm importing a random integer, random int from the random library. And then I'm setting up two NeoPixel objects, one's called Pixel, and that is the NeoPixel that's built right on the board. So we address that by saying NeoPixel dot NeoPixel, Board dot NeoPixel, that's a lot of NeoPixels. I have one, so that's the one there, one NeoPixel on the board, and I've set the brightness to 0.2. The second one is actually this strip of eight NeoPixels, and I have that plugged into the board's Stem-AQT connector, so I'm using the serial clock, SCL, and then I have eight pixels on that one, and I've set that a little dimmer since there are so many LEDs there, a brightness of 0.1. Then in order to make this kind of cool disco show, what I've got going on are two instances of Pixel Fill, one for the Pixel, one for Pixel Strip, and every time we loop through, I set a different random integer for the red and the blue component, leaving green at zero, so that means I'm gonna get anything from red to blue to all the magentas and pinks and so forth in between, purples. Then we pause for 0.2 seconds and repeat it again. So we get this really cool little disco light show here that I really like, it's really simple to use, and I hope you like it too. And that is your circuit Python Parsec, I should say. That is how you can set up a disco light show on your QT Pi using circuit Python. That is your circuit Python Parsec. Well, well, yes, circuit Python. All right, we'll get that out of the way there. And fielding a question from YouTube, Dave Odessa said, what's in your coffee, JP? And the answer is pure energy. All right, so let's see what else have we got going on here today. Ah, I wanted to give an update and I completely forgot to bring it out here. So I'll do a little demo of it next week. And you may have seen it, I showed the alarm, the RPi locator alarm I was building last week. I showed it on the show until last night. I put it together last week live on air. It had a problem booting up after I soldered everything together. I did not find the problem in time, so I ended the show. And then within about the next 60 second time period after the show ended, I got a little closer look at it under my microscope and I saw one single strand of the twisted stranded wire. I was using that silicone wire, this stuff right here. I really like this stuff because it's nice and flexible. However, I didn't tin the ends of it and so I had a little stray single strand touching the next pad over from where it was intended. So I was essentially shorting, I think, the USB five volt over to reset which caused it to not burn out the board, thankfully. It just never wanted to turn on. It didn't cause any problems with the code once I was able to basically move that little wire out of the way using a dental pick under the microscope. It, and then clipped it actually, I was able to get the clippers in there. It solved it, so it works just fine. That, however, is my tip, my learning from that is make sure that you tin the ends of stranded wire if you're gonna use it. Typically you like to use either enamel coated wire for very small work. It's a single strand or solid core wire which is not as flexible, which is why I went for that nice silicone covered wire, but that is a stranded wire, so that can cause problems. So let's see, yeah, I'll show that next week. I'll show that working, but Liz, thanks so much, Blue City DIY. She and I have been working together on some code updates and troubleshooting and bug-fixie kinds of things, so it's improving even now as we speak. The guide is live, however. In fact, let me show that. Let me head back over here. Here's the guide. I'll put my face over to the side there and have out like that and like that, that ought to work. So here's the final, and this is what I was building on the show last week. You can see I've got a little GIF animation playing up here in the corner that shows it in action. And there is a section of the guide just on installing Circuit Python on the board. This is the Feather ESP32 S2 TFT. Then we have the code here, so this shows you this is the full code, and you'll also use a secrets.py file in order to give credentials for your Twitter API, for your Adafruit IO, which we're using as a time server, and your Wi-Fi, so this can connect to Wi-Fi. And this tells you how to upload the code, shows you which libraries you'll have there. Thanks to Liz for putting this page together. We have a nice image there of all of the libraries that are at use. And the bundle download, if you scroll back up here, if you click on this download project bundle button, you will get all of those libraries downloaded, so you can just drag them right over. Or you can use circup, I really like to use circup to get the latest, freshest ones, if necessary, although that bundle will update itself automatically. And there's a little explanation of how the code works, and it is essentially checking the Twitter feed using the Twitter API of rpilocator.com. If it sees the keywords in stock at Adafruit, then it will, and you can see that right here, it says query in stock at Adafruit. If it finds that, then it will set the alarm off and it'll display the text of the tweet on the screen. That's what you're seeing up here in the little corner there, first it says no stock, then it finds it, very loud alarm on there, and now it says stockler, and this is the copy from the tweet there. And then for the build, you can see here, that's what I built last week on the show, here is the fritzing diagram for it, and there is the actual build there. It was actually the red wire that you see there in the image, if I click on that, this red wire on the underside of it, I had one little stray strand. In fact, I think I have an underside shot of that. There goes the big version of that, go to the original, and I think it's this one right here, this had a little stray wire poking through, so that was my problem. The rest of it goes into putting that together, just test it out, build your 3D printed stand if you want, or you can use cardboard box. I had shown that box that comes with this, that's what the alarm comes in, and I had originally figured out some of the geometry there by poking holes in that, which is a nice way to prototype that.  So that was the product, or rather the project last week, and the learn guide is out now, you can go check that out. Yeniscu in our chat with the excellent, Beedoo, Beedoo, Beedoo, Beedoo, GIF, I love that. And that covers that. So now I wanna get to a new project that's sort of revisiting something I had done before. I'd originally built this to test it out, and I demoed it a little bit, but I don't think I've ever gone into the specifics of the build and the software that much. This is a Feather ESP32 Version 2 Hazah. So it's not the ESP32 S2 or S3, or RISC or any of C3, any of that fancy new stuff. This is, on some of these, it's the Pico, this one is just the V2. We have, on this board, the A0 pin set up in an Arduino sketch, and I'll show you the software for that, we have it set up to put out Composite Video, that's the old school yellow video cable plug. Let me see if I got one. Got one right here from a different type of connector, but that right there, that's the socket side of an RCA connector, which is used for a lot of older TVs. And by connecting ground on one side and the A0 pin on this, we were able to send out some video to an old school monitor. Now the monitor can be fairly modern, this one's probably 10, 15 years old, it's an old, I think, Westinghouse LCD that happens to have Composite input. A lot of our little Adafruit displays, little HDMI Raspberry Pi displays have a Composite input. Some of my old CRT televisions do. And I actually have this really cool new beast. Let me jump to the overhead for a second to show off this thing. This new old thing, this was made around 1989. And this is, let me see if I can get a little, there we go. This is a Sony Video Walkman that was for playing your eight millimeter cassettes. And it has a TV built in, UHF VHF. It has a cassette, let me turn, there we go, pop the cassette open there. That's not working, there are issues there, which is pretty typical for cassettes of any kind. After a while the belts wear out or other problems occur. But it does work as a Composite video input. So I'll do a little demo on this of this week's project and then I'll pull out the nice little Sony CRT television that I have, I think it's a 13 inch one to show it on there too. This is a little LCD panel, nothing to write home about but really impressive for 1989 technology. You can see here we've got video in, audio in, there's a video out, audio out. It has a camera input for some sort of funky connector. I probably have that on my Sony Hi8 camera actually. And then you can select between the line in, the camera input or TV input, try to tune something in. Even has a cool little antenna on here for trying to pick up television, but in my tests so far I got nothing. There's a lot of mountains around here, so hard to pick up. Then on this side we have a plug for an external antenna that may help a VHF, UHF switch and then a bunch of other controls for setting clock and things like that. So this thing could be used just to play movies as well as record stuff, record off a TV, use it to record off of a camcorder. And I even saw on some, I was researching it a little bit somewhere, I saw that at one point I think Virgin Airlines or Virgin Atlantic was giving these to passengers in first class to use to watch a, they could pick a movie from some folder of Hi8 or eight millimeter tapes and watch a movie during the flight, which is kind of hilarious. I do have a battery for it but I think probably doesn't take much charge yet and then I'm running it into a little adapter. So cool little gizmo and I'll show that with our project in a second here.  So what I've got here is the evolution is projects. So now this is our ESP32 Pico. Zoom in real close there. Too close. So there's our ESP32 S2 Pico. You can see it has a simpler little package than the ESP32 version two. It's not in the little can. I don't even know where the antenna is on it for Wi-Fi but it does have Wi-Fi, it does work. I'm able to log into this. Sorry, let me get that glare off of there and set the time. So what I've got right now just for testing purposes is super janky but I've just taken some of these little jumper alligator clips and I'm running them from ground to the sleeve outside part of this RCA connector like that. And then I've got the center or tip going to the A0 and let's give it some power. So I'm gonna steal a USB-C for a second here, excuse me. I've just got this running off of a battery pack. And what I'll do is other end of this cable here we'll go into camera in, go ahead and plug this in to power so that starts up my little cutie pie there. I'll turn power on on the screen here and hey, look at that, sorry, it's not super bright and especially with the glare here. I don't know if I can, it's got some color and hue controls, I actually don't know if it has a brightness control without digging into menus. But there you can see I've got the time. It's not the accurate time so to set that right now what we'll do is see if I can connect to it over wifi from my phone, there we go. And let me just make sure I don't have conflicting, conflicting devices. So let's pull this over here, get that in camera. Okay, pretty good. I'll zoom out a little bit actually, I don't need to be that close. All right, so what I'll do is on my phone I'm going to disconnect from my current wifi and connect to a wifi hotspot that shows up called the SP32 Dolly Clock. And it's one of these captive wifi things that I can't remember if I need to go to Safari to see the page show up. I may actually have to forget the network, let me do that. So I'm gonna forget this network. Sorry, no, this isn't too exciting to watch and I'll try to reconnect. Sometimes that'll pop up that little web page that this thing is serving up will captive web page. Sometimes I think I've had to go to Safari to make it happen. Let's make a new page. What does it think it's doing? Oh, that's weird. Why is it acting connected? Oh, it hasn't, it has not connected yet to that. That's why, sorry, it's trying. Let's try this one more time. Okay, so you'll see here, here's this Dolly Clock. Click on that. And now we're waiting for SP32 Dolly Clock to, there we go. That time popped up. So I've got this little Dolly Clock interface and I can do things like set the color scheme. So you can see this just turned to blue. That can adjust based on time of day. I like the Dawn one, which has that nice warm colors, got gold in there, okay. And then I will, oops, I will change the time and it'll just use the current time. So there we go, that's my local time, 128.03. So easy as all get out. You can also set up a network, your local wifi network and password in order to try to have it automatically use the time server. I don't know if I've gotten that working actually, I'm not sure if that's working currently. But that'll work right there. So that means I can log out of that and just get my phone back onto my local network. So that'll require power to remember that. I don't think it writes any of that info. So one of the things I was thinking about is how can I improve this thing, make it a little less goofy than what I've got here with all these wires going on. So what I wanna do is find a way to connect this up to battery power, make it a little more elegant as far as connections go and turn it into kind of all in one thingy. So before I do that, actually, I just wanna check my chats here because I don't see them over there, make sure everything's good. Looks like we're good, okay. So let's, rather than build this, just cause I don't, besides being semi-gun shy because I screwed up the one last week but at the end of it, I also realized it's not a very interesting build to see someone make, but I think it is kind of interesting to see what I ended up putting together here. So what I've got is, clear some stuff out of the way here and I'll unplug that and remove power. So that's the one, I'm actually not gonna use that one for this, I've already got one built and I'm not gonna need all those wires anymore necessarily. So what I've got, that is our BFF, that's the charger BFF. And you can see here, I have soldered some pin headers to it. Socket pin headers on the bottom of it. And that, you can see works pretty well with how these can go belly to belly like this. And one thing you can't, my camera won't focus close enough, I don't think, let's see. That is about as close as that's gonna focus. So I have these soldered into the actual pin holes or pad holes, drill holes on the board. It means we still have the cast-a-layed pads on the side to solder things to, which is what I'm gonna do on the other one in order to make a connection. But right now I've got the BFF here, this will provide power, it also gives me this convenient on-off switch. And it acts as an uninterruptible power supply. So if I'm running USB to the QDPI, if I unplug that, if there's a power surge or whatever, this will take over and provide power off of a LiPo battery. So I can take pretty much any little or big LiPo, in this case, let me try this one here, actually, I think this one is still good. I started to feel some loose wires there, I'm not sure if it's, oh, yep, I just broke them off. So those were on their way out, it got bent too many times. So that one I may be able to solder to and save that. But we'll use this one, it's a nice little battery here, give us a ton of time on here for a 420 milliamp hour for this thing. The QDPI, what I am gonna do, and we'll do this a little more cooking show style, so what I came up with for this is we've got these extra long headers. And so they're sort of standard header length, plus a little, you can see there, it's about a half a millimeter longer on one side and a whole lot longer on the other. So what I decided to do is take, and let me dummy up one of these, so I'll take seven, a section of seven of these, and why am I making this extra long? It's because I wanna fit an RCA connector, either this socket type one or this pin type one in between the boards. And so you can see there, this is too tall to accommodate a normal length of header and still have the board rest on top. But with this super long one here, we'll be able to get the length right where we want it or the height rather, right where we want it. And it means we can have an all-in-one little composite video nub that we can plug into things. And also gives me, at the top here, I've got some, so you can see that, I've got some extra pin on the top there that I can solder my A0 and ground wires to that are gonna run off of this. So they'll come out and connect to the two wires necessary and then go into the screw terminals here. And then what I decided to do to make it just a little fancier is I took a section of this cool yellow header and I pulled all the pins out and added a second row of the header spacer there like that. And so once that's all put together there, you can see here, this was the extra long header there with extra spacer on top. And so that's soldered into the QT Pi Pico, ESP32 Pico means when I rest this, just gotta get the sides right. So the JST side for the battery is the same as the USB side, you've got to remember that. But that means we get a really nice snug fit there. It's just a little gap there, but these are bottomed out and that is now pretty much exactly the size of spacer we need to fit our little RCA. And so that again can be either the socket side or it can be the pin side. Now the reason I decided to go with the pin side here is that this can be plugged directly into things. So you can, you don't need any extra cables. So you can plug it in like that. But what I really wanna do is this like, so, okay, and we can still plug in USB-C there, but I just have these running back and up. And there might be a way to do that on this side of the board, but I found this was pretty decent for first go. And so now if I connect up my BFF there, this is sandwiched right here. And if I find a sort of position for this that I really like, I could even just use a little bit of hot glue or another adhesive to attach the RCA board to the bottom side of the BFF, which just is bare PCB. There's no components there. So it's a nice flat side to attach that to. So this now with a battery plugged into it can be shanked right into, let me zoom this out even more. Let's turn that power on. And now we've got our clock. So if you used this one, one of the reasons it fell off is I was bending it back on itself, which it's always a little delicate with these batteries. But if I pull that back there and use a smaller battery, you can see we could attach that right to or maybe even heat shrink the whole blob of it. But now we have this clock. Again, I need to set the time on that. So it's not a correct time right now. If I set the time on that with the web wifi webpage that it pulls up, the captive host webpage, then it will, as long as I leave this turned on and the battery plugged in, it'll stay on. Then I can go ahead and power this from USB-C. So that is gonna charge the battery while it powers the board until it's done charging and then it will stop charging the battery there. But this is really cool. So if you're using something more permanent, you could have it on USB and you're never gonna lose power to it because of the little battery based on the BFF. It also gives us a really nice way to hook it all together. Now, one other reason that I really like this type of pin connector on this is that rather than the socket is that we can use an adapter, where'd it go? This is one of my little handy adapters courtesy of Sea Grover in the chat who gave me a whole bunch of audio, video gear, extras from his studio at one point. And so this one will convert this over and now we can plug a cable into it, which is really common to find this type of cable like this. In fact, I'll strip this one. You can just pull these apart. And now that's a stereo audio pair there and this is just your typical composite video cable. So we can plug into that on this end. We can plug over here into our TV and off we go. So that gives you a lot of versatility, particularly if you need to get to this and the TV has a cable off to the back. So last thing I wanted to do, just because I think as neat as this little video Walkman is, let me turn that off now. Whoops, that's not off, that is. I really prefer seeing this on a CRT television, which was the original point of this for me was having something cool to display on a CRT. So let me zoom out a whole bunch here and pardon the mess here. I'm gonna just clean up a couple things real quick and we'll get my cool sidewalk find Sony CRT, sit that right there. Let's plug that into power and now I can use my little cable and adapter there to run that to video in. And now we get lovely Dolly clock there on the CRT television. Look at that, look at those viewing angles. Whoop, it doesn't like me yanking on the cable. I think that cable's a little loose. So I won't bother trying to set the time on that again, but I'll leave that there while we just take a look at the code. And over in the chat, Todd said sneaky, neat sneaky little video injector. For sure, I think there's an additional project that Lamar asked me to look at doing, using this as a video generator. And so if I do it on the QT pie, it'll definitely be like a neat little nub that you can plug in just to get some video. One issue I've noticed is I've got this jitter. If you can see it there, let me go to the main cam for a second. Zoom in there, pardon that camera. You can see that little jitter there. In fact, leaving the little video one overlay there, you can see it pretty well. That was not happening with this previous version. Where did I put it? This one here, in fact, do I have an easy way? Yeah, let's take a look real quick. I think that this one didn't have that problem. So I'm not sure if this is an issue with the QT pie for some reason, which is a slightly different chip. It might be less happy. So this is great for my needs, I don't mind that jitter, but for the project LaMoure was asking about, I may end up using this feather instead. So let me find a ground and unplug here. So you can see this one is locked rock solid other than I've got a scan line issue there you see crawling up. And that issue was happening on two different QT pie ESP32 Picos. So I don't think it was a fluke. I suspect there's something going on here. Maybe it can be tuned. Maybe there's clock settings that can be adjusted, but I've got this little sync wobble kind of thing. I'd love to know if anyone has ideas about that where to check. And in fact, that's a decent segue to, let's check out some code for this. So I'm gonna, let me bring back Adam here and I'm gonna open up an Arduino sketch as well as one file that we altered to make this work. I'm also gonna turn off my little disco show over here because it's distracting. So where did you go? Okay, so hold on one second while I open up this Arduino sketch. Where are you, Dolly clock? There you are. And I'm also gonna open up inside of the supporting files. There's this file called compositecoloroutput.h. So I'll write up a little guide about this. This project, I'll show the web page for a second. This was written for some other ESP32. I can't remember which one. That's a good question, sorry. Someone in the chat QSWAGS said, could it be interference from the TV being on top, the thing being on top of the TV? I don't think so. I've tried it pretty far away. So it's a similar circumstance and it's the same over USB or battery. So I don't think it's that type of interference, but a good question. The only change that I really had to make for this code and this goes back a few years originally, I think to when the ESP32s first came out was the pin here and I'm using GPIO26 which equates from that Pico or the V2 ESP32. That equates to pin A0 on both the feather and the QDPI. I'm not using audio and I don't think there is a pin 18 broken out on there. So if someone wanted to see what's going on there and adjust, then you'd just wanna pick a different pin that's broken out on the QDPI to try that or the feather. So once that file is updated, then there's really nothing else to touch. This is, you can see here it supports NTSC and PAL. I don't have a PAL TV to try that on, but supposedly that does. And the, let's see, anything else? Yeah, I don't know if there's much to adjust here. There's a bunch of cool configuration options for the graphics on this one. And there are other projects that use the ESP32 as a composite video out that are worth looking into and I'll link to those once I put together a guide on this. So I don't have too much to talk about in the code. Really the only thing was just for me to get it working, I just had to figure out what pin to send the video out over and I think that differed from the original. Let's see. Another suggestion from the chat. Todd says, could it be the LDO voltage regulator droop? Could be. Noise from the BFF. Lawrence, I had this problem without the BFF involved because I had that one bare QDPI that was just plugged into USB power. Yeah, and I'm running that feather that works there off of a LiPo battery so I don't think it's a difference between mains to USB versus USB battery pack to USB power. So, not sure. If you look into this project, there are a lot of different files where you can go and look and see if there's anything about some of the timings that might be adjustable. Oh, another suggestion from Todd there is if it's the voltage regulator droop, I could try powering it from a clean 3.3 volt to the 3.3 volt pin from a strong supply. All right, I'll take the bait. Let's try that. Let me switch over to this camera here with a little side of that. Let's see if we can do that. So, in order to do that, let me move some stuff and I'm gonna turn on, I have a nice bench top power supply here with short-ish cables on it. Let me extend those a bit, hold on. And I think I have my camera remote over here. No, that's not it. Where'd it go? Not surprisingly, it's lost because I have a mess over there. All right, let me just zoom out here. Okay, so if I take this guy right here, and maybe I can, I'll do that where you can see it on top there. So what I'll do is I'm gonna turn this off. I will remove the BFF. I will connect little power leads here to the power supply and feed it a really nice 3.3. Try not to short things, that would be great. Okay, before I turn this on, I will double check the chat to see that no one has concerns before I actually do this. So, all right, so my channel one has got set to 3.3 volts, it's off at the moment. So I'm gonna connect up to the three volts and the ground. Okay, what's this wire? That's no good, there we go. Now I'm very, very paranoid about whiskery little wires. That's doing there. I will even check for continuity before I turn that on, because I'm paranoid.  Or am I really shorting that? Or is that just, let's see without that connected. Sometimes you just can't measure things in circuit. Yeah, those are, that's ground, that's ground. Yeah, I think that's fine, I just can't measure that in circuit. If you are screaming at me right now, no, don't do it. I will see your screams before I turn this on. So I will go check the chat. Huh, yeah, my little probes here, these are nice Hamona probes. And for some reason they've got, let me switch the cameras here. Some reason they've got little tiny wires escaping the ends now.  Who knows, that should work right. Check it, I'm gonna check the chat and I'm either gonna smoke this cutie pie or we'll be okay. So if I thumb page warrants, the larger boards can cope using the deck, but not the cutie pie and zero. Yeah, okay, so this is a cutie pie ESP32 Pico. Super duper user says, very cool project, how can we use the cutie pie to play a looping video on a portable screen, like a five inch one? That'd be excellent, yeah, really cool. There's a lot you can do with this. All right, here I go. I'm gonna power that up, let's see what happens. Crossing fingers, still jittery, yes. Powering that now from a really nice bench top power supply and yeah, that is still jittering up and down. All right, so could be, could be we're pushing that little fella, a little Pico beyond where it wants to go. Could be something solvable. Who knows, but I don't mind it. Really cool for the clock. Hope you enjoyed that too. That is the project of the week. I will write this up and I will also include info on just using the Feather ESP32 V2, which is identical, there's nothing to change other than flashing your Feather board. I could probably also make a pre-compiled UF2 file so you can throw that on there if you put the bootloader on there through CircuitPython. Make it easy, but that is the project. Oh, before I go, I did want to say, I want to point out the original project, ESP32 Dolly Clock. If you just Google that, ESP32 Dolly Clock, that is at Marcio T, M-A-R-C-I-O-T, slash ESP32 Dolly Dash Clock on GitHub. Here's the project, looks pretty familiar, right? And lots of info about it. Look at that, great TV, they had it running on. Beautiful. There's even some info on wiring it for the ESP32 Hazah, which is essentially the board I'm using. And there's some advanced configuration things. Maybe if I dig through this, I'll find info about the timing jitter. Lawrence Harris over in our chat on YouTube says, "'Probably timing jitter on the vertical sink.'" Okay? David Esses says, "'If you smoke the Cutie Pie, you can always get one at half price on pick of the week.'" Excellent. All right, I'm a big fan of this project, so thank you so much to the original author who also thanks Bitlooney and a few other people for pioneering the work in doing video over the ESP32, Bitlooney and who else? Rossum, I think was the other one. So thanks everyone who was involved with that. I think that's gonna do it for today. So thanks everyone stopping by. I will see you back on Tuesday for another product pick of the week and next week for another episode of this. Maybe I'll have worked that out in time. I also have a couple other projects in mind that I'm working on. So that will do it. Tomorrow should be a live stream deep dive with Tim and I believe Scott Shawcroft, Tan Newt is gonna be doing some streaming here and there. So keep an eye out for that. If you're wondering when shows are generally scheduled, you can head over to our Discord right there and type in question mark show times and that will give you a nice little list of the generalized ones. Those are not updated. If someone has a reason to not do a show, that might not be updated, but you can check around, ask around on our Discord for that. Okay, is that it? Have we done it? Thank you everyone for stopping by. Fraterford Industries, I'm John Park. This has been John Park's Workshop. Goodbye.


Come on boys, we're gonna come on, come on, come on, come on, hurry!  The big guy's on your hand right here, Chevy, you done? Diesel? You done?  No? Come on, let's go inside. It's almost time to open presents. Come on. Christmas breakfast. You ready? Christmas soup. Go for it, go for it. Don't hold back guys, it's Christmas. You're allowed to overeat on Christmas a little bit. Speaking of breakfast, I'd like to stick to the main food groups on Christmas day. I claim that one, that one, that one, that one, that one, that one, that one, that one, that one. And that one. And that one for good measures. That's so far. Merry Christmas, Commander. I was just thinking this morning, if I didn't get this, I was gonna buy one when I got back to work. More clothes. Alex was very helpful. She always is. She told me that someone had got you the the scarf already. And it was Alex. It was her. Alex got me the scarf. Thanks, Alex, if you're watching. Commander, was Santa good to you? What did he bring you? What is that? He's mine. Don't even look at him. Don't even. Don't even think about it. Don't even think about looking at him. Diesel, what'd you get? I got a creepy elf. He's got a sweet facey. Want to see? Let's see. Can I see him? It's a happy elf. It's a tired elf. And a... Displeased. Displeased elf. I was gonna say a drunk elf. Very possible also. Too much eggnog. Too much eggnog. Diesel, don't wreck him though, okay? Don't wreck him. He's mine. Wiener, what did you get? A very nervous Santa. He looks kind of angry, but that's okay. He matches my German spirit. I think he's nervous. Oh, he's nervous. Got the eyes. Don't touch him. He's mine. And we have one more down the hall over here. He went over here because he started wrecking his already.  Are you being nice? Are you being nice to your elf? What happened? What happened to his ear? What was this? He came like that. No, I don't think so. You be nice to your elf. Don't rip them up right away. At least let them last the whole day. It's only been 10 minutes. It's Christmas. I got a PS4. It's right there. I know the PS5 just came out, but I don't want a PS5. You can't really get it either because it's sold out everywhere. Well, at least it was on the first day. There was no way of getting one. Plus, I had already ordered that like two weeks before the PS5 came out because I knew I'd have no chance of getting the PS5 and I didn't want to spend $1,000 on one gift because then that's all he would have gotten. I knew he would have said that was too much anyway. Yeah, I don't really need a PS5. I don't want one. I just wanted a PS4 because I have a PS3 right now and I'm not that big of a gamer that I need all the latest stuff that just got released. I usually wait a few years till the next thing gets released. Weiner, your toy is very crinkly.   I was like, what gaming? What do you mean I don't have time to do gaming? We don't do that, but oh well. It's funny because I was really hoping for a PS4. It is what I really want. It's what I asked Santa for. Santa always delivers. Yeah, that's pretty cool. The dog's got their presents. Now we got to do our stockings. We got to do our stockings yet. Yep, Christmas. It's Christmas. This is Britt's new table and coloring book. She asked for a coloring book I delivered. I like adult coloring books. They're therapeutic for me and I needed a table so that my neck wouldn't be down so far all the time because I have a really bad neck. So this is awesome. It tilts and everything. I'll show you when it's come. I've got her whole tunnel. There we go. Isn't that awesome? Nice. I love it. Let's see some of the pictures that you can color in there. Just pretty flowers. Ooh, that's like a Christmas wreath. I don't like that one. We're gonna do that one today. Ooh, another wreath. So it wasn't the most complicated one. There's some really intense ones. This is on your list. I've got some complicated ones in that drawer. I go through them very slowly. I've had them for years and I've only done a couple pictures in each. Brand new coffee maker. Thanks to Britt's dad stepmom, Jerry, and Cynthia. You might notice the brand. Got some hot coffee right there. So my sister Rose made this for us. I don't know how but it's amazing. A lot of work goes put into that. That is awesome. Macrame, right? Yeah. Macrame. My sister Cheryl made this for us. Hand painted. Everything. Yep. I've been asking for this one for a while. His mom has it in her kitchen. So this is from his mom and dad by Mr. Hearth. But Cheryl made it. You can use it all year round. From mom and dad to Cheryl made it. I think it's probably gonna go where that snowman picture is. I like that. We should do that today. Yeah. That's awesome. The snowman picture can just lean against something for now or we can put a nail where we're gonna put something else all year round. That's pretty cool. And there's another one. And the best of all. This one here. Yeah. This was from Cheryl. She also made this. Hand painted again. Hand painted. It looks so real, like real flannel. It does. It's a great job. And you flip it around and you can use it all year round. Home sweet home with paws. I don't know that I'm not gonna put this outside until we build a house with a proper porch that it won't get wet. Yeah. I don't want that to get all weathered. But so it's gonna be an inside decoration for the first few years. But isn't it gorgeous? I love it. That's awesome. Yeah. How did she reach the top? Because she's short. Shorted, I mean. I'm gonna stay out of that one. I'm allowed to make short jokes because I'm short, but Cheryl's still shorter. So we've got a lot of good things. Brett got me some nut butter. That was before you came off the road. So if you guys want to know what nut butter is, Google it. It's funny. And yeah, it was a really good Christmas. I know this video wasn't very long, but we just tried to enjoy the day the best we could with everything going on. Brett, is already looking for a home for this? Well, because I don't want to put something to hang it with because then we would have to have metal pieces on either side and have to drill into it and then we're splitting it. Oh yeah. So I'm thinking it could just sit up here until we're gonna be getting rid of this ugly thing and getting a nice butcher block counter pantry for more counter space. And then we're probably gonna do shelving. Then we could put more decorative stuff. So we can just go up here for now. Okay. This is my poppycock. That must be moved here into the overcrowded pantry eventually. Small house. Small. Oh, where did this come from? Sabrina. She was hiding this from me. No, it wasn't taller than me. You can see that stuff easier. Whatever. I know where the fudge is. The neighbor brought us homemade fudge. So good. Okay. What's we got up there? This is just a... This is your diary? Nope, my address. I don't have a diary. I was going to go running away with it. My diary is on YouTube. Yes, it is. I'm worried this is going to fall. Yeah, probably. Because this thing is not anchored to the wall. Thank goodness. I have to put something heavy behind it in front like a bookstop on the sides or something. Two bookstops would be nice on each side. No, we could do it. We could put it there if it's not too long. And then we could just move that stuff over to here and just set it further back so it doesn't come flying off. Yeah, that's probably better. That stuff's a bit heavier. See if it fits. I think that's longer than that shelf though. Shoot. Small house problems. The dilemma, yes. We could always set up our new shelves that we have and then put that on the new shelf somewhere. Yeah, but I want those to come up here and we don't have the proper furniture for you. I don't know. I guess I could just go on our TV table for now. Yeah. So we took this off of there. She's going to put that there. Might have to push her right against the wall like that whole sound bar and everything. I don't think we can. No, because there's too much stuff behind it. Maybe just the sound bar, not the whole table. I just... All right, so that plan, that plan didn't work. Put this guy back there. This is also something Cheryl made. It can be used all year round. For now until we find a permanent home for it, it'll just have to be in the corner there. We want it somewhere safe where it's not going to fall. So until we figure out where we're putting all our shelves and stuff and other things. Yeah, we need a new bed in there. We're still sleeping on the floor like teenagers. We've always had a very college kid looking bedroom. I'd like to actually have like an adult married couple bedroom one day. One day, yeah. Next month we're getting a new bed frame and mattress, hopefully.  We get new dressers and stuff slowly, slowly, but surely. Unlike what some people say about us, we are not made of money. Though I wish I was. Man, wouldn't that be awesome. So that's it for this year's Christmas video. Let me know what you did for Christmas down below in the comment section. What's your family traditions and were you still able to do them this year during this whole COVID mess? Let us know down below. Merry Christmas. We'll see you next time.


The recovery efforts from the October Northern California wildfires has been a monumental task. The wildfires destroyed or damaged thousands of residences, leaving many without a place to call home. The magnitude of the housing needs of the communities was met with an equal response. Local, state and federal agencies made housing solutions a top priority. California is a big state, but this is by and large the largest loss of homes collectively than any other fire event in the history of California. Agencies went to work to find resources to help thousands across multiple counties in need of a place to stay while evacuated, and also those that would not have a home to return to. Our job immediately after the disaster was to focus on the evacuation centers and setting up mass care and shelter sites, but pretty quickly we recognized that we were going to need transitional housing for people after when we moved from the response phase into the recovery phase. Once the Northern California wildfires were out, the aftermath was clear. To further complicate matters, many of the areas already had a low inventory of homes and rentals before the wildfires. Our mission was how do we find apartments, how do we find corporate lodging, how do we find places to put mobile homes, travel trailers in a very short time frame. The recovery operations taking place has been of epic proportions and housing has been one of the items at the top of the list. Many found their own housing solution, but for those that needed help, agencies worked tirelessly to secure temporary housing. We looked at whether a recreational vehicle was appropriate, whether a mobile modular home would be appropriate. We looked at tiny houses. We looked at connex, you know, the big shipping containers, and we looked to see how many of those different types of units we could fit appropriately on the sites that we identified. And ultimately we ended up with the site here at the fairgrounds. Survivors now call a new place home while they work on their long term plans. Aside from temporary and transitional housing, many are well into the rebuilding process to build a new where their home once stood. To further help with the recovery, officials looked at ways to make the recovery process more efficient for those that plan to rebuild. We're getting people into temporary housing and we are working with people where relaxing some of the regulations so that we can help people rebuild. It's not just homes, it's entire communities that are recovering and rebuilding together. The county, state, and federal are not going to leave you as you continue to recover from this tragedy. At a recent town hall meeting in Mendocino County, officials talked about the future of the community. Really we want to be able to look forward and say we'll be a stronger, more resilient community five years from now after going through the pain and suffering that the last five months have been. As the wildfire survivors continue moving forward working through the process, they are not alone. We can do this. We're there with them. We're going to be with them every step of the way and we are going to get them back in their home. The road to recovery is often a long one, but for many in this community, that road is leading back home. Visit our online newsroom at OESNews.com to learn more about this program and get the latest news and information from our team. Don't miss our next video on your Facebook timeline, like our page and you'll get the latest posts as they happen. If you're an Instagram user, you can see the latest snapshots by following our Cal OES Instagram account. And Twitter users can get instant access to our tweets from across the state by following Cal OES. Facebook handle typed as California underscore OES. Instagram and Twitter Cal OES handles are typed as Cal underscore OES.


Okay, so for our next talk, we have a talk on virtual tourism and COVID times and interactive travel memories using the power of Streamlet. So this is a very exciting talk by Netesh Raghunandan. He is an engineer who works in the couch base. He's based in Germany and he loves traveling and is going to give us a talk about virtual traveling in COVID times. So hello, Netesh. Hi. Very nice to have you here. So are you always traveling or what are you based now? So I'm based in Munich, Germany. I used to travel a lot before COVID. Yeah. Yeah. Thank you. Shall I start? Yes. Okay. Hi everyone. So I'm Netesh and today I'm going to tell you about my experiences trying to design a virtual tourism because you cannot travel right these days during the COVID. So before I start, a bit about myself. So I work as a developer advocate at couch base. So I just recently started there and couch base for those of you who don't know is like a really scalable, no SQL database. But this talk is not focused on couch base. And so I really like to prototype or hack things together. And this is how this project was also born. And I really like to build things in Python. And as I mentioned earlier, I'm based in Munich and I also organize a local Python data community here. And I really love to travel. And that's one of the reasons why I came up with this idea. And you can find me on most social media platforms with my tag Netesh. Okay. So over the, so I'm originally from India and over the last five years. So I moved to Germany in 2015. And over the last five, six years, I've been traveling a lot across Europe because the borders are so close and there are no restrictions that you could easily travel. And this has been one of my major hobbies in the last few years. And I also did some traveling in 2020 just before the COVID hit. But and I had some more plans for 2020. But then I realized I couldn't do much of what I wanted to do. So the world was shutting down due to the COVID pandemic and people had to stay home and rightly so. In this scenario, I thought, what can I do to improve my disappointment at not being able to travel? And so I was looking at some options like you could do some virtual experiences on different platforms or do some events. But why not try to build something of your own? And so I took my inspiration from this Google Maps timeline. It's actually a really nice feature. So if you have your Google location history recorded or saved that you don't delete it, you can see your location history, see what you're doing at whatever points of time that you have. And it also has a lot of interesting features like gathering pictures or activities that you were doing at that time. Yeah, I mean, yeah, it's Google, but I use it all the time. So I don't really mind giving this data to Google. So what I realized is you can get all this data from this Google takeout service, which allows you to basically download the data that Google has about you. And there's also an option to get your location history. So it gives you adjacent data with all the locations that you have visited and at what points of time. There's also an open source location visualizer, history visualizer, which you can use to get a heat map of your locations. And it also runs completely in your browser, so there's no data leaking. They also have a professional version which you can use to do some more analytics on your travels. Yeah, so these were some of the inspirations that I took. Yeah, so if you look at this data, I don't think it's that clear on the screen, but essentially it's a JSON with a list of all the timestamps, latitude and longitudes.  For this use case, I didn't really take any of those things into consideration, so I just took the timestamps and the latitude and longitude. And there I realized that some of these data points are not in the format that you normally expect. For example, the timestamp is in milliseconds, but which you can easily convert using a pandas function. Whereas these latitude and longitudes are like quite bloated, so they are, so the values are multiplied by 10 raised to 7, so you need to divide them by 10 raised to 7 to get the right, or get the latitude and longitude values that you see in your maps. Okay, so now that I have all this data and I can do some visualizations or, yeah, now I can basically visualize this data. So I have all the clean data, how can I visualize it? Okay, so there are a lot of different ways you can do it. So you can use Jupyter notebooks, which is something which I've used a lot in the past, so you basically write your own repel, you basically write your own code snippets or visualizations, and then you can basically run it and see the results instantaneously, or you could do good old presentations like you do in those meetups where you share your travel experiences, or you can write some code or scripts that does some generation of images or does some visualizations, or you could also use things like Tableau or Power BI or Looker, which are quite limited in the customization, but you can get a lot out pretty easily. But I thought, okay, this Google Maps timeline is a web app. Why not try to build something like a web app? And, okay, before coming to the web apps, this was my workflow before. So I would create a Jupyter notebook, do write some code snippets for visualization, see what's happening with the data that I put in, like a small subset of data. It's great. You can see them instantaneously. You can tell your stories. You can customize it however you want, but there are some issues like this great talk from Joel Groves from like two years ago or so. Like Jupyter notebooks are not that great for sharing. So if you share it with someone, there's a good chance that they're not able to run it. Similarly, like there was a study, I think, from JetPress, where they explored a lot of O-Public Jupyter notebooks and found that most of them are not reproducible. So, yeah, I wanted it to be a bit more reproducible. So the other option was like go with some web apps. And I'm okay with like doing the backend stuff. I can try some decent code and get the APIs working. But my friend and skills are not very good. So when it comes to the frontend, there is a bunch of JavaScript libraries. And there are many more coming up every week or every month. And it's really hard to keep up with them. And if you're not familiar with any one of them, there's a lot of data that it's quite overwhelming to pick one. Like each framework has its pros and cons. How do I pick one? And some of them take a lot of time to get up to speed with. And this is where I came in touch with Streamlit. So Streamlit is kind of like the mix of both the rapid prototyping of Jupyter notebooks and like the web app without a lot of frontend requirements or no frontend experience required. So what Streamlit does is it allows you to take your Python scripts and convert it into an interactive web app without a lot of work. So you just add some components. So they call these things components. So you can basically insert a component which makes these scripts interactive. And it's also really easy to deploy. For example, this is one of their examples from their webpage where they give you the visualization of the inference of a model, which is used to do object detection. So you can see like, which are pedestrians or cars, for example. And you can also change all these parameters and based on that, your visualization changes instantly. The good thing about Streamlit is you don't handle any of these visualization in Streamlit. So Streamlit is just making your visualizations interactive, meaning you can do your visualizations in whichever libraries or frameworks that you're comfortable with, like Matplot, Label, Pandas or, yeah, Altair, you name it. And it supports a lot of these out of the box and you can also create your own components. So under the hood, Streamlit gives you React components, but you can also write your own components in TypeScript. But if you're using some of the existing libraries, you don't need to do it. Okay, so I realized, okay, let's try getting visualizing this Google location data on a map. But what if I can add some background information, like many times it's images that make a place memorable, that you remember a place, oh, okay, this is the image from this location and this is what you were doing. So there's also actually a pretty good API from Flickr, which is, yeah, I mean, you can publish your pictures there for free. So there are a lot of public images on Flickr and it also allows you to search for images based on GPS coordinates. Additionally, I can do the classic analytics stuff, like histograms or heat maps. Okay, so now let me just show you the app that I built to do this visualization. And also I'll walk through some of the code snippets which tells you how easy it is to get something running. Okay, so here you have like an inputs, so you can select the timeline that you're interested in and it would basically load the data in that timeline and also plot it on a map. Yeah, as you can see, there are like nearly 900K data points and so now the data is loaded and plotted on a map and you can also zoom in, zoom out. So all these map tiles are actually from OpenStreetMaps and I use MapBox because it makes things a bit easier or like a bit more performant, but you can also use like the default tiles from OpenStreetMaps, they work quite well. And yeah, so you can actually zoom and pan and do all kinds of, yeah, yeah, lookups on the locations that you're being to. And whenever something changes in this inputs, what StripDit does is it reloads the, it reruns the script based on these new parameters. So, yeah, and it also tries to center the map and since I was too zoomed in, it went into a different direction, but yeah. This is how it works. And so I can also do things like histograms, see when I was traveling, like which months or which years, yeah, so you can see that 2016 was quite high, yeah. Things like that. So this is basically just doing a count on all the different data points that I have. And you can also see that I was traveling more in the summer months, yeah. And you can also see which hours you were more active or visiting more locations. And yeah, you can see that, yeah, I was not out too late. Yeah, so that's that. And yeah, and I also want to show you like the images, how it works. So what I do is I take some random 10 locations from this and get some images based on that location. And as you can see, it's quite random because some of these images don't make sense. Like for example, this is, yeah, just random. And similarly, but for example, this one is like a local lake, for example, yeah. And you can also increase or decrease the images as you like. But yeah, I mean, this is right now just random based on the GPS coordinates that you get here. Okay. Yeah, I would also like to show you the heat map. It takes a bit of time. So I'll also just load the code so that I can show you how these things work. Yeah, it takes a few seconds for the heat map. Yeah, you can see the indicator here that it's running. Yeah, one more thing which you can do is like go to all these visualizations in full screen and yeah, also zoom out. Yeah, the heat map is now loading. Yeah. So you can see like which locations had like a higher proportion of visits compared to none. Yeah, you can see like there's nothing in the Nordics whereas in Germany where I am, there is a bit more concentration of locations. So, and if you look at the code that is generating this, so most of it, so this whole code is like around 150 lines of code and it's also open source. So all the lines that start with ST are the ones which are done using Streamlit. So there's like some page layout but the interesting thing is also when I load the script, I just load the data and here you can see that I'm just reading the CSV file with the data in the pandas data frame and there's also something called caching. This is quite important in Streamlit because the way it works is whenever one of the inputs change, the whole script is run. Meaning this function is executed every time one of the inputs change and what caching does is it allows this function results to be stored in memory so that when the next time you run the script, you don't need to compute the function unless the function changes. I would just like to highlight a few things. Like for example, this is the slider which, oops, which I used to get the selection from the user and it's just one line. You just provide the minimum and maximum values, yeah. And it gives you the selection and all this filtering is basically just a pandas filter based on this selection, yeah. And most of the outputs are written just like using streamlit.write. And for a map, all that you need to do to plot a map like this is st.map and provide it with a data frame that has a GPS, so the latitude, longitude coordinates, that's it. And the histogram, as you can see, is like a matplotlib plot and you can just plot it using streamlit.pyplot. What else do, yeah. The heatmap is generated by something called Folium which is an open source library. So it's doing all those, creating this heatmap for me and then there is like a community plugin or community component from streamlit called Folium, streamlit, which is what I used to basically show this on the results. The other interesting thing is this images, you can just provide a list of images, URLs to a streamlit.image and you can also specify how you want to lay it out, like for example here with, and yeah, you can just lay it out for you. And yeah, I mean, I can also show you like how these locations are done. So it's right now just pure, yeah, random images based on this latitude and longitude. Okay, let me go back to the presentation. So we covered the demo and how do you deploy this app once you have it? It's quite straightforward. Like there are two options. One, you can run it on your private server or private machine, in which case you can create a conflict file. So most of this conflict file tells you like which board the app should run and things like that. Also like how much, whether it's running in headless mode or not. And yeah, you can just run it using streamlit.runscript.py and if there is a streamlit conflict file in that function, in that folder, it's detected automatically. The other option is like a streamlit sharing. It's a service provided by them. It allows you to visualize or deploy your public GitHub repos for free. There is a limitation, I think, of three applications running at the same time but they also have a premium offering in case you want to do private repos. So in this case, I didn't use this public sharing because I didn't want to share it with the entire world, the data. To mention some of the observations that I have, like what streamlit is really good at is to make your Python code really interactive in like just a few lines of code. It's really simple and easy to follow. And you can also customize it however you like, basically almost all the interactive components. Deployment is also really easy and the community is also really active and the forum, if you ask some questions, you get like feedback quite instantly. If you come to some of the drawbacks with a streamlit is there's no built-in authentication, meaning there are workarounds for it, like for example, you can, there's a password field. So you could use a password field and load the script only if the password field is matching with the one stored. The other issue, especially for those people who want to do this with the corporate design guidelines, you might find that the design capabilities are offered by streamlit is limited compared to something like a plot lead. But overall, I would say it's good to have, if you want to have like a decent interface without putting in a lot of effort, especially if you're not that familiar with JavaScript and CSS. Are there alternatives? Yes, there are alternatives. Like for example, Vola tries to give you the ability to customize your Jupyter notebooks. Then, as I mentioned earlier, quite a lot of support. Then there are also other options like Bokeh and Panel. So if you're familiar with one of them, the main advantage that streamlit would offer is purely the concise code, because some of these things take a bit more verbose code to achieve the same thing. But I mean, if you are familiar with something, there's no reason to switch to streamlit. Okay, as you might be wondering, I didn't really quite reach the same level of flexibility that I wanted to. And some of the things that could be improved is like the locations. So right now, all the locations are GPS coordinates. If I can map it to a city or country, I can do a lot more of analysis, interesting analysis. But the problem with that is all these, there are reverse lookup, reverse GPS lookup options, but most of them don't support like this scale of data without paying a lot of money. An alternate it might be to reduce the data somehow by using the activity field or other fields in the dataset provided by Google. Another improvement as the images, I mean, I could connect it to my photos which would make them really cool. There's actually an option to get the data that you have stored in your Google photos. However, I'm not sure if you can actually do a query for these images using your GPS locations. So this is possible by using like a app that you create on Google Cloud, which would allow you to connect to Google photos. However, yeah, I didn't give it too much effort, yeah. So to conclude, I would say string width is great for prototyping. So it gives you a good experience, like quite similar to what you can get out of something like Jupyter notebooks. And you don't need to worry about any of these JavaScript or front end issues. It doesn't offer you everything. So it's probably like 80% of what you can achieve, but it's also a lot less of an effort to get this running. For me, I was happy to revisit some of my past travels, especially when I did this whole thing when I was in quarantine. So I couldn't do much, I couldn't even revisit, go out of my room. So this was a nice change. I got to try a different framework and also found some interesting places that I knew. I did remember visiting, so yeah, that was cool. And so I've left the references so you can find the GitHub repository which has this code. And yeah, you can also find a lot of other examples on the Streamlit examples page. And yeah, if you have any questions, I'm happy to answer them, yeah, thanks. Thank you very much for your very interesting talk. Thanks a lot for that, it was very good. So did I understand correctly that in Flickr, we can actually search based on GPS because I never knew that before? Yes, that's right. So you can actually search for all the public images on Flickr based on GPS, yeah. And in the slides, you were showing that the places that you'd visited, they would automatically bring up a series of pictures related to that location. Yes, that's correct, yeah. So that was very interesting. Is there anything else you'd like to say? I mean, not really, I mean, I would just say, like if you are looking for some interactive visualization in Python, Streamlit is a good choice. You can definitely have some fun. It's really easy to get started. So just give it a shot, I think I'm pretty sure you'll like it. Yes, and you're available if anyone has any question to ask. Yes, I'm available. That's great, thank you very much. Yeah, thanks. Thank you.


So, let me just start by telling you what's going to happen. So, first I'm going to talk about a property of groups called left order ability. Then I'll tell you what this might say about topology, specifically three manifold topology through what's called the L space conjecture. I'll tell you about a specific construction of three manifolds called branch covers. And then all the results I'll talk about will actually focus on a very special subfamily of these manifolds. And then finally, I think maybe my results raise more questions than they actually answer so I'll end with some of those. Okay, so what is left order ability. So, you have a group and some comparison of the elements. And you want to ask that that comparison is preserved under the group operation. So that means if I take any element and multiply on the left by that element this comparison still makes sense. So, a group that you know and love, the integers is left orderable, right so if I compare to distinct integers and I add some number to both sides of this some inequality between them then that inequality still holds. But there are many groups that are not left orderable. So, for example, if a group has torsion, it can't be left orderable so we'll go through this cute little argument that shows that. So, if I assume that I have an element, it's not the identity and some power of it is the identity. Well, one thing I can say is since it's not the identity it's either bigger than one or smaller than one. So we'll just assume it's bigger than one. It's smaller than one is exactly the same. So, if I take this inequality that I already start with multiply on the left by G, I get the statement that G squared is bigger than G, which I know is bigger than one. So I get the same in here, I can follow along doing a similar argument and I end up with the same and that do the end is bigger than one. And now we're really in trouble. So this gives us a contradiction so whenever group has torsion it can't be left orderable, but in general it's really hard to tell what a group is or is not left orderable. And for us will focus on the case when our group is actually the fundamental group of a three manifold. And sometimes I'll be sloppy and I'll say that the three manifold is left orderable and I really mean that it's fundamental group is left orderable. Okay, so what does this have to do with topology. Well, maybe nothing we don't really know that much about it but there is this tantalizing conjecture out there. It might be true that the following three properties of a three manifold are equivalent with some extra adjectives to that three manifold that I won't focus on. So the first line is saying, basically that M has a really nice decomposition into surfaces. The second one we talked about so the same the fundamental group is left orderable. The third line is the hardest thing to explain in a 15 minute talk but let me just say that Hagrid-Fleur homology is a three manifold invariant. It's very powerful, very mysterious. So we want to know what is it measuring about three manifolds. So there's a rigorous sense in which a manifold either has simple Hagrid-Fleur homology or not. The manifold has this whatever this means simple Hagrid-Fleur homology will call it an L space. So what this line is saying is that M does not have simple Hagrid-Fleur homology. So the idea is that somehow maybe all of these properties are capturing some complexity of M and if this conjecture is true then they're measuring kind of the same kind of complexity. So let's say here there's been a lot of work on three manifolds that are surgeries on knots. So I won't say what that means but it's a special construction of three manifolds. That's not to say that all questions have been answered there, but if if a three manifold is not surgery on a knot then you know knowing when any of these three properties hold is even harder. I say that just to point out why maybe one of the reasons why the three manifolds I'm about to talk about are somewhat interesting. So I'll tell you how they're defined in the second, but let me just say that most of them in some sense are not surgery on a knot. So that's kind of interesting. So we're kind of in new territory in some sense. So how are they defined? So I have this downstairs manifold M and an upstairs manifold M and an action upstairs by a cyclic group that acts super nicely. So it's acting by orientation preserving diffeomorphisms. So I can take the quotient of this manifold by this action. In the case that I get M then I'll say that N is the branch cyclic is a branch cyclic cover of M. So basically these are almost covering spaces, but they're they're slightly bad at some places. So in particular, if this action is actually free then this is actually a covering space. So for us we're going to assume that there's some point that is fixed by something. And in this case you can show that the fixed set upstairs is a one manifold. So that's really nice. Okay, so this allows us to kind of refine our definition of a branch cover. So if I take the fixed set upstairs, and I look at its image downstairs and M, I'm going to call that L. And I'll say that now I'll say that N is a branched gamma cover of M over L. So now we're capturing the group in this definition also the fixed set downstairs. Okay. And I really want to focus on a very, very specific case. So if the manifold downstairs is a one sub manifold that's connected. I'll call it K now because in particular if I'm in S3, this is what we would call a knot. Okay, so my manifold downstairs is S3 and I have a knot inside of it. And if I pick a cyclic group so there's some N associated to it and it really only makes sense if N is at least two. There's some unique manifold that is the branched gamma cover over S3 branching over this. It's not K. So we'll write that as Sigma sub N of K. So this is keeping track of which cyclic group we're talking about the fixed set downstairs. It doesn't keep track of the fact that we're in S3 so we just have to remember that we're talking about knots in S3. And we'll call it the branched cyclic cover of K of index N. So the takeaway from this slide is that if I have a knot in S3, then for any integer bigger than or equal to two, there's some associated manifold to it. Okay. So it's kind of hard to imagine what these are, but they have some nice properties that help us understand certain questions about them. Okay, so here's a specific knot. So we're not really going to be able to prove anything in the time that I have, but just to give a picture of some of the things that I'm looking at. So this is a diagram. These boxes inside of them are twists. So the twists are defined by these, these are two integers. So this is an example if the integers were two and three. We're in the colors for a second. But now if I look at the colors, so you should think of this as a surface that's bounded by the knot, and I want to point out one property of it. So let's say the red part is the front of the surface. Then when I go along here, I twist, I see the back. I see the front again. I'm on the back. And if I go over either of these twists. I'm going to go back to the front. So this picture, by coloring it, I've shown that it's a two-sided surface, so it's orientable. So we need this for this definition here. So when I say the genus of the knot, I mean the smallest genus of the surface like the one that I drew here. So a surface whose boundary is the knot, and that's orientable. And if I take the smallest of those genuses, I get a number and I'll denote that by G of K. So I just need this to state some theorems. So, let me see. So before I get to those results, let me say something special about three manifolds from the left-order ability perspective. So, if M, with some extra adjectives, has a PSL2R tilde rep, so PSL2R tilde is a lead group. It's the universal cover of PSL2R. So if I have such representation, then actually my three manifold is left-orderable. Great. So this is really exciting. We just have to find one of these representations.  But work of Yinghu shows that actually in some cases, instead of trying to find these PSL2R tilde representations in these manifolds upstairs, I can actually look downstairs, so inside of S3, but I remove the knot that I'm thinking of, the fixed set. So this is a non-compact three manifold. I can take its fundamental group and instead look for PSL2R reps of that group, which is in some sense easier because like for this particular knot, it has a, it's easy to find a nice presentation for this group. That's not always true, but in this case it is. So her results turn out to be really powerful. So immediately it shows for these knots that we're considering that for the branch covers, as long as the genus of the knot is not one, then we get left-order ability eventually. So when n gets large enough, but she doesn't give a quantitative bound on when that might happen. So a few years later, Chan looked at this and showed in the same situation that you do get left-order ability and you get a quantitative bound. So if n is bigger than some function of these twist parameters, and this number grew with R and S. So as R and S got very large, the bound that you get would be worse. And what my theorem shows is actually these techniques that they're using are really powerful, at least in this particular situation. So this is a really, remember a very special family of knots, but we get left-order ability. For example, if the genus is two. So remember, these are only defined for integers bigger than or equal to two. So maybe we don't know what's going on for two or three or four. But from five on, we have left-order ability. And then as the genus increases, we get better and better bounds. And here, when the genus is at least four, this is the generic case, I guess, we actually get best possible bounds. So I didn't write this, but it's known that when n is two, you don't have left-order ability. So this means in this situation, we actually know what's going on with every single branch cover of each of these specific knots. And one thing I want to point out about this result is that it doesn't depend on the parameters so much as the genus, which is kind of interesting. So what questions do these results raise? So, of course, we know left-order ability for a lot of these manifolds now. So what about the other aspects of the L-space conjecture? So can we show that these manifolds are not L-spaces? So for some of them, Boalow, Boyer, and Gordon did show that, but some of them we still don't know. And even harder, these should all have top-foliations. And I think with our current knowledge, we really don't have any idea how to methodically construct them in these manifolds. Another question you could ask is, let's say a fix a knot. I look at its branch covers so I can look at all of them from n equal to as high as I want. I check, is it left-orderable or not? Yes or no? I collect all the yeses. So that's a subset of the integers bigger than or equal to two. What does it look like? So is it a consecutive set of integers? And does it depend on the genus? So my results kind of indicate maybe yes, but it's a very specific case. So we don't really know. And finally, Xinghua Gao showed that probably, so this means assuming the L-space conjecture, so that's a big if, but in general maybe having a PSL2R tilde representation is stronger than being left-orderable. So it might be a different question. One, does a three-manifold admit such a representation? And I will stop there. Thanks, Anna. Does anybody have any questions? Can I ask a question about something you said earlier? You said that most maybe in view of these results that you presented, most three-manifolds are not surgery on a knot. But it's true that all three-manifolds are surgery on a link, right? Yes. So is there some way to understand why you can't just join the links up somehow? Are you asking why those manifolds aren't surgery on knots or why it's harder in that situation? Yeah, I would have thought naively that I could make the licorice wallace there a little bit stronger and just say that all three-manifolds are surgery on a knot. Well, one thing I think you can do is like look at homology. So like if you're surgery on a link, you can have more complicated homology than surgery on a knot could have. Because if you do myoreviatoris, surgery on a knot always is cyclic, for example. So already you get some things that just from homology can't be surgery on a knot. But I think it's hard in general to see why something can't be surgery on a knot. And that's what a lot, I mean, I think there's recent results of people constructing manifolds that are not surgery on a knot but can't be obstructed from being so by homology and showing by other reasons that they can't be surgery on a knot. So I think it's a good question. Thanks. Are there any other questions? Yeah, I got just a quick question. Is it easy to know what the genus of these JRS knots is? Yes. It's, I don't know if I can come up with the top of my head but basically because, let's see if I can go back to the picture. So basically, from the diagram from it, so these knots are all alternating.  So if you just like carefully draw this picture, it's just a function of the parameters what the genus will be. Okay, thanks. If that wasn't specific enough. No, that was good.