Side effect of the code is it tells me how many 2x4x8’s to buy, and attempts to plan the cuts in them:
floor 0 of length 48.5 in piece 0
floor 1 of length 48.5 in piece 1
floor 2 of length 35 in piece 0
floor 3 of length 35 in piece 1
floor 4 of length 35 in piece 2
vertical 0 of length 52 in piece 2
vertical 1 of length 52 in piece 3
vertical 2 of length 31 in piece 3
vertical 3 of length 31 in piece 4
vertical 4 of length 52 in piece 4
vertical 5 of length 52 in piece 5
vertical 6 of length 31 in piece 5
vertical 7 of length 31 in piece 6
vertical 8 of length 52 in piece 6
vertical 9 of length 52 in piece 7
vertical 10 of length 31 in piece 7
vertical 11 of length 31 in piece 8
ledge 0 of length 38 in piece 8
ledge 1 of length 38 in piece 9
ledge 2 of length 38 in piece 9
ledge 3 of length 38 in piece 10
ledge 4 of length 38 in piece 10
ledge 5 of length 38 in piece 11
ledge 6 of length 38 in piece 11
ledge 7 of length 38 in piece 12
ledge 8 of length 38 in piece 12
ledge 9 of length 38 in piece 13
ledge 10 of length 38 in piece 13
ledge 11 of length 38 in piece 14
top 0 of length 48.5 in piece 14
top 1 of length 48.5 in piece 15
There’s a bug though. I should have specified the width of the boxes as 22.5″, not 22″. Also, i had to re-measure where the rails go – ended up with the box at less than 17″, and the first rail at 15″, it was 15″, 32″, and 49″. Also, i really had to reinforce the vertical stuff so it didn’t .. parallelogram to the side.
The code is parametric of course. I plan to use the same code for the slightly smaller boxes. But i might use a smaller size of wood – this was overkill and way too heavy.
UPDATE – After writing this blog post, about two hours later, I got the stuff working for it to be considered “DONE”. Pretty happy with it. The rest of this post, though, accurately reflects how I was feeling at the time, so i’m leaving it as written.
I wrote this code, and I am Sad. I’m sad that i got started on this silly project (that i’ve thought about for several years), and I got far enough that I can see the end … and now:
ONE: I’m out of time. I did this while we were on our 1-week-away vacation… it started slowly, but got faster and better. This is probably 6-7 hours in? Spread over 3 evenings? I rediscovered so many things (list later), but .. I have a maximum of 4 more hours left before I return to normal life which has NO room for focus time like this (which is something I could change/prioritize, but I don’t because I am finally prioritizing adequate sleep).
TWO: I’m not done, and I’m already rewriting and improving it. So why finish it in this incarnation? I realized with the approach I’m taking, it deals with “recent” emails pretty good, and it does “discovery” pretty good, but it does not handle “the massive backlog of crap that could be deleted”. Nope, that would be a different approach .. in the above screenshot, i think this would be the “Discovery” tab and then there would be another “Purge-atory” tab for the deep cleanse cycle.
Anyway, what is it? Source is here: https://github.com/sunnywiz/gmail-filter-2024/tree/blog-post-1
It uses OAuth to connect to Gmail
It downloads the last N days of email and stores just a bit of it in a local cache
It looks for senders who send me lots of stuff.
It lets me choose to keep only the most recent N things per that sender and delete the rest (from that sender)
Along the way, I got to revisit some technology stuff:
I started in Console for .Net 6, switched back .Net Framework 32bit talking to Outlook via interop for just a bit, realized that was also painfully slow, and switched back to Gmail’s nuget package in .Net 6 with WPF. Thank God, at my workplace i’ve been entirely in “Framework” and its nice to see where (what was .Net Core and is not .Net) has gotten.
I wrote it somewhat with JetBrains AI Assistant, mostly looking up sample code on how to do stuff like get the list of emails from Gmail, wire up a TwoWay binding, etc.
I had to reremember a lot of the WPF stuff.. haven’t worked in that since 2016? 2018? … There was this trick of setting up a Debug Type converter that I had to use to fix a binding, turns out I needed to change the UpdateTrigger to be on property change rather than loose focus, everything was ok otherwise.
I remembered a trick of using a FlowDocument to lay out controls quickly in a way that looks okay-ish and is usable, rather than trying to get all those !@#!@# grid columns right.
So, for 6 hours spread over 3 days.. not too bad. Not 100% of where I wanted to get to. But i have a few more hours left yet. At half an hour per “session”, I might be able to get these things done – by the time you read this, this drama will be over:
I need to remember what the settings are for different from: email addresses, and save them, so i can auto-apply them later
I need a hands-off mode where it spins up, grabs email, and purges stuff.
I need a “keep 2 weeks” kind of thing for stuff like Paypal and Venmo transactions, and Patreon posts. I usually check on those things within 2 weeks.
And then there’s the nice-to-have:
Show the category that an email is in
Show if an email is read or unread
Option for “Mark all as Read” – stop cluttering my inbox notification counter!!!!
As mentioned above, the “Deep Clean” cycle – where it applies the rules to EVERYTHING from those senders – individual searches per sender, only get the details on the messages to keep, and everything else, i can send the messageId’s to the Trash() method.
Or, I could eat that Cinnamon Roll that I got and watch Youtube and call it done for the weekend.
Recently, we had a scare with our furnace .. luckily, part was under warranty and we got it back up and running. However, having lived without heat for 2-3 weeks, I was super curious about .. how heat dissipated.. I am now aware of some sizing problems and return problems in the house. Specifically, i wanted to know if I should leave the Fan On or Auto, and how effective that was at equalizing temperatures between upstairs and downstairs. Answer: Its very effective. I answered these questions with the use of Govee temperature loggers, which can export CSV, tied into Excel.
The following is an overview minus the outside temperature, we’ll zoom into sections of this around certain things. It has two days, the first day was (mostly) fan ON, thermostat at 68; the second day (11pm 11/3) was fan on Auto.
The Gray line is the temperature at the vent – it shows when the heater kicks on and turns off. You’ll note that both days, outside sun warmed up the house to the point where heat was no longer being applied. About 10am-Midnight, amazingly. This is where multi-stage if we had it would be handy.
Upstairs is the green line, its where 3/4 grandkids sleep and play. What i didn’t know is that there’s a window AC unit in there, set to 70, that was turned on. First day, temperature trended upwards slowly, the AC barely kicked on (sharp downward spike). Second day – even during the night – AC kicked on several times, and a lot during the day. There’s a LOT of heat that just travels upstairs when the whole house fan is not running.
The Yellow and Orange are the two ends of downstairs. The Orange end does not have any returns, so whatever the A/C is doing, tends to accumulate there, especially when the fan is on. On the second day (I think) I tried to set up a house fan to help the air move out of that wing back into general circulation. It might have helped. Downstairs1, Yellow, btw, is directly below Upstairs, Green as far as these sensors go.
I also did a test of: What happens if I leave the door open, fully open, for 20 minutes, while its cold out. At the time it was about 35 degrees outside. Here’s a zoom in:
The door was fully open for 20 minutes, from 9:10 to 9:30 on this graph. During that time, the thermostat-area dropped from 68 down to 66, and I can tell you that the floor of the room with the thermostat (also where the door was open) got down to 54. and the heat kicked on, HARD. The rest of the house actually warmed up from all this furnace activity – Upstairs went up the fastest. Once i shut the door, it took a good 40 minutes of heat before the thermostat was happy. It took maybe another 2 hours before all the extra heat worked its way through the house and things returned to normal. During this time, the Sun was out and was warming everything up, and so data gets a bit.. too many signals.
Just to be complete, here’s the full graph including the outside temperature.
I never thought i’d write this title, but there it is. We went on a vacation, we took two gasoline powered cars, and I am VERY glad I did not bring my Tesla.
We were a pair of vehicles. one vehicle driven by young folks with strong bladders, but also children with unpredictable bladders. The other car was us. There was no stopping unless necessary, and if we stopped, we both stopped. And we didn’t stop for long. Having an electric vehicle with its required stops at certain places – would have been a whole second schedule of stops – would have been a lot of friction.
Where we went, no destination charges, no fricking outlets available in the two parking garages we could park in. Any outlets that were there were occupied by electric carts and were numbered/reserved/policed.
Closest DESTINATION charger: 20 minutes away and not even available to public. Closest supercharger: 1 hour away, 30 miles, $8 toll. Welcome to Miramar Beach, FL, the Sandestin resort. Never going there again.
Furthermore, my wife’s Venza holds more stuff than my model Y. Its not as aerodynamic, and thus there’s more internal volume, just a smidge more.
It served us well. And its paid off. Granted, it needed about 2 qt oil during the trip – its at that stage of life. But it was a champ.
Someday in the future, it will be a pair of EV’s going in a convoy down the road, and the decision to bladder-stop will happen to find charging at every corner, and every place that we stay will have some kind of plug in somewhere. Not there yet.
Last week or two? I’ve ingested lots of stuff by, and reactions to, an artist named Ren. I’ve been reluctant to share about it because.. more in paragraph 5. All the videos linked here are cute and safe-for-all:
Here’s a happy song he wrote about growing up in the 1990’s. I recognize many of these things through the eyes of my son. Video Date: 3/12/2015. This would be before stem cell transplant, probably before Lyme disease diagnosis that saved his life and named his medical condition:
He has a super wide range. There’s stuff he did with a band “The Big Push” – THE CUTEST video:
The artist himself has gone through a .. low point in his life, and right now he’s on a .. rebound, re-stabilize, focus, growth, directed, explode.. these are all words that could apply. During that down time, though, he has developed (improved?) some crazy musical (and editing and production) skills. Fountain of creativity, has the will to work it now that he has a life that is actionable again.
I think I’m reluctant to share about his more powerful stuff because it is a freaking punch in the heart. Not everybody wants this level of punch. There are .. several of his more popular songs, much darker, much deeper. Here’s a list with my interpretations. The ones that are starred, I still cry when I see them, still affected / raw / emotion.
* Hi Ren – about dialog with the negative inner voice that ___s you (insert your word here).
Chalk Outlines (with Chinchilla)- about being dependent on medication(?) yet how its like digging a grave(?) and how it affects how you approach the good parts of the world and the resolve of being okay even though.
** How to be Me (with Chinchilla) – loss of a friend to suicide, written for the friend.
Money Game part two – Cynical about the state of power / wealth / etc corruption
Money Game part one – don’t watch this video unless you are okay with dealing with potential violence being inflicted on a person. He is a very good actor.
Jenny / Screech / Violet – This is a trilogy, straight up tragedy story. The last song loops the first two in, and then after all three you can see .. patterns hidden within.
This is one of those where watching the reactions = wow I missed all that from the original watching.
There’s a “Live” 360 version of this where he performs it from a stage. You can tell from it he has a following and he is well loved.
There are several rap-type songs. The hook from “Genesis” sticks with me.
There are several homage songs where he pays respect to other artists.
I keep discovering more songs by him that I missed initially.
A note on my interpretations: these are just what I project into the music. He takes some joy seeing how people react to his music.
I have found that his songs are deep and complex enough that … I cannot absorb more than one or two in a session.
I’ve also found that .. whoever he collaborates with – he lifts them up. He spotlights them.
I’m enjoying watching reaction videos to some of his stuff – seeing people go from doubt to “holy sh*t” and then seeing what they take from it. I’m also humbled by – I’ll listen to something of his directly, and think, “not that big a deal”, and then I listen to a reaction of it, and people point out all these things that I missed, and then I realize: whoa, that was very well layered. Stuff about how he’s playing, audio engineering, directing, lighting.
I wish him a very .. I don’t know if “bright” is the right word. I think “effective” is the word I want to broadcast for him. I want to see more of his stuff.
It would take too long (i don’t have the time) to write up the whole process, so to sum it up:
Dude posts video about 3d printing organizational trays (the guy who de-brands everything)
Wife shows me video on instagram
I say i can do that
I get approval for a 3D printer
I’m condensing the rest, so if you don’t know the words, well.. sorry. Research. Elegoo Neptune 3D Max. Not available. Sovol SV04 IDEX. Haven’t used 2nd extruder yet. Kinda stringy.
I had a booger of a time trying to get the first layer dialed in. Video:
openjscad is gone replaced with jscad v2, relearned it – github – https://github.com/sunnywiz/openjscad_xyz_stuff/releases/tag/print-1 –
I wish i could paste a link directly to the code rendering the model, but you can only do that for bundled single-js files, not project files at the moment.
Along the way I experimented with using Lego’s as a 3d measuring tool. There are several things i would improve about the above print. But that’s 2-3 other blog posts i don’t currently have time to write.
Now, with that out of the way, i’m trying to Dial the printer in more. The printer comes with a variant of Cura; i’m trying to bring it up with SuperSlicer (thank you Teaching Tech) which is a Prusa. I found somebody else’s config tonight, got that going, going through the calibration prints in that tonight. I have this problem with … something is gloopy and a bunch of filament goes bloop at the start of the print. Retraction print is starting now, but i think i need something along the lines of Coasting. But that’s in Cura, need to find that in Prusa.
My hope is to use the prusa-line of colorizing / multimaterial to make some interesting colorized things.
Future projects:
There’s a door latch strike thingy that needs some modification. That needs ABS or PETG.
There’s some bathroom organization stuff that I want to custom-print holders for
Molly has a pink necklace thing that needs some help, but that might need TPU.
Tons of little toy/trinkets for the grandkids. I’m holding back, so far i’ve only shown them a robot dude and flexirex.
I would love to redo my street map thing with the 300x300mm bed in higher detail, but i’d have to rewrite that with jscad v2. And of course, multicolor somehow?
And here’s how it was different than my Model Y LR AWD Non-P.
Bigger. Definitely bigger.
AP1, so no repeater cameras, so no blind spot monitoring when changing lanes. On the Highway, i resorted to rolling down the rear windows just a bit so i could hear vehicles in addition to looking in the side mirrors.
When coming to a stop, the Hold didn’t kick in as quickly as it does on my car. Several times, I rolled unexpectedly.
7 years 70k miles.. I calculated the degradation to be maybe 5%-10%, using ABRP estimates vs actuals. There was more charging involved, and I suspect that while charging the battery heated up too quick, and it had to reduce charging speed once. (Estimated 1 hour 5 minutes charge to 100% actually only got me to 90%).
I tested it in Ludicrous mode once. Maybe double the oomph of my car. In Sport mode, it was just a bit peppier than my Model Y LR.
Seats, way bigger. I would say more comfortable. Definitely looked roomier in the back.
It was really nice having a trip turn map in front of me, a North-up map to the right of me, AND having a widget up showing actual % vs estimated % for the trip.
It was very weird having a dedicated cruise control stick .. a bit confusing, many times I would turn on a turn signal rather than adjust speed.
Speaking of Turn Signals, the turn signal stalk is an actually clicky-into-place type thing, not electronic. That was nice. However, older car – when you end the turn, it didn’t always trip the signal to turn it off.
Getting in and out took more core muscle strength. Very relieved to get back to my higher Model Y.
Cup Holders were horrible. But it was nice having room to stick a bag between the two front seats.
Media Computer definitely slower than mine. I thought mine was slow. It felt lightning fast when I got back to my MCU2 hardware.
AP1 driving was pretty good – actually AI Driver has a way better video with some details, I did not test it as much as him, as my wife doesn’t like it when Autopilot makes a mistake and I have to correct it. https://www.youtube.com/watch?v=m1JnGSBHDlM
That’s about it. The picture is the car parked under the Chapel thingy in Sedona. The host’s name is Rebekah on Turo, they were great hosts. Highly recommend.
6:45am: Get up, go downstairs, get 2 coffees, slam them down
7:00am: Rearrange my stuff into my carry on and my checked baggage.
7:30am: Drive the car to the dropoff point. I had offered to drop the car off for my host.
8:00am: Clean the car windshield at a QT
8:10am: Drop off the car. No human interaction, just pictures and leave the key in it. (Tesla’s can be locked remotely very easily). Call Lyft.
8:35am: Back at the hotel.
9:00am: Shuttle to airport.
9:30am: At our gate, with two hours to go before our flight.
There was a final round of buying cool socks, a final visit to Cartel Coffee, and then we board the flight and head back to Louisville.
My wife had a daring plan that involved sitting far enough back that MAYBE nobody would claim the middle seat between us. It worked! We had space! (pic)
And touchdown Louisville, and home to grandchildren and cats and unpacking and dissemination of cactus candy.
Saturday morning, I woke up super early (5am?) to get my time lapse set up. I had a rig involving an ironing board, and Molly reinforced it with some tape.
Here’s the result. Its actually two timelapses, and I stitched them together. What happened is my alarm starting going off on the phone, and that killed the first one, so we had to restart:
While that was going, I went up the hill to get another coffee. While up there, I chatted with an interesting local named Gabriel. 71 years old.. lived around Phoenix most his life, possibly sleeping in a tent on a hillside by choice. He said something about starting to walk down the mountain at about 3am .. I saw him at 6am. I asked him if he had stories he would like to share. He invited me to sit with him. He asked me my opinions on the Bill of Rights. We had a brief discussion about many things video editing, and I gave him some of my opinions on economic polarization. He took my email. He may send me one of his stories. It is a story about a search and rescue he was involved in, and it spotlights the resilience of some of the younger generations.
Then it was time to go. We checked out of the resort early, and headed up Canyon Rd SR89A to Flagstaff, where I needed to charge up to 90% or more. As our guide the day before warned us: It was super beautiful. There was a scenic viewplace towards the end of the drive:
But don’t ask about the sanitation smell at the bathrooms there. We did what we had to.
Now, let me load up the ABRP Trip Profile I was working with for reference:
In Flagstaff, I needed to get the car all the way up to 95%, 100%, in order to make the trip east to Winslow and then south to Payson. It was going to take an hour.
We walked over to the Walmart while the car was charging, and then walked over to “Over Easy”, a breakfast place. There was a 40 minute wait. No problem, we hung out there, I went back to get the car at the right time..
The car was only at 90%! Food was ready. I stopped charging and took the car back to the restaurant. Delicious food. But inconvenient charging.
Then across the desert on I40, which is part of Route 66 there. At a nice slow 60mph to conserve charge. I easily made it at like 85% charge. Meteor Crater!
And then it was time to go.
Winslow AZ. We chatted with several couples there – one set from Bakersfield CA (who turned out owned a Model Y), and another couple from Altoona IA (where I used to live!)
We stopped at small café to get some coffee, and turns out they had the same Safe that my wife has at her office! There was some safe geeking out there.
(resume ornamentation here)
Then down Hwy ___ back towards Phoenix. Our next stop to charge was Payson AZ. We drove through desert, and then there was a forest, and then there were hills and then (after Payson) mountain descent and rolling hills. We had no service for a while. There was a beautiful sunset. We drove through some really cute towns that we would like to go back to .. Strawberry and ___. We stopped at a small gas station with broken potties, they had portapotties instead. The gas station’s business: A sanitation company. Hmm. Molly remarked: 10 years avoiding a PortaPotty, and today we had two of them. But that place did have the good tea: ____. We got two cans.
We ended up back in Phoenix at the In-n-Out, where I tried Animal Style for the first time. I’ll do that again. And then drop Molly at the Aloft, and then time for a small Sunny adventure.<
I went to visit my long time friend Steve Ekholm whom I hadn’t hung out with in.. something like 20 years? We did a facetime with his kid, who is responsible for introducing me to Harry Potter when they were 7. They are 30 now.
And then the other yawny long charging session. I needed to get the car, turns out I should have aimed for 100% so that I could return it over 85%, but I only had the patience to get it up to 85%. I had 45 minutes at that charger. I tried to nap, but that didn’t happen. It was weird.. there were at least 5 chargers there that lit up but didn’t work. Lots of disgusted Tesla owners who didn’t look for the blue tape X in the corner, and thew the chargers to the ground in disgust.. then the next person would pick up the charger, try it, and get disgusted.. nobody talked to anybody. I tried to tell people, but they were too absorbed in their world to hear me. I guess it’s a polite “I will ignore you” protocol at a charger. Very different from what my friend Dan says that he experiences.
I guess I could have gone in to Cold Beers and Cheeseburgers, and I eventually did, to get my wife a Tea and use the restroom. I tried to pay for the drink, the lady said “no need!” and bid me on my way. Bless her heart.
And then back to the room, final night of vacation.
Timelapse: I tried to set up a timelapse of the mountain sunrise. It didn’t work right – It focused on the railing instead of the mountain, for starters. It was held up by a shoe on a chair. But it got a plan started for tomorrow.
I love doing timelapses.. something about archiving a moment, capturing a pattern.
Coffee: We walked across the street to the View Café, which serves Starbucks things. I had a delicious Breve Latte. Breve means “steamed half and half”. Which is delicious. At home I drink half and half rather than whole milk. I tried drinking straight Heavy Whipping Cream (I made a song about that) but that did not work ok.
Side Adventure to Safeway: We needed .. stuff. We went and found a safeway. A lady with a big smile helped us. Bless her
Ravens by the window: Molly fell in love with the Ravens that were swooping by our window. We thought they were crows. You could almost quote us on that. But no, they were Ravens.
Pink Jeep Tour: It was a thing. It was interesting. We were glad we only did a moderate one.. guide said the bumpy roads we were on were a 2.5 on the scale from 1 to 10 of how crazy the driving can get.
Learned about Sedona Red Sand (Its not Rock!), and Geologic things, and a lot of interplay between tourists vs locals. We learned that Jerome would be a fun place to visit, as well as Prescott, though we did not end up there.
Molly has a story about a horse drawn coach and a Guide not believing her.
Organic Plan Change: Initially our plans were to hang out around Sedona and head back to Phoenix, but then I discovered that Meteor Crater was nearby.
Meteor Crater.
From This Movie, Starman, 1984:
I’ve wanted to visit there ever since I saw it in the movie. At the time, 14 years old? On my second trip to the United States? Nothing represented freedom and travel like that crater. It might also be my first ever “road trip” movie.
And here it was, so close.
So, My loving Spouse and I switched plans – more on that on Saturday’s post. The act of changing plans, negotiating and arriving on something we both want to do .. it was awesome. This also meant I had to figure out a charging plan. EV Trips: Plan! (at least for now) (Think of it like 1915, Gasoline infrastructure hasn’t quite made it yet, but by 1925, it was done)
There was a good lunch at Miley’s Cafe while we charged the car up for tomorrow’s journey up to Flagstaff. I had the Miley Burrito. Folks at the table next to us asked us our review. I ate every bit of it.
Both on the way down to the SuperCharger and on the way back up, we tried to stop at the Chapel of the Holy Cross. There was nowhere to park the first time.. we did the loop of shame and continued down. On the way back, I dropped Molly off at the top, and drove back down, and way at the bottom, like 3 spaces from the exit, I found a spot. Molly walked back down to the car. Her story about that place. I liked standing in the heat observing the tourists.
There was a visit to (unspellable) (pronounced: T’ Lakka Packy) shopping center – which I was reluctant to go to first, but once I was there, I fell in love with the decoration and ambiance.
I had big hopes for the Chai place, but reality was not as delicious, my Mom makes better Chai. 😊
There was a bunch more wandering of shops .. being total tourists. There was Honey, Tea, Sugar, Boba, and … I don’t even remember. I had to ask Molly for this list. Maybe we were a bit crazy.
We ended up and WildFlower again, but they were out of the chowder, so I had a Tomato Florentine in a Breadbowl and it was delicious.
And then it was wind down time, setting up for tomorrow’s early morning Timelapse adventure, and playing with some long exposures: