Y'all may make my day.
# Here's the situation:
I am part of a club in which we publish stories. We don't have enough money to print them all. So we vote.
Currently, we can only vote with only a checkbox ☑️ per option using Framasoft's polling. Not optimal because...
# I'm interested in ranked voting.
- How can I make a dead-simple (from the coder and user perspective) ranked voting mechanism that also avoids them having to log into places or create accounts? We need to account for old, computer illiterate people.
- How can I assure them integrity in the sense of their votes being counted once, in the sense of the votes being cast properly, and in the sense of people feeling that the solution is 'safe'? I say safe because I created this community's website pseudonimously and people loved it, but I once stupidly published fragments of someone else's stories and they got properly pissed at the pseudonymous site creator. They were asking questions about the safety of the community, allegedly seeking legal advice, and even doubting the security of the website. This lead me to make the website a static, open source site with checksums, and a password for some encrypted posts. I delivered the password through the community's official email list, which incidentally is one of the ways I've thought of verifying voter identities.
- Could the solution piggyback on existing solutions?
# Solutions I've considered:
- Hardcoding Google Forms. I set up radio buttons to rank the first option (e.g. "Fries - 2". Then, depending on the rank they chose there, I make a new page for the next option with every rank except the one they chose (e.g. "1" and "3" because "2" was chosen already). This effectively creates a 'dynamic' (hardcoded) solution.
- Pros: This seems simple. They can claim an identity (e.g. "Partners in Crime", a couple that writes together).
- Cons: With more than 3 options, this insane. The amount of pages I need to hardcode with this method is 'n!'! Slower feedback in case there's double submission ("Partners in Crime" vote twice, or someone manipulates the election).
- Giving a markdown template of the ballot and have them fill it out and submit through a Matrix room.
- Pros: I can verify the ballot and, if incorrectly ranked (e.g. two options were ranked as "2"), have them correct it. They can edit the message. People can see each vote and verify the election. Minimal programming time.
- Cons: Non tech-savvy people, in their ignorance, could think I'm demanding them sign up into a sketchy service. I know, this sounds absurd, but this group, while mostly sensible, has some tin-foil hat people. Formatting could be harder than clicking for older people. Anonymity is lost, in case that's a desirable thing (which I'm ambivalent about; ultimately, people could chat with my pseudonym privately). However, **the biggest con** is that, if not enough people sign up for this, the legitimacy of this election would be compromised. Some people may not sign up because it's harder than simply clicking a link and then immediately clicking on options (believe me, stuff like this matters). The last con is that, if someone finds out that in my private life I use Matrix regularly, they could out me as the creator of the site. I don't want to end up getting sued...
- Using a proprietary solution like Survey Monkey and Qualtrics.
- Pros: Known brands. I can sell the brand as a safety feature for skeptical older folks. Probably has a simple interface. Fast programming. Probably has a way of verifying identities through an email list.
- Cons: This is proprietary software. I'd love *not* to use it. They may harvest our data and sell it, as it goes all-too-often. The email list thing on its own could be an issue. Plus, my current 'PR strategy' is to emphasize the openness of FLOSS, and how it's compatible with pseudonimity...
- Rather than a static website, set up a database-driven website
- Pros: The frictions regarding registration into Matrix would disappear. I can create this exactly as I want, with less redundancy than in the Google Forms hardcoded solution.
- Cons: This is out of my skillset. This is not as easily verifiable as a static website with checksums or a Matrix room.
- Hold a Jitsi meeting and vote 'face to face'
- Pros: Election integrity is probably assured.
- Cons: I'd probably be outed as the creator of the website, since I've blogged about how we should use ranked-choice voting. It's also not easier to 'cast a ballot' in a Jitsi meeting. We still need a ballot-collection mechanism. Otherwise the whole thing ends up as a procedural hearing with people dictating their votes... ugh...
# The issue with email verification
These folks even heavily questioned the fact that I had their emails to begin with (to be sure, this, in the middle of other comments that lauded the website, which is why I'm not giving up on this). The thing is, I got their emails from the publisher, but it isn't clear if the publisher should've done that to begin with. I found out about this because, when people were threatening to sue because of 'exposing private information' (an email), I got a lawyer and was told that this is a gray area; there are some cases that consider emails sensitive information and others that don't. This is why I'd prefer not to get those who are pissed even more pissed by using their emails again.
But anyway, avoiding emails is why I thought it would be easier for people to *claim identities*. That is, they submit their vote, but also say "I'm Partners in Crime" or "I'm Mike", and at first I trust them. However, if, at any point, someone else claims those same identities, then I ask for email verification *only to them*, on the grounds that there is an issue in their identity verification.
This would be especially useful in a public Matrix room, where everyone can verify that, indeed, there was a conflict in the claiming of identities.
What makes this method better than the 'emails by default' solution, is that verification is their prerogative. If they don't want to verify it, the vote is not counted. If they want to, they can. And email is not the only way. I'm open to alternatives. Either from them or from you. But so far it's the only way I can think of, other than selfies (like Reddit does it at times...; not a fan of this method).
# Why bother
This is a beautiful community at its best. We have published loads of amazing literature and changed for the good each other's worldviews. It only helps that now have, as a writing collective, a good reputation.
Apart from that, I have basic skills that I'd like to hone and make useful in making this ranked-choice vote happen. Ranked voting would improve our current voting system. And if I can make it with FLOSS, all the better!