Skip to content
2 changes: 1 addition & 1 deletion 404.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ <h1>Page not found.</h1>
</div>
</main>

<footer class="site-footer"><p>Brian Busch | GISP | GIS, Spatial Data &amp; Cartography</p><div class="footer-right"><nav class="social-links" aria-label="Social links"><a href="https://www.dustandstarlight.com" target="_blank" rel="noreferrer" aria-label="Dust and Starlight photography"><svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M9.4 3h5.2l1.3 2.4H20A2 2 0 0 1 22 7.4V19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7.4a2 2 0 0 1 2-2h4.1zM12 8.4a5.1 5.1 0 1 0 0 10.2 5.1 5.1 0 0 0 0-10.2zm0 2.1a3 3 0 1 1 0 6 3 3 0 0 1 0-6z"/></svg></a><a href="https://www.linkedin.com/in/brian-busch1/" target="_blank" rel="noreferrer" aria-label="LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M4.98 3.5a2.5 2.5 0 1 1 0 5.001 2.5 2.5 0 0 1 0-5zM3 9h4v12H3zM9 9h3.8v1.7h.05c.53-.95 1.83-1.95 3.77-1.95 4.03 0 4.78 2.5 4.78 5.76V21h-4v-5.5c0-1.3-.02-3-1.9-3-1.9 0-2.2 1.4-2.2 2.9V21H9z"/></svg></a><a href="https://github.com/buschbrian" target="_blank" rel="noreferrer" aria-label="GitHub"><svg viewBox="0 0 16 16" aria-hidden="true"><path fill="currentColor" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg></a><a href="https://x.com/brianjbusch" target="_blank" rel="noreferrer" aria-label="X (Twitter)"><svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg></a></nav><a href="/">Home</a></div></footer>
<footer class="site-footer"><p>Brian Busch | GISP | Geospatial Web Development &amp; Cartography</p><div class="footer-right"><nav class="social-links" aria-label="Social links"><a href="https://www.dustandstarlight.com" target="_blank" rel="noreferrer" aria-label="Dust and Starlight photography"><svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M9.4 3h5.2l1.3 2.4H20A2 2 0 0 1 22 7.4V19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7.4a2 2 0 0 1 2-2h4.1zM12 8.4a5.1 5.1 0 1 0 0 10.2 5.1 5.1 0 0 0 0-10.2zm0 2.1a3 3 0 1 1 0 6 3 3 0 0 1 0-6z"/></svg></a><a href="https://www.linkedin.com/in/brian-busch1/" target="_blank" rel="noreferrer" aria-label="LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M4.98 3.5a2.5 2.5 0 1 1 0 5.001 2.5 2.5 0 0 1 0-5zM3 9h4v12H3zM9 9h3.8v1.7h.05c.53-.95 1.83-1.95 3.77-1.95 4.03 0 4.78 2.5 4.78 5.76V21h-4v-5.5c0-1.3-.02-3-1.9-3-1.9 0-2.2 1.4-2.2 2.9V21H9z"/></svg></a><a href="https://github.com/buschbrian" target="_blank" rel="noreferrer" aria-label="GitHub"><svg viewBox="0 0 16 16" aria-hidden="true"><path fill="currentColor" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg></a><a href="https://x.com/brianjbusch" target="_blank" rel="noreferrer" aria-label="X (Twitter)"><svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg></a></nav><a href="/">Home</a></div></footer>
<script src="/assets/js/site.js"></script>
</body>
</html>
163 changes: 147 additions & 16 deletions CONTENT-BACKLOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,46 @@ Work through the sections in order. Section 1 blocks the feed.

## 1. Publication dates

The site records a publication date for two notes. It records no date for
the other 18. A dated index and a correct feed both need these dates.
Resolved on 2026-08-28 for 14 of the 18 notes. `node scripts/build-feed.mjs`
now reports 21 items, 4 with no date.

Decision on 2026-08-17: the owner will supply a list of real dates. Do not
use the challenge day and do not use the first commit date.
Decision on 2026-08-28: the owner overrode the 2026-08-17 rule against the
challenge day. The twelve 2024 30 Day Map Challenge notes now carry the
date of their challenge day. Day 1 is 2024-11-01 and day 12 is 2024-11-12.
The theme named in each note gives the day number. Source for the theme
list: `30daymapchallenge.com/2024/`.

- Owner: give a publication date for each of the 18 notes without one.
- Then: add each date to the note structured data, the notes index, and
the feed in one pass.
- Then: decide if a note shows its date to the reader.
Four of the twelve dates have a second, independent source that agrees:

- `utah-population-hexagons`, 2024-11-04. A LinkedIn post and the original
file name `utpophexagon110424`.
- `raster-terrain-study`, 2024-11-06. A LinkedIn post and the original file
name `raster1110624v2`.
- `utah-old-spanish-trail`, 2024-11-05. A LinkedIn post.
- `utah-time-and-space`, 2024-11-12. The original file name
`uttimeandspace111224`.

One conflict, left as the challenge day: `utah-vintage-atlas` is day 7,
2024-11-07, but the LinkedIn post went out on 2024-11-08. The map was one
day late. Change the date to 2024-11-08 if the site records the day a map
reached the public instead of the day of the challenge.

`sidewalk-trails-master-plan` is 2026-08-07, from the LinkedIn post.

Resolved on 2026-08-28: `millcreek-redistricting` is 2022-02-18. Source:
the linked StoryMap "City Council Redistricting 2022" records that
publication date.

Still open. These four notes have no date and no evidence in the
repository. Only the owner can supply them:

- `future-land-use-millcreek`. An Esri finalist for 2025.
- `wui-boundary-mapping`. UGEM 2025 and UGIC 2026.
- `alcohol-spacing-regulations`. The work was 2024.
- `polygon-neighbor-coloring`. No year on the site.

- Then: decide if a note shows its date to the reader. The date is in the
structured data and the feed. It is not yet on the page.

## 2. Professional work needs more depth

Expand Down Expand Up @@ -89,6 +119,38 @@ For each project below, record these five items:
- `millcreek-redistricting` (528 words). The strongest professional note.
It still does not give the public turnout, or the adopted result.

## 2b. Fact drift in the water dashboard numbers

Resolved on 2026-08-28: the snow site count moved from 637 to 639. The site
now states 639 in the three places that describe the application today.
Source: `buschbrian.github.io/western-water-dashboard/data/snow_sites.json`,
field `site_count`, retrieved 2026-08-18. The reservoir count is 382 and did
not change.

Two places still read 637, on purpose:

- The figure caption in `utah-water-dashboard-rebuild` reports a reading on
March 13, 2026, from 549 of the 637 sites. That is a past measurement. Do
not change it without the roster size on that date.
- `projects/western-water-dashboard-atlas/index.html` holds the number
inside generated data. Rebuild that page with `scripts/publish-atlas.mjs`
instead of editing the HTML.

Corrected the same day. The snow count is three different numbers, and the
site must say which one it means:

- `snow_sites.json`, field `site_count`: **639**. This is the roster of
sites the application knows about. Retrieved 2026-08-18.
- `snowpack.json`, field `site_count`: **638** on 2026-08-27. This is the
daily payload. It moves as sites report or fail to report.
- The atlas snapshot for 2026-08-23: 637 published and 2 missing.

The site now states 639 and says "in the roster", because the roster is the
stable number. Do not state a daily number in prose. It goes stale in a day.

- These counts change when the roster changes. Check them against the JSON
API before each release, or state them as approximate.

## 3. Site purpose

Decision on 2026-08-17, refined the same day: the site has two jobs.
Expand Down Expand Up @@ -118,14 +180,22 @@ This changes what each project note must contain:
## 4. Terms a general reader does not know

The language rules require an explanation for a GIS term on first use.
These terms appear on the site with no explanation.

- Wildland-Urban Interface
- Hydrologic unit code, and drainage area
- Snow water equivalent
- Period of record, and seasonal percentile
- Acre-foot
- GISP, and what the certification requires
These terms appeared on the site with no explanation.

Resolved on 2026-08-26: every term on the list now has an explanation on
first use, or no longer appears on the site.

- Wildland-Urban Interface. The note `wui-boundary-mapping` now opens with
the definition. The Involvement page and the notes index already had it.
- Hydrologic unit code, and drainage area. Both are explained in
`utah-water-dashboard-rebuild`.
- Snow water equivalent. Explained in `utah-water-dashboard-rebuild`.
- Seasonal percentile. Explained in `utah-reservoir-dashboard`. The term
"period of record" does not appear on the site.
- Acre-foot. Now explained on first use in `utah-reservoir-dashboard`.
- GISP. The About page now gives the full name, Certified GIS Professional,
on first use, and states what the certification requires. Source: the GIS
Certification Institute, `gisci.org`.

## 5. The 30 Day Map Challenge group

Expand Down Expand Up @@ -183,3 +253,64 @@ any note now published.
- List the projects that hold client or internal business information.
- Decide one pattern for them. A method note with no client data, or a
private case study sent on request.

## 9. Work on the record with no note on the site

Added on 2026-08-28. A comparison of the LinkedIn profile against the
`notes` directory found five pieces of work that the LinkedIn profile
states, and the site does not describe anywhere. Four of the five are
municipal work for the City of Millcreek.

- The Nearmap imagery widget for ArcGIS Experience Builder. Written in
TypeScript against the Experience Builder SDK, developed code-first from
the public repository `github.com/buschbrian/ArcGIS-Experience-SDK`.
About 45,000 views each year. **Held on 2026-08-28 at the owner's
direction.** The owner will ask the City of Millcreek before this work
appears in public. Do not publish it until the owner confirms.
- The citywide ADA ramp inventory. About 1,400 ramps and about 100
attribute fields, collected with ArcGIS Field Maps and Survey123.
- The address review workflow in ArcGIS Experience Builder. It replaced a
county process that used email and a spreadsheet.
- The Millcreek Hub site, `maps-millcrk.hub.arcgis.com`, public since
2019. It is the earliest dated result of the Millcreek GIS program.
- The Capital Improvement Project application and StoryMap, 2021.

Each item needs the same permission check as section 7 before a draft
starts. Each also needs an image. The project cards on `/projects/` and
the home page all use one.

- Owner: answer section 12 of `docs/interview-questions.md` for each item
you want published.
- Then: decide the form for each. A project card, a note, or both.
- Do not draft a note before the permission answer.

## 10. The 2024 challenge run stopped at day 12

Added on 2026-08-28. The site holds twelve maps from the 2024 30 Day Map
Challenge, days 1 to 12. The owner did not finish the remaining eighteen
days for a personal reason that the site does not need to state.

Both index pages already say "Selected maps from the 2024 30 Day Map
Challenge". That wording is accurate and it needs no explanation. A reader
who is deciding whether to hire does not need a reason for an unfinished
personal challenge.

- Do not add a health reason or any other personal reason to the site.
- Keep the word "Selected" on both index pages.
- If the owner wants the run described, use one neutral sentence: the run
stopped after day 12.

## 11. The atlas page cannot be fixed from this repository

Added on 2026-08-28. `projects/western-water-dashboard-atlas/index.html`
reports 637 snow sites. `scripts/publish-atlas.mjs` copies that number from
`~/Developer/utah-reservoir-dashboard/.atlas/repository/atlas.html`, which
also reports 637. Running the script again changes nothing.

The number is also correct where it stands. The atlas describes the system
on a stated date, 2026-08-23, when the payload published 637 sites and 2
were missing.

- Do not edit the generated HTML by hand.
- Rebuild the atlas in the dashboard repository first, then run
`node scripts/publish-atlas.mjs` here.
Loading
Loading