Wednesday, May 31, 2023

Tampa Adventure: Day 2

[Composed 5/20/2023]

The second day of our Tampa adventure began at about 12:15am when I heard a crash outside our tent. Of course, I wanted to ignore it, but I figured I better go take a look.

Outside I found a dark campsite, which was a bit surprising, as I'd intentionally left my improvised lantern on so that the kids could find the campsite should they step away for a nightime potty break. When I scanned the campsite for the missing light, I quickly realized the problem. I'd fashioned a lantern by attaching our recharagable air matress pump, which had a light on it, to a marshmallow roasting stick. I then duct taped the stick to a container of steel cut oats. The oats served as the perfect base to keep the light upright. It also served as the perfect bait to attract critters to the campsite, and that's exactly what had happened. A friendly raccoon had snatched the container of oats and dragged it, as well as the light, over to a nearby tree to feast on its discovery. Before bed I gave the kids a stern warning about leaving food out and how it would attract animals; and of course I hadn't put two and two together that this was exactly what I was doing.

I shined my flashlight at the raccoon and grimiced at it. He, or she, didn't care. It was as if the raccoon knew it was 12:15am and raising the alarm in a tightly packed campground wasn't really an option. After enough gesticulation, the raccoon finally decided to move on and scurried up a tree and disappeared into the canopy. I retreived the light and ravaged container of oats and put them both in the car for safe keeping.

The next morning, we had a delightful breakfast; the oats we ate in the morning had been soaked overnight, and weren't impacted by the raccoon incident the night before. After breakfast we started our first activity: fishing on the park's namesake river: Hillsborough River.

Fishing started off promising enough. We found a nice open area where I coudld safely teach the kids how to cast. All three kids picked up the skill quickly enough. The bottom of the river was absolutely packed with fish, just chilling. I believe these may be South American Armored Catfish that were first noted in the river in the 1990's. There were heaps of them, all just minding their own business.

After about 20 minutes of fishing, I got the sense this wasn't going to be our day. The catfish, as I expected, were completely uninterested in the nightcrawlers we were using. More surprising, the usual bluegill and sunfish where nowhere to be found. Even more problematic, the uber-cheap Zebco Slingshot Rod and Reels were failing us. The rod and reels themselves were actually OK, but the line they came spooled with was absolute garbage. In hindsight, this should have been expected. The problem with the low-grade line was that it would constantly tangle. The kids would cast a couple of times and then reel in a birds nest, which I'd have to cut out and retie their tackle. This would have tested the patience of even the most exerienced angler; these kids didn't stand a chance.

We hiked up the river a bit and tried a few different spots, but it was definitely not our day. The sweltering heat and humidity didn't help anyone's mood, either.

After lunch, we decided to try another activity in the park: we rented a canoe for the girls and a kayak for D and myself. If we couldn't fish Hillsborough River, at least we could boat it.

As we started our floating adventure, the attendant grabbed a canoe for Shira and the girls and dragged it into the water. T would sit up front and it was her job to be the first of all us to step into the seemingly unstable watercraft. She paused for a moment, and then gathered her courage and climbed in. I was proud of her for fearlessly stepping into the unknown. In short order, G was in the canoe, followed by Shira. They were off. D was up front in our kayak and I was in back. This was D's first time in a kayak and he quickly picked up the basics. He did manage to shovel a bunch of water into the boat, and in no time at all I was sitting in 3 inches of water. But, in hot the conditions, this felt good.

We cruised down the river, taking in the scenery, avoiding obstacles, watching the plentiful fish and calling out turtle and bird sightings. Most of all though, we kept our eyes peeled for gators. This being Florida, the river did not dissapoint. We saw aligators of every shape and size; from baby gators swimming in the water, to big guys warming on the shore, to ominous eyes pearing at us from just above the surface. It was awesome. I thought for sure the kids were going to be scared paddling alongside these powerful predators. But, they were fine with it. We all thoroughly enjoyed our trip on the river, and the kids got stories to take back to their parents about near misses with hungry gators.

After the boating, D and I did a bit more fishing and caught some tiny ones. D's got the perfect fisherman's attitude: give me just one more cast; all I need is one more cast to land my dream fish. 15 casts later, we're still just one cast away from leaving.

When we finally finished fishing, we made our way back to the campsite for a delicious quesadilla dinner. After dinner, the weather caught up to us and it started to rain. I quickly tore down camp, while Shira and the kids huddled in the car. I tried to explain to the kids that with their raingear, they could come outside and enjoy the campground. They weren't having it. Instead, they were enjoying playing cards in the car. G explained to me that it was I who was missing out, not them. Earlier in the day we had passed the large canvas tents that people rented to go Glamping. G, now explained to me, that they were Caramping, and that the real fun was out of the rain. I suppose they had a point. I joined them and we played Ship, Captain Crew and 98. It was a soggy end to our camping trip, but we were together and having fun, so that's all I can ask for.

After the sun went down, we headed back to Tampa proper and dropped off three very, very dirty children.

Shira and I weren't especially blown away by Hillsborough River State Park. The pool is currently under construction, and the nearby historic fort is closed as well. So taking both those off our list of activities didn't help. And the fact that a number of the trails were relatively far from the campground, so they weren't especially accessible to us (who wanted to walk, and not drive on Shabbat) also didn't make this an ideal park. However, the time on the river was a blast and a day spent in the outdoors is a win from my perspective. I'd be up for camping again, though we'll probably try a different park.

Tuesday, May 30, 2023

Tampa Adventure: Day 1

[Composed: 5/19/2023]

Surely we confused the gate agent checking us into our flight this morning. We were schlepping four bags for a weekend trip to Tampa, Florida. Who does that?

While one bag contained clothes for the weekend, the other three contained camping supplies. Our plan was to overnight with our nieces and nephew in the nearby Hillsborough River State Park. We figured that sleeping overnight at the campground on Friday, and spending all day Saturday playing in the park would make for a fun adventure. Sure, it meant bringing 2 tents, 6 sleeping bags and countless other bits of gear across the country, but it was so going to be worth it.

Our flight was among the smoothest we could remember, and we thoroughly enjoyed lunch at our go to Vietnamese spot: Thịnh An Kitchen & Tofu. Our trip to Walmart to pick up fuel and Frog Toggs rain gear was effortless, as was the trip to Publix to pick up food for the weekend. You can find our gear and food list here if you're curious what it takes to power a camping trip like this.

Because after school activities caused the kids to get out relatively late in the day, Shira and I zipped over to the campground to set up tents and prepare the site. We then went back to my Brother and Sister-in-Law's home to pick up the kids and finally start our adventure.

Once we had the kids, we had to make two more stops: one to pick up Kosher marshmallows and the other to pick up large wooden skewers to cook hotdogs and marshmallows on. It was touch and go there for a moment as to whether we would find both of these items, but ultimately, we did. Whew.

With camp basically set up, we jumped right into starting dinner when we arrived and the kids all helped. This was G's first time camping, so she was especially excited to cook over an open fire and sleep in a tent. The kids navigated dinner well and before we knew it, it was getting dark.

I'd thought I'd been prepared for camp life in the dark, but my plans quickly went off the rails. I'd arranged for each of the kids to have their own headlamp, two of which were apparently not fully charged and died. And, I'd neglected to set up any sort of site-wide lighting. This is normal for backpacking, but I'd forgotten how handy it is when car camping to have lighting that covers more than individual flashlights.

We solved the first problem by recharging the dead headlamps in the car. This had the kids back in business in about 30 minutes. While recharging them was smart, the fact that we did it in our car shows just how much of car camping newbies we are. The site included electricity, yet it never occurred to us to actually use it.

The second challenge I solved with a bit of duct tape. The USB rechargeable pump we use to inflate our air mattresses includes a built in light. I taped the light to the tip of a marshmallow roasting stick, and then taped the stick to our container of oats. The result was an improvised lantern which did an impressive job of both lighting our site as well serving as a beacon for the kids to return to after hitting the bathroom.

While Shira took D and G to the bathroom to brush their teeth, T and I were hanging out back at camp. We heard a rustling sound nearby, and I assumed it was a squirrel. I shined my flashlight in the direction of the noise, and sure enough, it was an armadillo. That's not a typical camp visitor for us in Virginia. I was worried T might not love seeing critters just a few feet from where she and the other kids were sleeping, but she was nonplussed by the whole thing. She thought the armadillo was cute and that was about it.

After regaling the other kids with our run in with 'army' it was time to call it a night. Shira suggested the kids sleep in one tent and we sleep in another. I thought for sure they would be too skittish for this arrangement. But I was wrong: the kids took to their tent and in relatively short order, they were asleep.

After doing some final cleanup, we too climbed into our tent. We were exhausted from a long day, but it had totally been worth it. I wasn't sure what tomorrow was going to bring, but we'd done it: we'd dragged the kids camping and fun was being had. Whoo!

Thursday, May 25, 2023

Overnight Steel Cut Oats: Quick Prep, Easy Cleanup, Tasty Results

When we travel with our nieces and nephew, one of our go to breakfast staples are steel cut oats. D. is diabetic, and steel cut oats are a high quality carb for him to start the day with. The rest of the kids also benefit from their don't-spike-your-blood-sugar quality.

The problem with steel cut oats is that they have a relatively long cook time. One work around we've experimented with is to prepare them in our rice cooker. This technically works: the oats take a few minutes to prepare and cook while we sleep. In the morning we wake to warm, fully cooked oats. Unfortunately, this approach ends up overflowing our rice cooker which means there's a mess to clean up. Also, when we travel I'd rather not have schlep a rice cooker.

Asking YouTube for ideas turned up this video: Overnight Steel Cut Oatmeal | Easy Method! The video claims that if you bring a pot of water to boil, turn off the stove, add oats, put the pot's cover back on and leave it overnight the following morning the oats will be fully cooked. This seemed too good to be true, but was definitely worth a try. The video recommends a ratio of 4:1 for water to oats. So here's what 3 servings of oats (.75C) look like after being added to 3 cups of boiling water:

Look at how much water there is; that's never going to work. Right?

After letting the hot pot sit on the stove over night, here was the result:

It's a bit watery, but the oats are totally cooked. The method works! Unlike our overnight rice cooker experiment, there's no overflowing mess to clean up.

Fresh off this win, I thought I'd try a variant on this experiment. I added one serving of oats to a Tupperware container, and used our tea kettle to make hot, but not quite boiling water. I then added 1C of hot water to the Tupperware and and covered it. My hope was that I'd have a single serving of oats ready in the morning. Here was the before pic:

And here was the after pic. Yeah, this was a fail.

The oats were essentially uncooked in the morning. This makes sense, as hot water being poured into a room temperature plastic container isn't going to be remain hot as long  as a Pyrex container that's been brought to a boil.

This past weekend we field tested this method while on a camping trip with the kids. We boiled 2.85C of water in our Sea to Summit X-Pot, added 4 servings (1C) of steel cut oats and went to sleep. In the morning we had perfectly cooked oats. We warmed the oats on the stove in the stove, added some berries, and breakfast was a hit.

This is indeed the 'Easy Method!'

Thursday, May 18, 2023

Getting YouTube, WordPress and Mailchimp to All Play Nice Together

Our shul is making its way through the Counting of the Omer using our Omer Learning project. I've set this virtual program up so that nightly a new WordPress post is published that mentions the count of the Omer and includes a bit of community contributed wisdom. A few minutes after the post is published, Mailchimp queries our website's XML feed and sends out an e-mail with the recently published content. This has been working smoothly and allows me to schedule content weeks in advance, yet emails trickle out nightly.

Two nights ago we published the 41st day of the Omer by sending out this email:

A keen eyed congregant noticed a problem (thanks Howard!): the YouTube link mentioned in the submission is missing. Oy vey.

At first, I assumed this was operator error: when I set up this submission I probably neglected to include the link. But, looking at the 41st day of the Omer on our website, I see the video just fine:

Once I saw the video expanded in the page, I realized what was going on. WordPress noticed that I had included a YouTube link in the post content:

It then expanded this simple URL into an <iframe> embed. This is generally a good thing. But it included that same <iframe> embed in the XML feed that Mailchimp crawls. Mailchimp, operating in the world of HTML e-mail, was quick to strip out the <iframe>, and in doing so, chuck the YouTube video from the message.

I now understood what was going on, but how could I stop it?

One possibility was to make the YouTube URL less attractive to WordPress. If I changed it from https://youtube/... to just youtube/..., WordPress wouldn't expand it into an <iframe>. But, users on the website would no longer have quick access to the video. Besides, the <iframe> embed approach looks quite nice on the website.

I realized what I wanted to do was tweak the post content as it was generated for the XML feed. This being WordPress, I hoped there was a hook I could tap into to do this. Sure enough, there is: the_content_feed. Once I figured out the strategy and hook to use, implementing a filter that turned <iframe> embeds into simple links was easy enough to code. I put the following in functions.php in our WordPress theme:

add_filter('the_content_feed', function($content) {
  $content = preg_replace('|<iframe.*https://www.youtube.com/embed/(.*?)[?].*></iframe>|', 
                          '<a href="https://youtu.be/1ydMv8nNKhM/$1">https://youtu.be/$1</a>', 
                          $content);
  return $content;
});

Last night's Omer Learning once again included YouTube links. On the website, they expanded to playable videos:

In the feed, these <iframe>'s were turned into simple links:

In the e-mail that was sent out, the YouTube links came through nice and clear:

Problem solved! This is such a classic WordPress gotcha: it's mystery behavior that can be fixed with just a few lines of code. You have to both love and hate WordPress for this.

Tuesday, May 16, 2023

10 Things I Learned from A Reunion, Fam Time and 18 Hours of Driving

This past weekend, we hit up Shira's college reunion at the University of Pennsylvania. As we were leaving town, we got word that Shira's Mom had a health emergency, and so we decided to detour to Rochester on our way home to spend some time with her. All told, we completed an 825 mile driving circuit. Shira, to her credit, drove the entire way.

The reunion was great, and it was fun catching up with Shira's college buddies. We saw my Brother, Sister-in-Law and Niece on Saturday night, which was delightful. Shira's Mom is stable after going through a serious procedure. And last night, Shira and I both thoroughly enjoyed sleeping in our own bed.

Here's 10 things I learned from this whirlwind weekend:

  1. Do not mess with Taylor Swift. The drive from DC to Philly is usually a sub-3 hour affair. As I type this Google tells me that I can be to Philadelphia in 2 hours and 40 minutes. It took us *6 hours* to get to the City of Brotherly Love last Friday. Six. Hours. Why? Was it a national holiday? A national emergency? Nope, as far as we can tell the traffic was the result of Taylor Swift playing 3 shows in Philadelphia. Amazing.
  2. The Massaman & Roti at Chatayee Thai is heavenly. We've already deciced that we'll hit up Chatayee Thai on our next visit to Philly; their vegan menu is just too tasty to resist.
  3. Mochi Donuts live up to the hype. Apparently, Mochi Donuts are on trend right now, and the one we picked up from a local Paris Baguette explains why. Yum!
  4. Pennsylvaia has a 'Use it or lose it' law. OK, that may be an exaggeration, but it's sort of true. For the first time in all our visits to Pennsylavnia, we noticed the oddly worded and placed plaques on the ground that read 'space within these lines not dedicated.' They are there to ensure the property owner doesn't accidentally give up their rights to a section of their property.
  5. The Penn Fine Arts Library was at one point considered an architectural embarrasment. While on campus for Shira's reunion we stepped into the Fisher Fine Arts Library and I was blown away. It's a unique space that makes you feel like you're stepping into a different age. It would have been a fun space to study in. And yet, shortly after it was completed in 1891, new University leadership considered the library's appearance to be an embarrasment and considered 'cloaking it' with another design. Thankfully that didn't happen. It's now a beloved building on campus.
  6. My niece's name is carved in stone. I knew that my niece had earned an 'Examplar of Excellence' award while attending Drexel. But this weekend, while kibitzing with her, I learned that along with the award, she also got a brick etched with her name on it on campus. Next reunion, we'll have to detour from the Penn campus over to Drexel so I can see her brick in person. I'm proud of you, M!
  7. If you have a craving for a Hebrew National Hot Dog at 9:00am on a Sunday, Reading Terminal Market has you covered. Shira enjoyed her breakfast hot dog. The pupusas and hot chocolate I ordered from El Merkury were outstanding.
  8. The Pennsylvania Railroad Suburban Station has 'suburban' in its name because trains arrived there from the suburbs. As explained:
    Broad Street Suburban Station opened at 16th Street and Pennsylvania Boulevard on Sept. 28, 1930.

    It was the city’s terminus for suburban electric trains operated by Pennsylvania Railroad. Instead of being named for where the trains ended up, it was named for where the trains arrived from.
  9. Checking 'the available for pick up' option at target.com is a great way to optimize emergency gear pick up on the road. While I had my laptop with me this trip, I found myself heading to Rochester with both a low battery and no car-friendly inverter to charge my laptop while driving. An easy solution was to duck off the highway and pick up such an inverter. But, should we stop at Walmart, Target or Best Buy? And which location would have just the item I was looking for? We guessed that a random Target would have what I needed, and they did (whoo!). I realized as we drove up to the store that I could have used the 'available for pickup' option to take the guess work out of the entire process.
  10. Our car is suprisingly chill about running out of gas. Leaving Rochester, after a long day of driving and emotional stop in Rochester, our minds were apparently not on our gas guage. At one point, I looked over and asked Shira: why is the car nudging us to put fuel in our tank? Fortunately, at the moment we noticed we were on E, there was an exit which took us to a gas station in short order. Our Mazda CX-5 starts chiming if you don't immediately get your seatbelt on while turning the vehicle on. And yet, it's chill about running out of gas.