Editing Stumpers(website)

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 68: Line 68:
  
 
== Voting ==
 
== Voting ==
 +
<pre>
 +
Let the Function Pay_Answer(Answer) be{
 +
    Check is the Answer in Marked 'Approved' if not check if Question is Marked as UpVoted by the Question Poser if not Check is the Answers 'ModVotes' in Empty if it is not then{
 +
        add an amount  <Xa> to the 'PromoteCredits' on the user that posted the question
 +
        Set the property 'PaidA' to <Xa>
 +
        Foreach Promoter in the set on the property "Promoters" on the Answer{
 +
            Add an amount <Xp> to Promoter
 +
       }
 +
       Set the Property 'PaidP' to <Xp>  } 
  
'PaidA; ammunt paid to answerer.
+
When the Question Poser or a Mod approves a WikiEdit the user than made the WikiEdit earns 'PromoteCredits' and the Answer used to made the edit is mark as 'Approved' {
 
+
     Run the function Pay_Answer(Answer)
'PaidP' ammount paid promoters
 
 
 
<pre>
 
func approved_ka(Answer, Question){
 
     Answer.moderator_upvotes.len() > Answer.moderator_downvotes.len() or (Question.poster in Answer.upvoted_by)
 
 
}
 
}
</pre>
+
When I User changes there Vote on an Answer{
 
 
 
 
<pre>
 
Let the Function Pay_Answer(Answer, Question) be{
 
    if not Answer.been_paid_ka{
 
        If (approved_ka(Answer, Question)) {
 
            Answer.been_paid_ka = true;
 
 
 
            add an amount  &lt;Xa&gt; to the 'PromoteCredits' on the user that posted the question
 
           Set the property 'PaidA' to &lt;Xa&gt;
 
           Foreach promoter in Answer.promoters
 
               Add an amount &lt;Xp&gt; to promoter
 
           }
 
           Set Answer's 'PaidP' to &lt;Xp&gt;  
 
        }
 
    }
 
 
</pre>
 
<pre>
 
 
 
When the Question Poser or a Mod approves a WikiEdit the user than made the WikiEdit earns 'PromoteCredits' and the Answer used to made the edit is mark as 'Approved' then run the function Pay_Answer(Answer).
 
<pre>
 
#Question the question who's answer vote is being changed.
 
#Answer the answer who's vote is being changed.
 
#User the user's who's vote in being changed.
 
#Vote what the vote is being changed to.
 
func change_vote(Question, Answer, User, Vote) {
 
    match Vote{
 
        UPVOTE {
 
            Answer.downvoted_by.remove(User);
 
            Answer.moderator_upvotes.remove(User); # we want to remove their mod vote even if they aren'ts mod any more
 
 
 
            Answer.upvoted_by.insert(User);
 
            if (User in moderators) {
 
                Answer.moderators_votes.insert(User);
 
            };
 
            if User == Question.poster {
 
                pay_answer(Answer);
 
            } else {
 
                #this block is adds the User to the list of Promoters if the Questing hasn't been UpVoted by the Question's poster or been approved by the moderators
 
                if (Answer.approved_ka != true) {
 
                    if (not (Question.upvoted_by.contains(Question.poster))) {
 
                        if (not (Answer.moderators_votes.is_empty())) {
 
                            Answer.promoters.insert(User);
 
                        }
 
                    }
 
                }
 
            }#end if user not questiong poster or a mod
 
        },#end match upvote
 
        DOWNVOTE {
 
            Answer.upvoted_by.remove(User);
 
            Answer.moderator_upvotes.remove(User); # we want to remove their mod vote even if they aren'ts mod any more
 
 
 
            Answer.downvotes.insert(User);
 
            if User in moderators {
 
                Answer.moderator_downvotes.insert(User);
 
            };
 
 
 
            if User == Question.poster {
 
                Revoke_Answer(Answer);
 
            }
 
        },#end DOWNVOTE match
 
        CLEAR_VOTE {
 
            Answer.upvoted_by.remove(User);
 
            Answer.moderator_upvotes.remove(User); # we want to remove their mod vote even if they aren'ts mod any more
 
 
 
            Answer.downvoted_by.remove(User);
 
            Answer.moderator_downvotes.remove(User); # we want to remove their mod vote even if they aren'ts mod any more
 
 
 
            if (Answer.moderator_downvotes.len() > Answer.moderator_upvotes.len()) or User == Question.poster {
 
                Revoke_Answer(Answer);
 
            }
 
        },#end CLEARVOTE match
 
    }#end match Vote
 
    let mup = Answer.moderator_downvotes.len();
 
    let mdown = Answer.moderator_upvotes.len());
 
    if mdown > mup {
 
        revoke_answer(Answer);
 
    } elif mup > mdown {
 
        pay_answer(Answer);
 
    };
 
}#end func
 
</pre>
 
 
 
<pre>
 
When I &lt;User&gt; changes there Vote on an &lt;Answer&gt;{
 
 
 
 
     If a User Upvotes an Answer {
 
     If a User Upvotes an Answer {
 
         Mark the Answer as Upvoted my the User.
 
         Mark the Answer as Upvoted my the User.
 
     }
 
     }
 
     If (the User is a Mod){
 
     If (the User is a Mod){
         add that User to the Set on the 'ModVotes' property on the Answer
+
         add that Mod to the Set on the 'ModVotes' property on the Answer
 
     }
 
     }
    If (the User is Mod or if the User is the Question Poser) {
+
If (the User is Mod of if the User is the Question Poser) {
         run function Pay_Answer
+
         run function Pay_Anser
 
     } else {
 
     } else {
 
         Check is the Answer in Marked 'Approved' if not check if Question is Marked as UpVoted by the Question Poser if not Check is the Answers 'ModVotes' in Empty if it is not then{
 
         Check is the Answer in Marked 'Approved' if not check if Question is Marked as UpVoted by the Question Poser if not Check is the Answers 'ModVotes' in Empty if it is not then{
Line 178: Line 95:
 
         }
 
         }
 
     }
 
     }
</pre>
+
 
  
 
  or Mod and the Answer's 'PaidA' property is 0 {
 
  or Mod and the Answer's 'PaidA' property is 0 {
Line 186: Line 103:
 
     }
 
     }
  
<pre>
+
Let the Function Revoke_Answer(Answer) be{    check if if the Answer is mark "Approved" if so check if Question Poser has Upvoted the Answer, If so check if the set on the Answer's "ModVotes" property is Empty; If it's empty{        remove an  amount of 'PromoteCredits' equal to the Answer's "PaidA" property from The user that posted the Answer(this can make the user's 'PromoteCredits' negative)         Set the 'PaidA' property on The Answer to       If the Proporty 'Promoters' is a set{            Foreach Promoter in the set on the 'Promoters' property of the Answer{            Subtract an Amount equal 'PaidP' from Promoter             }        Remove the property 'Promoter'        }        Set property 'PaidP' to 0}When user chose to change his (Up/Down)vote on a AnswerIf the User has Select to clear his vote unmark thIf the User has selected DownVoteMarkfrom answer check is the User is in the set on the Answer's 'ModVotes' property    If so remove this user from that set. then  run function Revoke_Answer(Answer)else if is the user the Question Pose    If so then run function Revoke_Answer(Answer)
Let the Function Revoke_Answer(Answer) be{
 
    check if if the Answer is mark "Approved"  
 
        if so check if Question's Poser has Upvoted the Answer,  
 
            If so check if the set on the Answer's "ModVotes" property is Empty; If it's empty{
 
                remove an amount of 'PromoteCredits' equal to the Answer's "PaidA" property from The user that posted the Answer(this can make the user's 'PromoteCredits' negative)
 
               Set the 'PaidA' property on The Answer to 0
 
                If not(Answer.promoters.is_empty()) {
 
                    Foreach promoter in Answer.promoters {
 
                        Subtract an amount equal Answer.paid_promoters from promoter
 
                    }
 
                    Answer.promoters.drain()
 
                }
 
                Answer.paid_promoters = 0
 
            }#End if Promoters is not empty
 
</pre>
 
 
 
When user choses to change his (Up/Down)vote on a Answer
 
    If the User has Select to clear his vote unmark the vote
 
                If the User has selected DownVoteMark for answer,
 
                    check is the User is in the set on the Answer's 'ModVotes' property If so  
 
                        remove this user from that set. then  run function Revoke_Answer(Answer)
 
                    else if is the user the Question Pose
 
                        If so then run function Revoke_Answer(Answer)
 
 
 
 
 
 
Give The Mods the ability to view all unapproved edits by there (Up/Down)Votes.
 
Give The Mods the ability to view all unapproved edits by there (Up/Down)Votes.
 
 
Give everyone the ability to view all rejected edits(by Mods and/or Question submitter)
 
Give everyone the ability to view all rejected edits(by Mods and/or Question submitter)
 
+
Randomly select WikiEdit that a User hasn't (Up/Down)Voted on and hasn't been approved and ask that user to (Up/Down)vote it(this is a form on 'MetaMod'). If they are selected hide the current rating of the edit from them until they vote. When that user Vote on an WikiEdit that have been chosen to 'MetaMod' give then 'PromoteCredits'
If it's not their item, hide the current rating of the item from them until they have voted on it.
 
 
 
Randomly select WikiEdit that a User hasn't (Up/Down)Voted on and hasn't been approved and ask that user to (Up/Down)vote it(this is a form on 'MetaMod').  When that user Vote on an WikiEdit that have been chosen to 'MetaMod' give then 'PromoteCredits'
 
 
 
 
Use CRDTs so the the proposed edits to the Wiki don't block each other.https://www.youtube.com/watch?v=jIR0Ngov7vo
 
Use CRDTs so the the proposed edits to the Wiki don't block each other.https://www.youtube.com/watch?v=jIR0Ngov7vo
  
 
I could make such a site but I don't have a server to host it or the skills needed to code the site that could handle a heavy load, thou I could learn them it would be pointless with the servers to run it on. Then there the whole UI/UX design issues.
 
I could make such a site but I don't have a server to host it or the skills needed to code the site that could handle a heavy load, thou I could learn them it would be pointless with the servers to run it on. Then there the whole UI/UX design issues.
 
 
Allow Users to (Up/Down)vote questions and use this information to add Questions to users feed and allow them to browse question limited to topic/tags
 
Allow Users to (Up/Down)vote questions and use this information to add Questions to users feed and allow them to browse question limited to topic/tags
 
 
Allow people to say a tag applies to a Question/Answer/WikiEdit or say that a Tag doesn't apply to it Add all applies and subtract all doesn't apply and if it's positive say the item has the tag.
 
Allow people to say a tag applies to a Question/Answer/WikiEdit or say that a Tag doesn't apply to it Add all applies and subtract all doesn't apply and if it's positive say the item has the tag.
 
+
If someone's option of a tag on an Item differs more than <X> Standard deviations from the average randomly ask them "Did you make a mistake on tagging <Item> please review the Item and select all tags that Apply"Then if they agree show them Item and a list of all tags that people have said applies or doesn't apply and is that haven't given their opinion on all them then ask them "You haven't in on all issues. You opinion is import.[I'll come bake later][Let me voice my Opinion(the default)]"If that choose "Let me voice my Opinion" change the list of shown Tags to just the ones that they haven' given an opinion on
If someone's option of a tag on an Item differs more than &lt;X&gt; Standard deviations from the average randomly ask them "Did you make a mistake on tagging &lt;Item&gt; please review the Item and select all tags that Apply" Then if they agree show them Item and a list of all tags that people have said applies or doesn't apply and is that haven't given their opinion on all them then ask them "You haven't weighed in on all issues. You opinion is import.[I'll come bake later][Let me voice my Opinion(the default)]" If that choose "Let me voice my Opinion" change the list of shown Tags to just the ones that they haven' given an opinion on
 
 
 
 
If the voting(Up/Down or Applies/Doesn't Applies) on an Item have a large Standard Deviation randomly select a user that hasn't voted on it and ask them to vote on it.
 
If the voting(Up/Down or Applies/Doesn't Applies) on an Item have a large Standard Deviation randomly select a user that hasn't voted on it and ask them to vote on it.
 
 
These Random events should be viewed as the ADs and regulated accordingly. People that do what is asked should earn 'PromoteCredits' they can spend to promote their own questions, give away or do RMT with.
 
These Random events should be viewed as the ADs and regulated accordingly. People that do what is asked should earn 'PromoteCredits' they can spend to promote their own questions, give away or do RMT with.
 +
Sponsored Questions: Charge for a window to promote it to their target demographic and a change for each 'engagement'(someone posts an answer; someone make a WikiEdit)  If the window ends or their funds for 'engagements' runs out their Question goes back to treated like a normal Question. We could raise money by selling 'PromoteCredits' When someone buys 'PromoteCredits' directly from us they also get an mount(proportional to the money they spent buy the credits) of 'Refund' Credits
 +
We could then go Mechanical Turk and give the user some of the money. I think we could give the Sponsor the option of cashing their 'Refund' credits at <X> times the amount payed to the 'Engager' for each engagement they approve and a mod approves(by approving the WikiEdit or by Upvoteing an Answer)
 +
We should allow the Sponsor to approve engagements that happed  any time during the window even after the window has expired but we should only pay the 'Engagers' up to the amount of the Sponsor's 'Refund' credits 
 +
Give the Engager 'PromoteCredits' equal the the difference between what they got payed for that Engagement and what they would have got payed if the Sponsor had approved that Engagment and Sponsors funds hadn't run out.
 +
Give the Sponsor an amount of  'PromoteCredits' equal to the amount of 'PromoteCredits' given to the Engager for every Engagment that approve
 +
We should keep the amount people have earned secret until the window has expired then pay of the Engagers in order of the first engagement to the last and but the 
 +
We should allow people to browse questions sorted by the amount of the Sponsor's 'RefundCredits' remaining and also sorted by the amount of the Sponsor's 'RefundCredits' remaining TIMES The amount of time remain in the window DEVIDED BY the total time of the window.
  
  
Sponsored Questions: Charge for a window to promote it to their target demographic and a give them the chance of offering a bounty for each 'engagement'(someone posts an answer; someone make a WikiEditIf the window ends or their funds for 'engagements' runs out their Question goes back to treated like a normal Question.
+
To recap the cash flowSponsor buy 'PromoteCredits and get a smaller amount of "RefundCredits"The Engagers get paid for their engagements being approved by the Sponsor.(up the Sponsor's 'RefundCredits')
 +
Sponsors get a refund of a % of the amount paid to Engagers for their engagements is that Engagement is approved by the sponsor and a Mod(up to Sponsor's 'refund' credits
 +
Obviously you should get less than 1/2 of the amount to pay to buy 'PromoteCredits' in 'RefundCredits'
 +
Parall to the Cash flow is the 'PromoteCredit' Flow
 +
People earn 'PromoteCredits' by responcing to the random 
  
= Monitization =
+
</pre>
 
+
== Grid Quiz ==
We could raise money by selling 'PromoteCredits'
 
 
 
If we go Mechanical Turk and allow Sponors to off bounties for answers.
 
 
 
We should allow the Sponsor to approve engagements that happed any time during the window, even after the window has expired.
 
 
 
WE should give the Sponser &lt;X&gt; times the ammount they payed out ot Engagers in 'PromoteCredits' to encourage they to approve answers.
 
 
 
to recap
 
 
 
PromoteCredits enter the system from users resonding to random ads
 
 
 
PromoteCredits enter the system from users buying them with Real World Money.
 
 
 
PromoteCredits enter the system paying bounties on Questions.
 
 
 
User trade ProMoteCredits amount themsselves.
 
 
 
PromoteCredits exit the system by users making Sponsored Questions.
 
 
 
 
 
 
 
= Grid Quiz =
 
 
Like Jeopardy!
 
Like Jeopardy!
  
Line 267: Line 137:
  
 
The time from then the question was post to the time the approved answer was posted is use to rank the questions. the loner to answer the harder the question
 
The time from then the question was post to the time the approved answer was posted is use to rank the questions. the loner to answer the harder the question
 
= Take downs =
 
  
 
When someone Flags a item make them select a community rule they think is violates and if they think it's illegal make them give a link to the law that it's breaking.
 
When someone Flags a item make them select a community rule they think is violates and if they think it's illegal make them give a link to the law that it's breaking.
 
+
The make them write their argument on why the Item in in violation of the Rule/Law.
Then make them write their argument on why the Item in in violation of the Rule/Law.
+
Once that is done check is the Item has been marked "DoubleJeopardy" if so subtract 1 from the "judiciousness" of the user the flagged the Item.  
 
 
Once that is done check is the Item has been marked "DoubleJeopardy" if so subtract 1 from the "judiciousness" of the user the flagged the Item.
 
 
 
If a item is flagged pull it and put it in the Queue for review
 
If a item is flagged pull it and put it in the Queue for review
 
 
Show the those selected for Jury duty only the text of the complaint until they decide to hear the case.
 
Show the those selected for Jury duty only the text of the complaint until they decide to hear the case.
 
+
THe show them the Item that was flagged. and make them give in preliminary opinion of if they they the complaint will be upheld or over turned.
Only after they have chose to hear the case show them the Item that was flagged. and make them give in preliminary opinion of if they they the complaint will be upheld or over turned.
 
  
 
only after they have giving their Prelininary opinion allow them to join the Discussion of the Case.
 
only after they have giving their Prelininary opinion allow them to join the Discussion of the Case.
 
+
The Case continues until the 12 jurors made a unanimous decision to permanently remove the Item or restore it. If the Jury makes an unanimus decicio add 1 to the 'judiciousness' of all the juries Is they vote to restore it mark the Item as 'DoubleJeopardy' I
The Case continues until the 12 jurors made a unanimous decision to permanently remove the Item or restore it. If the Jury makes an unanimus decicion add 1 to the 'judiciousness' of all the juries.
 
 
 
If they vote to restore it mark the Item as 'DoubleJeopardy' I
 
 
 
== more judiciusness from debatipedia ==
 
Have a devil advocate for each side.
 
 
 
In meta-moderation ask people if a post advocates for some side.
 
 
 
If the meta-moderation shows they where advocating for the side then give them a browny point
 
 
 
== DMCA ==
 
Automaticly remove the post and automatic put it back up.
 

Please note that all contributions to The Order of Her Noodly Appendage are considered to be released under the GNU Affero General Public License (see MyWiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)