Given its size and proximity to a main road, I figured I'd quickly
identify it. But alas, trawling through Google Maps, chatting with
ChatGPT and searching along FlightAware flight paths turned up
nothing.
At first, I was like, "that's close Dad, but that can't be it. My
photo includes a sort of racetrack type structure in the
foreground, and I don't see that in the image."
To which he replied, and I'm paraphrasing here: zoom out.
Whoa!
The "racetrack" was in fact
the Maryland
State Fair Grounds and was an exact match for the feature I was
looking at.
He'd done it! He'd solved the mystery! Thanks, Dad!
When I asked him how he did it, he explained that he asked Gemini
for a "list of quarries that can be seen from a plane on a flight
from DCA to LGA" and then ran them down in Google Maps. Inspired by
his effort, I tried again with Gemini.
I tried the prompt: "I took this photo
on a flight from LGA to DCA. It appears to be a quarry. Any idea
which quarry it is?" The first time I asked, I got a
false
positive. Trying again with the exact same image and prompt
found
it!
I can't believe the answer was there all along, I just had to know
how to ask. I suppose this is the quintessential challenge when
working with AI: knowing how to ask.
With the quarry identified, I was curious: (a) where did it get its
name from, and (b) is it significant?
The name, Martin Marietta - Texas Quarry is easy to
unpack. The quarry is currently owned by the company
Martin
Marietta. The "Texas Quarry" part comes from the fact that it's
located
in a Maryland village that used to be known as Texas. This
location name has been in use since at least
1847.
Three different kinds of marble were used in the construction of the
Washington Monument, which was delayed by several problems. ...
The first 152 feet of the monument, built between 1848 and 1854,
is faced with marble from Texas, Md. Work stopped when funds
ran out.
That sounds like my quarry, or at least one in the vicinity.
Another hint to the significance of this area, is this
article
published in 1874. It provides extensive details about the
"Beaverdam Quarry", explaining that it was also known as the
Cockeysville Quarries. The article proudly notes that
"the National Capitol was built of marble from this
quarry." It specifically calls out the "post-office building of Washington
was also constructed of the same material."
Not only is
the Texas
Quarry located in Cockeysville, MD, but Beaverdam Road runs
adjacent to the property. So while I can't say for sure the article
is talking about the same quarry I photographed, it certainly seems
to be in the same neighborhood.
This is part 3 of a 3 part series on building an enhanced
notification system when I have an unread urgent email.
Part
1 describes the problem and
Part
2 describes the server side code needed to power my
solution. Part 3 implements the visual alert by having my phone
react to messages sent by the server. Let's jump in.
Tasker, combined with AutoRemote, provides an elegant solution for
responding to the inbox status messages that
the server
is issuing. Two short Tasks, and two short Profiles is all it takes
to turn these messages into a hard-to-miss visual alert.
The main task is: SetInboxStatus; here's how it works:
%new_status is provided via a parameter to the Task. If
the new status is unknown then the Task quits. In this
case, we can't make any assumptions about what the status of my
inbox is.
Otherwise, the task checks to see if %new_status matches
the existing globally set status %INBOX_STATUS. If it does
not, then we know we're dealing with a status-change. In this
case, I invoke the SetWallpaper action with an image path
that includes %new_status.
In other words, if the old status was ok and the new status
is wife, then I set the wallpaper of my phone
to: /storage/emulated/0/Tasker/images/inbox_status/wife.jpg.
Regardless of whether the status has changed, I note the time the
status was set in %INBOX_STATUS_LAST_SET. That will come in
handy in checking to see if it's been too long since my last status
update.
The if condition in SetInboxStatus ensures that
the phone only sets the background, a relatively expensive
operation, if there's a change. This makes it safe to
call SetInboxStatus with a non-changing status as often as
the system wants.
The next Task is InboxStatus Watchdog. This task keeps an
eye on %INBOX_STATUS_LAST_SET.
This value
minus %TIMES is the number of seconds that have passed
since a status was set. If this value gets to be larger than
1230 seconds (20.5 minutes), then it kicks in and sets
the %INBOX_STATUS and background to unknown.
Next up, these Tasks need to be called by Tasker. This happens
through two different Profiles.
The first profile depends on AutoRemote and looks for
incoming messages with the regular
expression ^SetInboxStatus.
There's a single action associated with this profile: run the
task SetInboxStatus with the first parameter set
to %arcomm. %arcomm is a magic variable that will
be set to the right-hand side of the delimited message sent via
AutoRemote. The server
is sending messages in the
format: SetInboxStatus=:=wife. In this
case, %arcomm would be set to wife.
The watchdog profile is even simpler: it's set up as a Time
profile that runs from 12am to 11:50pm and repeats every 5
minutes. Every time this profile runs, it invokes the
task InboxStatus Watchdog.
All that remains is select the appropriate images for the different
statuses. For the ok status I choose a
standard background image. For the other status, I've asked
Gemini for
an assist, and created alert specific images.
When all is OK, my phone's home screen looks like so:
With an urgent message in my inbox, the background changes to:
The lock screen is also updated:
With nearly any interaction with my phone, an urgent alert will be
painfully obvious.
I've had this system running for a little over a week now, including
while we were on vacation in Hawai'i. While I have yet to receive an
actual urgent message (hurray!), I did have the
unknown status kick in when we were
hiking in remote areas and my phone had no signal. When we
returned to
civilization, the ok status background would kick
in. This gave me a delightful sense of assurance that even if I
wasn't closely watching my email, a script I developed was.
You can grab the Tasker code for all of the above
here. I'd
still love to cook up
a hardware
based solution, but in the meantime, this Google API,
AutoRemote, Tasker solution is working exceptionally well. You should give it
a try!
I want my
phone's background
to automatically update to a dramatic looking image when there's an
urgent email in my inbox. To implement this, I need to scan my Gmail
inbox for such a message and report this to my phone. I've
implemented this behavior using a bit of shell scripting on a
nano-sized AWS Linux server.
I can access my inbox via
the Gmail
API. Years ago, I
wrote gmail_tool
to manage an overrun Gmail inbox from the command line. I recently
implemented a cleaned up version of this script,
as gmailassist.
gmailassist lets me run a search for matching Gmail
threads. Consider this search of my SPAM folder:
$ gmailassist -p i2x -a threads -q 'label:spam' | head -3
19baeee1f181be4b|沉默。 娘亲看起来好难过,姐姐也闷闷不乐的,可是为什么祖母跟别人都笑得这么开心涅。 “笑儿,娘舍不得你。”回屋的路上,连翘终是忍不住落下泪来,如果是京中那还好些,偏偏要去无双辣那么远的地方,不""知谷那无双云爷是什么样的人,会不会对笑儿好,嫁过去之后笑儿会不会受欺负。 越想,连翘心里越是难过,仿风已久可以看见慕容笑笑以后悲惨的生活。 “煮母,小姐受媓上赐婚,是件无上荣耀的事情,
19ba891f8fae60ae|Standard Capital Can Help Apply for a Term Loan Now As a small business owner, you understand that having access to flexible and affordable funding is essential for your success. Standard Capital is
19ba3a0df841439c|Confirmation for your recent purchase is attached,. 2026-01-10-Call Our Helpline: +1(983) 220-2512
With this command line tool in place, it's straightforward to
generate a single 'inbox-status'. Here's the current logic for doing
so:
checks="work_urgent|work|label:inbox_label:unread_subject:urgent"
checks="$checks personal_urgent|personal|label:inbox_label:unread_subject:urgent_category:primary"
checks="$checks wife|personal|label:inbox_label:unread_from:wife@gmail.com"
checks="$checks ok|work|ben" # [A]
now=$(date +%Y-%m-%d)
for check in $checks ; do
status=$(echo $check | cut -d'|' -f1)
profile=$(echo $check | cut -d'|' -f2)
query=$(echo $check | cut -d'|' -f3 | tr '_' ' ')
gmailassist -a threads -q "$query" -p $profile > $TMP/inbox-status.hits
hits=$(cat $TMP/inbox-status.hits | wc -l)
if [ "$hits" -gt 0 ] ; then
echo "$now $status" >> $TMP/inbox-status.log
if [ -n "$V" ] ; then
cat $TMP/inbox-status.hits
else
echo $status
fi
exit
fi
done
echo "$now unknown" >> $TMP/inbox-status.log
echo "unknown" # [B]
;;
This bit of code loops through each $checks. Each 'check'
has the format:
Status - the value that will be printed to the screen if the
Gmail search returns any rows.
Profile - the Gmail profile to search. I've set up work
and personal so I can get alerts from both my personal
and work email.
Query - The search to use against Gmail. This looks odd because
spaces are replaced with _. Other than this, however,
this is a normal Gmail search.
In the first version of inbox-status I neglected to include
the last check, [A]. I assumed that if none of the queries
returned any rows, then all must be ok. The problem is,
occasionally the API glitches. In this case, the searches return no
rows not because they are empty queries, but because the API has
failed. By setting up [A], the inbox status will only be OK
if a search actively returns rows.
[B] is also essential, it says that if none of the rows
match then the status is unknown. This will be skipped by
the phone, so that when the API is down, the results are ignored.
Finally, I added support for a -v option when querying the
inbox status. This reports the matching threads that correspond to
the status. This is useful for quickly seeing which message has
triggered the inbox status logic.
With a script to derive my inbox status, all that was left was to
deliver this information to my phone. I make use
of AutoRemote to
accomplish this.
AutoRemote is a magic service that allows information to be
delivered to an Android phone via a web request.
Every 10 minutes, my phone receives a SetInboxStatus
message with the current inbox status. Up next is to have the
phone react to this. We're almost there!
Some people find it difficult to unplug from their day job while on
vacation. Not me. When we travel, I quickly transition from work
being a primary focus to a distant memory.
This is usually a good thing, as travel is precious and I want to
make the most of it. But this is problematic, because even when I'm
away I want to
support customers
who depend on me.
The compromise that I've had in place for years is to tell my
clients that if they find themselves with a critical emergency, drop me
an e-mail with URGENT in the subject line. I then keep an
eye on my inbox, and jump on these messages as quickly as
possible. This lets me leave the rest of the messages in my inbox to
pile up.
What's nagged at me, however, is that my system requires me to
monitor my email. This is less than ideal for everyone.
I'd like to be able to stop checking email
altogether, and my customers would benefit from a system that is not
susceptible to human error.
Essentially, I've set up
a bat
signal,
now I need to write some code to alert me if it's lit
up.
The Fun Solution
My first thought was to build some wearable tech,
perhaps a
pendant
that would serve to announce the presence of an urgent message. The
jewelry would be delightfully simple, signaling state by glowing in
one of three colors. Green means all is good, yellow means that I've
lost connection to the status-checking service and red means that I
have an urgent issue.
While primitive, this color based UX would let me fully unplug, yet
react quickly if there was a problem.
The tech to build such a device is inexpensive and readily
available. What I'm after is little more than
a bluetooth
compatible micro controller,
a grid of
LEDs and some odds and ends to tie them together. This can be
simplified even further, if I used a platform like the
Circuit
Playground Bluefruit, which has both Bluetooth and LEDs built
in.
But alas, there are a number of demerits with a hardware based
approach. In my mind's eye, the pendant is compact and
smart-looking. Yet, the project will start its life as a series of
raw components and a heap of wires. Turning this jumble of components into a
compact and comfortable to wear piece of jewelry is non-trivial to
say the least.
There's also the question of battery life: how big a battery do I
need, and how can I camouflage it and make it comfortable to wear?
If I did manage to produce my magical pendant, would I be happy to
have another piece of tech to bring on travel? That's more hardware
to keep track of, charge and generally debug. Will it be worth the hassle?
And finally, the software to power the pendant is broken into
three stages. First, there's code that runs on a server to determine
the status of my inbox. That code will send a message to my
phone. Next, my phone will process this message, and forward it to
the pendant via Bluetooth. Finally, the pendant's microcontroller will convert
the message from the phone into a glowing LED.
A far more practical phone based solution calls for precisely these
first two steps. So, the smart play is to build a phone version of
my bat-signal detector first, as I'll need to write this code
anyway. In the future, I can opt to add hardware to display this
status in a novel way.
So yeah, while it's incredibly tempting to take the hardware based
approach, the
ideal MVP
should rely on the hardware I already own and carry everywhere: my
phone.
The Tasker Solution
While a custom hardware solution is sexy, an Android Tasker based
solution should be easy. My plan is this: on a Linux server, use the
Gmail API to determine whether I have an unread message in my inbox
with the word URGENT in the subject line. If so, then my
inbox status is urgent, otherwise, I'll consider the status
as ok.
Next, I'll send this status as a message to my phone
using AutoRemote.
AutoRemote is an amazing service that delivers messages to any phone
from any system with a web request. In the case of a Linux server,
this can be accomplished with a curl command.
On my phone, I'll use Tasker to react to the AutoRemote message. Specifically,
I'll map the status message into a background image and then
call SetWallpaper
to make this new image my background.
In short, a customer will email me with an urgent message, and in
short order my phone's background will change to something attention
grabbing. That means I don't need to check my email, I just need to
interact with my phone, which of course, I do throughout the day.
If all goes well, in less time than it would take to figure out what
hardware I need to buy to build the wearable, the entire project can
be completed.
Last week I updated the packages that power my local emacs config by running:
M-x package-refresh-contents
M-x list-packages
U
x
While I'm sure I picked up many helpful updates, the
oauth2
update was problematic: it contained changes that
broke my blogging
package: hbo-blogger.el.
hbo-blogger.el
was written years ago and its use of
specific oauth2 functions
like oauth2-url-retrieve-synchronously was a poor design
decision in the first place.
I've since
updated this package
so that it not only works with the
latest oauth2.el,
but it also makes use of the standard url-retrieve function.
If you're looking for an example of using oauth2.el or a
comically simple Blogger interface, you should check out the
latest
code.
Absence Makes the Heart Grow Fonder
During the stretch that hbo-blogger.el was broken, I
switched back to editing content within Blogger.com's web
interface. While this was functional, it definitely made me
appreciate the value of writing within emacs.
Reflecting on this, I appreciated that first and foremost, I missed
emacs' core editing capabilities: the keyboard
shortcuts, html-mode's ability to complete tags, the
ability to access previously copied items to the clipboard, on
demand access to the spell checker, and hundreds of other small
details that have become second nature from using emacs for 30+ years.
I also missed having access to
my project-notes
package. This tiny add-on lets me effortlessly jump from the draft
of my writing to a scratch pad and back with a single
keystroke. This lets me switch from writing to research
mode and back with zero friction.
And finally, I
missed gptel, which
provides brilliant emacs integration with an LLM AI of your choice. This lets me do
research
and proofreading within emacs with zero distractions.
A couple of years ago we found the pefect answer to one of my parent's
FAQs: what can we get you guys for your anniversary? The answer:
lounge access at the airport. This is the perfect gift
because every time we take advantage of it, it feels like an
absolute luxury.
And so today, as we flew from La'Guardia to DC, our first stop after security was
the lounge, where we got to eat, drink and reflect on
how amazing the last couple of days have been. Thanks Mom and Dad!
The lounge also delivered in terms of practicality. Shira and
I needed to join a foster parenting related video call. Doing so in
one of the lounge's mini-private meeting rooms was ideal, as convo
could remain private. The fact that I could nosh on little
pastries and drink tea while the meeting was going on was
a nice bonus.
A Mid Air Mystery
Our flight back to DC was easy and the scenery gorgeous. I snapped some pics of what appeared to be an unexpected site in the area: pit mine or quarry. But for the life of me, I can't identify it.
I tried
busting out my innner Sherlock Holmes, but every lead I chased down was a dead end. I checked Flight Aware to analyze our flight path, tried Googling landmarks that appeared in the photo and did a bit of timestamp math to determine where on our trip the photo was captured. Of course, I asked ChatGPT for help, but in this case, it told me to try the things I was already trying. How can such a disctinct location from above be invisible on the ground? On our next flight home from LGA, I'll keep my eyes peeled and the GPS Test app ready to grab a set of coordinates. This site can't hide forever.
A Little Less Tennis?
For the second year in a row, we visited the tournament on Tuesday and Wednesday, versus coming for the middle weekend. We did this last year out of neccessity, and this year because we liked the larger match selection the earlier days offer. Compared to last year, however, there was slighty less tennis going on. That's because for the first time in the Open era, the US Open started on Sunday and not Monday. Some players seem quick to point to this move as a way for the tourament to make more money. However, I have to imagine that spreading the tournament out over an extra day means that rain delays and other glitches don't quite pile up into the into scheduling nightmares; like they seem to do every year.
So while there was something special about having an impossible amount of tennis to watch on Tuesday, with matches going deep into the night, the extra day did seem to make the schedule more consumable. I have to imagine that's a good thing for the tournament.
Goodbye T6s, Hello JJ02 and OpenCamera
This year my US Open gear remained nearly unchanged in all but one department: my camera gear. In a major break of tradition, I left my Canon T6s DSLR with 300mm lens at home. The fact is, the aging DSLR just can't compete with the quality and convenience of my Galaxy S22 cell phone. I considered using this as an opportunity to slurge and pick up a new, probably mirror less camera. While I could no doubt get a camera that would outperform my cell phone, I can't justify the cost and bulk of such a setup. Whatever I'd gain in image quality, auto-focus speed and shots per second, I'd lose in portability. My goal is ultimately to capture the story of the Open, and my cell phone lets me do this more than well enough.
Still, I couldn't resist using the Open as a proving grounds for two new photography add-ons: one hardware, one software.
On the hardware side, I brought along a ULANZI JJ02. This is combination tripod, selfie-stick, bluetooth trigger and camera grip all in a fist-sized package. The JJ02, like most multi-purpose tools, doesn't fully excel in any one area. All the features work, but all have limitations that a dedicated item wouldn't have. For example, the tripod can has only the most basic adjustment options and the Bluetooth trigger isn't USB rechargable. Yet, the sheer portability and functionality of the JJ02 makes it a winner. The tournament forbids tripods and selfie-sticks, yet I had no problem bringing it through security. When we wanted to grab a group shot, the Ulanzi was quick to set up, use and tear down. I took well over 1,700 photos during the tournament and the grip definitely made the camera more comfortable to use. So yeah, the JJ02 may be a compromise, but on the balance, it's a winner.
On the software side, I experimented with using Open Camera. Conventional wisdom is that no 3rd party app can beat the phone's built in camera. That's because the built in camera has access to features that aren't available to 3rd party apps. And for everyday use, I find this to be true. Yet, Open Camera does have a number of advantages that made it shine during the Open. The repeat option let me capture sequences of images with ease. I was also able to select Focus Continous Picture, so that the camera refocused on each shot. Combining these features let consistently snap action sequences.
Other cool features that Open Camera offers includes exposure and focus bracketing, focus peeking, alternative implementations of HDR and NR modes, and impressive control over things like file naming and image metadata.
The user experience of OpenCamera is far less sexy than the built in photo app. Yet, it brings a degree of consistency which is much appreciated. Most importantly, the apps settings are truly sticky. If I carefully input a series of settings, they aren't lost, as often seems to happen with Pro mode in the stock camera.
For day to day snapshots, the S22's default camera is amazing. But for specialized tasks, Open Camera is an excellent tool to have in the toolkit.
We had a delightful walk to the US Open grounds this morning, with
the weather cooperating and a seemingly endless stream of graffiti and
sticker art for me to ooh and ahh at.
Security at the Open this morning was notably tighter than
yesterday. Despite having less metal on me (opting to leave an
extra power bank at the hotel), the metal detectors flagged my
bag. I'm not sure if yesterday's settings were too relaxed, or if it
was always planned to make the machines more sensitive as the
tournament progressed. Either way, I was glad to open my bag and
show off all the baked goods I was bringing into the stadium. I
ultimately got through without incident.
We spent some time scurrying around the grounds before the first
match. Along with picking up some freebies (thanks, Fage! The yogurt
was delish), we stepped into the main gift shop to purchase a game
ball. This is a tennis ball that was used on court for a period of
time,
typically 7
games. While the balls lack specifics of which match it was
from, they are often scuffed up
in interesting ways that suggest they are legit. This makes each of them
unique. Because balls are changed out so frequently, a match
can rack up quite a few. So while each ball is unique,
they aren't in short supply. Apparently, the Open uses between
70,000
and 100,000
balls for the entire tournament! We've got a collection of game
balls going back to 2018, and while I'm not usually a fan of
accumulating tchotchkes, these do make me smile every time I look at
them.
We started the day in Grandstand and had pretty much perfect seats:
in the shade and positioned right behind the ends. It was going
to be a good day!
Let's Tennis!
Our first match of the day
was Andrey
Rublev vs. Tristan Boyer. Rublev got off to a strong start, taking
the first two sets 6-3, 6-3. This looked to be a
continuation of yesterday's upset-free day.
To Boyer's credit, he didn't give up. In the
third set, he kept fighting and was ultimately victorious in the
tiebreak. He battled hard in the fourth set, almost taking
it. Rublev came out on top, but the young American distinguished
himself as one to keep an eye on.
During Rublev's match, I loved watching two older, obviously local
New Yorkers make their way through a paper copy of the New York
Times.
There was something timeless about the scene, which almost certainly
has been playing out on these grounds since they opened back in the late 1970s.
While Rublev and Boyer were making bold choices on
court, these two gentlemen were doing the same by working on the New York
Times Crossword in pen. Such chutzpah!
From Boyer, we made our way to Arthur Ashe to watch
Jannik
Sinner take on Alexei Popyrin. Ranked 40 in the world, Popyrin
had promise to at least push Sinner. Alas, it wasn't Popyrin's day:
Sinner steamrolled over him. At 6-3,
6-2, 6-2 Popyrin never gained any momentum. Sinner looked great and
is an obvious candidate to take the whole tournament.
Walking out of the half-full, subdued Arthur Ashe stadium, we found
the grounds buzzing with activity. That's one of the quirks of
having such a large stadium in the mix: its mood can be completely
independent from the grounds that surround it.
Tennis At Its Best
Up next, we made our way to
the Renata
Zarazua vs. Diane Parry match. On paper, this hardly seemed like
must-watch tennis. Ranked 70 and 127 respectively, neither player
has the name recognition that top 10 players bring. Joe, however,
was confident that this was going to be the match to watch.
Zarazua
had just upset #6 ranked, Madison Keys,
and is a beloved player in her home country of
Mexico.
We took our seats just a few rows back from the court, and in no
time the place was packed. If you squint, you can see us in this photo:
Zarazua got off to a slow start, losing the first set 2-6. But she
didn't waver and took the second set 6-2. Both players brought
their A-game for the third set, with the contest being decided in a
tiebreak. Ultimately, Parry came out on top, but it was an absolute
nail biter to the end.
While the competitive matchup and close-in seats helped, it was
clearly the energy of the crowd that made this a highlight match of
the Open. With every seat and then some occupied, the rowdy crowd
made the experience feel more like a (I'm guessing very tame)
football match rather than a tennis match.
Joe, who's a dedicated Spanish Duolingo user, translated the crowd's
Spanish chants and shouts for me. "What'd they say?" I'd ask after hearing
an outburst. "Yes, we can!" he'd explain. Or "don't call
immigration!" "What are they saying now?" I asked later in the match.
Joe shook his head, uh, they're just saying her name, Zarazua. OK, maybe that last
one I should have been able to figure out myself.
By the time the match had entered the tiebreak, the crowd was
euphoric at every Zarazua point. The tiebreak had the
energy of a final, with the tug of war between the players making
for must-watch tennis.
The most remarkable scene in the match came after Parry won and the two
players shook hands. Tennis protocol is that the loser leaves the
court first, often slinking away with emotion bubbling over.
But instead, despite losing the match, Zarazua's fans treated her like
Roger Federer: ecstatic just to be there and perhaps get an
autograph, selfie, or exchange a word with the player. She and Parry
both remained on court for a time signing autographs and receiving
love from fans.
The whole experience was tennis at its best. The players battled,
and Parry was the winner. But both were beloved by
their fans, and most importantly, honored for having the opportunity
to play in such a high-level tournament.
After Zarazua's match, Joe hit up the Gauff match, Shira wandered
over to watch Tsitsipas, and Sara quietly slipped off to probably do
anything but watch tennis (Sara, I feel you!). I liked the seats we
had, so I hung around, hoping that the next match,
Felix
Auger-Aliassime vs. Roman Safiullin would be as captivating as
what we just saw.
It's been some time since I'd seen Felix play, and I'd never been
this close to the action so I was wowed by the power he brought. I stayed for
part of the first set, which he ultimately took 6-1. I ended up
leaving that match to join Shira, but I left with the sense that if
Felix could keep that level up, he'd be in the running to win this tournament.
While I wasn't there to witness it, the match didn't end up being
the blowout the first set suggested. At 7-6, 7-6, Safiullin put up
one heck of a fight. He certainly held his own in a way that the
first set suggested he couldn't.
Tennis At Its Most Dramatic
I joined Shira at
the Stefanos
Tsitsipas vs. Daniel Altmaier match that she promised was going
to be worthy of our time. While Tsitsipas had lost the first set in
the tiebreak, the fact that he took the second set 1-6 surely meant
that he was going to finish this match off with ease. Altmaier,
however, had other plans for the evening.
Shira was right to pick this match to watch. Not only was the
underdog putting up one heck of a fight, but it also contained a bit
of juicy tennis drama. Altmaier, to Tsitsipas's obvious annoyance,
served an underhand serve. This 'changeup' of tennis is a sort of
anti-power serve and is a rarity in pro tennis. Shortly after this
unexpected move, Tsitsipas hit a ball directly into
Altmaier. At the time, Tsitsipas raised his arms in
apology. However, at the net as the two shook hands, Tsitsipas
explained: "Next time, don't wonder why I hit you, okay? No, I am
just saying...if you serve underarm...". You can see the chain of
events play out in
this video.
Altmaier kept his cool, staving off a match point
and was ultimately victorious. His upset was the most significant one
we'd end up seeing this year at the Open. Well done, Daniel!
Sara and Joe joined us for the end of the Tsitsipas match, and when
it was completed, we called it a night. As we left the grounds for
the night at around 12:30 a.m., everyone agreed we'd had a
successful day at the Open.
On our way back to the hotel, a plastic buckle on Shira's bag gave
way. My Eagle Scout reflexes kicked in, and I quickly fixed her bag
using a 3-foot piece of cordage that's
quick-deploy-ready
on my keychain. Did my ego appreciate the chance to show off my
MacGyvering skills in front of the gang? I mean, it didn't not
appreciate it.
Good friends, good tennis, and looking like you know what you're
doing? I mean, c'mon, what more could I ask for?