↓ Skip to main content

Watersnake, a simple voting app

·442 words

My small project during Swhack was to create a django version of a delegated voting system partially inspired by Liquid Feedback and the manyfold problems that system has 1. In particular that it is written on such an esoteric stack 2 that it is near impossible to get running without root on a Linux machine and let’s not even discuss the maintenance. What is even worse is that it makes it nearly impossible for outsiders to join the project and contribute to it significantly.

In this interview about Liquid Democracy you can read quite clearly how the technical mandate drives the direction of the project. Something that may not be very desirable if you think of it as a democracy-centric issue and not a technology-centric one.

So to see how hard it would be to write something similar in vanilla django. It’s easy to hate on django but you can find tons of people who can work on this in just about every major city, the framework and the documentation are mature and many parts of the framework can be called excellent 3.

I thought putting something together that at its core implements a delegated voting engine should be doable in an afternoon and it was. What took the most time was playing around with the settings of the testrunner which I hadn’t really used before. So the watersnake app in this project does majority voting on single proposals with support for delegation 4. To see it work you have to run the tests, but building this out into a full fledged (web) app that can be deployed to heroku with a single command is technically trivial (and also time consuming).

This wasn’t a stretch to implement right now because I’m also doing some other projects which border on collaborative writing/decision making/filtering. As always, technology is neither the problem or the solution, but certain technical systems grant different socio-technical affordances than others. I will probably not work on this unless there is a clear demand, but I thought it would be useful to debunk the idea that building such a system needs to be difficult or complex.


  1. Among others: the atrocious user experience, the fact that it does not support anonymity, the impossibility of i18n. ↩︎

  2. The core is a 4500 line pgsql file which is a solid way to deter outside involvement in a project. ↩︎

  3. I for instance can’t really imagine using sqlalchemy over the django ORM. ↩︎

  4. We can build it out to support as complex a voting setup and algorithms as you would like, but I would be reluctant to do so without clear indications that it will be actually beneficial. ↩︎

Alper Cugun
Author
Alper Cugun

Related

Swhack Berlin

·175 words
So this Saturday Jan Lehnardt and I are having a small hackathon here in Berlin in remembrance of Aaron Swartz and to in one small way continue doing the work that needs to be done on the internet, in government and especially where those two meet.

29C3: Long live the protocoletariat

·1075 words
I followed the last CCC from a distance reading the Twitter fallout and keeping track of the live streams while getting work done in an empty Berlin. Besides the various controversies playing out, there were some good talks. What I found to be the best of the event was “Long live the protocoletariat” by Eleanor Saitta (@dymaxion) and Smári McCarthy (@smarimc) about a topic that is very near to the things I am thinking about: institutions and networks and all of the opportunities and problems associated with them. The presentation in the first thirty minutes of this video is well worth watching. Pull quotes below are paraphrases.