User:Jukeboksi/Chat Gallery/27.11.2004 with Brion

    From Consumerium development wiki R&D Wiki
    < User:Jukeboksi
    Revision as of 11:43, 27 November 2004 by Jukeboksi (talk | contribs) (chat with brion -> information about MediaWiki extensions and a monologue by juxho on the Campaign/Voting/Reviews scheme and it's vulnerabilities and future directions)
    (diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


    [11:59] juxho> got a moment for me?
    [12:04] juxho> A) Is there an {{nameofthispage}} function?
    [12:05] brion> something like {{PAGENAME}} iirc
    [12:06] juxho> B) Where should i look to implement {{numberofincominglinks<nowiki>{{nameofthispage}}/vote}}</nowiki> ?
    [12:06] brion> gluurrrgle :D
    [12:07] brion> we've got an extension hook interface for pseudo-xml-looking tags; depending on what you need that might be most practical thing. something like <incoming>/vote</incoming>
    [12:08] juxho> is that the plugin feature i've heard talk about?
    [12:08] juxho> ie. I want for the main campaign page Campaign:SomeCampaign to count all the links to Campaign:SomeCampaign/Vote
    [12:09] juxho> Campaigns are for organisations, Reviews are for individual users. They vary a bit in the way they work
    [12:13] brion> http://meta.wikimedia.org/wiki/Write_your_own_MediaWiki_extension
    [12:10] juxho> User:SomeUser/Reviews/ReviewOfProductX/Score has a link to Product:SomeProduct/Reviews/Minus2 for an "Strong avoid"
    [12:11] juxho> Minus3 Minus2 Minus1, Zero, Plus1, Plus2, Plus3 being all the sub-pages of Reviews-page
    [12:12] juxho> so for that we need an sum() function an avg() function median() and some other functions that aggregate the numerous reviews written by the users
    [12:12] juxho> I'll go read that link now, thanks
    [12:15] juxho> found it but you beat me to it ;)
    [12:21] juxho> so i could possibly do <summarize_reviews> {{PAGENAME}} </summarize_reviews> and <count_votes> {{PAGENAME}} </count_votes> while not forking from MediaWiki. That is way cool. Now I just have to figure out how to persist data in RAM in PHP and how to securely access the DB from the extensions
    [12:22] brion> you can do queries with wfQuery etc same as in the mediawiki code. but always be careful with input data: ALWAYS encode strings with wfStrencode() before putting it into an SQL expression as a string literal
    [12:22] brion> if you get integers? make sure they really are integers :)
    [12:22] juxho> it looks like after 2,5 years I'm actually going to code something .. |-P
    [12:23] juxho> integers from the wikicode i assume?
    [12:23] juxho> .
    [12:23] juxho> .
    [12:24] juxho> .
    [12:24] juxho> Another question. How difficult would it be to autogenerate required subpages everytime that a page is created that requires those sub-pages?
    [12:24] brion> from anywhere. trust no one
    [12:24] brion> erm
    [12:25] brion> i don't know, but i wouldn't recommend it :P
    [12:25] juxho> i don't see how i could read from db anything else then what is typed in SQL
    [12:25] juxho> ok
    [12:27] juxho> that is maybe a bot job. i guess if someone helps me parametrize the bot i could do a hook <runbot>A bot is currently creating the needed subpages. Reload this page and when this message disappears the pages have been created</runbot>
    [12:29] juxho> ehhhmm. now that wouldn't make much sense inputting that to the extension. but the idea is that the extension runs the bot <generate_sub_pages> {{PAGENAME}} </generate_sub_pages> when it gets this and outputs a notice to reload the page in a few minutes
    [12:30] juxho> i just have no clue as to how to invoke python programs from php
    [12:30] juxho> .
    [12:30] juxho> ..
    [12:30] juxho> .
    [12:30] juxho> One more question and i'll stop pestering you...
    [12:30] brion> there are a bunch of ways to run another program
    [12:31] brion> (but always be careful of shell arguments. there are functions to escape them specially)
    [12:32] juxho> How difficult/spaghetti/dangerous would you see limiting linking _to_ some pages (Vote counting pages) only from some pages (Voting pages of users and orgs)?
    [12:33] brion> it would probably break a lot of things unless you were very careful about it
    [12:33] brion> you'd have to hack up the parser a bit
    [12:33] brion> (do you have to limit linking? or can you just limit your counting?)
    [12:33] juxho> so it has to be done so that the extension that does the vote counting checks validity of each vote not
    [12:34] juxho> that it was impossible to link to ...Votes from some Talk-page
    [12:34] brion> well, if it's a straightforward thing that should not be too hard
    [12:34] brion> using links for voting strikes me as pretty fragile though
    [12:35] juxho> it's completely sucseptible to sock puppets
    [12:35] juxho> and it also violates the principle of voter privacy
    [12:35] juxho> those who dare, vote
    [12:35] juxho> those that don't don't vote
    [12:36] juxho> and nat'lly we'll be working on using parametrizable aggregation. ie. vote exclusion/inclusion schemes where only the user knows the parametres
    [12:37] juxho> but it's just a two avg()'s in the begining: One for direct votes and one for indirect votes
    [12:37] juxho> direct vote is for every user to cast themselves in each campaign category
    [12:38] juxho> indirect vote is a proxy vote where the only possibility is to give it to one organisation at a time that votes using all the votes they receive from users
    [12:39] juxho> It is nat'lly up to each user to value the direct and indirect vote results independently and the system does not know how people value these different votes
    [12:41] juxho> eventually the direct and indirect votes will be agregated and every consumer gets a slide from 0/100 to 100/0 to set for themselves and it'll be done so that even consumerium staff doesn't know how people value the different vote-classes
    [12:42] juxho> that'll give the system resilience since if one voting system is badly skewed people can give more weight to the one that is seen as not being so badly skewed and when (if) the situation normalizes they can re-adjust how the scores are tallied for the consumer personally
    [12:45] juxho> later on the plan is to introduce an organisational vote that is based on their "real-world" member count ie. Amnesty International and Greenpeace and such will have millions of votes while "Wearing Palestinian Scarfs Anarcho-symbols and throwing rocks at Mc'Donald's posse" will have maybe a couple of hundred votes
    [12:46] juxho> in this there is the problem of who got the burden of proof on how many members an org has
    [12:46] juxho> which we have no means of handling for now, so it's all wiki and only wiki voting in the begining
    [12:47] juxho> naturally every consumer that sees a weird total can browse the wiki to look at who voted what and what are they up to and so forth
    [12:48] juxho> edit-count thresholds can be used to some extent to cut off the sockpuppetry and they too work best if no-one knows where the consumers set their cut-off limit (10,20,30,50,100 edits?)
    [12:49] juxho> if staff doesn't know then the sockpuppeteers have no way of knowing either
    [12:53] juxho> since in 2005 hardware that enables "touch, click, wait a couple of seconds and look" functionality using phones the looking part must give some useful information in a matter of seconds too thus the need for Campaign/Review/Vote-scheme is much needed. If the aggregate score is something that the consumer did not guess it to be they might get interested in scrolling a bit on their tiny screens and even (!) c
    [12:53] juxho> licking a link, but that's pretty much it
    [13:00] juxho> .
    [13:00] juxho> .
    [13:00] juxho> .
    [13:01] juxho> So the all-open, one direct vote per issue and one single proxy vote per user is the starting level that we have to implement in order to demonstrate a working system at Transmediale
    [13:03] juxho> after that has been completed we will start looking into vote exlusion/inclusion by consumer preferences so that even the staff doesn't know what all the different people are getting as the overall score will be implemented to give the system resilience to sockpuppets and industry-interest-groups
    [13:05] juxho> working towards the original idea that a consumer chooses approx. 3 organisations that they trust and all organisations choose who they trust and distrust and iterate on that basis to get a "map" with poles
    [13:06] juxho> you choose where is your "trusted" pole and the opposite of that will be on the other side of the ball so you don't even see it when you are viewing what people and organisations think and say about things
    [13:08] juxho> a stupid metaphor but you get the overall idea "if no-one knows what is the score that each consumer sees how can you systematically manipulate it?"
    [13:08] juxho> but that is like late 2005 and 2006 stuff
    [13:09] juxho> say brion: do you give me permission to publish this in my chat-gallery?
    [13:09] brion> sure
    [13:09] juxho> thanks