Archive
The Full Archive
Every post, newest first, grouped by the year it went up. This is the deep index — if you’re hunting for something specific rather than reading what’s new, start here.
Everything, by year.
579 posts across 15 years, 2009–2026.
2026
2022
2021
- Social Contracts Under Stress
- Haunted-Paradise Loop
- Nankoweap Trail
- Rincon Double Feature
- Powers Garden of the Galiuros
- Black Ridge Loop
- Reavis Ranch Loop
- Red Tanks Super Loop
- Grand Canyon Rim-to-Rim-to-Rim
- Climbing up Steeple
- Up the Blue River
- Across the Blue River
- Sycamore Rim Loop - with Kids
- Mt Baldy Super Loop
- First Kid Backpack - Cabin Loop
- Managing the Pandemic
2020
- Middleware and API Gateways
- Horton-Derrick Loop
- Isabella-Groom Loop
- Summiting Mount Lemmon
- Asbestos Point and Mine
- A Few Years of Working Out
- Coon Creek
- Moody and Below the Rim
- Climbing up Parker to Aztec Peak
- Indian Spring of the Eagletails
- Quick Visit to Haunted Canyon
- Deadman Falls of the Mazatzals
- Weekend at Wet Beaver
- Moody Point Trail
- Loop at Willow Springs Canyon
- Overnight at Byous Butte
- Quick Visit to Arnett Creek
- Bluff Spring Mountain Loop
- Hassayampa River Preserve
- Horns of Dilemma
- Magma Mine Wander
- Return to Robber's Roost
2019
- Tonto Natural Bridge
- Mountain Rescue, Recruit Redux
- Railroad Tunnel on the Mogollon Rim
- Lava River Caves of Flagstaff
- Muddy Dragonfly Loop of Spur Cross
- Noah at Fremont Saddle
- Snowy Introduction to the Mazzies
- Rainy Day on the Verde River
- Wet Bottom Paradise
- Saddle Ridge to Bull Spring Saddle
- Wave Cave
- 2019, A New Year
2018
- Highwater - Verde River Loop
- Taking the Boys to Siphon Draw
- Back to Sheep Bridge
- Red Hills Romp
- Around Midnight Mesa
- Butcher Jones Trail
- Two Hikes in Show Low
- Rim Trail and Aztec Peak
- Center Mountain to Pueblo Canyon Overlook
- Sheep Bridge Loop
- 500 Posts
- Barnhardt - Sandy Saddle Loop
- Mountain Rescue Update
- Hackberry Springs via Needle Vista
- Short Visit to Coon Bluff
- Ballantine Trail to Pine Mountain
- Anchors Class
- Another Motherlode Attempt
- Fig Trail and a Kayak
- Task Management
- Several Ways to Drink Coffee
- Fuller Seep
- East End of Davenport Wash Trail
- Sheep Creek Trail
- Resolutions for 2018, I Suppose
2017
- What is an API Developer?
- Verde River and Red Creek
- Getting into CAMRA (Search and Rescue)
- Basic Rock Climbing Class
- Escape down Davenport
- Crossing Deadman Creek
- Willow Springs Bushwhack
- Over Sandy Saddle
- Shaw Butte
- Sycamore Rim Loop
- Full-time Employment at Shutterstock
- Picacho Peak Loop
- Mazatzal Project Checkup
- South Fork - Gold Ridge Loop
- Deadman Mesa
- Descent to Fossil Creek
- Sunflower
- Cornucopia - Thicket Spring Loop
- Cross F Trailhead to Squaw Flat
- Davey Gowan and Gold Ridge
- Along the Mazatzal Divide
- Up to Gowan Camp
- Mazatzal Peak Super Loop
- Sears Trail
- Down Sheep Creek
- Climbing Squaw Flat
- Road to Copper Camp Creek
- North Peak Trail and the End of the Mazatzal Divide
- Surviving Three Children
- Little Loop at Cave Creek
- A Terrapin Exit
- Hidden Valley of the Superstitions
- Morning Ascent of Bluff Spring Mountain
- A Girl Named Charlotte
- Mazatzal Wilderness Dreaming
- Three Sisters
- Superstition Peak via Hieroglyphics
- Turk's Head
- Descent from Tortilla Peak
- Tortilla Peak
- Goat Hill of South Mountain
- Camping on Battleship
- And 2017 is Going to be Sweet
2016
- 2016 was Okay
- Mount Ord
- Hackberry Springs
- A Year of Commits and Pushes
- Little Hike at Little Four Peaks
- A Middleware for Swagger Resolution
- Return to Amethyst Peak
- Using peel for HTTP Exceptions
- Noah's First Camping Trip
- Quartz Peak in the Sierra Estrella
- Overnight at Brown's Peak
- What Kind of Hiker Am I?
- Cave Loop Overnight in the Supes
- Retreat down Barnhardt
- North of Hopi Spring
- Climbing Rock Creek
- DIY Gravity Setup with the Sawyer Mini
- Experimenting with a Hammock
- Ballantine to Boulder Flat
- Tonto Road Trip
- Swagger Inheritance
- Willow Springs Loop
- Pine Creek Loop and a Bail
- Using Mocks with PHPUnit
- Silly Mountain with the Boys
- Mount Peeley Summit
- Lower Red Tanks Trail
- Bluff Springs to LaBarge
- Continuous Deployment with Travis CI and Digital Ocean
- Using Domain Repositories for Services
- Backpacking Gear Updates - 2016
- Spending the Night on Flatiron
- Marcos de Niza Loop with the Boys
- Group Backpacking on the Cabin Loop
- A Project Death March
- Return to Peter's Canyon
- Superstition Backpack with Katie
- Mocking Internal PHP Functions
- An Arduino Pomodoro Timer
- Whiskey Springs
- Red Tanks Divide
- Race to Reed's Water
- Retreat down Barnhardt
- Beyond Chilson Camp
- Behind Mazatzal Peak
- Up the Y-Bar Trail
- Garden Valley Loop with the Family
- Club Cabin of the Mazatzals
- Using JSON Resume
- Taliesin Overlook of the McDowells
- Establishing Hiking Tiers
- Failed Return in Peter's Canyon
- The Peak of Malapais
- To Geronimo Head
- Quick Visit to Massacre Grounds
- Little Loop from Tortilla Trailhead
- Hiking and Backpacking in 2016
- Handling Static Content
- JSON Responses in Guzzle 6
- Final Haul up the Coffee Flat
- Cold Drop to JF Ranch
- Wet Slog up the JF Trail
- Crossing Peter's Mesa
2015
- Fremont Saddle to Marsh Valley
- Refactoring Particletree's PHPQuickProfiler
- Family Hike on the San Tan Stargazer Loop
- Unit Testing Data Repositories
- Data Repositories in PHP
- East Pima Loop of South Mountain
- Breakneck Ridge on the Hudson
- Shame-Driven Development, or Why I Published My MVC
- Simple Messaging in PHP
- Mound Mountain - Highpoint of the Superstitions
- Streaming Twitter Bot in Node
- Robber's Roost Loop
- Some Isle Royale Hiking Routes
- Making Phergie Talk to Slack
- Lessons Learned from Isle Royale
- Thunderstorms over Rock Harbor
- 24 Miles to Moskey Basin
- A Long Way to Malone Bay
- Sunrise from Feldtmann Ridge
- Hard Start on Feldtmann
- Magnificence of the Minong
- Easy Times at the Todds
- Cold Morning on the Greenstone
- The Rush to Lane Cove
- Wave Cave of the Superstitions
- A Missed Loop at Usury Park
- Empathetic Web Design
- Hiking Gear
- The Cabins of Cabin Loop
- Amethyst Peak
- Planning for Isle Royale
- Return Along the Rim
- U-Bar and Barbershop
- Fred Haught Trail
- Up the Mogollon Rim
- Simple Client for customer.io
- Birthday Trip to Sedona
- Moonrise Visit to Miner's Needle
- Family Hike on the Hieroglyphic Trail
- Early Morning on Black Top Mesa
- Grand Canyon: South Kaibab to Bright Angel
- Validating Email Addresses
- A Hot Climb Up Miner's Needle
- Bluff Spring Mountain
- Hiking with Noah
- Garden Valley Loop with the Parents
- Playing with PHP Closures
- Anonymous Functions in PHP
- Quick Visit to Broadway Cave
- Along the Bell - Windgate Loop
- Red Hills and Needle Canyon
- To the Bow of Battleship Mountain
- Converting Between Timezones
- Supporting User Timezones for a Twitter Bot
- Gateway Loop on McDowell
- Hidden Valley via Pima Canyon
- For a View of Weaver's Needle
- Death Marches in the Upper Peninsula
- Battleship Mountain and Yellow Peak
- PDO Connection Timeouts and Aura.Sql
- Superstition Peak
- Browns Peak of Four Peaks
- R Analysis on Git Log Data
- Along the Superstition Ridgeline
- Desert Hiking Goals for 2015
- Beverly Loop of South Mountain
- Flatiron of the Superstition Mountains
- A Twitter Bot for Pushups
- Missed Waterfalls of Middle Branch Escanaba
- Goldmine Loop of San Tan Mountains
- The Arrival of Son 2: Thomas
- 2015 - The Year of the Desert
2014
- Camelback Mountain - Cholla to Echo Canyon
- Hot Hike to Tom's Thumb
- First Venture into the Slim Framework
- Storms above Siphon Draw
- Quick Summit on Piestewa Peak
- Hidden Valley of South Mountain
- UP Hiking Regrets
- Moving to Arizona
- McCormick Heights of Marquette
- Little Presque Isle
- Mocking a Robust Streaming Twitter Bot
- Grand Camp of the McCormick
- Around Bulldog Lake
- Leaving the Midwest
- Ski Hill of Limestone Mountain
- Mystery of Little Giant Falls
- Maple Ridge of Merriweather
- Beyond Fish Cove
- Under Bare Bluff
- Estivant Pines
- Sunrise over Hunter's Point
- Camping on Copper Falls Bluff
- A Brief Visit to Cliff Ridge
- Exploring North Kearsarge
- Camelback Mountain of Phoenix
- Visiting the Parents in Washington
- Bugs of the Upper Peninsula
- Point Abbaye
- K-means Clustering on Hiking Adventures
- The Elusive Vista Falls
- Cushman Bluff
- Tips for Bushwhacking
- Optimizing Regex
- Noah at One Year
- South Bluff of Rockland
- Slightly Shuffled
- Lightfoot Bay near Skanee
- Grouping with Regex
- Mink Run up Mt Benison
- Turner Point of Mountain Lake
- Birthday Trip to the Dells
- Initial Experience with Reveal.js
- The Hill of Ericks Road
- Difficulties of Working Remote
- Streaming Twitter in PHP from Scratch
- Mosquito Beach and Falls
- Indian Head to Mosquito Beach
- Grand Portal Point
- Chapel Rock and Spray Falls
- Spring Visit to Sugarloaf
- Gold Mine Hills near Birch Creek
- Saux Head Hill
- Teal Lake Bluffs of Al Quaal
- Peshekee Overlook Trail
- Mt Baldy of Michigamme
- Negaunee Caving Grounds
- Waterfall 2.0 (Finally!)
- Granite Point
- Beneath Big Bay's Cliffs
- Cliffs of Freeman's Landing
- Building an API Client
- Eben Ice Caves
- Wintertime at Rocking Chair Lakes
- Midwest PHP: 2014
- Ice Cliffs of Freda
- Courtney Lake Snowshoeing
- A Streaming Twitter Bot with Guzzle
- Highpoint of Houghton County
- First Trip to the Big Apple
- Basic Color Masking with PHP
- Epic UP Hikes: 2014 (and Beyond!)
- Effective Onboarding
- New Beginnings for 2014
2013
- Fuzzy Distance
- Around Echo Lake
- Determining Nearby Waterfalls
- Using Gecoding to Find the 'Closest City'
- Slate Quarries of Arvon
- Google Elevation API
- Keeping Things Simple with Sculpin
- The Acropolis of the Peshekee
- Lake Dortay of the McCormick Tract
- The Fortress of White Deer Lake
- Tailing Ponds near Schweitzer Basin
- Black Rock Point
- Archiving (Scraping) a Site
- Thomas Rock of Big Bay
- Archiving a Directory
- Brushy Creek Ridge
- Ascending Ives Hill
- Running Roadbumps
- Client vs Server Analytics
- Bear Mountain
- Fake Linkedin Endorsements
- Horseshoe Harbor
- Bare Bluff
- Fighting the Comment Spam
- Mount Baldy of Eagle Harbor
- Refactoring the Waterfall Site
- East Bluff
- Keystone Bay
- High Rock Adventures
- The North Shore
- Handling Images on My Sites
- Two Types of Content
- American Gold Mine
- A Rocky Western Ridge
- Rich Comment Formatting
- Lakes of Tilden Mine
- Manipulating JPEG EXIF Headers
- Resizing Images with PHP
- The Hill on Indian Road
- And Then There Was Noah
- A Hike Around Cliff Lake
- Tokiahok Head on Mount Ida
- Parsing Google Calendar - Recurring Events
- Parsing Google Calendar - Starting Out
- Highland Adventures at Toivola
- Waterfalls of East Huron River Gorge
- Migisy Bluff
- Another Kick at QR Codes
- The Pup Creek Loop
- Code Like a Butterfly, Perfect Like a Bee
- Carp River and Marquette Mountain
- Was Gandalf the White Actually Saruman?
- Finding the Closest X to Y
- A Simple Mail Object
- Working with the Twitter Archive
- Hills of Harlow Lake
- A Snowy Hike along Erick's Road
- Mobile First, to an Extent
- Midwest PHP Conference 2013
- Snowy Trudge to Echo Lake
- Web Crawlers are Difficult
- Building a Web Crawler
- Parsing Twitter Feeds with PHP
- Passing Extra Parameters to Twitter via OAuth
- Ice and Rock at Presque Isle Park
- A Year of Hits and Spiders
- Winter's Fog over Wewe Hills
- Stop Calling Everything a CMS
- Thoughts on UX Design
- Bad Times on Lake Mine Hills
- Taking Brogrammer Back
- Waterfalls that don't Exist
- Forcing Cross-Layer Dependencies? You're Doing it Wrong.
- Ramping Up for a Big 2013
- Mount Houghton in the Winter
- The Appalachian Trail Plan
2012
- And After, Kids
- Irish Hollow Cemetery
- Blog Updates: It's Responsive!
- Abandoned Lighthouse of Fourteen Mile Point
- Don't Focus on the SEO, Focus on the Human User
- Mount Homer and Mountain Lake
- The Wedding
- Fuzzy Date
- Trying to be a Runner
- Trap Hills near Cascade Creek
- Lookout Mountain on Section 17
- Treat Cache as a Feature, not a Requirement
- The Hills of Holyoke
- Spaghetti Code vs Lasagna Code
- Some Thoughts on Best Practices
- Return to the South Blind 35 Mountain
- Planning for Failure
- Little Mountain
- Working with Twitter's 1.1 API via PHP, OAuth
- Lost in the Herman-Nestoria Swamp
- Leaving DealerFire
- Breakfast Roll
- The House on Roosevelt
- The Search for No Name Falls
- Wolf Mountain
- How I Learned to Stop Worrying and Love the String Object
- Salmon Trout Bay
- Jacob Meets a Moose
- Goose Lake
- The Cabin on Lake 8
- Dakota Farm
- URL Shortening Services Suck (and could be Better)
- Eastern Peaks
- Western Peaks
- The First Visit
- Snake Creek Hills
- Writing Code for Humans, not Computers
- Bob and Paul Lakes
- Northern Boise Creek Valley Explorations
- Hiking Mt Benison
- Life and Death of a Developer
- Western Alder Hill
- Eastern Alder Hill
- Return to Mulligan Cliffs
- Mount Mathew
- Product Development and Intelligence
- Return to Bald Mountain
- Dead River Falls
- SEO Consultants are not Necessarily Experts
- Blind 35 Hills - South Side
- Blind 35 Hills - North Side
- Opening a New Chapter of Hiking
- Another New Year
2011
- The Ives Exploratory Trip
- Responsive Web Design and Duplicate URLs
- Wetmore Pond
- Hogsback Mountain
- Wetmore Beach
- Sugarloaf Mountain
- Best Practices in Development
- Levels of Impossibility
- Lookout Mountain
- Norwich Bluff
- Jake and Katie are Engaged!
- Popular Music Project
- Nealy Falls
- Northwest of the Silver Lake Basin
- Will (and should) Google Plus be The new Social Network?
- Cascade Falls
- Why You Should Build Your Own Darn Framework (Usually)
- The Numbered Lakes above Red Road
- Winter Visit to Cliff Lake
- Abstract Form Handling
- Best Practices with Forms
- 2011 New Year's Resolutions
2010
- Basic Forms with PHP
- Mount Arvon
- Connecting to a MySQL Database with PHP
- How Many Tiers for a Clean View Layer?
- Canyon Lake and Burnt Mountain
- Katie and Jake 2010 Move
- Huron Mountain View
- Haystack Mountain
- Hills Lakes
- Microformatting the Resume
- Abstracting the Resume
- Jake Meets a Bear (and Cub)
- Cookout Mountain and the Hidden Falls
- My Lifestream
- Thoughts on Data Abstraction
- Northern Cliffs
- Silver Lake Basin
- Deer Lake
- The Problem with Assuming
- Salmon Trout Point
- Why (some) Client-Developer Relationships Suck
- Snowy Drive Down the Peshekee Grade
- Eastern Cliff of Clark Creek Valley
- Beginner Web Developer Mistakes
- Revisiting the Database Class
- Cliffs of Mulligan Plains
- What's With the Big Pause?
2009
- Katie and I at Mulligan
- A Reusable Database Class in PHP
- Reading Data with SELECT
- How Tables and Rows Work
- Why Keep Content in a Database
- Web Development Goals
- The Last Waterfall Hike
- Tips on Personal Sites
- Epic Hiking Adventures Plan
- MVC CSS Stylesheets
- Using Headers for Caching
- Website Overhaul
- Google Static Map API Introduction
- Driving through the Huron Mountains
- Blog Updates and Comments
- AJAX Dynamic Template Solution
- Red Road Cliffs
- Basic Tag Cloud
- Volcanic Plugs of Ottawa Forest
- Excel Amortization Table
- Rocking Chair Lakes
- Dynamic Template Methods
- Clark Creek and Island Lake
- New Job and Car
- Superior Mountain Hike
- McCormick Tract
- A KML Sitemap
- Resetting to Subdomains
- Salmon Trout River
- Ontonagon River
- Distance Compare Class Part B
- Distance Compare Class Part A
- Tick Mountain Hike
- Yellow Dog River
- Setting up the Hiking Website
- Lake Superior Idea
- Style Switcher Part B
- Style Switcher Part A
- Sturgeon River
- A Few River Gorges
- Modular Website Setup
- Future Side Projects
- Silver River
- Life After College
- Using XSL for Websites
- The Mulligan Area
- Dead River
- Moving to Wisconsin
- Static Star Rating System
- Getting Fired
- Topographic Images on a Google Map
- A Keweenaw Hike
- Using Mod Rewrite to Mask Variables
- Huron Mountain Range
- Cross Site Status Updater
- Why I Write Complaint Code
- Waterfalls of the Keweenaw
- Current Programming Languages
- Bald Mountain
- Blog Introduction
- My Introduction