<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Nathan Gilbert</title>
  <subtitle>Posts and trip reports from nathangilbert.com.</subtitle>
  <link href="https://nathangilbert.com/feed.xml" rel="self" type="application/atom+xml"/>
  <link href="https://nathangilbert.com/" rel="alternate" type="text/html"/>
  <updated>2026-09-14T00:00:00Z</updated><id>https://nathangilbert.com/</id>
  <author>
    <name>Nathan Gilbert</name>
  </author>
  <entry>
    <title>White Rim Trail</title>
    <link href="https://nathangilbert.com/trips/white-rim-trail-may-2026/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/trips/white-rim-trail-may-2026/</id>
    <published>2026-09-01T00:00:00Z</published>
    <updated>2026-09-13T00:00:00Z</updated>
    <category term="jeep"/>
    <summary>A journey to the river from the rim and back again.</summary><content type="html">&lt;h2&gt;White Rim Trail May 2026&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;The newly established Canyonlands National Park. Most of the major points of interest in this park are presently
accessible, over passable dirt roads, by car...Nevertheless the Park Service had drawn up the usual Master Plan calling
for modern paved highways to most of the places named and some not named.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;~Ed Abbey, &lt;strong&gt;Desert Solitaire&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Preamble&lt;/h3&gt;
&lt;p&gt;This trip admittedly started out on the wrong foot, multiple feet really, but we stuck the landing and the judges gave
us a respectful score anyways. We didn&#39;t get a gold medal, or even bronze, but it was more than a &amp;quot;hey, you showed up&amp;quot;,
trophy and closer to a &amp;quot;we actually competed&amp;quot;. The goal was to complete the White Rim Trail in the Island in the Sky
district of Canyonlands National Park in 2 days/2 nights time. The trail is about 100 miles long and back-country
driving the whole way.&lt;/p&gt;
&lt;p&gt;The first stumble out of the gate was missing the permitting deadline for the time we wanted to go, which was April. I
woke up on the day the permits were to be released, logged on to recreation.gov at 8am MT only to find there were zero
campgrounds open. I&#39;m not sure how this is possible, but it&#39;s a troubling experience I&#39;ve had with recreation.gov and
had others tell me they&#39;ve experienced the same phenomenon. Some mixture of campsite &amp;quot;hoarding&amp;quot;, or usage of the
&amp;quot;rolling window&amp;quot; hack, plus bots, and very low &amp;quot;no-show&amp;quot; fees appears to be the imperfect storm creating this
frustration.&lt;/p&gt;
&lt;p&gt;My friend, Dustin, the creator behind &lt;a href=&quot;https://www.youtube.com/@exploresouthwest&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Explore Southwest&lt;/a&gt;, came to the rescue and was able to grab a permit for us
and camping spots at the Airport and Murphy&#39;s campgrounds but for May. These are two prime locations that set a traveler
up well for efficient use of time and miles. If you&#39;re going the traditional &lt;em&gt;clockwise&lt;/em&gt; path through the trail, you&#39;ll
reach the Airport campgrounds in the evening if you start around noon and take a leisurely pace. We figured it would be
much hotter than doing the trail in April and more of a gamble, but it was the only time Dustin was able to secure. Our
plan also included bookend nights in Moab, the quintessential desert recreation hub of Utah.&lt;/p&gt;
&lt;p&gt;While possible, you shouldn&#39;t try to complete the whole trail in a single day. There&#39;s too much to see and ponder along
the way. There&#39;s no promise of water outside of a few areas where you&#39;re close to the river. There are pit toilets at
the campgrounds which are fairly spread out throughout the trail. Once you&#39;re past the Potash road, you&#39;ll definitely
want a high clearance 4WD vehicle with a 4-Low capable transfer case.&lt;/p&gt;
&lt;h3&gt;The &amp;quot;there&amp;quot; of &amp;quot;there and back again&amp;quot;&lt;/h3&gt;
&lt;p&gt;We (Dustin, Alex, Sonya and I) started from the &lt;a href=&quot;https://www.nps.gov/thingstodo/experience-the-shafer-trail.htm&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Shafer Switchbacks&lt;/a&gt; trailhead around 2pm and planned to end at
Mineral Bottom. I should also mention I was in a physical state somewhere between &amp;quot;hung over&amp;quot; and &amp;quot;Salmonella sick&amp;quot; on
the day we arrived in Moab and the first day of the White Rim trek. I&#39;m not sure which, but there had been a lot of
beers and questionable food consumed in the 36 hours prior to our departure for Moab as I was scrambling to fix a brake
issue with my XJ. The fact that the TJ appears in these photos should tell you how all that work played out.&lt;/p&gt;
&lt;h3&gt;Shafer&lt;/h3&gt;
&lt;p&gt;Admittedly, the Shafer switchbacks &lt;em&gt;look&lt;/em&gt; really worrisome from the canyon rim. Once you&#39;re on them though they are
pretty easy. Yes, one wrong turn, or one mix-up of the gas and brake pedal and you&#39;re quickly approaching terminal
velocity towards the canyon floor, but don&#39;t think about that on the trail, just focus on the road ahead. Breathe, catch
a great view, don&#39;t pay any attention to the circling carrion birds overhead. You could use 4-Low here, but you really
don&#39;t have to, in fact, if you do, you&#39;ll likely get bored by how long it takes to traverse the straight parts between
the curves.&lt;/p&gt;
&lt;h3&gt;Musselman Arch&lt;/h3&gt;
&lt;figure class=&quot;inline-image left&quot;&gt;
  &lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/muscle.jpg&quot; alt=&quot;A weightlifting plate at the bottom of Musselman Arch.&quot; width=&quot;600&quot; height=&quot;428&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;Wrong muscle. A pun? Full image below in the gallery.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;This arch doesn&#39;t look like your &amp;quot;typical&amp;quot; redrock Utah arch. It’s essentially a long, nearly flat slab of White Rim
Sandstone spanning a deep cut in the rim, so from an angle it looks like a natural bridge or a piece of roadway
hanging over the canyon than a big curved arch. It&#39;s literally part of the White Rim trail itself, at least made of the
same thing. The resistant White Rim Sandstone forms the broad bench that the White Rim Road follows. That rock was
deposited during the Permian period, roughly 275–290 million years ago, largely from wind-blown sand near the edge of an
ancient dune field. &lt;a href=&quot;https://geohazards.earth.utah.edu/tones/Musselman.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Scientists&lt;/a&gt; have hooked up the arch to microphones to listen for harmonics that indicate erosion
or even seismic activity. On an album of earth music, what instrument would this be listed as? &amp;quot;Yeah, I play the arch
on that record, practiced for days...&amp;quot; The color of the trail wasn&#39;t always &lt;a href=&quot;https://www.moabhappenings.com/Archives/Geology201906-WhiteRimSandstone.htm&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;white&lt;/a&gt;, that coloration is relatively
recent it seems.&lt;/p&gt;
&lt;p&gt;In days of yore, before Instagram or even &lt;em&gt;deviantart&lt;/em&gt;, White Rim travelers would often get a photo walking over the
arch. That is discouraged these days since in modern times we&#39;ve determined that the arch is actually really thin and a
long ways down. Someone with a sense of humor has thrown a barbell plate down at the foot of the arch. Leave no trace
and never skip leg day, ofc.&lt;/p&gt;
&lt;p&gt;The name of the arch comes from an old rancher and tour-guide from the Moab area. You can find several references to him
in these old &lt;a href=&quot;https://www.swdeserts.com/index_htm_files/195004-DesertMagazine-1950-April.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;desert magazines&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Airport Tower&lt;/h3&gt;
&lt;p&gt;We made it to the Airport C &amp;amp; D campgrounds by early evening with plenty of sun to set up camp and made dinner. Airport
Tower is interesting because the whole “airport” theme is a visual joke taken from the landscape. &lt;strong&gt;There was
never an airport there.&lt;/strong&gt; The NPS says the broad bench around the campsites is so wide, flat, and open that it looks
like a place where an airplane could land, and the nearby butte looks remarkably like an airport control tower, hence
the names. The campsites are on the open, exposed desert bench rather than a sheltered canyon-bottom camp or mesa-top
fortress. This is quite a bit different from the landscape you&#39;ve traversed so far or will for the remainder of the
journey.&lt;/p&gt;
&lt;p&gt;Airport Tower is part of a whole cluster of striking formations. Nearby this area are Monster Tower, Washer Woman, and
&lt;a href=&quot;https://en.wikipedia.org/wiki/Tiki_Tower&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Tiki Tower&lt;/a&gt;,&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; so as you travel around Buck Canyon the skyline becomes one of the more recognizable sections
of the White Rim. Mesa Arch, far above on Island in the Sky, actually looks out toward this same collection of towers;
if you&#39;ve seen the classic sunrise view through Mesa Arch, these are some of the formations in the landscape beyond it
on the canyon floor.&lt;/p&gt;
&lt;p&gt;The next morning, I was feeling great, thankfully despite a rough 48 hours. The driving this day would be pretty easy
until we made it to the next campsite on top of Murphy&#39;s mesa.&lt;/p&gt;
&lt;h3&gt;Murphy&#39;s Hogback&lt;/h3&gt;
&lt;p&gt;The hogback is a long, narrow, elevated tongue of &lt;a href=&quot;https://en.wikipedia.org/wiki/Moenkopi_Formation&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Moenkopi-age&lt;/a&gt; rock rising a few hundred feet above the
surrounding White Rim platform. The road has to climb up and over it rather than staying on the comparatively level
White Rim Sandstone, which is why you suddenly get that steep ascent, a high flat ridge, and then the dramatic descent
on the other side. You definitely should use 4-Low going up and down. You need to take your time as there are blind
curves both on the ascent and descent where someone traveling in the opposite way from you could meet you at a place
that is very difficult to turn around or back up. I found going down a little more stressful than the drive up, but
luckily Dustin pulled first duty up and ensured no opposite way traffic were coming before the blind turns. Going down,
there are several sharp turns that are hard to make in 4-Low, but the low gearing definitely controls your descent in
this steep terrain. Right after the Hogback I remember there being some relatively smooth driving for the next few
miles, I think we might have reached 15 mph during this section which felt quite speedy.&lt;/p&gt;
&lt;p&gt;The name comes from the Murphy brothers (Tom, Otho, and Felix) who constructed the Murphy Trail in 1914 so they could
move livestock between the Island in the Sky country and grazing land south of the hogback. Imagine trying to herd
cattle down that route? Parts of that historic trail still form today&#39;s Murphy Loop hiking trail. The campsites are
special largely because the NPS put them on top of the hogback rather than down on the White Rim bench. Murphy has
only three sites, A–C. Whichever you stay at, you&#39;re out of earshot of the others. C is nearest the pit toilet for good
or ill. At roughly mile 45 clockwise, Murphy also falls close to the natural midpoint of the route.&lt;/p&gt;
&lt;p&gt;Definitely try to snag one of these campsites. They offer sweeping 360-degree desert vistas with dramatic drop-offs
all around. On a clear night, the amount of stars you can see make you feel really insignificant but lucky.&lt;/p&gt;
&lt;h3&gt;Black Crack&lt;/h3&gt;
&lt;figure class=&quot;inline-image&quot;&gt;
  &lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/whipples-fishhook.jpg&quot; alt=&quot;A Whipple&#39;s Fishhook cactus found by the Black Crack.&quot; width=&quot;600&quot; height=&quot;428&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;&lt;i&gt;Sclerocactus parviflorus&lt;/i&gt; or &lt;i&gt;Sclerocactus whipplei var. roseus&lt;/i&gt;, called a Whipple&#39;s
    Fishhook cactus. Named after Amiel Weeks Whipple, who discovered this species. He was a member of the U.S. Army
    Corps of Topographical Engineers, who took two scientific expeditions to the Southwest, from Fort Smith, Arkansas
    to Los Angeles, California. His treks basically surveyed what eventually became Route 66. &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The Black Crack of the White Rim is an interesting geological feature near the end of our journey. It&#39;s an enormous
dark fissure in the White Rim sandstone. It&#39;s visible from satellite images via the vegetation growing in a straight
line in its shallower parts. At its deepest, you&#39;d fall at least 65 feet if you misjudged your jump over the 3 foot wide
crack. In those high areas, the crack is mostly shadow, you can&#39;t even tell it goes that far down. There are some areas
where the gaps underneath the crack allow you to lay on your stomach and see the canyon floor many feet below. It&#39;s a
disorienting experience to be honest. In other areas, near the &amp;quot;wings&amp;quot; of the crack, it can be as shallow as a few feet
deep.&lt;/p&gt;
&lt;p&gt;The biggest geological fact here is that Black Crack is a joint, not a fault. There is no evidence that one side moved
relative to the other; the sandstone simply fractured. This could also help explain the vegetation we noticed. A joint
creates a protected slot where soil, windblown debris and moisture can accumulate, so plants can trace a fracture that
is otherwise surprisingly hard to see from above.&lt;/p&gt;
&lt;h3&gt;Hardscrabble Hill&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;I walked up Hardscrabble Hill&amp;quot;&lt;/em&gt; was a funny idea we all had for a shirt/sticker for a Moab retailer. It gives a
knowing wink to those who&#39;ve been there and didn&#39;t really want to experience the drive up after looking it over.&lt;/p&gt;
&lt;p&gt;What makes Hardscrabble feel worse than Murphy is the combination of difficulties rather than one spectacular obstacle.
Murphy is very steep and exposed, but relatively concentrated. Hardscrabble is a longer, more complicated climb with
steep grades, loose rock and sand, rocky shelves, tight switchbacks, blind turns and considerable exposure. It feels
steeper or more demanding than Murphy, sometimes requiring multi-point turns at the tighter switchbacks.&lt;/p&gt;
&lt;p&gt;At Murphy the challenge is very obvious, &lt;em&gt;you see the big climb and then just do it&lt;/em&gt;. At Hardscrabble, you keep thinking
you&#39;re nearly through it and then get another steep turn, another rock shelf, another narrow bit. After Dustin took his
truck up, I waited till I couldn&#39;t see him anymore and then several more minutes before trying to raise him on our
radios to see if the coast was clear for us to come up. Alex answered that they weren&#39;t even halfway up yet which really
surprised me.&lt;/p&gt;
&lt;p&gt;On this part of the trail, you have to manage line choice, traction, momentum and vehicle placement for longer. The
surface of Hardscrabble is loose rock, sand and softer fine-grained material, so storms can rearrange it substantially.
Once you&#39;re past this climb, you&#39;ve cleared the last real 4WD test of the route. You&#39;ll run into some shelf roads and
switchbacks that might make your seat sweaty, but nothing technically as challenging as this hill.&lt;/p&gt;
&lt;p&gt;By this point in a clockwise trip, the White Rim Road has dropped from its sandstone bench and is traveling remarkably
close to the Green River, through Potato Bottom. Hardscrabble forces the road up and over higher terrain before it can
return to the river near Hardscrabble Bottom/Labyrinth. It&#39;s almost a mountain pass in miniature: river bottom, a steep
~400-foot climb, a high point, a steep descent, and then river bottom again.&lt;/p&gt;
&lt;p&gt;The views from the top of Hardscrabble of the Green are amazing and fulfilling whether you walked up or drove. This is
almost a dividing line between two kinds of White Rim terrain: the high desert road we&#39;ve been traveling and the low,
river-dominated country around Labyrinth, Upheaval Bottom and Mineral Bottom we are just getting into.&lt;/p&gt;
&lt;p&gt;There&#39;s something else cool immediately at the top: Fort Bottom. This is the long, narrow mesa projecting into an
enormous bend of the Green River. A roughly &lt;a href=&quot;https://www.nps.gov/places/fort-bottom-trail.htm&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;3.4-mile round-trip trail&lt;/a&gt; leaves the White Rim near the top of
Hardscrabble and crosses the mesa to an Ancestral Puebloan stone tower overlooking the river. People have been standing
here looking over the Green River for a very long time.&lt;/p&gt;
&lt;h3&gt;Mineral Bottom&lt;/h3&gt;
&lt;p&gt;Mineral Bottom is a pretty neat place to end the White Rim because it is more than just the point where the road climbs
back to the mesa. It is a junction between Canyonlands&#39; road, river, and mining history.&lt;/p&gt;
&lt;p&gt;Traveling clockwise, the dramatic feature was obviously the Mineral Bottom switchbacks. After following the Green River
through the Labyrinth Canyon country, the road suddenly climbs the canyon wall in a stack of tight, exposed switchbacks.
NPS treats Mineral Bottom as one of the White Rim&#39;s major steep/exposed sections, along with Shafer, Murphy Hogback, and
Hardscrabble. In a sense, it&#39;s the bookend to Shafer, as we began the trip by dropping dramatically off the Island in
the Sky country and finished it with another huge switchback climb back out.&lt;/p&gt;
&lt;p&gt;There&#39;s a great bit of very recent geological history there, too. On August 19, 2010, a severe storm sent flash floods
and rockfalls through the area and obliterated substantial portions of the switchback road. &lt;a href=&quot;http://www.travelheadlines.utah.com/2010/09/mineral-bottom-road-in-canyonlands.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Photos&lt;/a&gt; from the event
are remarkable and show the road simply disappears where the canyon wall collapsed. The damage made a complete White Rim
loop impossible for more than seven months. The rebuilt switchbacks reopened in March 2011. This episode illustrates
something easy to forget while driving these roads. Canyonlands looks ancient (and it is) and static, but the landscape
is still actively dismantling itself. A road carved into a steep wall of sedimentary rock can be erased in a single
storm.&lt;/p&gt;
&lt;p&gt;The bottom itself is also an important Green River access point. Mineral Bottom lies just outside Canyonlands National
Park on BLM land and is the normal takeout for people floating Labyrinth Canyon from Green River or Ruby Ranch. It&#39;s
also a launch point for boaters continuing downstream through Stillwater Canyon and into Canyonlands. So where our 4x4
trip was ending, another classic Canyonlands journey of traveling by raft was beginning for some. We saw a lot of people
in the bottoms just partying or getting ready to load up their raft and cast off.&lt;/p&gt;
&lt;p&gt;There&#39;s even still a backcountry airstrip at Mineral Bottom (maybe it should be named Airport, instead)? It dates to the
Cold War, uranium mining era and was used to support mining operations; many of southeastern Utah&#39;s primitive airstrips
have similar uranium-boom origins. So here within a very small area we have a 4WD road, the Green River boat ramp, a
primitive airstrip, several abandoned mine workings, and the remnants of Cold War atomic history.&lt;/p&gt;
&lt;h3&gt;The &amp;quot;back again&amp;quot;&lt;/h3&gt;
&lt;p&gt;Once you climb out of Mineral Bottom on the switchbacks, you&#39;re on Mineral Bottom Road. From the top of the switchbacks
to UT-313, it&#39;s about 13 miles of graded dirt road. BLM gives the full distance from UT-313 down to Mineral Bottom as
roughly 15–16 miles, with the steep switchbacks making up the last couple of miles.&lt;/p&gt;
&lt;p&gt;That stretch is very different from the White Rim itself as it&#39;s generally wide, fast, well-graded dirt across the open
mesa, and in dry conditions it&#39;s usually straightforward. You&#39;ll feel really weird driving so fast after days of
sub-10-mph driving. Once you&#39;re out of the Mineral Bottom switchbacks there are some pit toilets with a large parking
area where you can have a pit stop to regroup. I&#39;m very glad we had friends to travel with on this journey, that made it
more robust and fun. We didn&#39;t seem any other vehicles during this trip, maybe 1 Grand Cherokee we passed going
counter-clockwise before Murphy&#39;s.&lt;/p&gt;
&lt;p&gt;The rest of the drive, while is decently long, it is on a well-maintained gravel road till you hit the main road in the
park, which is paved. As to the White Rim Trail, I&#39;m glad they never got around to paving it.&lt;/p&gt;
&lt;div class=&quot;gallery&quot; data-gallery=&quot;&quot;&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/01-img-1346.jpg&quot; data-index=&quot;0&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/01-img-1346-thumb.jpg&quot; alt=&quot;Double Arch in Arches National Park, its two openings side by side in one massive sandstone dome, under a heavy grey overcast.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;We went into Arches on the first evening we were in Moab, stopped by Double Arch. The sky was amazing.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/02-img-1347.jpg&quot; data-index=&quot;1&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/02-img-1347-thumb.jpg&quot; alt=&quot;A view out between two red sandstone walls to a wide slickrock basin dotted with juniper, storm clouds stacked above the far mesas.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;View out from the arch hole.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/03-img-1349.jpg&quot; data-index=&quot;2&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/03-img-1349-thumb.jpg&quot; alt=&quot;Looking out from inside a sandstone alcove over the Windows Section, visitors small on the sand trail below and dark clouds over the fins beyond.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;View from the arch back towards the trail.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/04-img-1351.jpg&quot; data-index=&quot;3&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/04-img-1351-thumb.jpg&quot; alt=&quot;The same gap between two rock walls, framing a valley of slickrock and sagebrush with a distant road and cloud-shadowed cliffs.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/05-img-1352.jpg&quot; data-index=&quot;4&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/05-img-1352-thumb.jpg&quot; alt=&quot;People scrambling on the boulders below a sandstone alcove, with sandstone fins and towers spread across the valley under a grey sky.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The line doesn&amp;#39;t stop.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/06-img-1354.jpg&quot; data-index=&quot;5&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/06-img-1354-thumb.jpg&quot; alt=&quot;A wide canyon seen from the Island in the Sky rim, its benches falling away in steps to a green wash, potholes of rainwater in the slickrock in front.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;View from the top of the Island in the Sky rim right before heading towards the Shafer Switchbacks and down into the trail, which you can see far off in the distance below.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/07-img-1355.jpg&quot; data-index=&quot;6&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/07-img-1355-thumb.jpg&quot; alt=&quot;A rim of red slickrock and juniper above a broad canyon, with a towering bank of grey and white cloud filling the sky.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/08-img-1357.jpg&quot; data-index=&quot;7&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/08-img-1357-thumb.jpg&quot; alt=&quot;A dark, storm-lit basin stretching to a flat horizon, junipers clinging to the rim rock in the foreground.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/10-img-1359.jpg&quot; data-index=&quot;8&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/10-img-1359-thumb.jpg&quot; alt=&quot;Shafer Canyon from the rim, its stepped red walls and talus slopes dropping to a canyon floor, white clouds scattered across blue sky.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/11-img-1360.jpg&quot; data-index=&quot;9&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/11-img-1360-thumb.jpg&quot; alt=&quot;A sloping slickrock rim above Shafer Canyon, the canyon&amp;#39;s layered walls curving away to the left.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/12-img-1361.jpg&quot; data-index=&quot;10&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/12-img-1361-thumb.jpg&quot; alt=&quot;A flat slab of red sandstone at the rim, with Shafer Canyon opening out below and mesas ranked to the horizon.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/13-img-1362.jpg&quot; data-index=&quot;11&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/13-img-1362-thumb.jpg&quot; alt=&quot;The switchbacks of the Shafer Trail cut into the canyon wall far below the rim, the dirt road doubling back on itself down the cliff.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Shafer Switchbacks below&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/14-img-1363.jpg&quot; data-index=&quot;12&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/14-img-1363-thumb.jpg&quot; alt=&quot;The banded cliffs across Shafer Canyon, layers of red and grey rock stepping up to a flat mesa top under cumulus clouds.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/15-img-1364.jpg&quot; data-index=&quot;13&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/15-img-1364-thumb.jpg&quot; alt=&quot;A broad slickrock ledge at the canyon rim, the canyon and its side drainages spread out beyond under a bright cloudy sky.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/16-img-1365.jpg&quot; data-index=&quot;14&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/16-img-1365-thumb.jpg&quot; alt=&quot;A desert flat of sparse grass below a long red mesa, dark storm clouds massing above it.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/17-img-1366.jpg&quot; data-index=&quot;15&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/17-img-1366-thumb.jpg&quot; alt=&quot;Layered cliffs and a low dark ridge across a sagebrush flat, a towering bank of cloud overhead.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/18-img-1368.jpg&quot; data-index=&quot;16&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/18-img-1368-thumb.jpg&quot; alt=&quot;A slab of caprock balanced on the rim above a rubble slope, the snow-covered La Sal Mountains on the horizon behind.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;A delicate balance&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/19-img-1369.jpg&quot; data-index=&quot;17&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/19-img-1369-thumb.jpg&quot; alt=&quot;The Colorado River winding green through its inner gorge below the White Rim, buttes and mesas ranged along the skyline.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The Colorado River&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/20-img-1370.jpg&quot; data-index=&quot;18&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/20-img-1370-thumb.jpg&quot; alt=&quot;The Colorado River seen from the White Rim bench, its muddy channel curving between pale rock terraces under a broken sky.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/21-img-1371.jpg&quot; data-index=&quot;19&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/21-img-1371-thumb.jpg&quot; alt=&quot;A tilted slab of the White Rim in the foreground, the Colorado River running below it through a wide red canyon.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/22-img-1372.jpg&quot; data-index=&quot;20&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/22-img-1372-thumb.jpg&quot; alt=&quot;A bend of the Colorado River far below the rim, stepped cliffs on both banks and towers on the distant skyline.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/23-img-1373.jpg&quot; data-index=&quot;21&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/23-img-1373-thumb.jpg&quot; alt=&quot;A Jeep and a pickup parked on a slickrock flat below a long banded cliff, storm clouds overhead.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Someone from a different party tried to buy my half-doors right here. I declined to the sell them.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/24-img-1374.jpg&quot; data-index=&quot;22&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/24-img-1374-thumb.jpg&quot; alt=&quot;The flat sandstone deck of Musselman Arch, wide enough to walk across, with a dark void dropping away on the left and the canyon on the right.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The flat deck of Musselman Arch. I wouldn&amp;#39;t walk on it.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/25-img-1376.jpg&quot; data-index=&quot;23&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/25-img-1376-thumb.jpg&quot; alt=&quot;Broken red ledges and boulders below the White Rim, mesas and a distant butte on the skyline.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/26-img-1377.jpg&quot; data-index=&quot;24&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/26-img-1377-thumb.jpg&quot; alt=&quot;A rubble-strewn rim of pale rock above a red canyon, with buttes strung along the far horizon.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/27-img-1378.jpg&quot; data-index=&quot;25&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/27-img-1378-thumb.jpg&quot; alt=&quot;Looking straight down a steep talus slope of broken red rock and brush, a lost barbell weight lying among the boulders.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Someone thought this was really funny. Underneath Musselman Arch.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/28-img-1379.jpg&quot; data-index=&quot;26&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/28-img-1379-thumb.jpg&quot; alt=&quot;A dirt two-track crossing a wide desert flat, a dark butte at the left and a long line of cliffs on the horizon.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The road is marked by rocks in some places.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/29-img-1380.jpg&quot; data-index=&quot;27&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/29-img-1380-thumb.jpg&quot; alt=&quot;A long banded mesa rising from a sagebrush flat, its rim broken into small towers, under a mottled sky.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/30-img-1381.jpg&quot; data-index=&quot;28&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/30-img-1381-thumb.jpg&quot; alt=&quot;The White Rim road running away across open desert, cliffs on the right and a bright cloud-streaked sky above.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/32-img-1383.jpg&quot; data-index=&quot;29&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/32-img-1383-thumb.jpg&quot; alt=&quot;The loaded interior of the Jeep from the front seat: cooler, water bottle, stuffed packs and a red toolbox, desert beyond the glass.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Not the best packing job, but for a Jeep Wrangler we made the most of the space we had.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/33-img-1385.jpg&quot; data-index=&quot;30&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/33-img-1385-thumb.jpg&quot; alt=&quot;A green dome tent pitched alone on a red dirt flat, a small butte to the right and a heavy evening overcast above.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Our campsite at Airport D&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/34-img-1386.jpg&quot; data-index=&quot;31&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/34-img-1386-thumb.jpg&quot; alt=&quot;The Jeep and a pickup parked at camp, camp chairs and a folding table set out beside them, mesas on the horizon at dusk.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;More of the airport campsite.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/35-img-1387.jpg&quot; data-index=&quot;32&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/35-img-1387-thumb.jpg&quot; alt=&quot;A flat, empty campsite of red dirt and low brush, layered mesas standing along the skyline under a grey evening sky.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;It&amp;#39;s really flat here, but getting our tent stakes in the ground was challenging.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/36-img-1388.jpg&quot; data-index=&quot;33&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/36-img-1388-thumb.jpg&quot; alt=&quot;Airport Tower rising from a broad talus pedestal above the desert flat, dark clouds behind it.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Airport Tower in the cloudy evening.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/37-img-1389.jpg&quot; data-index=&quot;34&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/37-img-1389-thumb.jpg&quot; alt=&quot;Airport Tower the next morning under a clear deep blue sky, its fluted upper tower catching the sun.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Airport Tower the next morning under clear skies.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/39-img-1394.jpg&quot; data-index=&quot;35&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/39-img-1394-thumb.jpg&quot; alt=&quot;A flat pan of slickrock and red dirt, with Monster Tower and Washer Woman Arch small on the distant cliff line.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/40-img-1395.jpg&quot; data-index=&quot;36&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/40-img-1395-thumb.jpg&quot; alt=&quot;Airport Tower from the road, its banded pedestal spreading into a low bench of pale rock.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/41-img-1396.jpg&quot; data-index=&quot;37&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/41-img-1396-thumb.jpg&quot; alt=&quot;Monster Tower standing tall on the ridge above a banded cliff line, with the lower fin of Washer Woman Arch and its opening just to the right.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Monster Tower with Washer Woman Arch. Somehow missed Tiki Tower around here.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/42-img-1397.jpg&quot; data-index=&quot;38&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/42-img-1397-thumb.jpg&quot; alt=&quot;A broken rim of red rock in the foreground, with a long flat-topped mesa across the canyon under a cloudless sky.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/43-img-1398.jpg&quot; data-index=&quot;39&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/43-img-1398-thumb.jpg&quot; alt=&quot;A canyon of stubby red towers and ledges below the White Rim, with mesas and buttes ranked along the skyline.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/44-img-1399.jpg&quot; data-index=&quot;40&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/44-img-1399-thumb.jpg&quot; alt=&quot;A deep, narrow slot cut into the rim, its rubble-filled bottom in shadow, open desert beyond.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/45-img-1400.jpg&quot; data-index=&quot;41&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/45-img-1400-thumb.jpg&quot; alt=&quot;A boulder-strewn rim above a side canyon, with a squat sandstone tower on the mesa across the way.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/46-img-1401.jpg&quot; data-index=&quot;42&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/46-img-1401-thumb.jpg&quot; alt=&quot;A muddy pothole in the slickrock at the edge of a desert flat, a snow-capped mountain range low on the horizon.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/47-img-1403.jpg&quot; data-index=&quot;43&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/47-img-1403-thumb.jpg&quot; alt=&quot;A rugged side canyon dropping away from the White Rim, its walls broken into ledges, distant mesas beyond.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/48-img-1404.jpg&quot; data-index=&quot;44&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/48-img-1404-thumb.jpg&quot; alt=&quot;A cross-bedded sandstone wall curving along the rim of a small canyon, its swirling layers exposed in the sun.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/49-img-1406.jpg&quot; data-index=&quot;45&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/49-img-1406-thumb.jpg&quot; alt=&quot;A dense clump of hedgehog cactus growing on the slickrock rim, canyon and distant mesas behind it.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;These cacti have a great view.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/51-img-1409.jpg&quot; data-index=&quot;46&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/51-img-1409-thumb.jpg&quot; alt=&quot;A rough side canyon full of red ledges and boulders, with a flat white-capped mesa on the far horizon.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/52-img-1410.jpg&quot; data-index=&quot;47&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/52-img-1410-thumb.jpg&quot; alt=&quot;The fluted red spires of Monument Basin standing below the White Rim, with flat-topped mesas on the skyline beyond.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Monument Basin area.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/53-img-1411.jpg&quot; data-index=&quot;48&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/53-img-1411-thumb.jpg&quot; alt=&quot;A cluster of tall, deeply fluted rock towers rising from the floor of Monument Basin, the White Rim bench running behind them.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/54-img-1412.jpg&quot; data-index=&quot;49&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/54-img-1412-thumb.jpg&quot; alt=&quot;A curving alcove in the rim above Monument Basin, with towers and buttresses stepping down into the basin.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/55-img-1413.jpg&quot; data-index=&quot;50&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/55-img-1413-thumb.jpg&quot; alt=&quot;Monument Basin&amp;#39;s spires seen along the rim, a mesa with a stepped profile closing the view behind.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/56-img-1414.jpg&quot; data-index=&quot;51&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/56-img-1414-thumb.jpg&quot; alt=&quot;A row of dark, weathered pinnacles below the rim of Monument Basin, distant mountains faint on the horizon.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Keyhole Arch, a party favorite.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/57-img-1415.jpg&quot; data-index=&quot;52&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/57-img-1415-thumb.jpg&quot; alt=&quot;A sweep of red slickrock in the foreground, the towers of Monument Basin dropping away behind it, a contrail crossing the blue sky.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/58-img-1417.jpg&quot; data-index=&quot;53&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/58-img-1417-thumb.jpg&quot; alt=&quot;A prickly pear cactus in bloom with several bright yellow flowers, growing low in the red sand.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Prickly Pear still in bloom! Probably _Opuntia polyacantha_&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/59-img-1418.jpg&quot; data-index=&quot;54&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/59-img-1418-thumb.jpg&quot; alt=&quot;A wide, shallow basin of eroded red benches below the rim, mesas and mountains faint on the far horizon.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/60-img-1419.jpg&quot; data-index=&quot;55&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/60-img-1419-thumb.jpg&quot; alt=&quot;A broad dome of pale slickrock at the rim, with the desert and a distant butte stretching away beyond it.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/61-img-1420.jpg&quot; data-index=&quot;56&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/61-img-1420-thumb.jpg&quot; alt=&quot;Cracked white slickrock and a small sagebrush at the canyon edge, a vast open basin below.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/62-img-1422.jpg&quot; data-index=&quot;57&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/62-img-1422-thumb.jpg&quot; alt=&quot;A person in a red shirt standing at the edge of a sheer-walled rim, a butte on the horizon behind them.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/63-img-1423.jpg&quot; data-index=&quot;58&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/63-img-1423-thumb.jpg&quot; alt=&quot;Squat fluted towers standing in a side canyon below the rim, with a long mesa wall behind.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;More Monument Basin spires and towers.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/64-img-1424.jpg&quot; data-index=&quot;59&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/64-img-1424-thumb.jpg&quot; alt=&quot;The Jeep and a pickup parked on a red dirt flat, low sandstone ledges and a broken skyline behind them.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Natural Habitat&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/65-img-1426.jpg&quot; data-index=&quot;60&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/65-img-1426-thumb.jpg&quot; alt=&quot;A slickrock rim in the foreground above a shadowed canyon, with a solitary butte standing on the distant horizon.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/66-img-1427.jpg&quot; data-index=&quot;61&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/66-img-1427-thumb.jpg&quot; alt=&quot;A row of blocky red towers along the far wall of a side canyon, a pothole of water on the slickrock in front.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/67-img-1428.jpg&quot; data-index=&quot;62&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/67-img-1428-thumb.jpg&quot; alt=&quot;Slickrock and shallow potholes at the rim, with a long banded mesa across the canyon under scattered clouds.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/68-img-1429.jpg&quot; data-index=&quot;63&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/68-img-1429-thumb.jpg&quot; alt=&quot;A broad desert bench below two flat-topped mesas, with a rubble of pale slabs in the foreground.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/69-img-1430.jpg&quot; data-index=&quot;64&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/69-img-1430-thumb.jpg&quot; alt=&quot;A wide basin of eroded red benches with a prominent flat-topped butte at the left, canyons cutting through the middle distance.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/70-img-1431.jpg&quot; data-index=&quot;65&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/70-img-1431-thumb.jpg&quot; alt=&quot;The White Rim road curving around a rocky point, dropping toward a broad flat with a long cliff line beyond.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Looking back down the ascent up Murphy&amp;#39;s Hogback, this is the blind curve at the top.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/71-img-1432.jpg&quot; data-index=&quot;66&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/71-img-1432-thumb.jpg&quot; alt=&quot;Afternoon sun over a sagebrush flat scattered with juniper, a low line of cliffs on the horizon.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Afternoon with the Junipers up on top of Murphy&amp;#39;s&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/72-img-1433.jpg&quot; data-index=&quot;67&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/72-img-1433-thumb.jpg&quot; alt=&quot;A sagebrush and juniper flat under scattered cumulus, with mesas and a distant tower along the skyline.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/73-img-1434.jpg&quot; data-index=&quot;68&quot; data-width=&quot;1600&quot; data-height=&quot;422&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/73-img-1434-thumb.jpg&quot; alt=&quot;A wide panorama across a juniper-dotted bench to the mesas and cliffs on the horizon.&quot; width=&quot;480&quot; height=&quot;126&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Panorama on top of Murphy&amp;#39;s&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/74-img-1435.jpg&quot; data-index=&quot;69&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/74-img-1435-thumb.jpg&quot; alt=&quot;A long red mesa wall across a sagebrush flat, clouds building above it in late afternoon light.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/75-img-1436.jpg&quot; data-index=&quot;70&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/75-img-1436-thumb.jpg&quot; alt=&quot;A low, even line of red cliffs behind a wide flat of pale desert grass and scattered brush.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/76-img-1437.jpg&quot; data-index=&quot;71&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/76-img-1437-thumb.jpg&quot; alt=&quot;Boulders and juniper on a slickrock bench with the sun high above, canyon country receding to a flat horizon.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/77-img-1438.jpg&quot; data-index=&quot;72&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/77-img-1438-thumb.jpg&quot; alt=&quot;A rocky bench in backlit afternoon sun, the canyon and its far mesas hazy in the distance.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/78-img-1440.jpg&quot; data-index=&quot;73&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/78-img-1440-thumb.jpg&quot; alt=&quot;A hazy view over a deep canyon system, its benches and mesas fading into layers toward the horizon.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/79-img-1441.jpg&quot; data-index=&quot;74&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/79-img-1441-thumb.jpg&quot; alt=&quot;A juniper-studded rim above a wide canyon, buttes standing along the skyline in the afternoon haze.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/80-img-1442.jpg&quot; data-index=&quot;75&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/80-img-1442-thumb.jpg&quot; alt=&quot;A broken rock rim in the foreground above a broad basin, a flat-topped mesa at the left and clouds overhead.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/81-img-1443.jpg&quot; data-index=&quot;76&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/81-img-1443-thumb.jpg&quot; alt=&quot;Two flat-topped mesas standing above a wide desert basin, seen across a rocky rim under scattered cloud.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/82-img-1444.jpg&quot; data-index=&quot;77&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/82-img-1444-thumb.jpg&quot; alt=&quot;A line of red mesas across a bench of pale rock, afternoon clouds strung across the blue sky.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/83-img-1445.jpg&quot; data-index=&quot;78&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/83-img-1445-thumb.jpg&quot; alt=&quot;A dark rock spur in the foreground, with rolling red benches and distant mesas stretching away beyond it.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/84-img-1446.jpg&quot; data-index=&quot;79&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/84-img-1446-thumb.jpg&quot; alt=&quot;A flat-topped butte above rolling desert benches, the White Rim slickrock in the foreground.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/85-img-1447.jpg&quot; data-index=&quot;80&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/85-img-1447-thumb.jpg&quot; alt=&quot;Dusk over the canyon from a high point, the sky fading to yellow behind silhouetted mesas, a rough road below.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/86-img-1448.jpg&quot; data-index=&quot;81&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/86-img-1448-thumb.jpg&quot; alt=&quot;A narrow dirt road running along a steep ridge at sunset, the sky glowing orange over the dark canyon.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The road down Murphy&amp;#39;s we&amp;#39;ll take the next morning.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/87-img-1449.jpg&quot; data-index=&quot;82&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/87-img-1449-thumb.jpg&quot; alt=&quot;A wide basin at last light, buttes and mesas dark against a pale gold sky, a rock buttress at the right.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/88-img-1450.jpg&quot; data-index=&quot;83&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/88-img-1450-thumb.jpg&quot; alt=&quot;Early morning sun raking across a slickrock ridge, its layers thrown into sharp relief above a shadowed basin.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Morning up on Murphy&amp;#39;s, the road out to the left.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/89-img-1451.jpg&quot; data-index=&quot;84&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/89-img-1451-thumb.jpg&quot; alt=&quot;Long morning shadows across a red basin, with mesas and a spire on the sunlit skyline.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/90-img-1452.jpg&quot; data-index=&quot;85&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/90-img-1452-thumb.jpg&quot; alt=&quot;A slab of pale rock at the rim in morning light, the canyon and its far mesas spread out beyond.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/91-img-1453.jpg&quot; data-index=&quot;86&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/91-img-1453-thumb.jpg&quot; alt=&quot;A deep side canyon cut into the White Rim, its sheer walls and rubble floor in shadow, mesas beyond.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/92-img-1454.jpg&quot; data-index=&quot;87&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/92-img-1454-thumb.jpg&quot; alt=&quot;A sheer, dark red canyon wall curving below the rim, with a butte and a long mesa on the horizon.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/93-img-1455.jpg&quot; data-index=&quot;88&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/93-img-1455-thumb.jpg&quot; alt=&quot;A wide pavement of pale slickrock with shallow potholes, red buttes standing across the flat beyond.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/94-img-1456.jpg&quot; data-index=&quot;89&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/94-img-1456-thumb.jpg&quot; alt=&quot;The Green River running green between its banks far below, a slickrock bench with a water-filled pothole in the foreground.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The Green River&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/95-img-1457.jpg&quot; data-index=&quot;90&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/95-img-1457-thumb.jpg&quot; alt=&quot;The Green River winding through the canyon bottom, seen across sculpted white slickrock from the rim.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/96-img-1459.jpg&quot; data-index=&quot;91&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/96-img-1459-thumb.jpg&quot; alt=&quot;A tight horseshoe bend of the Green River wrapped around a low green island, the muddy water enclosing it almost completely.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Big Horseshoe bend (but not _that_ one) of the Green River.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/97-img-1462.jpg&quot; data-index=&quot;92&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/97-img-1462-thumb.jpg&quot; alt=&quot;A person standing alone on a wide desert flat photographing the cliffs, sparse brush all around.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/98-img-1463.jpg&quot; data-index=&quot;93&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/98-img-1463-thumb.jpg&quot; alt=&quot;An open flat of red dirt and low brush under a cloudless sky, mesas low on the horizon.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/99-img-1464.jpg&quot; data-index=&quot;94&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/99-img-1464-thumb.jpg&quot; alt=&quot;The road switchbacking through a gap between sheer red cliffs, with buttes visible on the skyline beyond.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/100-img-1465.jpg&quot; data-index=&quot;95&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/100-img-1465-thumb.jpg&quot; alt=&quot;The Green River flowing wide and muddy between willow-lined banks, red mesas rising on both sides.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/101-img-1466.jpg&quot; data-index=&quot;96&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/101-img-1466-thumb.jpg&quot; alt=&quot;Broken red and white rock in the foreground, the Green River and its green banks below a long banded cliff wall.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The &amp;quot;I drove up Hardscrabble Hill&amp;quot; shot&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/102-img-1468.jpg&quot; data-index=&quot;97&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/102-img-1468-thumb.jpg&quot; alt=&quot;The Green River running along the base of a long banded cliff, seen across a bench of pale slickrock.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;More views from the top of Hardscrabble Hill.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/103-img-1469.jpg&quot; data-index=&quot;98&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/103-img-1469-thumb.jpg&quot; alt=&quot;A brown park sign reading &amp;quot;Entering Canyonlands National Park&amp;quot; beside a closed metal gate on the dirt road, red cliffs behind.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Out of the park, but not out of the canyon. Still have a many switchbacks to climb.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/104-img-1474.jpg&quot; data-index=&quot;99&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/104-img-1474-thumb.jpg&quot; alt=&quot;The Jeep parked on red dirt with an orange air hose running to a front tire, airing back up after the trail.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;It was very satisfying to wash all that red dirt off the TJ later at home in Salt Lake.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h3&gt;Addendum&lt;/h3&gt;
&lt;p&gt;The weather was great in May which we were surprised by. You can see several holes with a decent amount of water in
them in my photos. It rained in Moab/Canyonlands the day before our trip began. The first day was cloudy but the second
and third were beautiful bluebird days with little cloud cover and nice spring temperatures. We really couldn&#39;t have
asked for a better weather experience of the drive. If we had gone in April like originally planned it might have been
too cold.&lt;/p&gt;
&lt;figure class=&quot;inline-image center&quot;&gt;
  &lt;img src=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/images/books.jpg&quot; alt=&quot;Williams, David B., and Damian Fagan. A Naturalist’s Guide to the White Rim Trail and Williams, David B., and
    Damian Fagan. Island in the Sky Road Guide: Canyonlands National Park. 2017. Two good books for this trip.&quot; width=&quot;600&quot; height=&quot;428&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;figcaption&gt;Decent books for some additional info for points of interest on this trip.&lt;/figcaption&gt;
    &lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;Williams, David B., and Damian Fagan. A Naturalist’s Guide to the White Rim Trail. Wingate Ink, 2007 reprint. 62 pp.
ISBN-13: 978-0964417311; ISBN-10: 0964417316. The original version dates to 1994; Williams’ own site says it was
updated in 2007. It is a mile-by-mile natural-history guide covering geology, ecology, plants, animals, and human
history along the White Rim trail.&lt;/li&gt;
&lt;li&gt;Williams, David B., and Damian Fagan. Island in the Sky Road Guide: Canyonlands National Park. 2017. The current CNHA
edition is a 28-page, 6 × 9-inch softcover with mile-by-mile descriptions, sidebars, photographs, and a park map,
covering scenery, geology, history, wildlife, and points of interest on the Island in the Sky scenic drive.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://irma.nps.gov/NPSpecies/Species/Profile/245117&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Whipple&#39;s Fishhook&lt;/a&gt; are listed as uncommon in Canyonlands. They are somewhat related to the much rarer (and not
appearing in this trip report, or even in this part of Utah) &lt;a href=&quot;https://en.wikipedia.org/wiki/Sclerocactus_wetlandicus&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Uinta Basin hookless cactus&lt;/a&gt;. Someday, I&#39;ll find one of
those.&lt;/p&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;h3&gt;Notes&lt;/h3&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I can&#39;t find who named it that, or why. Its first named appearance shows up in &lt;a href=&quot;https://www.mountainproject.com/area/114278517/tiki-tower&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;climbing logs&lt;/a&gt; from the early
1990s. &lt;a href=&quot;https://nathangilbert.com/trips/white-rim-trail-may-2026/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
  </entry>
  <entry>
    <title>The Ruby Mountains of Nevada</title>
    <link href="https://nathangilbert.com/trips/the-ruby-mountains-2026/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/trips/the-ruby-mountains-2026/</id>
    <published>2026-08-16T00:00:00Z</published>
    <updated>2026-09-13T00:00:00Z</updated>
    <category term="camping"/>
    <summary>Despite the name, we found no Rubies.</summary><content type="html">&lt;h2&gt;The Ruby Mountains in June, 2026&lt;/h2&gt;
&lt;p&gt;Just south of Elko, Nevada is a vast island of trees, streams, birds and bugs inside a wide sagebrush sea known as the
Ruby Mountains. Most of Nevada&#39;s forest-lands are collected in the &lt;a href=&quot;https://en.wikipedia.org/wiki/Humboldt%E2%80%93Toiyabe_National_Forest&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Humboldt–Toiyabe&lt;/a&gt; conglomerate. The Humboldt part
of the name comes from a 19th Century German naturalist (what do I need in my LinkedIn profile to get this job title?),
&lt;a href=&quot;https://en.wikipedia.org/wiki/Alexander_von_Humboldt&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Alexander von Humboldt&lt;/a&gt;. He was born important because of the &amp;quot;von&amp;quot; in his name. This guy traveled throughout
Spanish South and Latin America, eventually staying in &amp;quot;Nueva España&amp;quot; (Mexico) for several years, mainly around Mexico
City. On the way back to Europe he basically texts President Tom Jefferson to see if can drop in on him at Washington to
talk &lt;a href=&quot;https://www.strangescience.net/humboldt.htm&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;fossils&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;See, TJ was spending a decent amount of time rage-posting (rage-ledgering?) against a theory known at the time as
&amp;quot;American Degeneracy&amp;quot;, which said that the &amp;quot;colder/wetter&amp;quot; temperatures of the Western Hemisphere caused flora and fauna
to become small. Humboldt backed Jefferson in this debate and bolstered their position with fossilized teeth of mammoth
he found while at the equator. TJ didn&#39;t listen to Alex about &lt;a href=&quot;https://bioone.org/journals/northeastern-naturalist/volume-8/issue-sp1/1092-6194_2001_8_43_AVHVTW_2.0.CO_2/ALEXANDER-VON-HUMBOLDTS-VISIT-TO-WASHINGTON-AND-PHILADELPHIA-HIS-FRIENDSHIP/10.1656/1092-6194(2001)8%5B43:AVHVTW%5D2.0.CO;2.short&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;slavery&lt;/a&gt;, though, which makes me think of other
theories of American Degeneracy...&lt;em&gt;that are true&lt;/em&gt;, then and now.&lt;/p&gt;
&lt;p&gt;Clearly, these adherents to the &amp;quot;Cloudy-day shrinkage theory&amp;quot; of biological development had not spent much time in the
&lt;a href=&quot;https://en.wikipedia.org/wiki/Great_Basin&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Great Basin&lt;/a&gt; of the United States, circa 2026, amidst a record-breaking El Niño season. Jack rabbits should be 12
feet tall here. Coming from the East, as you traverse through northern Nevada towards Elko on Highway 80, each basin and
range takes you a little higher, a little bit further from the desolate salt flats and up into something that
approximates a montane landscape with the corresponding drop in mercury. &lt;a href=&quot;https://www.nevadawilderness.org/toiyabe_crest_summary&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;em&gt;Toyiabe&lt;/em&gt;&lt;/a&gt; is the Shoshone (Newe) word for
&amp;quot;mountain&amp;quot;.&lt;/p&gt;
&lt;p&gt;The drive up Lamoille Canyon road is easy. It&#39;s paved and not an an extreme grade. It&#39;s an out-and-back road that has a
terminus at the &lt;a href=&quot;https://en.wikipedia.org/wiki/Ruby_Crest_National_Recreation_Trail&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Ruby Crest National Recreational Trail&lt;/a&gt;&#39;s head. This canyon is referred to by some (the Nevada
tourism department) as the &amp;quot;Yosemite of Nevada&amp;quot;. It is a spectacular drive. &lt;em&gt;Lamoille&lt;/em&gt; evidently comes from an early
settlers fondness of a &lt;a href=&quot;https://en.wikipedia.org/wiki/Lamoille_River&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;French typographical error&lt;/a&gt; about the area that came to known as Vermont. History just seems
arbitrary at some point.&lt;/p&gt;
&lt;figure class=&quot;inline-image&quot;&gt;
  &lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/thomas-canyon-campground.png&quot; alt=&quot;Topographic map of Thomas Canyon Campground, its loop roads dotted with numbered campsites, with the Thomas
      Canyon trailhead and its parking area marked to the south.&quot; width=&quot;600&quot; height=&quot;428&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
  &lt;figcaption&gt;Thomas Canyon Campground. The trail leaves from the bottom of the loop.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;We camped at Thomas Canyon Campground, at a site somewhere in the 20s or 30s. That just meant it was hugging the canyon,
close to the trail. The lower numbered sites are closer to the road and a little more in the sun. Our campground sits
at around 7550ft in elevation and had good separation between each individual site. The sun was intense in the middle of
the day, but since the canyon was fairly narrow, you start getting decent shade around 4-5pm.&lt;/p&gt;
&lt;p&gt;For June, it seemed like a lot of Northern Nevadans were ready to hit the mountains and have a little early summer
hoe-down. That was fine for us; the plentiful aspen and roaring creek kept their sounds at bay. The Creek, as mentioned,
was flowing strong in this month. That waterway being the Lamoille Creek. The Thomas Canyon creek also had strong flow,
with several waterfalls easily visible from the aforementioned trail that starts right in this campground.&lt;/p&gt;
&lt;p&gt;There are several small trails and stops along the road as you head towards the top. The interpretive trails are fun and
informative. Otherwise, mainly the other trail-heads are for overnight backpacking trips which we were not doing on this
trip.&lt;/p&gt;
&lt;p&gt;The Rubies are known as habitat for &lt;a href=&quot;http://www.backpackingintherubymountains.info/animals/animals.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Big Horn sheep&lt;/a&gt; (which we didn&#39;t find) and many species of bird, including the
&lt;a href=&quot;https://www.ndow.org/species/himalayan-snowcock/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Himalayan Snowcock&lt;/a&gt; which is not native to the mountains, and interestingly, that website linked from the Nevada
DOW differs in the story of how they were introduced from other places I&#39;ve seen. We did glimpse many types of hawk,
eagle and corvid in the canyon, thankfully. Several small ground mammals and fish as well.&lt;/p&gt;
&lt;p&gt;I plan on coming back to the Ruby&#39;s at some point, I enjoyed the several days we spent there during this trip. Whenever
leaving the Rubies from the North, always stop at &lt;a href=&quot;https://www.cowboyjoecoffee.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Cowboy Joes&lt;/a&gt; for the caffeine.&lt;/p&gt;
&lt;div class=&quot;gallery&quot; data-gallery=&quot;&quot;&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/02-img-1556.jpg&quot; data-index=&quot;0&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/02-img-1556-thumb.jpg&quot; alt=&quot;A black Jeep Cherokee loaded with a roof cargo box and a rear cargo carrier, parked alone in an empty asphalt lot with dry brown hills behind it.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;My trusty steed; the 1998 Jeep XJ. I should have fixed my exhaust tip before this trip though...I lost some boots as a result.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/03-img-1557.jpg&quot; data-index=&quot;1&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/03-img-1557-thumb.jpg&quot; alt=&quot;The open rear hatch of the Jeep showing camp gear packed to the roof: stacked tan storage totes, a green military-style trunk, a folding table on edge, bedding and a spare tire.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;It packs a lot.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/04-img-1558.jpg&quot; data-index=&quot;2&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/04-img-1558-thumb.jpg&quot; alt=&quot;A pale rocky summit rising above a dense green slope of aspen and brush, under a deep blue sky with scattered white clouds.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;A Ruby Mountain&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/05-img-1559.jpg&quot; data-index=&quot;3&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/05-img-1559-thumb.jpg&quot; alt=&quot;A narrow paved road ending in a turnaround, hemmed by young aspen, with a gray glacially carved ridgeline beyond.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The view from our campsite&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/06-img-1560.jpg&quot; data-index=&quot;4&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/06-img-1560-thumb.jpg&quot; alt=&quot;A shallow creek running over pale cobbles and gravel, edged by grass and willow, with a fallen bare branch overhanging the water.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The Lamoille Creek&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/07-img-1561.jpg&quot; data-index=&quot;5&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/07-img-1561-thumb.jpg&quot; alt=&quot;Whitewater breaking around boulders in a fast, wide creek, with willows on both banks and a dark rock face in the distance.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The Lamoille Creek up from our campsite.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/08-img-1562.jpg&quot; data-index=&quot;6&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/08-img-1562-thumb.jpg&quot; alt=&quot;A rocky footpath leading up a canyon between stands of aspen toward a jagged gray peak.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Look how green that mountain is. Hard to believe you&amp;#39;re in Nevada.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/09-img-1563.jpg&quot; data-index=&quot;7&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/09-img-1563-thumb.jpg&quot; alt=&quot;A clear creek over a gravel bed in the foreground, with cottonwoods along the bank and a tall striped canyon wall rising behind.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/11-img-1565.jpg&quot; data-index=&quot;8&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/11-img-1565-thumb.jpg&quot; alt=&quot;A set-up campsite: a dome tent under aspens, a camp kitchen table with a red plaid cloth covered in cookware and gear, a portable stove stand, and two hard coolers on the ground.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Our setup for dinner.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/14-img-1569.jpg&quot; data-index=&quot;9&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/14-img-1569-thumb.jpg&quot; alt=&quot;A shaded creek running clear over a golden gravel bottom, boxed in by a large streamside boulder and overhanging brush.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Thomas Canyon Creek&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/15-img-1570.jpg&quot; data-index=&quot;10&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/15-img-1570-thumb.jpg&quot; alt=&quot;Water rushing white down a rock chute, seen through a screen of leafy branches in the foreground.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;A small waterfall in Thomas Canyon, there are several bigger than this near the trail.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/16-img-1571.jpg&quot; data-index=&quot;11&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/16-img-1571-thumb.jpg&quot; alt=&quot;Looking down from a rock ledge at a creek and a house-sized boulder below, surrounded by conifers and aspen in morning light.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Love a shadow shot&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/17-img-1572.jpg&quot; data-index=&quot;12&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/17-img-1572-thumb.jpg&quot; alt=&quot;A small waterfall spilling down a bedrock step beside a bare dead tree, with green mountainside rising behind.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;There&amp;#39;s more waterfalls up the trail, here&amp;#39;s another one.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/18-img-1573.jpg&quot; data-index=&quot;13&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/18-img-1573-thumb.jpg&quot; alt=&quot;A long band of broken tan cliffs along a ridgetop, lit by early sun against a cloudless blue sky, with brush in the foreground.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Thomas Canyon wall&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/19-img-1574.jpg&quot; data-index=&quot;14&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/19-img-1574-thumb.jpg&quot; alt=&quot;A U-shaped glacial canyon opening between two rock walls, its floor covered in green brush and scattered aspen.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/21-img-1576.jpg&quot; data-index=&quot;15&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/21-img-1576-thumb.jpg&quot; alt=&quot;A steep, rubbly mountain face with pinnacles along its crest, framed on the right by a lone dark conifer.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/22-img-1577.jpg&quot; data-index=&quot;16&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/22-img-1577-thumb.jpg&quot; alt=&quot;A waterfall pouring over a low rock lip into a shaded pool, ringed by pines and a stacked-rock bank.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/23-img-1578.jpg&quot; data-index=&quot;17&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/23-img-1578-thumb.jpg&quot; alt=&quot;Looking down at the pool below the falls, with a low stone retaining wall along the far bank and pines leaning over the water.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/24-img-1579.jpg&quot; data-index=&quot;18&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/24-img-1579-thumb.jpg&quot; alt=&quot;A dead, bark-stripped tree standing among fallen limbs on a canyon slope, with sunlit rock walls on either side.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/25-img-1580.jpg&quot; data-index=&quot;19&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/25-img-1580-thumb.jpg&quot; alt=&quot;A weathered snag in the left foreground with a serrated rock ridge behind it, deadfall and mountain mahogany on the ground.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/26-img-1581.jpg&quot; data-index=&quot;20&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/26-img-1581-thumb.jpg&quot; alt=&quot;A distant spired peak framed at the head of a shaded canyon, seen over green brush and aspen in the foreground.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Mount Fitzgerald, 11,220 ft. Only the 39th highest mountain in the state tho.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/27-img-1582.jpg&quot; data-index=&quot;21&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/27-img-1582-thumb.jpg&quot; alt=&quot;A creek threading down a brushy draw between deadfall and aspen, with a sunlit ridge above and a peak in the distance.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/28-img-1583.jpg&quot; data-index=&quot;22&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/28-img-1583-thumb.jpg&quot; alt=&quot;Morning shadow across a canyon: dark brushy slope on the left, sunlit gray cliffs on the right, and whitewater in the lower corner.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/29-img-1584.jpg&quot; data-index=&quot;23&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/29-img-1584-thumb.jpg&quot; alt=&quot;An open hillside meadow of silver sagebrush and low green shrubs with scattered yellow wildflowers, rising to a rocky rim.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Fitz was getting closer, still had decent snow.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/30-img-1585.jpg&quot; data-index=&quot;24&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/30-img-1585-thumb.jpg&quot; alt=&quot;A close view of the same slope, orange paintbrush and other wildflowers mixed through sagebrush and green undergrowth.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Flowers were out in June.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/31-img-1586.jpg&quot; data-index=&quot;25&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/31-img-1586-thumb.jpg&quot; alt=&quot;A thin stream falling down a grassy, sage-covered slope from a rocky outcrop high above, under clear blue sky.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;A shot of Fitzgerald&amp;#39;s long tail. We turned around here on the trail.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/32-img-1587.jpg&quot; data-index=&quot;26&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/32-img-1587-thumb.jpg&quot; alt=&quot;A broad glacial canyon with a green valley floor and a long buttressed wall of gray rock along its far side.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Literally just turned around and snapped this shot.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/33-img-1588.jpg&quot; data-index=&quot;27&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/33-img-1588-thumb.jpg&quot; alt=&quot;A pale granite ridge dotted with scattered conifers above a green meadow, with the white roof of a parked car in the corner.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;This is further up the Lamoille Canyon road from our campground. Not quite at the top yet.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/34-img-1589.jpg&quot; data-index=&quot;28&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/34-img-1589-thumb.jpg&quot; alt=&quot;A wide slab-rock hillside speckled with pines above a grassy basin, photographed over the hoods of two parked cars.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/35-img-1590.jpg&quot; data-index=&quot;29&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/35-img-1590-thumb.jpg&quot; alt=&quot;A trailhead parking lot with the Jeep, a van, and a sedan lined up in marked stalls below the rocky canyon headwall.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The Ruby Crest Trailhead parking lot.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/36-img-1591.jpg&quot; data-index=&quot;30&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/36-img-1591-thumb.jpg&quot; alt=&quot;A dirt trail crossing a green alpine meadow toward a cirque of snow-streaked peaks, with hikers small on the path.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Backpackers&amp;#39; starting their trip.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/37-img-1592.jpg&quot; data-index=&quot;31&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/37-img-1592-thumb.jpg&quot; alt=&quot;Tall meadow grass and a bleached log in the foreground, a small pond behind, and a pine-studded rock ridge above.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/38-img-1593.jpg&quot; data-index=&quot;32&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/38-img-1593-thumb.jpg&quot; alt=&quot;A whitish granite slope with sparse conifers, a thread of meltwater running down a gully in its center.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/39-img-1594.jpg&quot; data-index=&quot;33&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/39-img-1594-thumb.jpg&quot; alt=&quot;A rounded rocky summit above an open sweep of light granite and scattered pines, deep blue sky overhead.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The avalanche chute.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/40-img-1595.jpg&quot; data-index=&quot;34&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/40-img-1595-thumb.jpg&quot; alt=&quot;A scratched brown interpretive sign titled &amp;quot;Avalanche Chute&amp;quot; with two illustrated diagrams, standing in a meadow.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/41-img-1596.jpg&quot; data-index=&quot;35&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/41-img-1596-thumb.jpg&quot; alt=&quot;A grassy valley floor below a long timbered ridge, with a patch of snow lingering on a shaded peak at far left.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/42-img-1597.jpg&quot; data-index=&quot;36&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/42-img-1597-thumb.jpg&quot; alt=&quot;A small clear stream winding through a green meadow past flat stepping stones, with snow-patched peaks at the head of the valley.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;This area was really interesting, there was a small pond that was elevated maybe 3 feet above the surrounding ground which was an odd perspective. The photo doesn&amp;#39;t really capture it. The pond isn&amp;#39;t even in it, but it&amp;#39;s directly to the right of this photo.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/43-img-1598.jpg&quot; data-index=&quot;37&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/43-img-1598-thumb.jpg&quot; alt=&quot;A meandering meadow stream cut into thick grass, leading the eye toward a jagged snow-flecked headwall under a few white clouds.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Many trout in these waters.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/44-img-1599.jpg&quot; data-index=&quot;38&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/44-img-1599-thumb.jpg&quot; alt=&quot;A shallow stream running straight through a green alpine meadow toward the rocky peaks at the canyon head.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;(Conan) Trout, man. The Kyuss song, the Rambo character, and what I said here under my breath.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/45-img-1600.jpg&quot; data-index=&quot;39&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/45-img-1600-thumb.jpg&quot; alt=&quot;A small blue lake on the canyon floor, ringed by willow and aspen, with steep rock walls closing in on both sides.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;All the water in Nevada seems to be in the Rubies. This is a different pond than what I mentioned before.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/46-img-1601.jpg&quot; data-index=&quot;40&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/46-img-1601-thumb.jpg&quot; alt=&quot;A green mountainside topped with banded gray cliffs, above a marshy flat and the edge of the lake at right.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/47-img-1602.jpg&quot; data-index=&quot;41&quot; data-width=&quot;1200&quot; data-height=&quot;1600&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/the-ruby-mountains-2026/images/47-img-1602-thumb.jpg&quot; alt=&quot;An orange and black tortoiseshell butterfly resting with wings open on the white bark of an aspen trunk.&quot; width=&quot;360&quot; height=&quot;480&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Butterflies and moths were abundant in the Rubies; thankfully mosquitoes were absent at this time.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
</content>
  </entry>
  <entry>
    <title>Bears Ears National Monument</title>
    <link href="https://nathangilbert.com/trips/bears-ears-2017/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/trips/bears-ears-2017/</id>
    <published>2026-08-09T00:00:00Z</published>
    <updated>2026-08-16T00:00:00Z</updated>
    <category term="hiking"/>
    <summary>A trip through the monument as it existed in 2017, with thoughts from 2026.</summary><content type="html">&lt;h2&gt;Bears Ears, May 2017&lt;/h2&gt;
&lt;p&gt;This &lt;a href=&quot;https://www.blm.gov/visit/bears-ears-national-monument&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;National Monument&lt;/a&gt; is back in the news; yet again reduced in size. There are &lt;a href=&quot;https://www.landdesk.org&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;lots&lt;/a&gt; of &lt;a href=&quot;https://www.bearsearscoalition.org/bears-ears-monument-reduction-2026/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;people&lt;/a&gt;
&lt;a href=&quot;https://www.hcn.org/articles/bears-ears-cuts-also-end-first-of-its-kind-tribal-land-commission/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;better&lt;/a&gt; able to articulate why this is bad and not good than me. I&#39;ve only been to the monument a single time so
far. It&#39;s a beautiful place with deep meaning for many people.&lt;/p&gt;
&lt;p&gt;The monument was originally proclaimed on December 28, 2016, so our visit was around 5 months after its creation. From
what I remember there wasn&#39;t really a visitor center or even a permanent sign at the entrance, but more of a cardboard
&amp;quot;hey there&#39;s a monument here!&amp;quot; type of thing.&lt;/p&gt;
&lt;p&gt;We spent several days in the region, visiting &lt;a href=&quot;https://www.nps.gov/nabr/index.htm&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Natural Bridges National Monument&lt;/a&gt; as well as driving down the Moki
Dugway switchbacks to the &lt;a href=&quot;https://en.wikipedia.org/wiki/Valley_of_the_Gods&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Valley of the Gods&lt;/a&gt;. The switchbacks offer amazing views over the landscape and are fun to
drive down. Like many of these switchback roads, they look more intimidating in photos than they look when you&#39;re
actually driving down (or up) them. That said, be careful, a little mistake goes a long ways here. We stopped quickly at
&lt;a href=&quot;https://stateparks.utah.gov/parks/goosenecks/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Goosenecks State Park&lt;/a&gt; which has an amazing overlook of the San Juan river winding through desert canyons.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.blm.gov/visit/mule-canyon-interpretive-site&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Mule Canyon Kiva&lt;/a&gt; is another easy stop in this area. You can spend a day or several days in (the once and future)
Bears Ears. There&#39;s lot of exposed hiking in Bears Ears with little cover from the sun, so plan for that, but you get
to see a lot of natural and historical beauty throughout the monument. Driving by the &amp;quot;Ears&amp;quot; is a great memory of this
visit. Natural Bridges has one great hike that takes most of the day, you get to see many different arches. The hike is
an out-and-back style, we luckily got a ride back to the trailhead from an Australian man which saved us a lot of time
(and effort, of which we&#39;d already extended much of that day on the hike.)&lt;/p&gt;
&lt;div class=&quot;gallery&quot; data-gallery=&quot;&quot;&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/01-2017-05-05-06-55-29.jpg&quot; data-index=&quot;0&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/01-2017-05-05-06-55-29-thumb.jpg&quot; alt=&quot;Early sunlight on a red sandstone rim dropping to a green river bottom, with flat-topped buttes along the horizon.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The morning sun makes the red rocks pop.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/02-2017-05-05-06-55-48.jpg&quot; data-index=&quot;1&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/02-2017-05-05-06-55-48-thumb.jpg&quot; alt=&quot;The sun just clearing a low mesa, its glare spread over a river bend in the canyon bottom, seen from a ledge of stepped red sandstone.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Sunrise on the morning we went to Bears Ears.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/03-2017-05-05-06-55-53.jpg&quot; data-index=&quot;2&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/03-2017-05-05-06-55-53-thumb.jpg&quot; alt=&quot;Flat slabs of red sandstone at the edge of an overlook, with the river and layered mesas beyond them in low morning light.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/04-2017-05-05-06-55-56.jpg&quot; data-index=&quot;3&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/04-2017-05-05-06-55-56-thumb.jpg&quot; alt=&quot;A dark SUV parked on a dirt pullout below a long red butte, its cliffs lit by early sun under a cloudless sky.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/05-2017-05-05-06-56-02.jpg&quot; data-index=&quot;4&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/05-2017-05-05-06-56-02-thumb.jpg&quot; alt=&quot;Long shadows of two people stretching across red desert ground toward a wall of eroded, banded cliffs.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/06-2017-05-05-07-53-41.jpg&quot; data-index=&quot;5&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/06-2017-05-05-07-53-41-thumb.jpg&quot; alt=&quot;A masonry entrance sign reading &amp;quot;Natural Bridges National Monument&amp;quot; with the Park Service arrowhead emblem, junipers behind it beside an empty road.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Always get a picture of the sign. There wasn&amp;#39;t even one for Bears Ears at this time.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/07-2017-05-05-10-06-15.jpg&quot; data-index=&quot;6&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/07-2017-05-05-10-06-15-thumb.jpg&quot; alt=&quot;Stone-and-mortar rooms built under a wide sandstone overhang, the rock arching above them streaked in orange and cream bands like flames.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;House on Fire in good light&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/08-2017-05-05-10-25-26.jpg&quot; data-index=&quot;7&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/08-2017-05-05-10-25-26-thumb.jpg&quot; alt=&quot;A canyon slope thick with juniper and pinyon, pale sandstone outcrops breaking through near the rim under a deep blue sky.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Love a Pinyon/Juniper forest.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/09-2017-05-05-10-25-36.jpg&quot; data-index=&quot;8&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/09-2017-05-05-10-25-36-thumb.jpg&quot; alt=&quot;The far wall of a green canyon, blocky sandstone ledges and shallow alcoves rising above scattered junipers.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;It&amp;#39;s challenging to find Utah Junipers for sale in any nursery here if you can believe it.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/10-2017-05-05-10-54-54.jpg&quot; data-index=&quot;9&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/10-2017-05-05-10-54-54-thumb.jpg&quot; alt=&quot;Looking up at a cliff dwelling tucked beneath a curving sandstone roof, small dark doorways set in a row along its masonry wall.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;House on Fire on the return in the shade.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/11-2017-05-05-11-36-43.jpg&quot; data-index=&quot;10&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/11-2017-05-05-11-36-43-thumb.jpg&quot; alt=&quot;A circular stone kiva dug below ground level, its mortared walls and interior benches sheltered by a modern post-and-beam roof.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Mule Canyon Kiva&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/12-2017-05-05-12-32-46.jpg&quot; data-index=&quot;11&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/12-2017-05-05-12-32-46-thumb.jpg&quot; alt=&quot;A brown road sign reading &amp;quot;Moki Dugway&amp;quot;, plastered edge to edge with stickers, standing in desert scrub.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The Moki Dugway sign, under its usual coat of stickers.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/13-2017-05-05-12-33-17.jpg&quot; data-index=&quot;12&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/13-2017-05-05-12-33-17-thumb.jpg&quot; alt=&quot;The gravel shoulder at the top of the cliff, sagebrush and broken sandstone in front of a hazy desert plain far below.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Approaching Moki Dugway.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/14-2017-05-05-12-33-21.jpg&quot; data-index=&quot;13&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/14-2017-05-05-12-33-21-thumb.jpg&quot; alt=&quot;A dirt road running along the rim with a yellow arrow sign at its edge, the desert basin opening up beyond.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The top of Moki Dugway switchbacks.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/15-2017-05-05-12-35-06.jpg&quot; data-index=&quot;14&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/15-2017-05-05-12-35-06-thumb.jpg&quot; alt=&quot;A long banded cliff running across the frame, its red and white layers dropping to a brushy talus slope and the flats beyond.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/16-2017-05-05-12-35-13.jpg&quot; data-index=&quot;15&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/16-2017-05-05-12-35-13-thumb.jpg&quot; alt=&quot;The edge of a high mesa seen from a sandstone ledge, with a pale desert plain stretching to the horizon below the cliffs.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/17-2017-05-05-12-35-53.jpg&quot; data-index=&quot;16&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/17-2017-05-05-12-35-53-thumb.jpg&quot; alt=&quot;A view from the clifftop down to the road switchbacking through red badlands and running off toward distant buttes.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;You don&amp;#39;t like the desert if these types of viewpoints don&amp;#39;t give you goosebumps.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/18-2017-05-05-12-35-56.jpg&quot; data-index=&quot;17&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/18-2017-05-05-12-35-56-thumb.jpg&quot; alt=&quot;A narrow road running straight across the red desert floor toward far-off mesas, seen from high above with brush in the foreground.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;To the Valley of the Gods.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/19-2017-05-05-12-36-03.jpg&quot; data-index=&quot;18&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/19-2017-05-05-12-36-03-thumb.jpg&quot; alt=&quot;Looking almost straight down at the dirt switchbacks of the Moki Dugway, with a vehicle small on one of the bends.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/20-2017-05-05-12-36-09.jpg&quot; data-index=&quot;19&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/20-2017-05-05-12-36-09-thumb.jpg&quot; alt=&quot;A hairpin bend of the gravel road far below, cut into steep red and grey layered rock.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/21-2017-05-05-12-36-17.jpg&quot; data-index=&quot;20&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/21-2017-05-05-12-36-17-thumb.jpg&quot; alt=&quot;The road threading down a red slope and out across a hazy desert plain, sagebrush in the foreground at the clifftop.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/22-2017-05-05-12-36-21.jpg&quot; data-index=&quot;21&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/22-2017-05-05-12-36-21-thumb.jpg&quot; alt=&quot;A blocky sandstone promontory at the left, with the desert plain and distant buttes stretching out past it under a clear sky.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/23-2017-05-05-13-05-25.jpg&quot; data-index=&quot;22&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/23-2017-05-05-13-05-25-thumb.jpg&quot; alt=&quot;A muddy river winding in tight loops through a deep, sharply layered grey canyon cut into an otherwise flat desert.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The San Juan river.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/24-2017-05-05-13-06-19.jpg&quot; data-index=&quot;23&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/24-2017-05-05-13-06-19-thumb.jpg&quot; alt=&quot;The river doubling back on itself around a long fin of banded rock, hundreds of feet below the canyon rim.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Goosenecks State Park&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/25-2017-05-05-13-06-31.jpg&quot; data-index=&quot;24&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/25-2017-05-05-13-06-31-thumb.jpg&quot; alt=&quot;Two arms of the same river running either side of a narrow rock peninsula, deep in the layered canyon below a flat red overlook.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/26-2017-05-05-14-51-34.jpg&quot; data-index=&quot;25&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/26-2017-05-05-14-51-34-thumb.jpg&quot; alt=&quot;Two flat-topped red buttes standing side by side above a forested ridge under a clear blue sky.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;The Bears Ears&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure class=&quot;gallery-item&quot;&gt;&lt;a class=&quot;gallery-link&quot; href=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/27-2017-05-05-14-51-48.jpg&quot; data-index=&quot;26&quot; data-width=&quot;1600&quot; data-height=&quot;1200&quot;&gt;&lt;img src=&quot;https://nathangilbert.com/trips/bears-ears-2017/images/27-2017-05-05-14-51-48-thumb.jpg&quot; alt=&quot;The pair of Bears Ears buttes on the horizon, seen across a foreground of pinyon, juniper, and flowering brush.&quot; width=&quot;480&quot; height=&quot;360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/a&gt;&lt;figcaption class=&quot;gallery-caption&quot;&gt;Another shot of the Bears Ears.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
</content>
  </entry>
  <entry>
    <title>Mock Where It’s Imported, Not Defined</title>
    <link href="https://nathangilbert.com/thoughts/mocking-madness/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/thoughts/mocking-madness/</id>
    <published>2025-10-06T00:00:00Z</published>
    <updated>2026-08-10T00:00:00Z</updated>
    <category term="coding"/>
    <summary>Understanding why you need to mock where a function is imported in Python tests.</summary><content type="html">&lt;h2&gt;Mocking Where It’s Imported (Not Defined)&lt;/h2&gt;
&lt;p&gt;If you’ve ever written tests in Python using &lt;code&gt;pytest&lt;/code&gt; and &lt;code&gt;unittest.mock&lt;/code&gt;, you’ve probably seen this
confusing bit of advice:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“You have to mock where the function is &lt;strong&gt;imported&lt;/strong&gt;, not where it’s &lt;strong&gt;defined&lt;/strong&gt;.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;At first glance, this seems counterintuitive — why should you patch the same function name in
multiple places when it’s clearly defined in one module? The answer has everything to do with &lt;strong&gt;how
Python imports work&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;The Import Mechanism&lt;/h3&gt;
&lt;p&gt;When you write this:&lt;/p&gt;
&lt;pre class=&quot;language-python&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# foo.py&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;get_data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;real data&quot;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# And in another module there is this&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;# bar.py&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; foo &lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; get_data

&lt;span class=&quot;token keyword&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;process&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token string-interpolation&quot;&gt;&lt;span class=&quot;token string&quot;&gt;f&quot;processed &lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;get_data&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Python copies a reference to &lt;code&gt;foo.get_data&lt;/code&gt; into the namespace of &lt;code&gt;bar&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;So &lt;code&gt;bar.get_data&lt;/code&gt; is not dynamically looked up each time — it’s bound once when &lt;code&gt;bar&lt;/code&gt; is imported.&lt;/p&gt;
&lt;p&gt;That means if you want to replace &lt;code&gt;get_data()&lt;/code&gt; in your tests, mocking &lt;code&gt;foo.get_data&lt;/code&gt; won’t help,
because bar already has its own local reference to the original function.&lt;/p&gt;
&lt;h2&gt;The Wrong Way&lt;/h2&gt;
&lt;p&gt;This is a common mistake:&lt;/p&gt;
&lt;pre class=&quot;language-python&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# test_bar.py&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; unittest&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;mock &lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; patch
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; bar

&lt;span class=&quot;token decorator annotation punctuation&quot;&gt;@patch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;foo.get_data&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; return_value&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;fake data&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;test_process&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;mock_get&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    result &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; bar&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;process&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;assert&lt;/span&gt; result &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;processed fake data&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This test fails, because bar still calls the real &lt;code&gt;get_data()&lt;/code&gt; as it imported from foo before you
patched it. Your patch changed &lt;code&gt;foo.get_data&lt;/code&gt;, not &lt;code&gt;bar.get_data&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;The Right Way&lt;/h2&gt;
&lt;p&gt;Instead, you need to &lt;em&gt;patch the reference that &lt;code&gt;bar&lt;/code&gt; uses&lt;/em&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-python&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;&lt;span class=&quot;token decorator annotation punctuation&quot;&gt;@patch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;bar.get_data&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; return_value&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;fake data&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;test_process&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;mock_get&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    result &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; bar&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;process&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;assert&lt;/span&gt; result &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;processed fake data&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now it works! The &lt;code&gt;unittest.mock.patch&lt;/code&gt; swapped out the object that &lt;code&gt;bar&lt;/code&gt; actually calls.&lt;/p&gt;
&lt;h3&gt;In a pytest fixture&lt;/h3&gt;
&lt;pre class=&quot;language-python&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; pytest
&lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; unittest&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;mock &lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; patch

&lt;span class=&quot;token decorator annotation punctuation&quot;&gt;@pytest&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;fixture&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;mock_get_data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;with&lt;/span&gt; patch&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;bar.get_data&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; return_value&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;mocked&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;as&lt;/span&gt; mock&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;yield&lt;/span&gt; mock

&lt;span class=&quot;token keyword&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;test_process&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;mock_get_data&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; bar &lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; process
    &lt;span class=&quot;token keyword&quot;&gt;assert&lt;/span&gt; process&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;processed mocked&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Why This Happens&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;import&lt;/code&gt; &lt;a href=&quot;https://docs.python.org/3/reference/import.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;statements&lt;/a&gt; in Python work by copying a reference from the source module into the importing
module’s namespace. Once that reference is bound, the importer doesn’t look it up again. This is
different from JavaScript’s live bindings, where imports always reflect the current value of the
export. So when you patch something, you’re not changing a global function everywhere — you’re just
swapping out one module’s reference to it.&lt;/p&gt;
&lt;p&gt;Mocking in Python is about replacing references, not rewriting definitions. Always patch in the
namespace where the code under test looks up the function, not where it was first written. That
mental model will save you from countless hours of “why isn’t my mock working?” frustration — and
make your tests more predictable.&lt;/p&gt;
&lt;h2&gt;Quick Rules of Thumb&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Patch where the function is looked up. Think in terms of “who is calling it,” not “where it
lives.”&lt;/li&gt;
&lt;li&gt;Use fully qualified paths. Always patch using the dotted path as it’s imported in the module
under test (e.g., &lt;code&gt;bar.get_data&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Patch as close to the call site as possible. If &lt;code&gt;bar.process&lt;/code&gt; calls it, patch &lt;code&gt;bar.get_data&lt;/code&gt;.
If &lt;code&gt;baz&lt;/code&gt; imports &lt;code&gt;bar&lt;/code&gt; and calls &lt;code&gt;bar.process()&lt;/code&gt;, patch in &lt;code&gt;baz&lt;/code&gt; if that’s where the call
happens.&lt;/li&gt;
&lt;/ol&gt;
</content>
  </entry>
  <entry>
    <title>Pickleball Struggle Session</title>
    <link href="https://nathangilbert.com/thoughts/pickleball/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/thoughts/pickleball/</id>
    <published>2025-09-06T00:00:00Z</published>
    <updated>2026-08-10T00:00:00Z</updated>
    <category term="humor"/>
    <summary>A recantation of my previous disdain for pickleball.</summary><content type="html">&lt;p&gt;It is with a spirit of humility and discipline that I, the undersigned, issue this public
recantation. For too long I have held erroneous views regarding the practice of pickleball. I
publicly denounced it as a distraction, an opiate for retirees, and ultimately, a diversion from the
true struggle. I scoffed at the plastic ball, the so-called &amp;quot;kitchen,&amp;quot; and the truncated court as
symbols of decadence and decline. In doing so, I not only slandered the activity itself but also
revealed the limitations of my physical and ideological development.&lt;/p&gt;
&lt;p&gt;Through the process of criticism and self-criticism, and guided by the patient intervention of my
comrades, I have come to see that pickleball is not the enemy. Rather, it is a collective,
participatory endeavor that fosters solidarity, inter-generational exchange, and joyful movement. To
dismiss it as frivolous was to lapse into elitism and cultural dogmatism, alienating myself from the
very masses I claim to serve.&lt;/p&gt;
&lt;p&gt;Signed: Nathan Gilbert&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Jeep Misc</title>
    <link href="https://nathangilbert.com/thoughts/jeep-misc/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/thoughts/jeep-misc/</id>
    <published>2025-02-01T00:00:00Z</published>
    <updated>2026-09-14T00:00:00Z</updated>
    <category term="notes"/>
    <summary>Random Jeep stuff, including installation instructions for various parts.</summary><content type="html">&lt;h2&gt;Random Jeep Stuff&lt;/h2&gt;
&lt;h3&gt;XJ Trailer Hitch Installation Instructions&lt;/h3&gt;
&lt;p&gt;I replaced my old rusty original trailer hitch and was surprised you can still purchase a Mopar factory trailer hitch
for a 97-01 XJ. &lt;a href=&quot;https://nathangilbert.com/thoughts/files/Mopar-1997-2001-Jeep-Cherokee-Trailer-Hitch-Installation-Manual.pdf&quot;&gt;Instructions are here&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;XJ Rear Splash Guard Installation Instructions&lt;/h3&gt;
&lt;p&gt;I found a NOS set of mudflaps for my 97-01 XJ. The installation instructions were even in the box, figured I post
them in case anyone else needs them: &lt;a href=&quot;https://nathangilbert.com/thoughts/files/Mopar-82202718-XJ-Rear-Splashguard-Installation-Instructions.pdf&quot;&gt;Here they are.&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;TJ Fog Light Stone Guard Installation Instructions&lt;/h3&gt;
&lt;p&gt;I found a NOS set of fog-light stone guards for my 1998 TJ Wrangler. The &lt;a href=&quot;https://nathangilbert.com/thoughts/files/Mopar-82202586-Stone-Guard-Kit-Installation-Manual.pdf&quot;&gt;installation instructions&lt;/a&gt; were even in
the box, too. These are also valid instructions for &lt;em&gt;Mopar 82202585&lt;/em&gt; and &lt;em&gt;Mopar 82204503&lt;/em&gt;.&lt;/p&gt;
&lt;h3&gt;Mopar Luggage Carrier Kit Installation Instructions&lt;/h3&gt;
&lt;p&gt;I found a NOS Mopar Luggage Carrier Kit for my 1998 XJ Cherokee. The &lt;a href=&quot;https://nathangilbert.com/thoughts/files/Mopar-82207198-Luggage-Carrier-Kit-Installation-Manual.pdf&quot;&gt;installation instructions&lt;/a&gt; were even in the
box, too. These are also valid instructions for &lt;em&gt;Mopar 82207198&lt;/em&gt; and &lt;em&gt;Mopar 82208301&lt;/em&gt;.&lt;/p&gt;
&lt;h3&gt;Mopar Canoe Carrier Kit Installation Instructions&lt;/h3&gt;
&lt;p&gt;These are the &lt;a href=&quot;https://nathangilbert.com/thoughts/files/Mopar-822004700-Canoe-Carrier-Manual.pdf&quot;&gt;instructions&lt;/a&gt; for a &lt;em&gt;Mopar 822004700&lt;/em&gt; Canoe Carrier Kit.&lt;/p&gt;
&lt;h3&gt;Mopar TJ Bike Carrier Instructions&lt;/h3&gt;
&lt;p&gt;Instructions for a &lt;a href=&quot;https://nathangilbert.com/thoughts/files/Mopar-82207520-TJ-Bike-Rack-Manual.pdf&quot;&gt;Mopar Bike&lt;/a&gt; rack for a Jeep TJ. It fits on the spare tire. &lt;em&gt;Mopar 82207520&lt;/em&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Lint for Complexity</title>
    <link href="https://nathangilbert.com/thoughts/complexity-linting/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/thoughts/complexity-linting/</id>
    <published>2024-12-24T00:00:00Z</published>
    <updated>2026-08-10T00:00:00Z</updated>
    <category term="coding"/>
    <summary>How to lint for complexity in your code.</summary><content type="html">&lt;h2&gt;Understanding &amp;amp; Linting for Cyclomatic Complexity&lt;/h2&gt;
&lt;h3&gt;Background&lt;/h3&gt;
&lt;p&gt;There are many ways to measure the complexity of a piece of software: number of lines, Big O, and so on. &lt;a href=&quot;http://www.literateprogramming.com/mccabe.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Cyclomatic
Complexity&lt;/a&gt; attempts to do this by enumerating all linearly independent paths through a segment of code. Linearly
independent means that each path has at least one edge that is not in another path (if viewing the code as a graph).&lt;/p&gt;
&lt;p&gt;McCabe defined CC using graph theory as:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;M = E - N + 2P&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;E&lt;/code&gt; = edges in the graph&lt;/li&gt;
&lt;li&gt;&lt;code&gt;N&lt;/code&gt; = nodes in the graph&lt;/li&gt;
&lt;li&gt;&lt;code&gt;P&lt;/code&gt; = number of connected components (think modules) of a program&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If a program had no control flow statements (if, switch, goto, etc.), then the CC would be 1. If a program has 1
&lt;em&gt;if&lt;/em&gt; statement, then its CC is 2.&lt;/p&gt;
&lt;p&gt;A program that has 50 lines consisting of 25 consecutive &amp;quot;if/then&amp;quot; constructs will have over 33 million (&lt;code&gt;2^{25}&lt;/code&gt;)
distinct paths through the program. There&#39;s no way all those paths are getting tested!&lt;/p&gt;
&lt;p&gt;Let&#39;s analyze the following snippet of Python code:&lt;/p&gt;
&lt;pre class=&quot;language-python&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;cc_example&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;b&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; c&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  a &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; b &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; c&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    a &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; b
  &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    a &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; c
  &lt;span class=&quot;token keyword&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;a&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; b&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; c&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;What is the cyclomatic complexity of this method?&lt;/p&gt;
&lt;p&gt;We can draw the graph of this method:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nathangilbert.com/images/cc.png&quot; alt=&quot;Cyclomatic Complexity Graph&quot;&gt;&lt;/p&gt;
&lt;p&gt;The graph has seven nodes and seven edges, so its cyclomatic complexity is:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;7 - 7 + 2 = 2&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Suggested Levels of CC&lt;/h3&gt;
&lt;p&gt;There doesn&#39;t seem to be an agreed-upon threshold for what amount of CC is too much, though generally the higher
your code&#39;s CC, the harder it is to maintain. This naturally grows with the number of lines in your software.&lt;/p&gt;
&lt;p&gt;According to a random &lt;a href=&quot;https://softwareengineering.stackexchange.com/questions/101830/what-does-the-cyclomatic-complexity-of-my-code-mean&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;StackExchange post&lt;/a&gt;, the following is a rubric for CC scores and their meaning:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt; 10&lt;/strong&gt;: Easy to maintain&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;11-20&lt;/strong&gt;: Harder to maintain&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;21+&lt;/strong&gt;: Candidates for refactoring/redesign&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Other &lt;a href=&quot;https://www.aivosto.com/project/help/pm-complexity.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;websites&lt;/a&gt; have slightly different tolerances, but I like the StackExchange metric for methods.&lt;/p&gt;
&lt;h3&gt;Pros of Using CC in Your Project&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Helps write code that is easier to read &amp;amp; reason about&lt;/li&gt;
&lt;li&gt;Easier to write unit tests (fewer paths that need to be explored)&lt;/li&gt;
&lt;li&gt;Easy to calculate with plugins to popular linters&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;ESLint Settings for Cyclomatic Complexity&lt;/h3&gt;
&lt;p&gt;If you&#39;re using JavaScript or TypeScript in your project, you&#39;ve already got a Cyclomatic Complexity checker at hand.
You just need to configure it to run when you&#39;re linting.&lt;/p&gt;
&lt;p&gt;The following additions to your &lt;code&gt;.eslintrc&lt;/code&gt; file will activate the complexity rules and several other related checks.
The &lt;code&gt;complexity&lt;/code&gt; rule below measures Cyclomatic Complexity specifically. Here, it is set to raise a linting error if
the complexity of a method is above 5.&lt;/p&gt;
&lt;p&gt;Many of the other rules measure things like clause depth and the number of lines in a method.&lt;/p&gt;
&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;rules&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;complexity&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;array-callback-return&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;max-statements&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;max-statements-per-line&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;max&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;max-nested-callbacks&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;max-depth&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;max&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;max-lines&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;200&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;no-return-assign&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;no-param-reassign&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <title>Some tricks I use to make devlife easier</title>
    <link href="https://nathangilbert.com/thoughts/dev-life-hacks/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/thoughts/dev-life-hacks/</id>
    <published>2024-12-24T00:00:00Z</published>
    <updated>2026-08-10T00:00:00Z</updated>
    <category term="coding"/>
    <summary>Shell aliases, history search, directory jumping, and IDE plugins I keep set up.</summary><content type="html">&lt;p&gt;&lt;img src=&quot;https://nathangilbert.com/images/desktop-up.jpg&quot; alt=&quot;Desktop setup&quot; style=&quot;width:300px; height:auto;&quot; width=&quot;600&quot; height=&quot;600&quot; decoding=&quot;async&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Subjective Dev Life Hacks&lt;/h2&gt;
&lt;h3&gt;Aliases&lt;/h3&gt;
&lt;p&gt;Aliases are available in most modern shells. They save time by reducing the amount of characters needed to invoke
common commands.&lt;/p&gt;
&lt;pre class=&quot;language-fish&quot;&gt;&lt;code class=&quot;language-fish&quot;&gt;alias ga=&#39;git add . and git add -u .&#39;
alias gb=&#39;git branch&#39;
alias gs=&#39;git status&#39;
alias gt=&#39;cd (git rev-parse --show-cdup)&#39;
alias gbd=&#39;git branch --delete&#39;
alias gca=&#39;git commit --amend&#39;
alias glg=&quot;git log --pretty=format:&#39;%Cred%h%Creset -%Creset %s %Cgreen(%cr) %C(bold blue)&lt;%an&gt;%Creset&#39; --abbrev-commit&quot;
alias gpr=&#39;git pull --rebase&#39;
alias nus=&#39;nvm use stable&#39;
alias gcam=&#39;git commit -a -m&#39;
alias gcan=&#39;git commit --amend --no-edit&#39;
alias gcma=&#39;git checkout main&#39;&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Git Decorations in Your Shell&lt;/h3&gt;
&lt;p&gt;You spend a lot of time in your shell, make it nice to look at and work for you.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bash&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/magicmonty/bash-git-prompt&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Bash Git Prompt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zsh&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/ohmyzsh/ohmyzsh&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Oh My Zsh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/Flower7C3/oh-flowers-zsh-theme&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Oh Flowers Zsh Theme&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/unixorn/awesome-zsh-plugins&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Awesome Zsh Plugins&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fish&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jorgebucaran/awsm.fish&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Awesome Fish&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jorgebucaran/fisher&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Fisher&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Command History and Searching&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bash&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.linuxcommands.site/linux-text-processing-commands/6-methods-of-executing-historical-commands-in-linux-bash/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;6 Methods of Executing Historical Commands in Bash&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zsh&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/zsh-users/zsh-completions&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Zsh Completions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/Zsh-Packages/fzf&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;fzf for Zsh&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fish&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;History is built-in!&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/PatrickF1/fzf.fish&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;fzf for Fish&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Directory Jumping&lt;/h3&gt;
&lt;p&gt;Life&#39;s too short to type long directory names.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bash&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rupa/z/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Z for Bash&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zsh&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/agkozak/zsh-z&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Zsh-z&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fish&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jethrokuan/z&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;z for Fish&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;IDE Plugins&lt;/h3&gt;
&lt;p&gt;You probably spend even more time in your IDE, so spruce it up a bit.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Shortcuts&lt;/strong&gt;: &lt;a href=&quot;https://dev.to/lampewebdev/the-guide-to-visual-studio-code-shortcuts-higher-productivity-and-30-of-my-favourite-shortcuts-you-need-to-learn-mb3&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;The Guide to VSCode Shortcuts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ESLint&lt;/strong&gt;: &lt;a href=&quot;https://github.com/Microsoft/vscode-eslint&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;VSCode ESLint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code Spell Checker&lt;/strong&gt;: &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Spell Checker Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rainbow Brackets&lt;/strong&gt;: &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=2gua.rainbow-brackets&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Rainbow Brackets Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Jest&lt;/strong&gt;: &lt;a href=&quot;https://github.com/jest-community/vscode-jest&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Jest Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prettier&lt;/strong&gt;: &lt;a href=&quot;https://github.com/prettier/prettier-vscode&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Prettier VSCode Plugin&lt;/a&gt;, run it on save!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vim&lt;/strong&gt;: 😁 😈&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Some handy git commands</title>
    <link href="https://nathangilbert.com/thoughts/git-tricks/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/thoughts/git-tricks/</id>
    <published>2024-12-24T00:00:00Z</published>
    <updated>2026-08-10T00:00:00Z</updated>
    <category term="coding"/>
    <summary>Cherry-pick, interactive rebase, and reflog — commands for slicing and dicing commits.</summary><content type="html">&lt;h2&gt;Helpful Git Commands to Slice &amp;amp; Dice Commits&lt;/h2&gt;
&lt;p&gt;This &lt;a href=&quot;https://github.com/nathan-gilbert/conways-game-of-life&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Conway&#39;s Game of Life&lt;/a&gt; repo is the
basis for the examples here, specifically, the &lt;code&gt;activate-demo&lt;/code&gt; and &lt;code&gt;main&lt;/code&gt; branches.&lt;/p&gt;
&lt;h3&gt;git cherry-pick&lt;/h3&gt;
&lt;p&gt;Say you have a bunch of commits in a branch that you want to break up into multiple commits (for smaller Pull or
Merge Requests). If you have confidence that your commits are atomic, use &lt;code&gt;git cherry-pick&lt;/code&gt; to copy them to a new
branch. Use &lt;code&gt;git log&lt;/code&gt; to find the commit you want to copy in your current working branch, grab its &lt;em&gt;SHA&lt;/em&gt;. Checkout
the main branch and create a new branch off of it. Then change to the new branch and cherry-pick using:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; cherry-pick &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;SHA-of-COMMIT&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is useful when you want to grab a single commit from one branch and place it in another one.&lt;/p&gt;
&lt;h3&gt;git rebase -i&lt;/h3&gt;
&lt;p&gt;But what if you have multiple commits you want to rearrange or move?&lt;/p&gt;
&lt;p&gt;Rebase them. This is a very powerful tool. You can rewrite large chunks of history in one go with this command. You
can reorder commits. You can delete commits.&lt;/p&gt;
&lt;p&gt;When using this command, you specify the number of previous commits you&#39;d like to rebase with:&lt;/p&gt;
&lt;h3&gt;git rebase -i HEAD~5&lt;/h3&gt;
&lt;p&gt;This would target the previous 5 commits. The image below demonstrates the look of the rebase menu with 5 commits.
One thing to note is that the commits are listed oldest first.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nathangilbert.com/images/rebase.png&quot; alt=&quot;Git Rebase&quot;&gt;&lt;/p&gt;
&lt;p&gt;Rebase commands:&lt;/p&gt;
&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;p, pick &lt;commit&gt;: Actually use the commit in the result.
r, reword &lt;commit&gt;: Edit the commit message and use it.
e, edit &lt;commit&gt;: Amend this commit and use it.
s, squash &lt;commit&gt;: Use it but meld into the previous commit.
f, fixup &lt;commit&gt;: Like &quot;squash,&quot; but discard this commit&#39;s log message.
x, exec &lt;command&gt;: Run command (the rest of the line) using the shell.
b, break: Stop here (continues rebase with git rebase --continue).
d, drop &lt;commit&gt;: Remove the commit.
l, label &lt;label&gt;: Label the current HEAD with a name.
t, reset &lt;label&gt;: Reset HEAD to a label.
m, merge: Create a merge commit.&lt;/label&gt;&lt;/label&gt;&lt;/commit&gt;&lt;/commit&gt;&lt;/commit&gt;&lt;/commit&gt;&lt;/commit&gt;&lt;/commit&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As you can see, there is a lot you can do with this command. The most useful features for me are typically squashing
or rewording multiple commit messages in one step.&lt;/p&gt;
&lt;p&gt;Interactive Rebase is useful for editing multiple commits in a branch at the same time.&lt;/p&gt;
&lt;h3&gt;git reflog&lt;/h3&gt;
&lt;p&gt;This command is useful if you make mistakes using the previous commands. The reflog contains all the changes made to
the tips of branches.&lt;/p&gt;
&lt;p&gt;It&#39;s useful to find a safe place to reset your current working branch in case you&#39;ve made a mistake using
cherry-pick or rebase. For instance, you can see the current HEAD (the tips of the branches) on both your remote and
local branches. If you haven&#39;t pushed your incorrect local changes to a remote branch yet, you can recover the old
HEAD from the remote branch locally—thus reverting your mistake.&lt;/p&gt;
&lt;p&gt;Using reflog gives you a map back to safety if you&#39;ve made mistakes in your branch.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Jeep XJ Axle Information</title>
    <link href="https://nathangilbert.com/thoughts/jeep-axle-info/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/thoughts/jeep-axle-info/</id>
    <published>2024-12-24T00:00:00Z</published>
    <updated>2026-08-10T00:00:00Z</updated>
    <category term="notes"/>
    <summary>Information about Jeep XJ and MJ Dana 44 axles, including gear ratios and options.</summary><content type="html">&lt;p&gt;&lt;img src=&quot;https://nathangilbert.com/images/canyonlands-jeep.jpg&quot; alt=&quot;Jeeping in Canyonlands&quot; style=&quot;width:100%; height:auto;&quot; width=&quot;1600&quot; height=&quot;156&quot; decoding=&quot;async&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Jeep XJ Axle Info&lt;/h2&gt;
&lt;h3&gt;Dana 44 Axles for MJs and XJs&lt;/h3&gt;
&lt;p&gt;The Trak-Lok options mean it is a Limited-Slip differential.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Serial #&lt;/th&gt;
&lt;th&gt;Host Model&lt;/th&gt;
&lt;th&gt;Year&lt;/th&gt;
&lt;th&gt;Gear Ratio&lt;/th&gt;
&lt;th&gt;Options&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;605287-1&lt;/td&gt;
&lt;td&gt;MJ&lt;/td&gt;
&lt;td&gt;86&lt;/td&gt;
&lt;td&gt;3.54:1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605287-2&lt;/td&gt;
&lt;td&gt;MJ&lt;/td&gt;
&lt;td&gt;86&lt;/td&gt;
&lt;td&gt;4.09:1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605287-3&lt;/td&gt;
&lt;td&gt;MJ&lt;/td&gt;
&lt;td&gt;86&lt;/td&gt;
&lt;td&gt;3.54:1&lt;/td&gt;
&lt;td&gt;Trak-Loc&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605287-4&lt;/td&gt;
&lt;td&gt;MJ&lt;/td&gt;
&lt;td&gt;86&lt;/td&gt;
&lt;td&gt;4.09:1&lt;/td&gt;
&lt;td&gt;Trak-Loc&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605342-1&lt;/td&gt;
&lt;td&gt;XJ&lt;/td&gt;
&lt;td&gt;87.5&lt;/td&gt;
&lt;td&gt;3.07:1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605342-2&lt;/td&gt;
&lt;td&gt;XJ&lt;/td&gt;
&lt;td&gt;87.5&lt;/td&gt;
&lt;td&gt;3.07:1&lt;/td&gt;
&lt;td&gt;Trac-Lok&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605342-3&lt;/td&gt;
&lt;td&gt;XJ&lt;/td&gt;
&lt;td&gt;87.5&lt;/td&gt;
&lt;td&gt;3.54:1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605342-4&lt;/td&gt;
&lt;td&gt;XJ&lt;/td&gt;
&lt;td&gt;87.5&lt;/td&gt;
&lt;td&gt;3.54:1&lt;/td&gt;
&lt;td&gt;Trac-Lok&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605342-5&lt;/td&gt;
&lt;td&gt;XJ&lt;/td&gt;
&lt;td&gt;87.5&lt;/td&gt;
&lt;td&gt;3.55:1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605342-6&lt;/td&gt;
&lt;td&gt;XJ&lt;/td&gt;
&lt;td&gt;87.5&lt;/td&gt;
&lt;td&gt;3.55:1&lt;/td&gt;
&lt;td&gt;Trac-Lok&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605325-1&lt;/td&gt;
&lt;td&gt;MJ/XJ&lt;/td&gt;
&lt;td&gt;87.5-93.5&lt;/td&gt;
&lt;td&gt;3.54:1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605325-2&lt;/td&gt;
&lt;td&gt;MJ/XJ&lt;/td&gt;
&lt;td&gt;87.5-93.5&lt;/td&gt;
&lt;td&gt;4.09:1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605325-3&lt;/td&gt;
&lt;td&gt;MJ/XJ&lt;/td&gt;
&lt;td&gt;87.5-93.5&lt;/td&gt;
&lt;td&gt;3.07:1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605325-4&lt;/td&gt;
&lt;td&gt;MJ/XJ&lt;/td&gt;
&lt;td&gt;87.5-93.5&lt;/td&gt;
&lt;td&gt;3.07:1&lt;/td&gt;
&lt;td&gt;Trac-Lok&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605325-5&lt;/td&gt;
&lt;td&gt;MJ/XJ&lt;/td&gt;
&lt;td&gt;87.5-93.5&lt;/td&gt;
&lt;td&gt;3.54:1&lt;/td&gt;
&lt;td&gt;Trac-Lok&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605325-6&lt;/td&gt;
&lt;td&gt;MJ/XJ&lt;/td&gt;
&lt;td&gt;87.5-93.5&lt;/td&gt;
&lt;td&gt;3.54:1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605325-7&lt;/td&gt;
&lt;td&gt;MJ/XJ&lt;/td&gt;
&lt;td&gt;87.5-93.5&lt;/td&gt;
&lt;td&gt;3.54:1&lt;/td&gt;
&lt;td&gt;Trac-Lok&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605325-8&lt;/td&gt;
&lt;td&gt;MJ/XJ&lt;/td&gt;
&lt;td&gt;87.5-93.5&lt;/td&gt;
&lt;td&gt;3.07:1&lt;/td&gt;
&lt;td&gt;Trac-Lok&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605325-9&lt;/td&gt;
&lt;td&gt;MJ/XJ&lt;/td&gt;
&lt;td&gt;87.5-93.5&lt;/td&gt;
&lt;td&gt;3.54:1&lt;/td&gt;
&lt;td&gt;Trac-Lok&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605325-10&lt;/td&gt;
&lt;td&gt;MJ/XJ&lt;/td&gt;
&lt;td&gt;87.5-93.5&lt;/td&gt;
&lt;td&gt;3.54:1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605325-11&lt;/td&gt;
&lt;td&gt;MJ/XJ&lt;/td&gt;
&lt;td&gt;87.5-93.5&lt;/td&gt;
&lt;td&gt;4.09:1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605325-12&lt;/td&gt;
&lt;td&gt;MJ/XJ&lt;/td&gt;
&lt;td&gt;87.5-93.5&lt;/td&gt;
&lt;td&gt;3.07:1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605325-13&lt;/td&gt;
&lt;td&gt;MJ/XJ&lt;/td&gt;
&lt;td&gt;87.5-93.5&lt;/td&gt;
&lt;td&gt;3.07:1&lt;/td&gt;
&lt;td&gt;Trac-Lok&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605325-14&lt;/td&gt;
&lt;td&gt;MJ/XJ&lt;/td&gt;
&lt;td&gt;87.5-93.5&lt;/td&gt;
&lt;td&gt;3.54:1&lt;/td&gt;
&lt;td&gt;Trac-Lok&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;605325-15&lt;/td&gt;
&lt;td&gt;MJ/XJ&lt;/td&gt;
&lt;td&gt;87.5-93.5&lt;/td&gt;
&lt;td&gt;4.09:1&lt;/td&gt;
&lt;td&gt;Trac-Lok&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;I own a 605325-9 taken from a 1990 MJ. I had a shop convert it to fit an XJ (leafs over the axle,
relocated shock mounts) and installed it on my 1998 XJ.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>For cases where logic must do.</title>
    <link href="https://nathangilbert.com/thoughts/logical-fallacies/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/thoughts/logical-fallacies/</id>
    <published>2024-12-24T00:00:00Z</published>
    <updated>2026-08-10T00:00:00Z</updated>
    <category term="notes"/>
    <summary>A collection of logical fallacies that I wanted to keep around for posterity.</summary><content type="html">&lt;h2&gt;Logical Fallacies&lt;/h2&gt;
&lt;p&gt;Just some examples I wanted to keep around for posterity. I originally saw this posted on Usenet many years ago.&lt;/p&gt;
&lt;h3&gt;Fallacies that result from errors in induction&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Overstatement&lt;/strong&gt;: An unqualified generalization.&lt;br&gt;
&lt;em&gt;Examples&lt;/em&gt;:&lt;br&gt;
&amp;quot;My English teacher never gives A&#39;s.&amp;quot;&lt;br&gt;
&amp;quot;Almonds are good for the heart; everyone should eat 2 handfuls of almonds every day.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Hasty Generalization&lt;/strong&gt;: Stating a conclusion based on too little evidence or ignoring some evidence.
&lt;em&gt;Examples&lt;/em&gt;:&lt;br&gt;
&amp;quot;Running must be bad for your heart. Look what happened to Florence Joiner.&amp;quot;&lt;br&gt;
&amp;quot;My little Yamaha motorcycle never gave me problems. Yamaha motorcycles are the best.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Stereotyping&lt;/strong&gt;: Giving the same characteristics to everyone in a group.&lt;br&gt;
&lt;em&gt;Examples&lt;/em&gt;:&lt;br&gt;
&amp;quot;Used-car salesmen can&#39;t be trusted.&amp;quot;&lt;br&gt;
&amp;quot;Utah State graduates are all nerdy.&amp;quot;&lt;br&gt;
&amp;quot;Southern Utahns are all right-wing conservative fanatics who refuse to pay taxes and want to destroy the
environment.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Forced hypothesis&lt;/strong&gt;: Reaching a conclusion that is not supported by the evidence or is unnecessarily complicated.
&lt;em&gt;Example&lt;/em&gt;:&lt;br&gt;
&amp;quot;Jerry and Kim live next door to each other, so they must be really good friends.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Non sequitur&lt;/strong&gt;: Conclusions not logically derived from preceding reasoning.&lt;br&gt;
&lt;em&gt;Example&lt;/em&gt;:&lt;br&gt;
&amp;quot;Al Gore is a wonderful father, so he would have made a great president.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Slippery slope&lt;/strong&gt;: Asserting that X should not happen because it will inevitably lead to Y and Z, which are
terrible.
&lt;em&gt;Examples&lt;/em&gt;:&lt;br&gt;
&amp;quot;Utah should not legalize parimutuel betting on horse races because that will only lead to
gambling on other sporting events and finally to casino gambling.&amp;quot;
&amp;quot;We should never allow families to have doctors disconnect the respirators and feeding tubes of brain-dead patients.
If we do, pretty soon we will be asking doctors to kill people with Alzheimer&#39;s disease.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;False dilemma&lt;/strong&gt;: Asserting only two options exist when more are available.&lt;br&gt;
&lt;em&gt;Example&lt;/em&gt;:&lt;br&gt;
&amp;quot;You either support the war in Iraq or you are a traitor to your country and an enemy to freedom.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;False analogy&lt;/strong&gt;: Comparing two things with differences too great to justify the comparison.&lt;br&gt;
&lt;em&gt;Example&lt;/em&gt;:&lt;br&gt;
&amp;quot;There are 10,000 deaths from alcohol poisoning to 1 from mad-dog bites in this country. In spite of this, we license
liquor but shoot the dogs.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Post hoc&lt;/strong&gt;: From the Latin &amp;quot;after this, therefore because of it,&amp;quot; assigning a cause-effect relationship where none
exists.
&lt;em&gt;Example&lt;/em&gt;:&lt;br&gt;
&amp;quot;A black cat ran across my path on the way to work this morning, and sure enough, I got a flat tire on the way home.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Fallacies that result from ignoring the issue&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Begging the question&lt;/strong&gt;: Assuming part or all of your argument is true without support.&lt;br&gt;
&lt;em&gt;Examples&lt;/em&gt;:&lt;br&gt;
&amp;quot;The federal government should not subsidize development of alternative-fuel automobiles because gasoline is the
cheapest and cleanest fuel.&amp;quot;
&amp;quot;We should give every American the right to have assault weapons in their home because we know that a nation where
citizens have assault weapons will be safer.&amp;quot;
&amp;quot;We know that our police are never involved in bribery, dishonesty, or abuse of the law because the police report
said so.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Red herring&lt;/strong&gt;: Introducing an irrelevant side issue to divert attention.&lt;br&gt;
&lt;em&gt;Example&lt;/em&gt;:&lt;br&gt;
&amp;quot;Mary Gordon shouldn&#39;t be elected to the school board because she doesn&#39;t have any children in public schools.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Straw man&lt;/strong&gt;: Misrepresenting an opponent&#39;s view and attacking the misrepresentation instead.&lt;br&gt;
&lt;em&gt;Example&lt;/em&gt;:&lt;br&gt;
&amp;quot;Environmentalists are trying to save the spotted owl because they want to run American loggers out of business.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ad hominem&lt;/strong&gt;: Attacking the person making the argument rather than the argument itself.&lt;br&gt;
&lt;em&gt;Example&lt;/em&gt;:&lt;br&gt;
&amp;quot;You&#39;re too young to understand the importance of this issue.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Argument ad Misericordiam&lt;/strong&gt; (&amp;quot;Argument to Pity&amp;quot;): Using emotional appeal instead of logic.&lt;br&gt;
&lt;em&gt;Examples&lt;/em&gt;:&lt;br&gt;
&amp;quot;I know my paper is late, but I had the worst pimple on my nose for a week. Please don&#39;t mark it late.&amp;quot;
&amp;quot;Janice, you have to marry me! If you don&#39;t, I will be the most miserable person alive.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Common practice&lt;/strong&gt;: Arguing that something is acceptable because &amp;quot;everyone is doing it.&amp;quot;&lt;br&gt;
&lt;em&gt;Examples&lt;/em&gt;:&lt;br&gt;
&amp;quot;Don&#39;t worry about using your older brother&#39;s research paper; half the kids in the class are doing it.&amp;quot;
&amp;quot;Dad, I can&#39;t live without a cell phone and a laptop. All the kids have them now.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Argument ad populum&lt;/strong&gt;: Appealing to the beliefs of the masses.&lt;br&gt;
&lt;em&gt;Example&lt;/em&gt;:&lt;br&gt;
&amp;quot;Republican candidates are the choice of red-blooded Americans who believe in traditional American values.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Argumentum ad Baculum&lt;/strong&gt; (&amp;quot;Appeal to Force&amp;quot;): Using threats or force to persuade.&lt;br&gt;
&lt;em&gt;Example&lt;/em&gt;:&lt;br&gt;
&amp;quot;If you don&#39;t support this policy, you&#39;re unpatriotic and will face backlash.&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Machine Learning Labs</title>
    <link href="https://nathangilbert.com/thoughts/mll/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/thoughts/mll/</id>
    <published>2024-12-24T00:00:00Z</published>
    <updated>2026-08-10T00:00:00Z</updated>
    <category term="coding"/>
    <summary>A collection of machine learning labs I&#39;ve been working on for the AI/ML Guild at Workfront.</summary><content type="html">&lt;h2&gt;Machine Learning Labs&lt;/h2&gt;
&lt;p&gt;I&#39;ve been working on some labs for the AI/ML Guild at Workfront. Here they are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/nathan-gilbert/ai-ml-guild-lab1&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Lab 1&lt;/a&gt; - General beginner steps getting
started with an ML project.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/nathan-gilbert/ai-ml-guild-lab2&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Lab 2&lt;/a&gt; - Perceptrons and linear binary&lt;br&gt;
classification. Multi-Layer Perceptrons and Neural Nets.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/nathan-gilbert/ai-ml-guild-lab3&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Lab 3&lt;/a&gt; - Decision Trees are fun.&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Naming Things is Hard</title>
    <link href="https://nathangilbert.com/thoughts/names-are-hard/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/thoughts/names-are-hard/</id>
    <published>2024-12-24T00:00:00Z</published>
    <updated>2026-08-10T00:00:00Z</updated>
    <category term="coding"/>
    <summary>A collection of tips and tricks for naming things in code.</summary><content type="html">&lt;h2&gt;Naming things is hard&lt;/h2&gt;
&lt;p&gt;It&#39;s hard to be descriptive about the code you&#39;re writing. Maybe it&#39;s because you&#39;re still
figuring out &lt;em&gt;what&lt;/em&gt; the purpose of the code you&#39;re writing is or you are not a domain-expert on
the problem at hand.&lt;/p&gt;
&lt;p&gt;Most of these examples are taken from &lt;em&gt;Clean Code&lt;/em&gt; by Robert Martin.&lt;/p&gt;
&lt;h3&gt;Be Practical&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Use names that convey intention&lt;/em&gt;, e.g., &lt;code&gt;int elapsedTimeInDays;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Use words that you can say&lt;/em&gt;, programming is communicating!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Use searchable terms&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;Hard to find a variable named &lt;code&gt;a&lt;/code&gt; in a codebase.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Names can be vectors for feature-creep&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;Too general of a class name, and suddenly you have a catch-all, deeply coupled class instead
of targeted functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Be Clear&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Avoid misnomers (duh)&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;Don&#39;t name something &lt;code&gt;diamondList&lt;/code&gt; when the collection is a map.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Make things different enough to understand&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;Don&#39;t name things just to satisfy a compiler&lt;/li&gt;
&lt;li&gt;&lt;code&gt;zork&lt;/code&gt; vs &lt;code&gt;theZork&lt;/code&gt; isn&#39;t that meaningful&lt;/li&gt;
&lt;li&gt;Codebase dependent&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Don&#39;t create a code to write your code&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;Use language from the domain of the program&lt;/li&gt;
&lt;li&gt;In typed languages, it&#39;s not great to include the data type in the name. e.g., &lt;code&gt;phoneString&lt;/code&gt;;
what if the datatype changes?&lt;/li&gt;
&lt;li&gt;It&#39;s still good practice to use naming conventions for interfaces or implementations.&lt;/li&gt;
&lt;li&gt;Bob doesn&#39;t like member declarations; I don&#39;t mind them. Using underscores for private
variables or unused variables is fine too.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;One word per concept&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;Generally, classes are nouns, functions are verbs.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Add Context, at the right level, but not too much&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;Very dependent on the codebase.&lt;/li&gt;
&lt;li&gt;Examples from the book: &lt;code&gt;firstName&lt;/code&gt;, &lt;code&gt;lastName&lt;/code&gt;, but for what purpose?&lt;/li&gt;
&lt;li&gt;Too much context: prefixing every class in the codebase.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Jokes aside&lt;/h3&gt;
&lt;p&gt;This is the hardest for me at times.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;In (or Out) Jokes&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;Not professional, confusing&lt;/li&gt;
&lt;li&gt;Say what you mean, mean what you say&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;No Puns (same word for different purposes)&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>OpenBSD Setup</title>
    <link href="https://nathangilbert.com/thoughts/openbsd-setup-tips/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/thoughts/openbsd-setup-tips/</id>
    <published>2024-12-24T00:00:00Z</published>
    <updated>2026-08-10T00:00:00Z</updated>
    <category term="notes"/>
    <summary>Some good setup links for OpenBSD.</summary><content type="html">&lt;h2&gt;OpenBSD&lt;/h2&gt;
&lt;p&gt;I recently bought an old Acer laptop and revived it using &lt;a href=&quot;https://www.openbsd.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;OpenBSD&lt;/a&gt;.
It&#39;s a fun operating system to use on any hardware. OpenBSD is touted as the most secure OS in
the world.&lt;/p&gt;
&lt;p&gt;Some good setup links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://sohcahtoa.org.uk/openbsd.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;SohCahToa OpenBSD Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://zakaria.org/posts/2021-01-04-xenodm.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Xenodm Setup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dataswamp.org/~solene/2021-08-05-openbsd-wifi-list.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;OpenBSD WiFi List&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dataswamp.org/~solene/index-full.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Solene&#39;s OpenBSD Index&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;XDM Setup&lt;/h3&gt;
&lt;p&gt;The login screen is managed by XDM. This is the config I used to get a nice blue background with
the puffer fish logo.&lt;/p&gt;
&lt;h4&gt;&lt;code&gt;/etc/X11/Xenodm/Xsetup_0&lt;/code&gt;&lt;/h4&gt;
&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token shebang important&quot;&gt;#!/bin/sh&lt;/span&gt;
xrandr &lt;span class=&quot;token parameter variable&quot;&gt;--output&lt;/span&gt; default &lt;span class=&quot;token parameter variable&quot;&gt;--dpi&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;96&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# requires pkg_add terminus-font&lt;/span&gt;
xset fp+ /usr/local/share/fonts/terminus

&lt;span class=&quot;token assign-left variable&quot;&gt;prefix&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;/usr/X11R6&quot;&lt;/span&gt;
&lt;span class=&quot;token assign-left variable&quot;&gt;exec_prefix&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;${prefix}&lt;/span&gt;&quot;&lt;/span&gt;

&lt;span class=&quot;token assign-left variable&quot;&gt;BG_COLOR&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;#203051&quot;&lt;/span&gt;
&lt;span class=&quot;token variable&quot;&gt;${exec_prefix}&lt;/span&gt;/bin/xsetroot &lt;span class=&quot;token parameter variable&quot;&gt;-solid&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$BG_COLOR&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# Disable xconsole&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;# ${exec_prefix}/bin/xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# Show the Sleep / Restart / Shutdown bar&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;# In case of sleep, pop xmessage again after waking up&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;do&lt;/span&gt;
  xmessage &lt;span class=&quot;token parameter variable&quot;&gt;-geometry&lt;/span&gt; +825-32 &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
    &lt;span class=&quot;token parameter variable&quot;&gt;-buttons&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;[ Sleep ]&quot;&lt;/span&gt;:20,&lt;span class=&quot;token string&quot;&gt;&quot;[ Restart ]&quot;&lt;/span&gt;:21,&lt;span class=&quot;token string&quot;&gt;&quot;[ Shutdown ]&quot;&lt;/span&gt;:22 &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;
  &lt;span class=&quot;token assign-left variable&quot;&gt;ACTION&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$?&lt;/span&gt;
  &lt;span class=&quot;token builtin class-name&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Xmessage said: &lt;span class=&quot;token variable&quot;&gt;$ACTION&lt;/span&gt;&quot;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;   &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$ACTION&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-eq&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;then&lt;/span&gt; /usr/sbin/zzz&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;elif&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$ACTION&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-eq&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;21&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;then&lt;/span&gt;
    xsetroot &lt;span class=&quot;token parameter variable&quot;&gt;-cursor_name&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;watch&lt;/span&gt;
    /sbin/shutdown &lt;span class=&quot;token parameter variable&quot;&gt;-r&lt;/span&gt; now
  &lt;span class=&quot;token keyword&quot;&gt;elif&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$ACTION&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-eq&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;22&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;then&lt;/span&gt;
    xsetroot &lt;span class=&quot;token parameter variable&quot;&gt;-cursor_name&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;watch&lt;/span&gt;
    /sbin/shutdown &lt;span class=&quot;token parameter variable&quot;&gt;-p&lt;/span&gt; now
  &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token builtin class-name&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Something bad happened to Xmessage.&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;fi&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;# Stop looping if xclock died (hopefully killed by GiveConsole)&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-z&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;&lt;span class=&quot;token variable&quot;&gt;$(&lt;/span&gt;pgrep &lt;span class=&quot;token parameter variable&quot;&gt;-U&lt;/span&gt; root xclock&lt;span class=&quot;token variable&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;then&lt;/span&gt; &lt;span class=&quot;token builtin class-name&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;fi&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;done&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&lt;/span&gt;

&lt;span class=&quot;token assign-left variable&quot;&gt;OS_NAME&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;&lt;span class=&quot;token variable&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;uname&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-n&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token assign-left variable&quot;&gt;OS_INFO&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;&lt;span class=&quot;token variable&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;uname&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-smr&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
xclock &lt;span class=&quot;token parameter variable&quot;&gt;-digital&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-geometry&lt;/span&gt; -0+0 &lt;span class=&quot;token parameter variable&quot;&gt;-strftime&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;$OS_NAME&lt;/span&gt; (&lt;span class=&quot;token variable&quot;&gt;$OS_INFO&lt;/span&gt;) | %a. %d %b. %Y  %H:%M &quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <title>Setting up a Raspberry Pi as a server</title>
    <link href="https://nathangilbert.com/thoughts/raspberry-pi-setup/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/thoughts/raspberry-pi-setup/</id>
    <published>2024-12-24T00:00:00Z</published>
    <updated>2026-08-10T00:00:00Z</updated>
    <category term="notes"/>
    <summary>Raspbian setup notes, including running a BOINC client.</summary><content type="html">&lt;h2&gt;Raspian Raspberry Pi Setup&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.raspberrypi.org/documentation/installation/installing-images/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Load the SDHC card&lt;/a&gt; into your machine and install the Raspbian image.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a file called &lt;code&gt;ssh&lt;/code&gt; in &lt;code&gt;/Volumes/boot&lt;/code&gt; of that installation.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Disable WiFi and Bluetooth by adding the following two lines to &lt;code&gt;/boot/config.txt&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;dtoverlay=disable-wifi&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dtoverlay=disable-bt&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Insert the SDHC card and power on the Pi.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Log in using the default user/password via SSH.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Change the Pi user password:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;passwd&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Change the Pi user&#39;s locale and time zone -&amp;gt; use raspi-config.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update packages: &lt;code&gt;sudo apt update&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install the latest Fish shell and fzf.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To change the user shell, edit /etc/passwd or use: &lt;code&gt;chsh -s /usr/bin/fish nathan&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Setting up BOINC Client&lt;/h3&gt;
&lt;p&gt;Ensure there is a /var/lib/cc_configs.xml file.
Make sure it contains the following:&lt;/p&gt;
&lt;pre class=&quot;language-xml&quot;&gt;&lt;code class=&quot;language-xml&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;options&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
   &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;allow_remote_gui_rpc&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;1&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;allow_remote_gui_rpc&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;options&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Verify that the remote_hosts.cfg file has the hosts you want inside it.
Networking Troubleshooting&lt;/p&gt;
&lt;p&gt;If you are running a headless Pi but want to use XRDP, you may encounter both dhcpcd and wicd
running. You may need to disable wicd: &lt;code&gt;systemctl disable wicd&lt;/code&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Vim config</title>
    <link href="https://nathangilbert.com/thoughts/useful-vim-settings/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/thoughts/useful-vim-settings/</id>
    <published>2024-12-24T00:00:00Z</published>
    <updated>2026-08-10T00:00:00Z</updated>
    <category term="coding"/>
    <summary>Vim settings I use.</summary><content type="html">&lt;h2&gt;Vim Settings I Use&lt;/h2&gt;
&lt;pre class=&quot;language-vim&quot;&gt;&lt;code class=&quot;language-vim&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;tabstop&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;8&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;softtabstop&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;               &lt;span class=&quot;token comment&quot;&gt;&quot; makes space feel like tabs&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;shiftwidth&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;expandtab&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;textwidth&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;80&lt;/span&gt;                &lt;span class=&quot;token comment&quot;&gt;&quot; each line can only be 79 chars (+newline) long&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;formatoptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;cqt           &lt;span class=&quot;token comment&quot;&gt;&quot; automatically wrap long lines&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;number&lt;/span&gt;                      &lt;span class=&quot;token comment&quot;&gt;&quot; line numbers&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;cursorline&lt;/span&gt;                  &lt;span class=&quot;token comment&quot;&gt;&quot; highlight the current line&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;t_Co&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;256&lt;/span&gt;                    &lt;span class=&quot;token comment&quot;&gt;&quot; set terminal to 256 colors&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;history&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;                 &lt;span class=&quot;token comment&quot;&gt;&quot; keep 100 lines of command line history&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;ruler&lt;/span&gt;                       &lt;span class=&quot;token comment&quot;&gt;&quot; show the cursor position all the time&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;showcmd&lt;/span&gt;                     &lt;span class=&quot;token comment&quot;&gt;&quot; display incomplete commands&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;incsearch&lt;/span&gt;                   &lt;span class=&quot;token comment&quot;&gt;&quot; do incremental searching&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;autoread&lt;/span&gt;                    &lt;span class=&quot;token comment&quot;&gt;&quot; automatically read a file changed externally&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;hlsearch&lt;/span&gt;                    &lt;span class=&quot;token comment&quot;&gt;&quot; highlights all search matches&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;backspace&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;indent&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;eol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;start  &lt;span class=&quot;token comment&quot;&gt;&quot; allow backspacing in insert mode&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;noerrorbells&lt;/span&gt;                &lt;span class=&quot;token comment&quot;&gt;&quot; Attempts to turn off errorbells.&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;vb&lt;/span&gt;                          &lt;span class=&quot;token comment&quot;&gt;&quot; turn on visual bell&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;showmatch&lt;/span&gt;                   &lt;span class=&quot;token comment&quot;&gt;&quot; match parenthesis&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;encoding&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;UTF&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;8&lt;/span&gt;              &lt;span class=&quot;token comment&quot;&gt;&quot; helps devicons&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;backup&lt;/span&gt;                      &lt;span class=&quot;token comment&quot;&gt;&quot; save backup files&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;backupdir&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=~&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;vim&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;backup&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;   &lt;span class=&quot;token comment&quot;&gt;&quot; where to put backup files&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;directory&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=~&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;vim&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;swap&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;     &lt;span class=&quot;token comment&quot;&gt;&quot; where to save swap files&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;set&lt;/span&gt; undodir&lt;span class=&quot;token operator&quot;&gt;=~&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;vim&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;undo&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;       &lt;span class=&quot;token comment&quot;&gt;&quot; where to undo files&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <title>Wiio&#39;s Laws</title>
    <link href="https://nathangilbert.com/thoughts/wiios-laws/" rel="alternate" type="text/html"/><id>https://nathangilbert.com/thoughts/wiios-laws/</id>
    <published>2024-12-24T00:00:00Z</published>
    <updated>2026-08-10T00:00:00Z</updated>
    <category term="humor"/>
    <summary>A collection of Wiio&#39;s Laws about communication and information sharing.</summary><content type="html">&lt;h2&gt;Wiio&#39;s Laws&lt;/h2&gt;
&lt;p&gt;So many problems seem to come down to poor communication. I often think about these laws when
information is being shared.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Communication usually fails, except by accident.
&lt;ul&gt;
&lt;li&gt;If communication can fail, it will.&lt;/li&gt;
&lt;li&gt;If communication cannot fail, it still most usually fails.&lt;/li&gt;
&lt;li&gt;If communication seems to succeed in the intended way, there&#39;s a misunderstanding.&lt;/li&gt;
&lt;li&gt;If you are content with your message, communication certainly fails.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;If a message can be interpreted in several ways, it will be interpreted in a manner that
maximizes the damage.&lt;/li&gt;
&lt;li&gt;There is always someone who knows better than you what you meant with your message.&lt;/li&gt;
&lt;li&gt;The more we communicate, the worse communication succeeds.
&lt;ul&gt;
&lt;li&gt;The more we communicate, the faster misunderstandings propagate.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;In mass communication, the important thing is not how things are but how they seem to be.&lt;/li&gt;
&lt;li&gt;The importance of a news item is inversely proportional to the square of the distance.&lt;/li&gt;
&lt;li&gt;The more important the situation is, the more probable you had forgotten an essential thing
that you remembered a moment ago.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Wiio%27s_laws&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
</feed>
