Participants selection information
For every NDG, we have a limited amount of openings available to participants. Until NDG 2018, we used to go for a first come, first served approach. We decided to change this approach after all the spots for NDG 2018 were claimed within a second, as it favorised those who had a more stable internet connection
From NDG 2019 onwards, we are using a different approach, keeping the registration open for a period of time and proceeding to a sort of lottery if there are more registrations than spots available.
The following is a list of rules we follow when selecting participants from registrants. You should be able to use this list to verify that the selection was made in a fair way, or as close as possible to a fair way.
- The number of spots given on the index page is only indicative and can change based on circumstances. The actual number of spots being used for the participant selection might be slightly different.
- Some spots are reserved for staff. Those are handled separately for registration.
- Staff members can nominate a +1 on occasions. These +1 are guaranteed a spot. This may be used in situations where someone feels that they might only be able to apply for a given year and not afterwards.
- If there are fewer registrants than available spots, no lottery will take place. The registrations may stay open a little longer to fill more spots on a first come, first served basis
- If a lottery drawing takes place, registrants will be split in two groups: Veterans and Newcomers. Veterans are people who have participated to two or more NDGs.
- There is a separate drawing for each group in order to ensure that there is a roughly equal amount of both veterans and newcomers. If one of the groups has fewer registrants than the minimum wanted, then all the registrants of this group are guaranteed a place.
- For registrants with a +1, both people get to participate in the lottery. If one of them gets a spot, the other does too.
- If the lottery ends with a single available spot, the last drawing is made among registrants that do not have a +1 listed, if any.
- The selections of newcomers takes place first. If a veteran-newcomer pair comes up during the drawing for veterans, it is skipped.
- The drawing takes place by giving everyone a certain amount of tickets. Everyone gets at least one ticket and then one more ticket for each time they applied, but didn't get in, since the last time they participated.
- This means people initially get a high chance of participating up to two times as part of the newcomer pool and then later a low, but increasing chance of participating as a veteran.
- In practice, each lottery ticket needs to be filled in with some text chosen by the registrant. This can be a sentence, a word, a lucky number.
- Once all lottery tickets are filled in, they are "measured" based on how close what is written on them is to a reference text. This is done in a complex way, described in the next section, aimed at making things fair
- The lottery result is only used indicatively. We will generally try to abide by it, but we may choose to alter the outcome for any reasonable purpose.
The lottery algorithm
- Pick a long piece of text. It can be random, but doesn't need to. This is made public.
- Generate a random key. This is kept private.
- Calculate a HMAC, of the original string, using the key. Make the result public as well as the value of any salt used
- Proceed with the lottery
- Calculate a HMAC for the content of every ticket, using the same salt and key.
- Tickets will be ordered based on the distance of their hash to the originally published hash, modulo the size of the space used for the hash results.
- The closest tickets win the drawing. We reveal the secret key used for the process. People can verify that it was the key used to derive the initial HMAC and that it was also used to derive the HMAC of their messages