Repository navigation
open questions
What is not decided, and why none of it should be decided by asserting a number in code. The numbering is stable — code and other documents refer to these by number.
-
Confirmation count N. The 3-and-3 default needs tuning against real logged tracks from the intended waters, where multipath off the rig and nearby structures clusters. Sustained multipath could produce consecutive bad fixes, arguing for a higher N or a harder kinematic gate. See crossing-detection.
-
How clear of the line a far-side fix must be. A fixed declared distance versus half each fix's stated accuracy. Both are implemented;
accuracyBandM: nullselects per-fix, which is more honest and makes how deep a crossing must go vary with the sky. Whether half is the right fraction is a question for logged tracks. -
Is the end-of-line warning loud enough on a phone in glare? The mechanism is settled and built — one-metre resolution, a hard edge, and
projectCog()behind the ring that turns amber inside the margin and red past the end. Whether it carries is a question for somebody on the water. -
Asynchronous window width. How far apart in time boats can sail the same loop before differing wind and tide mean they are not racing the same course.
-
Distance-factor conversion. Decided and built: a TCF of t sails t times the nominal length, shared between a course's tracks by sliding them all the same fraction along — see course-model. What stays open is whether a linear rule is fair across leg geometry and wind angle, which wants results from the water. The TCF is declared by the boat at the join; a club entering its fleet's TCFs in advance is not built.
-
The QC threshold values. Kinematic ceiling, minimum satellites, accuracy limit — all configurable per series (
defaults.qc), and all currently defaults asserted against no data. -
Coordinate supply. How marks are surveyed and by whom. Nothing in this repository is a survey: the sample programmes carry positions placed by eye on a chart.
-
Impersonation, and one tier of officer within a club. Boats are unauthenticated by design, so any device can claim any sail number — dialog §13, deferred on purpose. Officers are named club by club, but a club's admins may each do everything for it; some may abandon a race and others only watch is a sensible thing to want that nothing enforces.
-
Capacitor. Not yet present. The plan is one web codebase wrapped as native Android and iOS apps, for background location with the screen off. Background-geolocation behaviour, iOS Safari suspending the Geolocation API in the browser fallback, and plugin versions all shift, so they are to be checked when it is built.
-
The fleet's own trust, which is the same question one level out.
fleetcarries what boats said about themselves, and the race screen draws it — so a boat that misreports puts a wrong position on everybody's screen. The honest position today is that the fleet feed is a view rather than evidence. -
Which gate side a boat took is in the record — the crossing names the line taken — and nothing downstream uses it. On the Mark screen it shows: each side carries its own next-leg bearing.
-
A virtual mark short of a real one. A rounding is crossed as a line from where the mark is said to be. Used for a physical buoy and placed short of it, a boat that rounds the buoy may pass the virtual mark's line on the wrong side or not at all, and miss it; for now the sailor can step on with go-to in practice. Whether roundings want a margin, or the buoy's own position surveyed on the day, is open.