~/tutorials/010-the-board.md
010: The board, and one person one vote
Lesson three told you what a point means. This one is about the machinery underneath the promise: accounts, votes, and why they travel together.
Why voting needs an account
A vote has to be attached to something that persists, or one person is many people. Signed-out readers vote on nothing, and that is the correct trade: nothing is hidden from an anonymous reader, and nothing is decided by one either.
The same idea, three times
Look for the pattern in how this site stores things. A vote is one row per person and item, so voting again is an update, not an addition. A finished lesson is one row per person and lesson, so marking twice cannot double it. An earned flag is one row per person and flag, so the same find cannot be counted twice.
Three features, one rule: when the key already exists, the old row changes instead of a new one appearing. That rule is the whole reason the numbers on this site can be trusted. Wherever you see a counter on the web, the honest question is what stops you from being counted twice, and the answer is either a constraint like this one or nothing at all.
What an account is here
An account is a place in this tree, not only a page. It buys remembering, and that is the whole list: the machine remembering where you got to, what you found, and what you thought was worth attention. It does not gate reading, and every lesson reads exactly the same signed out. The manifesto says it as a promise, and the code keeps it as a rule: reading is free, memory costs an account, and nothing else costs anything.
Try it
- Find the directory that holds account things, and read its README.
- Open the manifesto and find the paragraph that makes the account promise. Read the sentences around it.
- Vote on something you actually read. If you have no account, notice what the site asks you for, and what it does not.