- commit
- 2a44ab1d8733bb90ae891c529b815ea0631f6a56
- parent
- d2e3efe9d94dc1ff47300fc2f788b120b9c0dd61
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2020-10-17 08:19
update README
Diffstat
| M | README.md | 87 | ++++++++----------------------------------------------------- |
1 files changed, 11 insertions, 76 deletions
diff --git a/README.md b/README.md
@@ -17,18 +17,16 @@ The voting mechanism 17 17 Votorolla is a complex liquid democracy project. But the core idea is 18 18 simple: 19 1920 -1 Every Person is a node in a forest (the disjoint union of trees in graph21 -1 theory, not22 -1 [this](http://miriadna.com/desctopwalls/images/max/Fairy-forest.jpg)).23 -1 At first, there are no edges at all. So people start to explain why24 -1 their opinion is the one to choose. When you see some convincing25 -1 argument you can *follow* that node (*delegate your vote*).-1 20 Every opinion is a node in a tree. At first, there are no edges at all. -1 21 So people start to explain why their opinion is the one to choose. When -1 22 you see some convincing argument you can *support* that node (*delegate -1 23 your vote*). 26 24 27 25 After a while it becomes clear which competing positions exist and which 28 26 arguments are important. The whole discussion is conserved in the graph. 29 27 You can go on discussing until you reach a consensus. 30 2831 -1 While this concept is not perfect for every situation it is beautifull-1 29 While this concept is not perfect for every situation it is beautiful 32 30 in its simplicity. 33 31 34 32 How to use it @@ -39,22 +37,22 @@ Since I really just wrote it the following section is more or less 39 37 fiction.* 40 38 41 39 Your group needs to make a decision, but doing this on a mailinglist42 -1 would definitly get messy. So instead you create a discussion on-1 40 would definitely get messy. So instead you create a discussion on 43 41 voterunner simply by typing44 -1 `http://voterunner.herokuapp.com/(your-topic)/` into the address bar of-1 42 `https://voterunner.example.com/#your-topic` into the address bar of 45 43 your browser. 46 44 47 45 You are lazy, right? So of course you want the group to make the right48 -1 decision but you don’t want to do the whole discussion thing yourself.-1 46 decision but you don't want to do the whole discussion thing yourself. 49 47 So you will delegate your vote. 50 48 51 49 Now you can concentrate on convincing those who have not already52 -1 delegated their votes to follow you. You may also try to steer the one53 -1 you follow in the right direction.-1 50 delegated their votes to support you. You may also try to steer the one -1 51 you support in the right direction. 54 52 55 53 To achieve this you work on your arguments. Try to address counter 56 54 arguments and be as precise as possible. Remember that you are a node in57 -1 a graph so you don’t need to repeat everything your followers already-1 55 a graph so you don't need to repeat everything your supporters already 58 56 said. Just make your own point very clear. 59 57 60 58 But maybe you even have an innovative idea. In that case you may revoke @@ -87,66 +85,3 @@ Development 87 85 You will need to install [sassc](https://github.com/sass/sassc) and 88 86 [browserify](https://www.npmjs.com/package/browserify). Once these 89 87 requirements are met, you can simply run `make` to build all files.90 -191 -192 -1 API93 -1 ---94 -195 -1 This section is only important if you want to understand how voterunner96 -1 works. If you just plan to use it, skip this.97 -198 -1 The communication is done using socket.io sockets.99 -1100 -1 socket.emit(action, data1, data2, ...);101 -1 socket.on(action, function(data1, data2, ...) {102 -1 ...103 -1 });104 -1105 -1 ### Setup106 -1107 -1 These messages are used to set up the connection between client and108 -1 server:109 -1110 -1 `register(topic, id)`111 -1 : register for id and topic. needs to be done before anything else.112 -1113 -1 ### Change the Graph114 -1115 -1 These messages will be broadcasted to all sockets which are registered116 -1 to the same topic as the one emitting in. The emitting socket must omit117 -1 the id because it was already set when registering. If an action is performed118 -1 on a node that does not exist in the local copy, it must be created.119 -1120 -1 `rmNode([id])`121 -1 : remove node `id` from the graph.122 -1123 -1 `setNodeName([id], name)`124 -1 : set the name of node `id` to `name`125 -1126 -1 `setNodeComment([id], comment)`127 -1 : set the comment of node `id` to `comment`128 -1129 -1 `setDelegate([id], id2)`130 -1 : make node `id` follow node `id2`131 -1132 -1 `rmDelegate([id])`133 -1 : make node `id` follow noone134 -1135 -1 License136 -1 -------137 -1138 -1 voterunner - quick and dirty votes and discussions \139 -1 Copyright (C) 2013 Tobias Bengfort <tobias.bengfort@gmx.net>140 -1141 -1 This program is free software: you can redistribute it and/or modify it142 -1 under the terms of the GNU Affero General Public License as published by143 -1 the Free Software Foundation, either version 3 of the License, or (at144 -1 your option) any later version.145 -1146 -1 This program is distributed in the hope that it will be useful, but147 -1 WITHOUT ANY WARRANTY; without even the implied warranty of148 -1 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero149 -1 General Public License for more details.150 -1151 -1 You should have received a copy of the GNU Affero General Public License152 -1 along with this program. If not, see <http://www.gnu.org/licenses/>.