Christopher Himes
banner
eeentropyyy.hachyderm.io.ap.brid.gy
Christopher Himes
@eeentropyyy.hachyderm.io.ap.brid.gy
I’m Christopher and I work in #tech in metro #Detroit. Lifelong #technology enthusiast. Drinking #coffee. Driving my #boltEUV. Playing #fps #videoGames poorly […]

🌉 bridged from ⁂ https://hachyderm.io/@eeentropyyy, follow @ap.brid.gy to interact
https://christopherhimes.com/blog/2025/12/31/rosalind

Yesterday was the anniversary of Rosey's passing and I wanted to write something to mark the occasion.

Tried to do this for yesterday but I couldn't get through it.

#dogsofmastodon #pets
Rowdy Riveting Empress Rosalind (Rosey)
I admit I don’t know where to start this post. Today is the anniversary of Rosey’s passing and I wanted to write something to mark the occasion. We spent last New Year’s Eve quite a bit differently than we will today. We’ll get to that but lets start from the beginning. Rosey was born on the fourteenth of November in the year 2012. Her parents are my sister’s dog, Bella, and my sister’s brother-in-law’s dog, Vince. Her AKC registered name is Rowdy Riveting Empress Rosalind but we mostly called her Rosey or Rose. A few days after Bella had her litter, the family drove out to the Lansing area, about an hour and a half away, to see them. That’s where we met the whole squad and you can see a picture below, of me holding our little Rosey, for the first time. Yeah, so we did that, and then after Christmas we came out again to see the pups. They had already gotten quite a bit bigger. Great Danes are puppies for a long time, but physically they’re not puppies for very long. And then a week after that, we came out to pick her up. Some of the litter had already gone to their forever homes. Rose rode with me on my lap for the entire car ride back. I remember being nervous even just a carrying her in the car with me. It was late enough in the year that I decided that I was going to adopt Rosey that I didn’t have my yard fenced in. So for a while there, for probably too long, it was like living in an apartment, taking her out any time to go for a walk. And I just love this picture of me and Rose enjoying her first snow. We were both pretty tired after such a big day. I do remember her crying a lot that first night which was pretty sad. I do not believe it lasted more than a night or two though. The cats were not too happy to see her. She pretty much took over as a puppy would often do, I suppose. You do have to be careful with a Great Dane, though. If you get too cuddly, they don’t know their size. As they get bigger, then it becomes an issue. I know there were probably accidents, but at this point it’s been so long that I don’t even remember any difficulty getting her house trained. When I wasn’t home, she was crate trained. That was her bed, you can tell her it’s time for bed and she would put herself to bed. For at least the first year, my mom would come at lunchtime to let her out, so she never went the full day for over a year. For a while there, she was getting Blue Buffalo for large breeds, but that was too rich, so we ended up switching her over to Holistic Select. One of her sisters didn’t get adopted. So my sister would bring her over periodically. We’d usually meet at my parents’ house, and we’d bring two Great Dane puppies and watch them run around, which was fun. Pretty crazy to see that you’re six months into life and this dog is bigger than most dogs you’ll see on the street. Like there’s there’s some pictures of her where she looks like a full-grown dog but she’s only six months old. I did find that you tend to get noticed when you’re walking a great dane. It’s nice that she tended toward her mom’s size, which maxed out around 110 pounds. Which is a lot for a dog, but undersized for a great dane. She was a healthy weight for her body, but being a little bit leaner helped keep some health issues at bay a little bit longer. We got some extra time with her because of it. For the first few years we went to my parents house frequently but she didn’t really love the car. I never let her put her head out the window when we were driving and she never sat down either, so she was always back there standing up. Pacing around whenever she could she didn’t ever really relax when she was in the car although I guess we were only ever 20 minutes away from wherever we were going so it wasn’t too bad really. Within the first year she got microchipped and fixed before she got too big. I remember that she came home and it was like she was drunk and tired. This dog that barely settled slept on the floor with her head on the marble of the fireplace. She owned the couch so this was especially weird. She never ended up with any kind of bloat issues, which can occur in Great Danes. So I was thankful for that. Reading through information about Great Danes this tends to come up a lot and I was concerned. She was free-fed and never would not scarf it. So I think that made our lives easier, both hers and mine. I tried to keep her fairly inactive for the next 30 minutes or so after eating, just to make sure that things have settled. In early 2019, she started exhibiting some discomfort around her eye. She would rub on it with her paws and clearly it was bothering her, so it took her to the vet. We ended up having to go see a specialist at Blue Pearl. We tried drops to treat the inflammation in her eye. Even with medication we just couldn’t get to come down. The vets recommended to have one of her eyes removed. So May of 2019, she had surgery to have her left eye removed. That is something that you’re never quite prepared for. It’s just hard to look at. It breaks your heart a bit to see. She’s scared going in and confused/disoriented coming out. It took some time to recover. She’s a large dog and she needed to wear a huge cone so she couldn’t scratch at herself. She ran that thing into everything including me. I did fin this photo from about a year later which I’m including because I can’t stand to include anything sooner after the surgery. In the first few months of 2020, before the world shut down, I had renovated the kitchen and bathroom at my house. So I’d go to work all day and come home in various states of demolition and then construction. During this time Rosey spent time with my parents. So I’d alternate days between going to see Leah and Noah and going to see Rose at my parents’ house. That was tough being away from her for so long. Eventually did get the yard fully fenced in, but not until it seemed like Leah and Noah might be moving in. With this new freedom she could be let out without having to walk out to the fenced in section. We liked to go in the backyard and throw the ball around. She had enough space to get up to full speed at which point you needed to stay out of her way. By the end of 2020, Leah and Noah moved in bringing with them their dog Tater, Leah’s Mom’s dog Dusty, and their two cats Phantom and Queenie. We got our blended family up to seven pets. At this point Rosey was still pretty curious so that sent Queenie into hiding but Tater was an old friend already and Dusty didn’t really mind anyone. We fairly quickly realized that a queen bed for the three of us, meaning Leah, Rosie, and I wasn’t going to cut it. So we ended up getting a California King sized bed and Rose still managed to spread out and take as much room as possible. As she slowed down and got use to the other animals being around Queenie and Ophelia started being seen more often and everyone was a bit more comfortable. It was a good thing we had two couches because with two couch potato dogs we needed all that room. She definitely had a preferred spot so I included a photo of her there here. You can see Phantom in this photo too and he’s still not quite sure about her. Also, it’s remarkable how white her face has gotten compared to when she was younger. She was a close talker and I think I may have spent too much time letting her have her face near mine. I didn’t mind but a dog that wants to rest her head on your shoulder isn’t for everyone. In her old age she began exhibiting joint pain that made it harder for her to move. We kept her on Cosequin that helped her maintain her mobility for the last few years. For the days leading up to her passing no amount of Cosequin would help her discomfort. More than that the strength in her back legs was going and quickly. What we later would learn was likely an acut onset nerve issue first presented in the inability to to do stairs or get up on a couch. She started not being able to communicate that she had to go to the bathroom and eventually had to be carried outside to do her business. We had scheduled an in house vet to come out after the new year but she was so bad when we woke up on December 31st 2024 that we had to go in that day. I carried her to the car and we had called ahead so they met us in the parking lot with a stretcher. Leah and I sat in a room at the vet with Rosey still in the back when they let us know what was going on. As with most things health related there are options but the situation was that nothing they could do was very likely to succeed. After discussing the options with Leah it was then that we made the decision to say goodbye. We told the vet and they prepared a room for us to spend some time with her. Before they moved us I called my Mom to let her know what was happening and texted my siblings too. They gave her something to keep her comfortable and we laid on the floor in a more comfortable dedicated room they have for this sort of thing. After awhile we said our goodbyes and the vet gave her the injections and she was gone. We kept her collar and the vet sent a condolences card with some paw prints they took after we left. It was a sad way to spend the last day of the year. I spent weeks expecting her to be in her spot on the couch or on the bed. I’ve been working remotely for years and she had always been on the bed near me. Now when I get up to leave the room nobody follows behind. I miss my girl.
christopherhimes.com
January 1, 2026 at 5:42 PM
Advent of Code - Day 11
> Day 11: Reactor At this point I believe day ten had got into my head rendering day eleven way harder than it actually should have been. This section you’re in a reactor with a diagram like the following example. aaa: you hhh you: bbb ccc bbb: ddd eee ccc: ddd eee fff ddd: ggg eee: out fff: out ggg: out hhh: ccc fff iii iii: out This is a list of devices and where the outputs are attached. ## Part 1 Here we are asked to count the paths from you to out. Splitting the input on the contents to the left and right of the “:” was straight forward enough. I stumbled quite a bit on getting the path count here partially due to the aforementioned block. I found a solution that used a recursive function starting at “you” and following every path and counting each one. ## Part 2 Now with a new set of data we must find how many paths start with “svr” end at “out” and visit both “dac” and “fft”. svr: aaa bbb aaa: fft fft: ccc bbb: tty tty: ccc ccc: ddd eee ddd: hub hub: fff eee: dac dac: fff fff: ggg hhh ggg: out hhh: out The solution involves creating a dictionary item of a location and the ways to get to it. This is processed first with the initial state of starting with “svr” and going through “fft”. Because we don’t care which order “fft” and “dac” are accessed a similar count is performed from “dac”. From there we count how to get from “dac” to “out”. I wish the example was a little more complicated as the jump from example to input is a bit larger than I’d like.
christopherhimes.com
December 30, 2025 at 4:56 PM
Reposted by Christopher Himes
I brought a 3.5” floppy disk into my lab. One of my interns said “oh cool, you 3D printed the save icon!”

I spontaneously broke my hip.
December 29, 2025 at 5:44 PM
Advent of Code - Day 10
> Day 10: Factory In this challenge we need to turn some machines on and get them to use the correct joltage. > The manual describes one machine per line. Each line contains a single indicator light diagram in [square brackets], one or more button wiring schematics in (parentheses), and joltage requirements in {curly braces}. [.##.] (3) (1,3) (2) (2,3) (0,2) (0,1) {3,5,4,7} [...#.] (0,2,3,4) (2,3) (0,4) (0,1,2) (1,2,3,4) {7,5,12,7,2} [.###.#] (0,1,2,3,4) (0,3,4) (0,1,2,4,5) (1,2) {10,11,11,5,10,5} ## Part 1 In this part we are asked, “What is the fewest button presses required to correctly configure the indicator lights on all of the machines?” I do not like admitting that the first part of this one tripped me up. Parsing the text was easy enough but frankly I was not sure how to hnadle that information once it was read in and split apart. I tried a few things but my solutions ended up overcounting and I could not track down why. For this reason I sought someone elses solution that I could learn from. On the subreddit there was a vanilla Python solution that used sets and bitwise operators. First the lights are converted to be a decimal representation of the binary value where “.” is a 0 and “#” is a 1. This is done from left to right so the second light in the example of […#.] is read as 01000 = 8. Next each of the button presses are translated to a decimal representation of the binary value communicated. For the buttons [‘(3)’, ‘(1,3)’, ‘(2)’, ‘(2,3)’, ‘(0,2)’, ‘(0,1)’] where the number is the index for the lights. As an example (3) = 1000 = 8 and (1,3) = 1010 = 10. I’ve spent a bunch of time staring at this bit of code but I think I’ve got it now. current_lights = set(lights ^ btn for lights in current_lights for btn in buttons) This is contained in a for loop that iterates the number of button presses and followed up by an if statement that checks if the target (desired light combination) appears in the resulting set. A set is used to make sure each of the values added are unique. If there are multiple ways to get to the same number we don’t care since we’re counting presses and not button press combinations. This creates a set of (lights XOR buttons) for all lights in the current set. Each successive loop of this operation applies all button presses to each possible light state. This works since the lights work like binary operators. If a light is off “.” and the button press would interact with it then it turns on “#”. If the light is on “#” and the button press would interact with it then it turns off “.”. This exactly how XOR works and since integers compared with “^” are compared as binary this setup generates light possibilities in the form of the decimal representation of binary interactions. ## Part 2 This part asks, “What is the fewest button presses required to correctly configure the joltage level counters on all of the machines?” The light state is ignored and instead the button presses changes the joltage as communicated in the curly braces. This is the first time I had to install another library to get this to work. I did not come up with this solution but am instead writing to make sure I have some understanding of what’s happening here. The solution I found used SciPy and specifically LinearConstraint, milp, and Bounds. Once the variables for this function are set milp (Mixed-integer linear programming) function can return the desired value. result = milp(c, constraints=constraints, bounds=bounds, integrality=integrality) This is run for each line and the sum is calculated. I need to dig into exactly how this one works as I’m not sure what is happening under the hood.
christopherhimes.com
December 30, 2025 at 12:59 AM
Week 52
## General * Applied to a few jobs. Created a better flow for tailoring my resume based on the position. * Made apple pie, pumpkin pie, and dressing/stuffing for Christmas Eve dinner with the family. * Met Matthew’s girlfriend! * Gave some kids presents and I think they liked them. Noah said the Mitski album I got him was his favorite gift this year so theat felt pretty good. ## Media * Working our way through Project Runway season ten. * Watched the first two episodes of Fall Out season two. * Watched volume two of Stranger Things season five. ## Other Posts * I got a got way through day 10 of advent of code but haven’t posted it yet. ## Top Tracks - Past Seven Days 1. Have You Ever Seen The Rain (feat. Mt. Joy) - Jesse Welles - 4 plays 2. The Poor - Jesse Welles - 4 plays 3. United Health - Jesse Welles - 4 plays 4. Walmart - Jesse Welles - 4 plays 5. My Neck, My Back - Richard Cheese - 4 plays 6. Friends - Jesse Welles - 3 plays 7. Join Ice - Jesse Welles - 3 plays 8. The Great Caucasian God - Jesse Welles - 3 plays 9. War Isn’t Murder - Jesse Welles - 3 plays 10. bugs - Jesse Welles - 2 plays</div></div> ## Top Artists - Past Seven Days 1. Jesse Welles - 68 plays 2. Sufjan Stevens - 32 plays 3. Richard Cheese - 16 plays 4. Petey USA - 7 plays 5. Elliott Smith - 4 plays 6. Fleet Foxes - 3 plays 7. Neutral Milk Hotel - 3 plays 8. St. Vincent - 3 plays 9. Cameron Winter - 2 plays 10. Chappell Roan - 2 plays</div></div>
christopherhimes.com
December 28, 2025 at 10:07 PM
December 25, 2025 at 5:19 PM
Reposted by Christopher Himes
👻
December 5, 2024 at 1:19 PM
Check out the cyber circle https://ccc.cyber.to/
December 24, 2025 at 3:38 PM
Week 51
## General * Applied to a few jobs. * Learned how to do day 10 of Advent of Code and am writing something about it for next week. Once done I’ll start on day 11. I haven’t given up yet. * Took Noah and Phantom to the vet for a lengthy nail issue the poor guy. * Setup Koito and Multi-Scrobbler to try and replace Last.fm in the future. ## Media * Working our way through Project Runway season ten and this one we seem to be sticking with * Rewatched Stranger Things in anticipation of the finale later this month. I have some theories friends. ## Other Posts * AOC Day 9 ## Top Tracks - Past Seven Days 1. Chateau (Feel Alright) - Djo - 2 plays 2. Love Like Winter - AFI - 1 plays 3. The Lost Souls - AFI - 1 plays 4. This Celluloid Dream - AFI - 1 plays 5. Totalimmortal - AFI - 1 plays 6. First Day of My Life - Bright Eyes - 1 plays 7. The Ghost Inside - Broken Bells - 1 plays 8. I Won’t Let You Down - Curtis Harding - 1 plays 9. Vindicated - Dashboard Confessional - 1 plays 10. Strange Overtones - David Byrne - 1 plays ## Top Artists - Past Seven Days 1. Fall Out Boy - 6 plays 2. AFI - 4 plays 3. Say Anything - 4 plays 4. Djo - 3 plays 5. Motion City Soundtrack - 3 plays 6. OutKast - 3 plays 7. Panic! at the Disco - 3 plays 8. The Format - 3 plays 9. Death Cab for Cutie - 2 plays 10. Elliott Smith - 2 plays
christopherhimes.com
December 20, 2025 at 3:18 PM
Advent of Code - Day 9
> Day 9: Movie Theater In the movie theater we’re looking at a red and green tile floor. The example looks like this where other tiles are “.” and red tiles are “#”. 7,1 11,1 11,7 9,7 9,5 2,5 2,3 7,3 But it can be visualized in a grid as follows: .............. .......#...#.. .............. ..#....#...... .............. ..#......#.... .............. .........#.#.. .............. ## Part 1 This first part is to calculate the area of the largest rectangle. This was fairly straightforward to brute force. For every red tile loop through all other red tile positions and calculate the area. Then sort the results so the largest is the first value. This is your answer. ## Part 2 In this part the tiles contained within the shape of the original example are green. Now using only red and green tiles return the largest area. .............. .......#XXX#.. .......XXXXX.. ..#XXXX#XXXX.. ..XXXXXXXXXX.. ..#XXXXXX#XX.. .........XXX.. .........#X#.. .............. This part seemed similar to the first and initially I tried to solve it by adding some additional checks for the contents of each area. This proved to be computationally expensive on the actual input and frankly it didn’t work. Instead of solving this challenge myself I decided to review others solutions and learn from them. One such solution included itertools for more efficient iteration. candidates = [] for square in combinations(tiles, 2): if not intersects(square[0], square[1], sliding_window(tiles, 2)): candidates.append(square) print(max([sq_size(a, b) for (a, b) in candidates])) The combinations function is used to generate all possible combinations of elements. This was the part that was tripping me up the most with manipulating part 1 to solve part 2. From there we have the sliding window that returns the elements of the input. The intersect function returns False if the rectangle we’re checking is contained within the shape created by red and green tiles. That square is then added to the list of candidates and we eventually take the max like in part 1. Again this was a solution found on the subreddit that I found. I learned some new techniques from this solution. Listening to: Louis XIV - Finding out True Love Is Blind
christopherhimes.com
December 15, 2025 at 5:03 PM
Week 50
## General * Applied to a few jobs and certified unemployment. * Fell behind in Advent of Code after taking some time to learn about how to solve one of the later challenges. * Completed drives in Overwatch (8 times in total) after last weeks update. ## Media * Skipped a bunch of Project Runway season nine and started season ten on Amazon Prime. * Been rewatching Stranger Things in anticipation of the finale later this month. ## Other Posts * AOC Day 7 * AOC Day 8 ## Top Tracks - Past Seven Days 1. Gold Tooth - Lettuce - 2 plays 2. Girl’s Not Grey - AFI - 1 plays 3. The Boy Who Destroyed the World - AFI - 1 plays 4. The Leaving Song Pt. II - AFI - 1 plays 5. One Armed Scissor - At the Drive-In - 1 plays 6. Nothing From Nothing - Billy Preston - 1 plays 7. The Recluse - Cursive - 1 plays 8. I Won’t Let You Down - Curtis Harding - 1 plays 9. Marching Bands of Manhattan - Death Cab for Cutie - 1 plays 10. Pictures of Me - Elliott Smith - 1 plays ## Top Artists - Past Seven Days 1. Lettuce - 11 plays 2. My Chemical Romance - 5 plays 3. AFI - 3 plays 4. Elliott Smith - 3 plays 5. Panic! at the Disco - 3 plays 6. The Format - 3 plays 7. Tyler, The Creator - 3 plays 8. Father John Misty - 2 plays 9. Leon Bridges - 2 plays 10. Say Anything - 2 plays
christopherhimes.com
December 15, 2025 at 4:04 PM
In the Top Dog Law commercial why after "the dog only gets to eat if you get paid" do they not say "you know this dog is hungry" or something like that?
December 12, 2025 at 8:30 PM
I know an embarrassing amount of the words to the song Ignition (Remix) by R Kelly. Does anyone else have a song they’re embarrassed to know basically all the words to?
December 12, 2025 at 3:12 PM
I'm realizing now that this is terrible snow shoveling advice.

https://www.youtube.com/watch?v=6auk1TkGtVQ
December 11, 2025 at 6:09 PM
Calibri welcome to the resistance
December 11, 2025 at 5:00 PM
I just completed "Movie Theater" - Day 9 - Advent of Code 2025 #adventofcode https://adventofcode.com/2025/day/9
December 10, 2025 at 5:27 PM
https://christopherhimes.com/blog/2025/12/06/weeknotes-week49

Late but this is the weekly update for November 30 - December 6.

#weeknotes
Week 49
## General * Applied to a few jobs. * Got caught up in Advent of Code 2025 and Overwatch drives this week. ## Media * Finished season seven of Project Runway and started season eight on Amazon Prime. * Leah and I went on a date to see Kill Bill: The Whole Bloody Affair ## Other Posts * AOC Day 1 * AOC Day 2 * AOC Day 2 Revisited * AOC Day 3 * AOC Day 4 * AOC Day 5 * AOC Day 6 ## Top Tracks - Past Seven Days 1. Somebody That I Used to Know - Elliott Smith - 2 plays 2. Speed Trials - Elliott Smith - 2 plays 3. Holy Shit - Father John Misty - 2 plays 4. Crying Laughing Loving Lying (From “The Holdovers”) - Labi Siffre - 2 plays 5. Do You Wanna Do Nothing with Me? - Lawrence - 2 plays 6. With Arms Outstretched - Rilo Kiley - 2 plays 7. Talk It Up - Sammy Rae & The Friends - 2 plays 8. Will I See You Again? - Thee Sacred Souls - 2 plays 9. ARE WE STILL FRIENDS? - Tyler, The Creator - 2 plays 10. Guilty Conscience - 070 Shake - 1 plays ## Top Artists - Past Seven Days 1. Elliott Smith - 7 plays 2. Death Cab for Cutie - 5 plays 3. Father John Misty - 4 plays 4. Jenny Lewis - 3 plays 5. Rilo Kiley - 3 plays 6. Chappell Roan - 2 plays 7. Fall Out Boy - 2 plays 8. Labi Siffre - 2 plays 9. Lawrence - 2 plays 10. Sammy Rae & The Friends - 2 plays
christopherhimes.com
December 9, 2025 at 6:24 PM
Advent of Code - Day 6
> Cephalopod math doesn’t look that different from normal math. ## Part 1 Here is the thing with text that looks like this: 123 328 51 64 45 64 387 23 6 98 215 314 * + * + The requirements for this part of the puzzle allows for you to assume some spacing to get the answer knowing full well that’s not going to cut it in the next one. My strategy, as it has been with most of these is to get the lines into an array, and traverse that grid to rearrange the data and find the answer. With a grid (2-dimensional array) in place I read it column first to build the equation and assuming the last row in a column is the operation. I ignored spacing as much as I could which absolutely will come back to bite me in the next part. ## Part 2 As you can see in the above each column of data has a number with three characters so the columns are all of uniform width. The input data for this does not have that characteristic so it is a bit harder to parse. I ended up using the very last row to determine spacing of the rows since numbers that are less than the with of the column can have a space at the front of back of the number. Since the numbers were written vertically I decided to translate the grid so the width is the height of the original and the width is the height. The right column above reads like `4 + 431 + 623 = 1058` I’m sure this is doing too much but it completes relatively quickly.
christopherhimes.com
December 9, 2025 at 6:23 PM
https://christopherhimes.com/blog/2025/12/05/advent-of-code-2025-day5

If only we hadn't switched to the new inventory management system right before Christmas!

#adventofcode #adventofcode2025 #python
Advent of Code - Day 5
> If only we hadn’t switched to the new inventory management system right before Christmas! ## Part 1 In this part we’re asked to check if an ID is within a range and count the number where this is true. This was not very difficult. Similar to other challenges read in the lines, split them along the “,” delimiter, and use these ranges to confirm if the later list is fresh or not. Got a comment about this possible syntax so I used this instead of two expressions with and inbetween. if fresh[0] <= id <= fresh[1]: This is a pretty useful simplification where I think some other examples I’ve seen can be a bit obfiscating and confusing. ## Part 2 The second part is a count of all ingredient IDs that are fresh. I spent a bunch of time overcomplicating this problem. Eventually I threw it all out and started blank and eventually got there. The solution isn’t even interesting to share here. Just a reminder for myself to not complicate things. Listening to: Walk On By - Thundercat
christopherhimes.com
December 9, 2025 at 6:19 PM
I just completed "Playground" - Day 8 - Advent of Code 2025 #adventofcode https://adventofcode.com/2025/day/8
Day 8 - Advent of Code 2025
adventofcode.com
December 8, 2025 at 8:05 PM
I just completed "Trash Compactor" - Day 6 - Advent of Code 2025 #adventofcode https://adventofcode.com/2025/day/6
Day 6 - Advent of Code 2025
adventofcode.com
December 7, 2025 at 7:35 PM
I just completed "Cafeteria" - Day 5 - Advent of Code 2025 #adventofcode https://adventofcode.com/2025/day/5
December 5, 2025 at 11:49 PM
Reposted by Christopher Himes
Breaking: Defense Secretary Pete Hegseth releases his Signal Wrapped.
December 5, 2025 at 1:21 PM
Reminder to stop and enjoy a refreshment over the corpse of your enemies.

Notre-Dame de Paris, France
December 5, 2025 at 1:18 PM