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!

@remram
link
52M

If you are not concerned about the secrecy of votes (you don’t seem to be), why not simply vote over email? Send a template to fill out and have them reply?

@snek_boi
creator
link
12M

I agree that this perhaps would be the simplest method… Unfortunately, the situation described above with the emails keeps me from jumping to try it out… I think I’d do it only if my ‘PR campaign’ gives clear signs of success…

Ephera
link
52M

I’m with @Echedenyan@lemmy.ml in that I don’t really understand why the Framasoft Polls aren’t suitable (and would recommend sticking with what you’ve established, if possible), but here’s an alternative similar to Google Forms: https://cryptpad.fr

@Echedenyan
link
7
edit-2
2M

https://cryptpad.disroot.org/ is a instance to be taken into account too. I didn’t know that has forms too.

@snek_boi
creator
link
32M

Now that you’re both saying it, I’ll check Framasoft again to see if they don’t have an ranked choice option. But as to cryptpad, it does have a ranked choice option! Also, I can optionally make the responses public! Amazing!!!

@Echedenyan
link
5
edit-2
2M

I use Framasoft polls in the https://poll.disroot.org/ instance for my classmates, as I represented them last year, to choose questions in the group. (I know you already set it as solution)

I put a password to the Poll and made them identify themselves in the vote by list number in the classroom plus their name + surname, which is an unique identification.

In this way, you can avoid someone voting in a false way if everyone participates and check that their votes are correct.

Framasoft polls also allow editing your vote. It tells you a personal link to edit it the time you join the poll to vote.

I don’t know how is that you can only vote for 1 option in Framasoft polls. I added multiple options always and based on the number of votes for each option, (yellow votes and green votes) you can choose first, second, third… places.

@Echedenyan
link
6
edit-2
2M

Other solution, given them the public password and a unique identification in private, so you can avoid false voting.

Maybe I didn’t tell before but the identification should be placed in the name you put when you vote.

@snek_boi
creator
link
32M

Thanks for the detailed response! This does satisfy plenty of the things I’m looking for, which is great! The only thing is that ranked choice means you, as a voter, say “I’ll put ketchup in 3rd place, mustard in 2nd, and mayo in 1st”. Then there’s a ballot-counting procedure that eventually gets winners out of ranks like that. But apart from that, thanks for letting me know how I can use Framasoft to better fit my situation!

@Echedenyan
link
3
edit-2
2M

I understood but could not explain how is not possible with Framasoft polls when I replied.

What I understood is that you have multiple choices with red, yellow and red votes in Framasoft polling.

Green are positive votes, yellow are incremental votes (I will call them like that) and red are negative votes.

In a multiple options poll, with these three votes the final results will be ordered based on the number of positive votes - negative votes and counting incremental votes at last.

I think that with this, ranked voting is possible.

I used this for the decisions in exams days. Which was the preferred day, the second preferred day, the backup and the day no-one wanted?

Adda
link
2
edit-2
2M

I use Framasoft polls in the https://polls.disroot.org/ instance

I believe you mean https://poll.disroot.org/, right?

@Echedenyan
link
32M

BTW, check your link too. It is pointing to https://lemmy.ml/[https://poll.disroot.org/

Adda
link
32M

I see, I pasted the opening square bracket in the link by mistake. Interesting how it redirects to Lemmy site automatically. Fixed now.

@Echedenyan
link
32M

Yes, I confused the link.

m-p{3}
link
12M

It’s not a turnkey solution, but something based on ElectionGuard could help?

@snek_boi
creator
link
32M

Ah! This would be amazing! Indeed it isn’t turnkey and they explicitly say encryption for ranked-choice is still not implemented, but this is just great to know it exists! Thanks!

@ajz
link
1
edit-2
2M

deleted by creator

All about open source! Feel free to ask questions, and share news, and interesting stuff!

Useful Links

Rules

  • Posts must be relevant to the open source ideology
  • No NSFW content
  • No hate speech, bigotry, etc

Related Communities

Community icon from opensource.org, but we are not affiliated with them.

  • 0 users online
  • 50 users / day
  • 96 users / week
  • 156 users / month
  • 500 users / 6 months
  • 3809 subscribers
  • 1317 Posts
  • 4109 Comments
  • Modlog