Tuesday, November 04, 2025

US Open Day 1 - Chilling in NY

[Composed 8/26/2025]

You could give what we did today in NY a fancier name, but mostly, we just took a walk without a care in the world. What made this deliciously relaxed day especially meaningful is that for the last 50 days, we've had at least one bonus child in our home.

Instead of taking a week-long summer trip with the Florida kids, we've had a series of adventures. This included hosting the older kids for a few weeks to enjoy some in-depth activities. The extended time we've had with the kids has been a pleasure. Hitting up a resort with G and T was tons of fun. And watching J and D play in a battlebots tournament using bots they built with teams was super rewarding. Exploring DC with C was exactly the treat I hoped it would be. Sure, my commute went from 0 hours to a day to what felt endless, but even that was a pleasure in its own way: I got to enjoy J's DJ skills, learn about D-Day with D as we listened to Soldier, Sailor, Frogman, Spy, Airman, Gangster, Kill or Die: How the Allies Won on D-Day and rock out to the K Pop Daemon Hunter's soundtrack with C.

A few days before D left, baby K joined our home. At 4 months old, she's the cutest, most adorable bundle of joy. Mostly, she just wants to sleep, eat, and cuddle.

When we landed in NY, we left all of that behind. For the last 12 hours or so, we haven't had to think about running to our next activity or changing a diaper. So sure, I could tell you that we went on Mindful Urban Exploration, but really, we just walked without thinking about whether someone was going to ask how much farther, or if someone needed a diaper change. It was glorious.

While on our walk we saw a mix of nature, street art, and other randomness that Queens effortlessly delivers.

Nature in the City

We saw some fine examples of nature finding a way. Like these flowers growing in cracks:

Or this Great Egret wading in the shadow of the Van Wyck Expressway.

This Monarch Butterfly was the highlight of a stop at the Garden of Meditation in Flushing Meadows Corona Park. I'd never guess from these photos that 8 lanes of the Long Island Expressway are a mere 600 feet away.

This is my favorite urban nature scene of the day. At around 1:30 PM, I snapped a pic of this Yellow-crowned night heron, chilling along the seashore.

About 6 hours later, I captured this picture of the 'seashore' he was chilling in.

Oh New York, you're so full of contrasts.

Street Art

We've established that Shira thinks graffiti is a nuisance crime, while I think it's a fascinating opportunity for artistic expression. Our stroll through NY gave each of us an opportunity to reinforce our own perspective.

Consider these trucks. Are the owners infuriated that their property has been defaced? Or do they appreciate the splash of color and chutzpah of the artist? And are the artists recklessly defacing property, or are they following an internal code that ensures that this is a sort of victimless crime?

All around us where I saw interesting expression, Shira saw society crumbling.

At various points, I'd stop walking and be like "babe, babe, seriously check this out! How'd they do that?" I'd ask, waiting for her to be impressed. She never was.

Random New York

Of course, a stroll through Queens is going to deliver plenty of random sights. Like this future lock bridge, remains of the 1964 World's Fair and a scale model of the Eiffel Tower.

The Eiffel Tower sits atop the Paris Suites Hotel. The website claims to be "Perfect for those seeking distinctive accommodations with a European touch." Alas, the Google Reviews suggest that, yes, this 3-star hotel may be distinctive, but maybe not always in a good way.

Finally, consider this Frankenstein-looking vehicle:

I thought this was someone's DIY conglomeration. In fact, it's a seen-better-days Mercedes AMG G 63 6x6. In mint condition, this truck goes for about 1.5 million dollars. This particular model isn't worth quite that much, but it does have a cool passenger-side neck pillow.

Destination: Lunch!

Our walk wasn't without a destination. Our goal was to make it to lunch at Nadezhda, a kosher restaurant in Forest Hills that specializes in kebabs and borscht.

Given my affinity for trying new foods and that we keep kosher, it's kind of amazing that we've been to NY so many times but haven't checked out the Uzbeki kosher food scene. There were a handful of restaurants to pick from, but Nadezhda looked as good as any of the others.

The day was nice, so Shira and I opted to sit outside. The menu was basically a mystery to us, with many unknown dishes and no real sense of scale. We ended up ordering what seemed like quite a few dishes: bread, soup, salad, two types of kebabs, fries, and a meat pie thing. They were relatively small portions, so the long list was the right amount of food. I was impressed by it all. I'm sure part of me was just excited to eat a new genre of food, and who doesn't love warm bread and hot soup? The kebabs were legitimately tasty, with excellent seasoning. Shira was less swayed by the novelty. The fries were OK, and her salmon wasn't, to her, anything special.

I'm ready to go back and try more exotic dishes. Shira, not so much.

Undeniably, the restaurant fit our day of carefree living, with no worries about who would eat what, and how many dishes we'd need to order to satiate a gang of starving teens.

After about nearly nine miles of walking, we made it back to our hotel for the evening. Where we finally crashed and hoped for an uninterrupted night of sleep.

Tomorrow the serious work of enjoying tennis begins. That was enough relaxation, it's US Open time. Let's gooooooo!

Friday, October 24, 2025

US Open 2025 - Day 1 - Getting To NY

[Composed 8/26/2025]

It's US Open time, baby! Step one was getting to NYC. Our flight from DCA to LaGuardia was uneventful, and the sights along the way did not disappoint.

On the DC side, I appreciated getting an aerial view of the nearby Arlington National Cemetery Southern Expansion project. This effort has been going on in one form or another since we moved to the area nearly 30 years ago. The birds-eye view today shows an island of calm immediately surrounding the Air Force Memorial in the midst of a sea of construction. Outside of these bounds, civilization with its buildings and greenspaces resumes. We've walked past this construction countless times, but the sky view neatly puts it into context.

On the New York side, of course, I was psyched one of my many Manhattan Skyscraper pics came out decent:

I also captured Liberty Island as we flew by, but between the digital zoom and the plane's motion, the quality was especially poor. I asked Gemini's Nano Banana to help me fix the picture, and I think it did a fine job.

Clearly, photography, like many, if not all artistic pursuits, is at an inflection point thanks to AI. Is the cleaned-up version of my photo still 'my photo?' Is it somehow more ethical to open up Gimp and painstakingly edit the image, rather than telling Nano Banana what I want in a few short sentences? Or, is any editing at all 'cheating?' Is AI the gateway to relying on cheap, lightweight gear rather than heavy, expensive tech?

Time will tell on all these questions. For now though, Nano Banana is simply too magical to not embrace.

Between DC and NY, I also captured these pics of the Salem Nuclear Power Plant. I knew I was looking at a nuclear power plant because it looks just like the one on The Simpsons. In fact, both are two-unit pressurized water reactors. Kudos to the Simpsons for including a realistic'ish nuclear plant layout.

While reading up on the Salem site, I learned that they operate a Service Water System that uses water from the Delaware River to cool the nuclear reactor. This system consists of 12 intake pumps that pull in water at a maximum rate of 185,000 gallons per minute. So that means that in the 4 minutes the plant was in view, the system pulled in up to 6,660,000 gallons of water to keep the reactor from overheating. I find that to be a staggering amount of water, and an impressive accomplishment in and of itself.

When I looked back at my pictures from the day, I was curious how tricky it would be to find out the name and details of the site we'd flown by. It turns out, not tricky at all. The Nuclear Regulatory Commission has a nice map showing all the reactors in the country, and gives extensive details about both units at Salem.

Heck, I can tell you that on the day we flew into NY, there were 4 nuclear-related "events" that occurred around the country, including a missing vial of "Ra-223 dichloride solution," which sounds scary, but was "very unlikely to cause permanent injury to individuals," so that's nice. There were no events at the Salem plant.

Once at LaGuardia we had no problem collecting our bags, and then it was off to the hotel to drop them off and officially start our New York Adventure!

Wednesday, October 22, 2025

ESOXOFFORE Kids Camera - Command Line Tool Automation

As my recent review implied, I've been enjoying my new ESOXOFFORE Kids Instant Print Camera. It didn't take long, however, before I identified a couple of camera-related tasks that I could streamline with code. I give you: toycameraassist, a command-line tool for working with the ESOXOFFORE.

This short script, which depends on gphotoassist and sdcardassist handles two common workflows: archiving pictures from, and loading pictures to, the camera. Here's the script in action.

Archiving Photos

Step one, of course, is to shoot some photos. My morning tea may not be the most interesting subject, but it's one that I had at my fingertips:

Next, I popped the SD card out of the camera and into my laptop. I'm running Mint Linux, but toycameraassist should work equally well from a WSL2 or Mac OS terminal. I then ran toycameraassist -a archive.

$ toycameraassist -a archive -v | mightee
PICT0000.jpg:https://photos.google.com/lr/photo/AHnaBgstn16lDqnQQrVMfHk6gO8fdEpEjvIeTpSsxhcSZceegzJv0y02L2CfEahXoumYzj9Ri6YS7TTHIkT6KbAf5qftppapcw
PICT0001.jpg:https://photos.google.com/lr/photo/AHnaBgsorU4SZmzW0wjCxwgoyRk3Yp17wLMX6gKLlS1jQw61BZSwX2dlJt8TjZ4CzRc3YkaLOGQhgfY-GHEoPI1mbIUM3XMycQ
PICT0002.jpg:https://photos.google.com/lr/photo/AHnaBgvh2-7_R680yo6RdqpTI5Syz0xoKCXwUozB8IkZmhyEr1dDDv-_UobwpJmfvUGXDud87ImYvlZPyobHwD9c6JbMcMLjCg
PICT0003.jpg:https://photos.google.com/lr/photo/AHnaBgvrr7dsmQ1F3SMm7GWg0g312kkfbgyF9WlP4BpHkb8PDaDu_zJVUaJokZmzFR5Fk9ySSagXLGLb12SUxzojVnZewHCmNQ
PICT0004.jpg:https://photos.google.com/lr/photo/AHnaBgukO4g_SYSd3MG18iKA59WFBiyIL-pl-GFLSWpfpvpVAIgZiv1i8ZFrLL56pzmGv_srClEcAvRGMrN7vtmou_sIYKyLIw
PICT0005.jpg:https://photos.google.com/lr/photo/AHnaBgtznwDNI8dPAJKbI0aqvLBc3_jBVVAAJbY_I6WcmM5dZq62PeCyNMVItWcJR7tyqFmIeET0zJyVTKOHQYNEvVd4KaFO8Q
PICT0006.jpg:https://photos.google.com/lr/photo/AHnaBgulFX2cWEgLjZN6RLrajeSxYJR0mJYdwl0RWvnLJjenyJoZtpqOOAChbCuJexWEZLHe1O4otS4jIqk844caQ1zLWhHXhw
PICT0007.jpg:https://photos.google.com/lr/photo/AHnaBgvHd-eicj_6aqYhBuHtEtgZwzWteTjYAwIcCtywQpHfVaJWsZm-7DyuE9tKAenc2OQ6bLobuLf3SSQ65oepK99KipQbbg
PICT0008.jpg:https://photos.google.com/lr/photo/AHnaBgu3ucZo8ogslauMNYnFc7rlgD5eQMHpu3zhTqnbGhyFLE_YltjI9Tos6kg4MlMN0GG8zbar0_7pfQdPyL2LzsQ1XCJFTg
PICT0009.jpg:https://photos.google.com/lr/photo/AHnaBgsDu4KbJO5JoLeHAWvRNoWtNi5EyMuqga7n8KFAb1C3WbNrQBQHz8Xe80qmJEpKNT6ZGHXJwZDWOvi3mEktmaTE9ib7rg

And that's it. All the images have been taken off the card and pushed to a Google Photos album that's defined in ~/.config/toycameraassist/default.config.

After a few moments, the images appeared in my Google Photos feed, as well as in the default folder that I set.

The process isn't as magical as Google Photos' backup on Android, but it's miles ahead of manually managing and uploading photos.

Loading Photos

Next up, toycameraassist allows you to load arbitrary photos into the camera, so you can use the camera as a low-cost photo printer.

Step one again begins with a selection of photos. This time, however, I'm pulling them from Google Photos as they're taken with my Galaxy S22 Ultra.

I downloaded these photos to a local directory, and put the camera's SD card into my laptop. I then ran toycameraassist -a load.

  # In Google Photos, I clicked 'Download all' on a 'Print Photos'
  $ unzip Print\ Photos-1-001.zip
  $ cd Print\ Photos
  $ toycameraassist -a load *.jpg

The SD card now has the photos scaled, stripped of EXIF data and named as the camera expects. Surprisingly, stripping the image metadata is a key step, as the camera refused to read images that skipped this step.

I then ejected the card from my laptop and put it back into the camera. Finally, I fired up the camera and was able to browse and print the pictures as though they had been captured with the ESOXOFFORE.

Here are the prints from the camera, hastily mounted on 3x5 index cards:

Not bad for a $30 camera and $0.09 worth of materials.

You can grab the script and its dependencies here. Enjoy!