Make great documentation goal 1.2, and plan the README's reorganisation and the nested-template gaps #33

Open
lilleman wants to merge 966 commits from worktree-todo-relative-dates-exact-counts into main
4 changed files with 21 additions and 18 deletions
Showing only changes of commit 5db699469b - Show all commits
+1 -1
View File
@@ -90,7 +90,7 @@ In [docs/decisions.md](docs/decisions.md):
- A path is walked once without drawing before it is walked for real
- A country's postal codes and streets are siblings under its locality
- A locale package imports its country's geo package, and its `Modules()` returns both
- The default embed holds every Swedish postort the import can place and give a street-delivery code and a street, and the US places of 25,000 or more
- The default embed holds every Swedish postort the import can place, a tenth of the US places owning a ZCTA drawn by population, and a tenth of each place's streets, at least ten
- A locale's `address` binds its country's record once and prints it whole
- A postort's kommun comes from its name, its tätort or its codes, never from distance
- A highway designation is not a street, and a US postal code belongs to the place holding most of its land inside places
+3 -1
View File
@@ -93,7 +93,9 @@ replacement, and each removed path, column or flag.
`address` record binding one locality and drawing its street and postal code inside
it. `sv_SE.address` and `en_US.address` bind those records once, so
`en_US.address.street` no longer carries `name` and `suffix`, and a locale's `address`
reads its country's `geo` module.
reads its country's `geo` module. Every Swedish postort ships, and a tenth of the US
incorporated places owning a ZCTA, drawn by population down to villages of a few
hundred people; each place carries a tenth of its streets, at least ten.
- `{date(from,to,'layout')}` and `{time('layout')}`: a second between two days, or
within one, in a single-quoted Go layout, drawn in UTC; `from` may equal `to`.
`sv_SE.date`, `en_US.date`, `sv_SE.time` and `en_US.time` render through them, so
+3 -3
View File
@@ -311,9 +311,9 @@ neighbouring one.
|-------|----------|----------|--------|
| `region` | län, by code or name | state, by USPS abbreviation or name; `code` is the FIPS code | population |
| `municipality` | kommun, by code or name | county, by FIPS code or name | population |
| `locality` | postort, by name; [`geo-se.py`](data-import/geo-se.py)'s `localities` picks the candidates, and one with no street is dropped | incorporated place of 25,000 people or more with a postal code and a street of its own, by GEOID or name; Hawaii has none | tätort population, the kommun's where the postort names it, else 200; place population |
| `locality` | postort, by name; [`geo-se.py`](data-import/geo-se.py)'s `localities` picks the candidates, and one with no street is dropped | a tenth of the incorporated places owning a ZCTA, drawn with odds by population, by GEOID or name; Hawaii has none | tätort population, the kommun's where the postort names it, else 200; place population |
| `postal-code` | postnummer with street delivery, by code | ZCTA, by code | one; address ranges |
| `street` | gatunamn, the ten with most road segments per postort | street name, the ten with most address ranges per place | segments; address ranges |
| `street` | gatunamn, the tenth with most road segments per postort, at least ten | street name, the tenth with most address ranges per place, at least ten | segments; address ranges |
`geo.SE.region[Skåne län].municipality` draws a kommun in Skåne,
`geo.SE.locality[Lund].street` a street in Lund, and
@@ -1139,7 +1139,7 @@ A shipped table built from a source is rebuilt by its script under
`data-import/cache/`, which is ignored by version control and grows past a
gigabyte, so pass `--cache DIR` to reuse a copy you already have and delete it to
fetch afresh; `geo-us.py` fetches two
TIGER/Line files per county it ships, a few hundred megabytes, `geo-se.py` needs
TIGER/Line files per county it ships, about a gigabyte, `geo-se.py` needs
a Trafikverket API key, free at [data.trafikverket.se](https://data.trafikverket.se/),
in `TRAFIKVERKET_API_KEY` or a `--key-file`, and the Census host behind `geo-us.py`
and `names-us.py` rejects a client for a while after a burst, so `--surnames` takes
+14 -13
View File
@@ -555,7 +555,7 @@ A link is proved against the parent's keys and a key's uniqueness is a data mist
both are load-time; the row lookup, by name and by parent, serves only a draw, so it waits
for the first one, keeping `New` linear in the bytes read. On 2026-10-05, building every
shipped lookup at load added 13 ms and 3.2 MiB to a 60 ms `New`. That cost grows with every
locale and with item 78, and most tables are never drawn by name or parent. The maintainer
locale and every place the geo tables ship, and most tables are never drawn by name or parent. The maintainer
kept building the lookup on first draw, once per table.
## Two categories may name one TSV
@@ -603,17 +603,18 @@ providing `geo.SE`'s paths, and without one `sv_SE.address` fails at first reach
`FS` works against goal 6.2. Every package exports `Modules()`, so one spelling loads any of
them; a data package imports only the packages it reads.
## The default embed holds every Swedish postort the import can place and give a street-delivery code and a street, and the US places of 25,000 or more
## The default embed holds every Swedish postort the import can place, a tenth of the US places owning a ZCTA drawn by population, and a tenth of each place's streets, at least ten
2026-09-24, Lilleman auf Larv.
Sweden fits whole in 700 KB; every US place of 10,000 would pass a megabyte and fetch
1,200 counties of TIGER files, so the threshold sits where the two countries match in
size, and `--min-population` and `--streets-per-locality` on the import scripts build a
fuller set. Loading the whole shipped set took about 45 ms, about 20 ms of it the two
trees.
Withdrawn by the maintainer on 2026-10-03; `todo.md` item 78 replaces it.
2026-10-11, Lilleman auf Larv, through `todo.md` item 78. Goals 2 and 14: ten streets a
place crowded 500 Stockholm customers onto ten streets, and US places of 25,000 or more
left out every town and village. `geo-us.py` draws among the places owning a ZCTA, since
a place owning none can carry no postal code, with Efraimidis and Spirakis's weighted
sampling from a fixed seed, so a rerun on the same sources draws the same places. The
draw keeps about 950 of the 1,584 places of 25,000 or more, and its smallest place holds
210 people. On 2026-10-11 the embed grew from 1.3 MB to 5.2 MB, and the first draw of
`en_US.address` took 75 ms against 19 ms before, within goal 13. `--place-share`,
`--street-share` and `--min-streets` on the import scripts build another set. Valid while
the first reach of a country stays unnoticed beside a test run.
## A locale's `address` binds its country's record once and prints it whole
@@ -640,8 +641,8 @@ postort none of the three rules place is dropped, as is one not cased like a pla
`I- 55 Bus` and `US Hwy 1` carry the most address ranges in many places and would head
every address, so the import drops names spelled as a route. A ZCTA goes to the place
its largest in-place part lies in, census-designated places left out since they never
ship, and ships only when that place does, so a few dozen places whose every code lies
mostly in a bigger neighbour ship no address; counting the land outside every place too
ship, and ships only when that place does, so a place whose every code lies mostly in a
bigger neighbour is never drawn; counting the land outside every place too
would drop a quarter of the places, whose codes straddle unincorporated land, for a
postal city the USPS mostly names the same way.