Old Photo Sleeves, Part 1

I’ve recently been spending some time scanning and archiving the rather-large set of photographic negatives and prints, along with other materials, that I inherited from my grandparents and father. Among the more-interesting items are the sleeves that the prints and negatives were returned to the customer by the photo labs after processing. Below are a few that I’ve archived so far.

Cheetah Photo is a bit of a mystery to me…I can’t seem to find any reference to it online, but my best guess is that it was a local photo lab in East Texas as that’s where the negatives that were in this sleeve were shot (and where I grew up).


Many of you might remember Eckerd Drugs. This chain went out of business in 2007, but their photo lab was pretty popular. This sleeve seems to be from when someone ordered new prints from negatives that they already had.

Fox Photo was a chain that was probably best-known for their small photo pick-up/drop-off huts in parking lots across America:

Fox hung on, somehow, until 2001, but I assume that some locations were converted to Taco Huts:

And, as a bonus, here some Fox Photo coupons that are probably no-longer valid:


(a version of this post originally appeared on 75CentralPhotography.Com)

As many of you probably know, besides architecting/managing software development, I do photography on the side, mainly for fun/relaxation/small source of revenue to fun the hobby itself. 

For over fifteen years, I’ve shared a photo every day on 75CentralPhotography.Com. I’ve never missed a day, despite travels, work, personal things and even being sick with Covid for a couple of weeks during the earlier part of the pandemic. However, I recently decided, after much soul-searching, that I needed to step back a bit and defocus and breathe. Below is the post I shared on that site announcing my change-of-pace.



Fifteen Years. 5,511 days.

If you’ll recall, back in August, I celebrated the 15th anniversary of posting a new photo every day at 75CentralPhotography.

That’s 5,530 photos, only a small fraction of the 441,751 photos I’ve captured in that time.

Every night, I queue up a new photo for the next day, carefully combing through my Lightroom catalog for a new photo that I hope will delight, inspire and add a little joy to your day.

I started 75CentralPhotography on a whim in 2007. I’d just gotten back into the photography hobby/semi-profession after a long absence because digital SLRs had finally reached the perfect intersection of affordability/quality that made it worth pursuing. No longer constrained by the cost of film and processing, I started shooting. A lot. I’d spend Saturdays and Sundays going on “photo drives” around my home of North Texas. A quick jaunt to Hico or Fort Richardson or Marietta was a great way to spend the day and explore. I soon decided to start sharing my work with others. First on Flickr, then on my own site. I never meant to make it a daily thing, but it soon became one.

Life kept evolving. I got married. Moved a couple of times. Got a dog. Lost a dog. Got more dogs. Did a fair amount of traveling with my wife: our home state of Texas, Canada, Alaska, Nevada, Colorado, Utah, to name a few. In my professional life, I moved up the ranks and changed jobs a few times.

Photographically, I moved from Canon to Panasonic to Sony systems. The site itself moved from a homegrown ASP.Net-based CMS to WordPress (along with a rebranding).

But the constant, daily ritual of posting a new photo was always there. A single thing that I had to do. If we were traveling and I knew I’d be away for a bit, part of my pre-travel duties, beyond packing and planning, was to queue up photos for the duration of our trip. It was a like a constant buzzing in the back of my mind—something that I had to do to feel “complete”. Not unlike, I suppose, and possibly related to, the urges of Obsessive-Compulsive Disorder.

But now I’ve decided that it’s time to step back a bit. I’m not retiring (this has never been more than a serious hobby for me that brings in just enough revenue to pay for itself and a few vacations, so there’s nothing really to retire from), but I am going to start to slow things down a bit. It seems that at some point in the last few months, doing a daily photo has become more of an obligation than a hobby, and I don’t like the way that feels. I want photography to be fresh and exciting to me again.

I won’t make photography the main focus of our travels. Won’t get up early quite-so-often for the perfect sunrise over the lake. Won’t interrupt evenings spending time with my wife and our dogs to make sure I have a new photo queued up. Won’t lug around so much gear on trips.

Instead, starting next week, I’m going to begin to transition this site to more of an “occasionally-updated” state. For a while, I’m going to reduce the number of new photos from daily to at least three per week. Then maybe even less than that. Maybe I’ll eventually just share only the best on rare occasions. My hope is that this will reinvigorate my creativity and passion since it won’t feel like an obligation. Who knows? Maybe at some point in the future, I’ll start posting daily again.

The archives will, of course, stay up on the site—they’re not going anywhere. Clients can still license photos or order prints. I’m still open to commissions. You can still follow me on Twitter and Instagram, where I’ll keep posting—just not as often. And I’ll still keep taking photos—just not quite so many, but maybe more-meaningful photos.

Finally, I want to say thanks to everyone who has supported me over the last fifteen years. Beyond my family, it’s the encouragement of my followers on social media, readers/viewers of 75CentralPhotography.com, and the clients that have purchased prints or licenses over the years that have kept me going this long.

Introducing: Lightroom Preset Renamer

As you may know, besides software, I do photography. In fact, on my photoblog, I’m approaching 15 years of posting a new photo every day (as of this writing, that’s 5448 days of new photos). My main tool for managing, organizing and processing my photos is Adobe’s Lightroom (Classic), which I’ve used since version 1 when I started my “modern” photography hobby/side-business in 2007 (I’d done photography in the past, but had pretty much stopped after college as I no-longer had access to a darkroom, was too busy/poor/had other priorities/obligations for film and digital wasn’t cheap enough/good enough for what I wanted to do).

One of the key features of Lightroom is the ability to create and use presets, which apply develop settings to the selected image, adjusting exposure, color, crop, etc., without user intervention. Some photographers are adamantly against the idea of presets, as they view each photo to be processed as a clean slate that requires careful finessing of values to process. On the other end of the spectrum, you have lazy people who apply a preset without any additional work, export the photo and call it a day. However, most Lightroom users lie somewhere in the middle—using a preset as a starting point for processing an image, followed by fine-tuning it to perfection. 

I am one of the latter Lightroom users. I’ll often open a photo and scroll through my presets looking for a good starting point for the “look” I want a photo to have. Besides creating my own presets, I like to explore other people’s presets they’ve shared in the Lightoom (Cloud) or Mobile app (note that Adobe has two confusingly-named Lightroom applications…one is the professional version (Classic) that most serious photographers use and the stripped-down, amateur/mobile-focused Lightroom (Cloud) that doesn’t, in my opinion, have a place in a professional’s toolkit). In Lightroom Cloud, there’s a “Discover” section that allows you to browse shared presets and download them to use for yourself:

If you filter by “Preset downloadable”, you can scroll through the photo grid and download the preset for any photo:

Lightroom Cloud will then save it to your account and it can be used on any photo in Lightroom Cloud or Lightroom Mobile (the presets will sync to the Lightroom app on your phone).

At this point, however, you can’t use them in Classic, yet. Since the Lightroom Cloud presets don’t sync to Lightroom Classic, you have to do some work to get them there. 

(Note that the following instructions are for MacOS, but should be similar on Windows)

  1. Find your Lightroom Cloud library (~/Pictures/Lightroom Library.lrlibrary)
  2. Right click and select “Show Package Contents”
  3. In that folder, there are 4 subfolders. One has a bunch of random characters; the others are profiles, TemporaryEdits and user.
  4. Click into the random characters folder.
  5. Find the cr_settings subfolder and click into it.
  6. The .xmp files here are your presets.
  7. Copy these to where your Classic presets are stored (should be something like ~/Library/Application Support/Adobe/CameraRaw/Settings
  8. Restart Classic

Voila! Your presets should be there in the Presets pane in Lightroom Classic. The problem with this is that Adobe saves the presets to your local drive as a guid rather than a human-readable name:

If you’re like me, though, this is unacceptable. I want to be able to read the names of the presets while in Finder. So, to solve this, I built a tiny MacOS application I call Lightroom Preset Renamer. This is how I use it:

  1. Copy the .xmp preset files you found in the Lightroom Library.lrlibrary file to a temporary folder.
  2. Run the Preset Renamer application and choose this folder by clicking the “Choose Preset Folder to Process”:
  3. Once you’ve chosen the folder, it will automatically process any .xmp file in that folder, renaming it to it’s “proper name”, while preserving the original file by changing the extension to “xmp_old”:
  4. Now, copy these .xmp files to the CameraRaw/Settings folder as outlined above and then reset Classic.

A couple of notes: 

  1. This app isn’t signed, so you may need to follow the instructions here to run it. Or, if you’re adventurous and have to run unsigned apps often, you can disable Gatekeeper by following these instructions.
  2. If you’re concerned about security, you can inspect the source code and build the app yourself in Visual Studio Mac by going to this Github repository.
  3. Since this is built on .Net, I plan on building a Windows version soon…stay tuned!
  4. You can download the application at the link below:

Download the latest release here

South Texas Sunrise

We recently joined the rest of my extended family (mom, brother, his wife, their two kids and our nephew from my wife’s side of the family) for our annual-ish beach Texas beach trip. Usually, we go to Galveston, as it’s fairly-accessible from the DFW area (5-ish hour drive) and we’re familiar with it, knowing the best places to stay, things to see and restaurants to eat at. 

This time, however, we decided to go further south, to the Corpus Christi area, and stay in Port Aransas. The onus for this change of scenery was to benefit my mother, as she grew up in Corpus and hadn’t been back in probably 30 years or so and wanted to see how things had changed. 

For me, however, it was the perfect chance to try out my new PlatyPod

The PlatyPod is a flat plate with legs that you can adjust in height and a screw mount for a tripod ball head that acts like a go-anywhere and not-take-up-a-lot-of-space tripod that can be wedged into the ground with its spiked feet or set on a car hood or roof with its soft rubber feet. There are also slots where you can thread straps for attaching to poles or trees or whatever.

As I was out early one morning shooting stills of the sunrise on the Port Aransas beach, I decided to use the PlatyPod and my iPhone tripod mount to capture a time-lapse of the sunrise. Using the spiked feet, I planted the PlatyPod into the sand, attached the iPhone, switched the camera to time-lapse mode and set back to let it record.

The results are awesome, as you can see below. The PlatyPod held the iPhone rock-solid and the low perspective gives the video, in my opinion, that “little bit extra”.

Travels from Portland to San Francisco, Part 2

In my previous dispatch, I covered the first half of our recent adventure driving from Portland to San Francisco, specifically the drive from Portland to Eureka, California. In this post, we’ll wrap it up with the drive from Eureka to the Bay Area.

Day 5

On this day, we left Eureka and continued south on Highway 1 towards that night’s destination of Petaluma.

Our first destination was a drive down the Avenue of the Giants in Humboldt Redwoods State Park. This scenic drive winds through the redwood forest and is a former alignment for U.S. Highway 101.

No Ewoks to be seen!
These trees are incredibly massive!
No Ewok village up there, either!

Unless you’ve visited Northern California and have been amongst the Coast Redwoods, it’s hard to comprehend how massive they are. While hiking through the forest, when coming across a felled tree, it was often quicker and easier to climb over it rather than walking all the way around it.

The visitors center at the park has a cross-section from a tree that gives you a sense of how old these giants are:

After leaving the state park, we continued south and soon found ourselves pulled in by roadside attraction signs, in particular, the Chandelier Tree in Leggett, California. This tree is one of the few remaining that one can drive through, so we did the touristy thing, paid our admission fee and got in line to drive through.

The car in front of us going through the tree. It was a very tight squeeze that required us to fold in the side mirrors. I was super-anxious about scraping the sides of our rental, but made it through without a scratch

After leaving Leggett, we cut over to the Shoreline Highway (US-1) and began our epic, harrowing drive down the curviest road I think I’ve ever driven. This segment of the drive hugs the coastline and it constant turns with very few places where the speed limit exceeds 35mph. Adding to that, there’s few guardrails or shoulders, the road is narrow and, at some points, is over 600 above the rocky beach below. We stopped at a few places along the way, but were mostly-content to enjoy the view and try to stay on the road!


Hardy Rock

We got a much-needed respite from the scary drive when we arrived in the coastal town of Fort Bragg, where we spotted this somewhat-impressive railroad bridge over the beach:

This 527-foot-long structure is known as the Pudding Creek Trestle and was built in 1915 to carry lumber from logging sites north of town to Fort Bragg for processing. It was abandoned in 1949, but still stands as a testament to its solid construction.

Fort Bragg is also known for Glass Beach. This beach is famous for the large amount of sea glass that can be found there. The sea glass is the result of years of dumping trash in this area of town in the first-half of the 20th Century. Today, it’s a tourist attraction rather than an environmental catastrophe and is worth the visit to look for sea glass.

Our next stop was Mendocino, a well-known small town that sits on a headland surrounded on three sides by the Pacific Ocean.

The most-interesting thing I learned about Mendocino during our brief stopover there was that it stood in for the fictional Cabot Cove, Maine, for filming of the 80s TV series Murder, She Wrote. 

After stopping to take photos, see the sea and buy some chocolate, we returned to the harrowing highway southward. Unfortunately, there are very few places along this stretch of road to safely stop to stretch your legs, relax and take some photos, so we were happy when we finally reached Gleason Beach for a rest.

Once we left Gleason Beach, we headed inland towards Petaluma, where we would have some of the worst Chinese food ever, but have a great night at the Hotel Petaluma in the historic downtown area.

Day 6

This day was always intended as a restful day of an easy drive through the North Bay countryside, stopping at a couple of local places before ending up for the night in San Rafael.

Our first stop of the day was at Point Reyes Farmstead Cheese (my wife loves cheese almost as much as Wallace from Wallace & Grommit). Here, a rather curt worker begrudgingly sold us some cheese and sausage to sample and sate our hunger, so I don’t have a lot of praise to heap upon it, but I can say that they had happy cows that had a great view of the Pacific Ocean to look at as they ate their grass.

We then drove through the countryside, taking in the sights and losing count of how many foxes, coyotes and lynx we saw before coming across Tony’s Seafood Restaurant in Marshall, along the coast of Tomales Bay (incidentally, the San Andreas Fault runs right down the middle of the bay—luckily, it behaved itself while we were there).

Stopping for lunch and a couple of pints, I have to say that the oyster sandwich I had there is easily in my top ten meals I’ve ever had. The local oysters were incredible, with a vastly-different flavor than the Gulf oysters we usually get at home in Texas (probably because they have a much-lower percentage of petroleum!). 

After lunch, we started making our way towards San Rafael. We wanted to check in early to rest and were pleasantly-surprised to find that the hotel—an Embassy Suites—featured an awesome Eighties hotel atrium!

Why don’t hotels have atriums anymore?

After a light dinner, we settled in for the night, enjoying a deep, restful sleep to recharge our batteries for the final push into San Francisco.

Day 7

This day would find us exploring the North Bay/Marin Headlands before venturing across the Golden Gate Bridge into San Francisco.

Our hotel in San Rafael was adjacent to the Frank Lloyd Wright-designed Marin County Civic Center. This structure is probably best-known among sci-fi fans as the filming location for Gattaca and George Lucas’ THX-1138, his first feature-length film.

After pausing to admire the architecture, we drove into China Camp State Park, named for the historic Chinese-American fishing village that used to be located on the San Francisco Bay there.

We met a dog named Roscoe!

After China Camp State Park, we headed back towards the Pacific and Red Rock Beach.

After Red Rock Beach, we traveled a bit further up the coast to check out the town of Stinson Beach before backtracking to Muir Beach:

You can just barely see San Francisco’s Sutro Tower through the haze at the upper right!

We then headed south back into the Marin Headlands and the Golden Gate National Recreation Area. Our first stop was Point Cavallo at Fort Baker, which offers this great view of the Golden Gate Bridge:

It also offers snakes, but luckily this one was a harmless gophersnake, Pituophis catenifer:

Snek, aka Nope-Rope
A bit closer to the Bridge

We then headed up the hill terrain on the west side of the Bridge, where we were treated to a great view of the structure and the San Francisco cityscape:

We then headed across the bridge into San Francisco. After giving my wife a brief tour of some of the major sights in the city, we headed towards Fisherman’s Wharf, where we were staying for the next two nights. 

As we were hungered, we settled on The Grotto for lunch, where we had a so-so meal, an excellent waiter and great beer.

Anchor Steam

After lunch, we went to one of my favorite places at Fishermans Wharf, the Musée Mécanique, which features old coin-operated amusements and arcade games, including this bit of nightmare fuel:


We then wandered around Fisherman’s Wharf for a bit:


We then checked into our hotel for the evening, the quirky Hotel Zephyr. Amongst the quirkiness:

A giant Popeye mural
A fire pit that looks like burning computers (aka what happens to your PC when you have too many Chrome tabs open)
A classic camper repurposed as a food truck in the hotel’s courtyard
This bird sculpture in the lobby

We finished out the day with a small meal in our room and an early night of watching TV and getting some needed rest.







Day 8

The last full day of our trip, spent entirely in San Francisco.

In the morning, we walked to the nearby San Francisco National Maritime Historical Park, which features several old ships and boats that you can explore:

1886 Square-rigger Balclutha
1907 steam tug Hercules & 1890 steam ferryboat Eureka
1914 paddlewheel tug Eppleton Hall

The park also offers a great view of Aquatic Park Cove, Ghirardelli Square and Russian Hill:

After visiting the park, we wandered over to Pier 45 to see the S.S. Jeremiah O’Brien—one of only 2 remaining fully-functional Liberty Ships leftover from World War 2—and the USS Pampanito, another World War 2 vessel—a Balao-class submarine that served in the Pacific:


Next was a quick stop at the Pier 43 Ferry Arch, which originally housed hoists for loading and unloading rail cars from ferries, but is now a historic site:

A quick walk then took us through the most-touristy part of Fisherman’s Wharf—Pier 39. I accuse it of being the most-touristy due to the fact that it features these traps:

  • Both an Alcatraz Book Store and an Alcatraz Gift Shop
  • An aquarium
  • Bubba Gump Shrimp Company
  • Build-A-Bear Workshop
  • A candy store
  • Hard Rock Cafe
  • A magic store
  • A Lids hat store
  • A least 8 San Francisco-themed gift shops
  • A fudge store
  • A sock store
  • A Sunglass Hut
  • A pretzel shop
  • A Dreyer’s ice cream shop
  • A Mrs. Fields
  • A “7D” theatre
  • Caricature artists
  • Carnival rides
  • Escape rooms
  • Street performers
  • A VR theatre

Seriously, there’s a lot going on here. Check out their site for a complete list of crap. The best part, of course, was more sea lions!

After a lunch at one of my favorite places to eat1 at Fisherman’s Wharf—Chowder Hut—we retrieved our car and made our way back towards the Golden Gate Bridge.

Our goal was to see the Fort Point National Historic Site—a Civil War-era fort that was preserved during the construction of the Bridge by building the bridge over it rather than demolishing it. Having visited the Bridge a few times, including walking most of the way across it, I’d always been intrigued by the Fort, but had never had a chance to visit it before.

Up and Over
The steel arch spans 318 ft (97 m) over the fort

After Fort Point, we took a relaxing drive around the city before returning to our hotel for dinner from Boudin Bakery Cafe, followed by packing and getting ready to return home to Dallas.

Day 9

Before heading to SFO to catch our flight, we drove down the Embarcadero to the Ferry Building to visit the shops there. 

Opened in 1898—a survivor of the 1906 earthquake—this ferry terminal has served the crossbay transit since then, though it’s now both a ferry terminal and a marketplace. 

Of course, my interest in urbanism, including the new urbanism of the 1960s, directed my attention across the street to the giant mix-used cluster of skyscrapers that is the Embarcadero Center:

One Embarcadero Center

More-interesting than the skyscrapers, to me at least, is the adjacent Vaillancourt Fountain. This fountain, which has a legacy of controversy due to its unfinished, modern appearance, punctuates the plaza between the Ferry Building and the Embarcadero Center. Having visited it a few times now, I’m still undecided whether I like it. 

Misfortunate? Or a classic example of modernism with a Brutalist influence?

After the Ferry Building, we made our way out of the city and down the 101 towards SFO. Our last stop before the airport would be lunch at Little Lucca in South San Francisco. I cannot stress how good our food was here. It’s a tiny shop with no seating and the line forms early and is long, but it’s so worth the wait. We each got a sandwich, but being that they were the size of my forearm, we couldn’t eat it all and should’ve split it.

This video does a nice job of demonstrating just how huge these sandwiches are!

After lunch, we made our way to SFO, checked in for our flight, relaxed a bit and caught our flight back to Dallas.

All-in-all, it was a great adventure. The problem is that every time we go on an adventure like this, we get home and immediately feel the need to travel again. Luckily, we already have a couple of more trips in the pipeline—an extended family trip to South Texas (mainly Corpus Christi and Port Aransas) to take my mother to visit her hometown for the first time in almost 25 years—and a long weekend adventure to Colorado to explore the mountains and see Nine Inch Nails in concert at Red Rocks.


Travels from Portland to San Francisco, Part 1

For a few years, we’ve been talking about doing a drive along the Pacific Coast from Portland to San Francisco. My wife has spent a fair amount of time in Portland and I’ve spent a lot of time in San Francisco, but we’d never connected the dots in between, taking the time to see the rugged Oregon and Northern California coastline nor the towering redwood trees that the region is famous for.

We finally decided to take the plunge once the world had forgotten about the pandemic, so we booked a flight, rented a car, booked some hotel rooms, confirmed our dogsitter’s availability and packed our bags.

As you probably know, other than doing software stuff, photography is my second life. So this would be a combination vacation/photo-adventure, so we made sure to plan a route that would maximize photo opportunities. I’ll be sharing photos from this journey for a long time on my daily photo site, 75CentralPhotography, so be sure to follow me there (I’d keep an eye on the Oregon and California categories).

However, this site isn’t geared towards sharing my photography, but more about random, ephemeral things, so I thought I’d share our route, as recorded by my GPS logger (along with a few shots I shot on my iPhone for context). I log my travels when out taking photos to ensure that I can later add a location to every photo I take and you can read more about this process at my rarely-updated photography blog here.

Day 1

Our first day entailed first flying from our home airport, Dallas-Fort Worth International Airport, to Portland International Airport. So, naturally, I fired up my GPS logger and was surprised that, for the most part, I was able to get steady GPS signals.

It’s always amazing to me, every time I fly out west and have a window seat, to see just how unsettled the western half (or even two-thirds) of the United States is. Lots of area to get lost or start a cult or militia or some other crazy group, or just see some amazing scenery.

The outskirts of Salt Lake City—one of the few signs of civilization on the air route between Dallas and Portland.

Once we arrived in Portland, our agenda was pretty simple for the rest of the day: meet my wife’s brother for lunch at McMenamins on the Columbia across the river in Vancouver, Washington, visit Powell’s City of Books (purported to be the world’s largest independent bookstore) and see the interesting architecture of the St. Johns Bridge at Cathedral Park.

St. Johns Bridge at Cathedral Park

Day 2

We got up early the next morning and headed out. Our first stop was Multnomah Falls, east of Portland on the south bank of the Columbia River. The falls are 620 feet tall and are well-worth the visit:

Multnomah Falls

We then reversed course and went back through Portland on our way to Cannon Beach, most-famous for being the location where the final part of The Goonies was filmed. It’s also famous for the 235-foot-tall sea stack known as Haystack Rock:

After leaving Cannon Beach, we drove down the coast a ways before heading inland a bit to the Tillamook Creamery for a cheese snack, then head back out to the coast to Cape Meares for a quick stop.

Cape Meares

Other stops included Pacific City Beach:

Pacific City Beach

Siletz Bay:

Siletz Bay

Boiler Bay:

Boiler Bay

Rocky Creek State Scenic Viewpoint:

Rocky Creek State Scenic Viewpoint

Before arriving at that evening’s destination, Otter Rock. We stayed at the Inn at Otter Crest, which would’ve afforded us a great view of the sunset over the Pacific had it not been overcast at sunset, but otherwise offered great views of the rugged coast as well as a tasty pizza and local beers for dinner.

Day 3

Our third day’s journey found us doubling-back a bit to visit Depoe Bay and the coast north of there before heading back south to our day’s destination, Coos Bay.

Depoe Bay Harbor

Depoe Bay is known for its 6-acre harbor that is purported to be the world’s smallest navigable harbor. Interesting fact about this harbor is that it was was damaged by a tsunami resulting from the same 2011 earthquake in Japan that caused the Fukushima nuclear meltdowns.

Coastline north of Depoe Bay
Depoe Bay Scenic Park
Rocky Creek Bridge


The Inn at Otter Crest—our previous night’s stay—as seen from the nearby Otter Crest State Scenic Viewpoint

One of the more-scenic stops for the day was the Devils Punch Bowl—a large rock formation along the coast near Otter Rock:

Devils Punch Bowl

After leaving the Devils Punch Bowl, we continued south towards Newport, stopping for a bit in Beverly Beach:

Beverly Beach

Reaching the outskirts, of Newport, we stopped at Yaquina Head to see the lighthouse and surrounding coast.

Yaquina Head Light
Cobble Beach
Cobble Beach

We then drove the rest of the way into Newport, where we stopped to view the Yaquina Bay Bridge.

Yaquina Bay Bridge

We then stopped on the Newport Bayfront for lunch at the Rogue Brewery and the view the local residents:

Sea lions in Newport Bay

After lunch and a couple of pints, we got back on the road to our next stop, Cape Perpetua:

Cape Perpetua
Cape Perpetua

A quick detour then took us to Sealion Beach, which lived up to its name with an uncomfortably large number of sealions lying about:

Too many sealions!
Sealion Beach and Heceta Head Lighthouse

We finished our day by checking into the very-quirky Itty Bitty Inn in North Bend, which features themed rooms and some awesome murals:

Itty Bitty Inn murals

Followed by a couple of pints and dinner at the 7 Devils Brewing taproom in Coos Bay


Day 4

Day 4 of our adventure would find us wending our way down the coast from Coos Bay to Eureka, California.

Our first stop was in Port Orford, where we took in Battle Rock and the nearby scenery:

Battle Rock
Port Orford Lookout
Port Orford Lookout
The Oregon Coast south of Port Orford

Continuing south, we stopped at Gold Beach:

Gold Beach

Where we encountered this bit of Lovecraftian nightmare fuel:

Turns out, it’s a type of kelp

And then on to Sisters Rock:

Sisters Rock (I don’t have a sister, so I can’t speak to the fact as to whether they rock or not)

We then stopped at Meyers Creek Beach for a view of the sea stacks there:

Meyers Creek Beach

And then onto Ariya’s Beach at Gold Beach, Oregon:

Ariya’s Beach

The next stop, Natural Bridges, Oregon, offered an amazing, dramatic view:

Natural Bridges

Finally, we crossed the border into California and got our first good look at the giant Redwood trees we’d been yearning to see:

After exploring the Redwoods for a bit, we rolled into Eureka for the night, stopping for a bit to view the channel that leads from the Pacific to Humboldt Bay and it’s accompanying jetty:

That concludes the first part of our epic drive from Portland to San Francisco. Next time, we’ll cover the conclusion of our journey, driving from Eureka to San Francisco.

How I Added Maps to 75CentralPhotography.Com

For years, I’ve geo-tagged my photos on my photography site, 75CentralPhotography. In fact, I one wrote about my geotagging workflow over there…the workflow is a bit outdated, but still works and is still relevant.

Recently, I was thinking about ways to enhance the browsing/user experience of the site, when I hit upon the idea of including a map with each photo showing where the photos was taken, since I already had all this GPS metadata embedded in each photo.

The first step was figuring out how to extract the GPS data from the photo’s embedded metadata. Luckily, the site is built on WordPress and WordPress is built using PHP. And PHP has a built-in function for extracting EXIF and IPTC metadata from a given image, exif_read_data(), so I just needed to pass in an image path and it would return the full image metadata, then parse that to extract the longitude and latitude of where the photo is geotagged, which I could then use to place the photo’s location on a map.

The code I used to get the GPS coordinates

  1. First, I needed to get the attachment ID for the photo. Since I only post one photo for each blog post, I knew I could use the handy catch_that_image() function that returns the id of the first image in a post when called from within a post:
  2. However, since catch_that_image() only returns the attachment ID and exif_read_data() needs a relative path to the image file, I needed to get the path to the file from the attachment ID. Luckily, WordPress offers the  get_attached_file() function to do just that:
  3. Now that we have the relative path, we can finally pass that to the exif_read_data() PHP function to get the EXIF data back as arrays.
  4. Finally, we can extract the latitude and longitude from the EXIF data using  a custom getGPS() function:

Now that we’ve successfully extracted the embedded GPS coordinate’s from the photo’s EXIF data, we can use the leaflet.js Javascript library to display it.

Before we can display the map, we do three things:

  1. Check to make sure that the photo actually has GPS data (as extracted in the previous step)
  2. Add these coordinates to custom post metadata in WordPress
  3. Check to see if a custom zoom level has been defined for a particular image in custom post metadata, else set the default zoom level of the map.
    1. We do this as for some photos, there may not be any contextual information available for a map to display, such as a photo taken in the middle of the ocean, which would result in a blank map.
The code that does this is some simple PHP:

Now that we have that, we can embed the leaflet.js map:

  1. First, we use an HTML <div> tag to set the display <div> for the map:
      <div id=”mapid” ></div>
  2. Next, we define the map and set the view and zoom level:
    var mymap = L.map(‘mapid’, {scrollWheelZoom: false}).setView([<?php echo $lat ?>, <?php echo $lon ?>], <?php echo $zoom[0] ?>);
  3. Add the zoom controls to the map:
    L.control.scale({position: ‘topright’}).addTo(mymap);
  4. Add the map tiles from a custom map in MapBox, as well as the custom icon or pin we created to pinpoint the photo’s location:
    L.tileLayer(‘https://api.mapbox.com/styles/v1/75central/{id}/tiles/{z}/{x}/{y}?access_token=SECRET_TOKEN’, {
    attribution: ‘Map data &copy; <a href=”https://www.openstreetmap.org/copyright”>OpenStreetMap</a> contributors, Imagery © <a href=”https://www.mapbox.com/”>Mapbox</a>. Some photo locations may be <a href=”https://www.75centralphotography.com/location-information/”>inaccurate or obfuscated</a>.’,
    maxZoom: 20,
    id: ‘SECRET_ID’,
    tileSize: 512,
    zoomOffset: -1,
    accessToken: ‘SECRET_TOKEN’
    var LeafIcon = L.Icon.extend({
    options: {
    iconSize: [50, 50],
    iconAnchor: [22, 50],
    popupAnchor: [-3, -76]
    var greenIcon = new LeafIcon({iconUrl: ‘https://www.75centralphotography.com/assets/camera.png’});
    window.dispatchEvent(new Event(‘resize’));
  5. And, finally, add the defined marker/pin to the map:
    var marker = L.marker([<?php echo $lat ?>, <?php echo $lon ?>], {icon: greenIcon}).addTo(mymap);

And, voila, we have a map with the photo’s location on each photo on 75CentralPhotography:

Graffiti Tunnelvision

The Lost Art of Dallas’ Good-Latimer Tunnel

I was recently looking through some old photos in my Lightroom archive and came across a set of photos I took 15 years ago about a lost piece of Dallas-area culture.

The Good-Latimer Tunnel was built in 1930 for Texas State Highway 559 and the Texas & Pacific Railroad. In the 1960s, vandals began to tag its walls with graffiti. By the late 1970s, the City of Dallas had grown tired of cleaning the tunnel, so they began to organize several days each year wherein the street would be blocked off so that artists could paint the tunnel walls. Unfortunately, this came to an end in 2007 when Dallas Area Rapid Transit tore down the tunnel to build a new rail line.

A few weeks before demolition began, I made a trip to Deep Ellum to document some of this artwork. While some of it has been previously published on my website, 75CentralPhotography, most has never seen the light of day until now, seven years later.

EXIFViewer, Redux

Last year, I wrote about a small photo EXIF data viewer I’d built. Unfortunately, I hadn’t really given the project much thought since then, especially since it was written to run on Windows and late last year, I switched back to MacOS. 

Recently, however, i’ve been toying with idea of porting it to MacOS, especially since Microsoft’s Xamarin lets you write .NET code and compile it with MacOS as the target OS. However, to do so, I needed to rewrite for the Windows platform.

The first problem is that the original was written in Visual Basic.NET, which is great for rapidly-building applications, but is not a modern language and is on its way to being deprecated by Microsoft.

The second problem, and this is somewhat-embarassing considering that I’m a software development manager and solutions architect at my day job, but the application was poorly-built (I threw it together in a couple of hours). No modularity. No proper design patterns. Logic intermingled with UI. Lots of global variables. 

So, to port to MacOS via Xamarin, I’d need to rewrite the code in C# (since VB.NET isn’t supported) and I’d need to make it more modular, so that the processing/backend was abstracted away from the user interface. This way, I could use the codebase that extracts the EXIF data in my Mac version without modification and will only need to build the UI elements for MacOS. 

At any rate, I’ve started making my first stabs at writing the Mac version, but until then, the Windows version is available on GitHub here. You can download the installer here.

I welcome feedback, contributions and pull requests!

A Lightweight EXIF Data Viewer

If you’ve read the title of this post and are wondering “what is this EXIF thing?”, then here’s a bit of information. EXIF is an acronym for EXchangeable Image File Format. And, no, I don’t know why it’s not “EXIFF”. Basically, it’s metadata tagged onto a digital image that contains information about that image. This, along with another group of metadata, IPTC, is used by digital photographers to keep track of information about such things as camera/lens settings, geographic information and copyright of a given photo.

Some photographers post their images online with this information intact, while others will strip it out when posting, keeping their secret sauce to themselves. For myself, I keep it intact as I hope it might be helpful to other photographers to understand how a photo was capture as well as being an aid in enforcing copyright. Most, if not all, photos on my photography site have this data tagged onto them and the basic data can be viewed by clicking the “View Photo Data and Location” button under the photo:

Basic EXIF data on 75CentralPhotography.Com

However, there are a lot of times that I want to view this data locally for unpublished photos on my PC. To make this easy, I wrote a simple Windows application that will display this data for a selected photo:

Main Interface

It displays the most-commonly used EXIF data on the main interface; and, if there’s GPS information embedded in the metadata, it shows a button to view the photo’s location on Google Maps. If you want all the EXIF data, you can click “File→Show All EXIF Data…” and a dialog will appear showing everything:

Everything, Everything

This application is written in VB.NET and the source code is available on GitHub. If you want to install it, you’re welcome to download it here.

A couple of installation notes:

When downloading the installer, you may get this warning:

Because this app hasn’t been installed enough times for Windows to “trust” it, Windows Defender wants you to really think about it before installing. To continue, click the three dots and choose “Keep”.

You might then get another warning:

Go ahead and click the down arrow next to “Show more” and click “Keep Anyway”. Then, navigate to your download location and doubleclick EXIFViewer.msi to install. You might get another warning:

Click More info and you’ll get the option to run anyway. At this point, the installer will launch and you can install the application.

A lot of rigmarole to install an app, but it’s for most people’s own good, as Windows tries its best to prevent you from installing malicious software using Defender Smartscreen. In this case, you’re going to have to trust me that this isn’t malicious. You have the option, of course, to review the source code at the Github repository listed above. And you know where to find me. If enough people install, Windows will eventually allow it past Smartscreen without complaint.

If you download and use the EXIFViewer and have any feedback or find any bugs, please submit an issue here or send me an email at matt@75central.com.