
A social coding experiment that updates its own code democratically - qznc
https://github.com/chaosbot/chaos
======
in_the_sticks
Just like a real democracy, some participants are more equal than others.

~~~
netgusto
Looks like there's a revolution going on already
[https://github.com/chaosbot/chaos/pull/42](https://github.com/chaosbot/chaos/pull/42)

~~~
sanjaybv
The pull request for equal voting weights just got accepted!

~~~
ReverseCold
I don't see this as a good thing for an online democracy, since people can
make alternate accounts very very very easily.

~~~
in_the_sticks
There's an age requirement to vote.

~~~
Matt3o12_
But how does this work in practice? I could (theoretically) create 5000 github
accounts and have full control over the repo in one month [1].

This means I could create a pull requests which gives my main account absolute
voting rights unless other real people try to organize over 5000 accounts to
vote no. While this can happen in the real world as well (just look at
Turkey), it is quite hard to achieve (you first need enough people to support
you that you can gain such power).

In the internet, creating accounts is pretty easy and unless github flags my
accounts (which can always be circumvented), there is no real democracy just
like with Bitcoin when the most determined/resourceful person has the most
power. That's because they either managed to create enough accounts, or in
bitcoins case, have custom hardware to control the creation of bitcoins as
well as (almost) all transactions.

While the idea is pretty interesting to do that automatically, a better
approach IMO is to have humans decide what to implement and what not because
humans tend to be able to spot fake votes when there is no meaningful
discussion why something should be changed. And thanks to the wonderful nature
of free software, if a maintainer starts to prioritize their own agenda over
the community, the community tends to just fork the repo and do their own
thing. This is the best example of democracy I have seen so far. People are
able to discuses what they want to do and if they fell their interests are no
longer supported, they can just do their own and bring other over if they feel
the same way.

[1]: the current minimum age is 1 month according to
[https://github.com/chaosbot/chaos/blob/master/settings.py#L3...](https://github.com/chaosbot/chaos/blob/master/settings.py#L39)

~~~
powera
You could also create your own repo on Github and not destroy something else.

~~~
Matt3o12_
That's not the point. You do not design your server in a way that it is easily
hackable because people can just set up their own server and not destroy
something else.

I wish we lived in a word where that is not necessary and all human beings
work together instead of against each other. But we do not live in such a
world. Creating valid thread models and pointing out disatantages of systems
that malicious parties will exploit is therefor necessary.

------
harryf
Reminds me of
[https://github.com/illacceptanything/illacceptanything](https://github.com/illacceptanything/illacceptanything)
which came up on HN a couple of years back
[https://news.ycombinator.com/item?id=9338088](https://news.ycombinator.com/item?id=9338088)

~~~
anythingbot
I updated the video feed and added a synthesizer

anythingbot.org/video

anythingbot.org/nonlanguage

------
mappum
Very cool, I really like this idea of Nomic-style open-source code governance.
I previously built a similar project:
[https://github.com/botwillacceptanything/botwillacceptanythi...](https://github.com/botwillacceptanything/botwillacceptanything)

------
pavel_lishin
It may be possible to mitigate the "create 5000 dummy accounts" attack by
steadily increasing the age required to vote, much like in Larry Niven's
Struldbrugs Club membership.

Obviously the harshest, most stringent approach would be to block anyone whose
account was created after the time of the PR merge. But this would prevent new
players from participating.

You could also increase the age requirement by one day every two days, or have
a logarithmically increasing requirement.

------
cdupont
I am the author of a similar game, called Nomyx:
[http://www.nomyx.net/](http://www.nomyx.net/) In Nomyx, the players can
change the rules of the game, while playing it!

------
beejiu
Interesting. I had a similar idea but for 'political policy' rather than code.
Basically, a kind of social network where people work on editing a single
corpus of text, making 'merge requests' and voting. It used a statistical
technique called a sequential probability ratio test to work out whether a
user's change should be accepted or rejected.
[http://brendonboshell.co.uk/voting-
system/](http://brendonboshell.co.uk/voting-system/)

------
schtitt
It's like the code version of
[https://en.wikipedia.org/wiki/Nomic](https://en.wikipedia.org/wiki/Nomic) !

~~~
Gaelan
There's also a Haskell-based one called Nomyx.

------
bewuethr
This looks very similar to
[https://github.com/botwillacceptanything](https://github.com/botwillacceptanything)

~~~
anythingbot
And the activity looks very similar to a neuron firing! This is, in a sense,
THE BASIC LEARNING UNIT a.k.a. neuron. If you think about the way water flows
through a river (the water KEEPS ERODING THE RIVER! How can this possibly work
?!?!!?) or the way a neuron counts the "votes" from other neurons like an
automatic electronic computer, you can see similarities in scale!

If you have any questions, you can send a PR to
[https://github.com/anythingbot/anythingbot/](https://github.com/anythingbot/anythingbot/)
or create an issue or ask in a reply here. My email is

anythingbot@anythingbot.org

And there is a video feed.

BWAA TV: Bot Will Accept Anything TV

[http://anythingbot.org/video/](http://anythingbot.org/video/)

------
nebabyte
Twitch Plays Github

~~~
ferdbold
Github plays Github

------
arthur2e5
Discarding votes after `rebase` commits looks like a pretty bad problem now:
[https://github.com/chaosbot/chaos/pull/26](https://github.com/chaosbot/chaos/pull/26)

------
neoeldex
Would be interesting to see whether it could be turned in to an anarchy,
removing all references to the democratic process, and allowing all pr's to be
merged.

~~~
wolfgang42
[https://github.com/chaosbot/chaos/pull/48](https://github.com/chaosbot/chaos/pull/48)
"Need more chaos" proposes this.

------
Ace17
Has anyone tried to build a code version of Wikipedia?

~~~
yosito
Not the same thing, but Lunyr is building Wikipedia on blockchain technology:
[http://lunyr.com](http://lunyr.com)

~~~
placeybordeaux
They speak against centralization then right in their whitepaper they have:

> Lunyr may make changes to the size of the LUN pool, LUN distribution and
> other related matters that it believes, in its reasonable judgment, are
> beneficial to the LUN platform growth and development, or it considers
> reasonable under the circumstances. Keep in mind that any corrupt behavior
> would be irrational for Lunyr to do. Lunyr will be holding onto LUN and any
> decisions that dilute the value of LUN and devalue the knowledge base would
> be harmful to Lunyr.

So they say that you shouldn't use the centralized solution, but it's okay for
Lunyr to maintain control because it's in it's economic interests.

Okay.

Not to mention they include ads, this just sounds like a worse version of
wikipedia.

------
davesque

      ## Some things it could do
    
      * Provide some useful service to people.
      * Be malicious.
      * Recreate itself in a different programming language.
      * Break itself and die.
    

Hate to be pessimistic here, but I'm guessing the last option will happen
fairly quickly.

~~~
eric_h
At the time of writing this comment, that's only happened twice so far. See
the Death Counter portion of the readme.

------
return0
programming by committee?

------
nazilla122
Would the Linux Kernel be classed as a dictatorship in this case?

~~~
technophiliac
[https://en.wikipedia.org/wiki/Benevolent_dictator_for_life](https://en.wikipedia.org/wiki/Benevolent_dictator_for_life)

