18 Feb 2004 sw   » (Apprentice)

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!

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!