Hey, long time no advogato!
I now have a livejournal diary too:
http://livejournal.com/~samwatkins
It seems a bit silly having two diaries,
kind of like having different bookmarks files
(and formats) in two different browsers.
I'm going to work on http://cards.sf.net/
to make it really good, some time soon,
incorporating some cool new stuff
to encourage adoption of the `core' ideas there
(that we should help eachother for free
in real life, just like hackers do in
the free software world).
I have at least one other developer
interested in making this happen,
and he's much more practical than me
(wouldn't be hard), so maybe this might
get off the ground.
We want to support images, e.g. portrait,
and possibly sound-bites,
for a more obvious personals functionality,
cards for different classes of thing,
not just people and groups of people,
but any old piece of junk you might wanted
to give away or want to obtain
(or buy or sell I guess, although
my hatred for money is going to be hard
to swallow.)
The cards will be based on a nice clean
data-structure syntax, quite like
a combination of HMTL headers and DOM.
The raw cards will be available for download,
and there will be a raw interface to all
functionality so that people won't have to
screen scrape in order to write programs
that use the site. (hopefully this won't
cause problems - there could be issues
with spam or abuse).
We want to take the best ideas
from other sites such as orkut, advogato,
livejournal, ... and implement them.
Also, we want to implement a distributed backend.
One important thing: we want to implement effective
discussion forums / media, where people can
vote for a message, or pass their vote
to another person or people who can
then vote for messages on their behalf.
Typically when people read the messages
(globally, or in their particular domains
of interested) the articles will be ordered
according to how many voting points have been given them
(and possibly, according to the user's choice,
inversely according to the size of the article,
or according to some other metric, for example
articles written by friends might be favored).
Just say each person has 100 points to vote with.
One person, Jane, decides to give 20 points to Geoff,
a famous environmentalist she respects, 40 points
to her brother Fred who she loves & trusts
(he spends more time reading and ranking the news
than she does), and she keeps 40 points herself
to give to articles she likes.
Also, if Jane reads an article that she strongly
disagrees with, she can uses some of her points
-against- it, i.e. 20 of her points can
count as -20 on that article.
If Jane sees an important article later,
she can take back any of the points that are hers,
including those she passed on the Fred
and reassign them to the article.
Or if Geoff does or says something Jane
disapproves of, she can retract her support
at any time (unlike in the present political systems!)
One major issue with the integrity of this system
is that false identities might be created,
it might be necessary to actually verify
the identities of participants in some real-life way,
perhaps by requiring a person to be `invited',
and having a network of friends as orkut does -
this is not foolproof, but seems quite strong.
Or perhaps a powerful trust metric might be adopted.
So long as we don't have the `rank your friends'
feature of orkut! Or at least, this should be
an opt-in thing. (I say this because I don't like only being rated 5/10 in trustiness, 6/10 in coolness
and 5/10 in sexiness or whatever the hearts stand for,
I forget...! hey it might be true, but it's not nice
to say so!!)
In the extreme, we could have legally binding
certification of identities by other participants,
with serious consequences (expulsion or perhaps more)
in the case of fraud. This might sound scary,
but it would be effective and not too difficult
to implement or offputting for participants.
We would also need a way to ensure uniqueness,
otherwise different friends might be duped into
certifying the same person under two identities.
Perhaps we could use name, date-of-birth and
place-of-birth for this (as in the original cards idea)
or else something dependent on country, like
social-security number or license number
(but many people don't drive).
Another issue that might be a problem
is the issue of anonymous voting.
Do we want voting to be anonymous,
as in the present political model,
or not? To implement a secure anonymous voting system
is apparently very difficult. We could implement
a not-very-secure anonymous system,
or forget about anonymity and assume
that the age of employee- or peer-pressure
to vote in a certain way is passing...
doesn't sound very likely to me! unfortunately.
Another question - if voting is anonymous,
can primary voters nevertheless
see where secondary voters have put their vote?
and which secondary voters have done so?
I feel that a person should always
be able to find out where his/her
100 points have gone.
A secondary voter should not know
from whom the contributed points have come
I'm sure this is doable if we don't
worry too much about security from people
who have access to the hardware.
I had an idea a while ago that redundant
voting systems run by independent groups
could be used to prevent cheating.
Also, a friend suggested the technique
of `two envelopes', based on real life voting practice -
the outer envelope has the ID of the voter,
so that they can be checked off the list;
the inner envelope is unmarked,
it is sent to the counting place,
opened and the (anonymous) vote is counted.
I'm pretty sure we can implement something
like this with crypto quite simply.
I don't understand the root of the perceived
major problems with e-voting systems,
I think it should be doable.
Of course, we need not necessarily
worry about this level of security
for the first (prototype) system.
The technique of assigning voting points
to articles can be used to make a decision
in a public poll; anyone can contribute
a proposed solution to the problem,
and people can give points to the solutions
they regard as best, or to other people
they think are better able to make
an informed decision on the issue.
Should each person have only 100 points overall,
or should they have 100 points each day to use,
or should they have 100 points in each different forum,
or both?
I'm not sure, I'm inclined towards the 1st option
because it seems the simplest, and simplest to implement.
But it does seem a bit strange that someone has to
take away their points from whatever articles / people
they have been supporting if they want to be heard
in a poll they think is important. Seems strange,
but perhaps this is a good way; it means that people
who don't really care don't have much power.
On the other hand, if the poll is limited in time,
people can temporarily revoke their points and then
put them back as soon as the poll is finished.
Who then decides when a decision has been made??
Hopefully people can agree on somethings without
infrastructure! I don't know, perhaps a stability
metric might be applied.
Of course, the main point of this system
would be to allow people to make decisions and communicate
without resort to centralised or hierarchical systems
of government, politics, media, etc. To implement
`usemod', a moderated usenet, but not simply as a wiki!
There are other possibilites for ordering artciles,
for example if people's opinions / votes
were not anonymous, a person could conceivably
order articles based on the opinions of his/her friends
and other people, according to a (private)
`respect for opinion' value associated with each friend.
The importance of an article to a person would
therefore be based on
1. his/her own opinion
or 2. the weighted opinions of his/her nominated peers
or 3. the weighted opinions of the peers' peers
(who are not known to the 1st person)
etc.
This I think is an interesting model, but very difficult
and cpu-intensive to implement. In general, a calculation
over the entire population of people would need to be made
for each person X each new article, and revised each time anyone ranked that article! Too hard!
Perhaps we could compromise by having the global metric
of voting with 100 points explained above, and also
a person could value each article. This value could be
used personally to change the order of reading,
and possibly made available to friends
if they would like to use it.
Making computed values (based on weighted values given by friends) available to other people causes another possible
problem, it lets your friends know what you think of their
opinion numerically. Some people might say it is good
to be honest about these things, but I think it would only
upset people whose opinion you don't value as highly as
others'. Some things are best kept private!
Also, it would be good when computing such weighted sums
to consider the subject or domain of the article, as
ones opinions of ones friends' ability to judge the
importance of an article might depend very much on the
subject. For example, I would value an expert gardener's
opinion highly within the domain of gardening but not
the domain of computer science or art appreciation.
Anyway, we can make these two systems available,
and other suggested systems, perhaps we could
incorporate other dimensions of ranking,
e.g. humour, not just simple importance or credit.
(or perhaps articles could be linked into
multiple domains, one serious, one humourous,
and ranked separately in each domain.)
Another idea for posting articles
is to include some sort of simple markup
the indicates the appropriate audience
or domain of different parts of the message,
and also the importance of different parts
(this could perhaps be indicated by indentation).
This way one article which might have some
generally interesting content,
and some technical content within one or more domains
might be automatically filtered depending
on the preferences of the person reading it.
Also, we need a powerful system
for linking articles together,
and revising articles collaboratively
(and storing the revisions efficiently).
Branching and merging should definitely
be supported, and grouping/clustering of revisions
into groups.
If someone supports one particular revision
of something, and then another revision is proposed,
the latter revision will not be preferred
until most people transfer their support to it.
But everyone who views the old revision
will be able to see that a newer revision
has been proposed, and to examine the differences.
This way, two or more conflicting alternatives
may be proposed, and people can decide which
if either is better than the original.
Another person can create a merged combination
of the two changes, and resolove any conflicts;
people might then choose to support this.
When someone dies, their voting points vanish.
Sorry! no inheritance.
People should have their voting points from birth.
I don't see that adults are any better
at making good decisions than children.
Presumably a child won't be sufficiently expressive
to be able to vote for a few years -
Perhaps the parents should be allowed
to use their points until the child is old enough
to disagree!
I think these ideas could be implemented,
and it's worthwhile to try to do so, because
hopefully it might lead to an alternative
to the current hierarchical political system of government
which I think is responsible for a lot of trouble.
It could also support other groups such as companies
and open-source software groups, to work well without
strict hierarchies.
The rest of the cards system is supposed to
help us to live without using money,
because using money is also, I think,
responsible for a lot of trouble.
ok that's enough for one night!