in reply to Contest Ideas Quest
Forgive the non-Q&A structure of this post. All of the "required five" are in here, I promise! :)
The contest: solving a particular problem using perl. The problems should be fairly simple, as we are focusing on more of a "perl" rather than a "programming" skill contest (like the POTM). Each week (hopefully, actual time may end up being a month, knowing how everyone else (even vroom) has other things to do in life) a new contest will be announced by the Contest Master, who is the monk who won the previous contest. It is their responsibility to run the contest. They also have to come up with the contest, but can solicit (private) ideas from others. I've got dozens in mind! :)
Once the contest has begun, a private "write-only" page is set which announces the contest, and allows people to post their answer. The only thing visible on the page is the question and your answer(s). The Contest Master, of course, can not only see all the posts, but can delete them as well (in case of duplication, blank nodes, or irrelevant posts). The Contest Master (hereafter called CM, as my fingers are lazy) should also test each post to make sure that it runs, but is under no obligation to do so - it would merely be nice to do so if they can, and msg the person about their problem. Each person can edit their own node and change their entry as often as they like until the contest ends. At the end of the contest, the CM is given a small amount of time to finish editing/testing the entries. Once they are done, the page is displayed for everyone to see, and each person may vote on all the entries except for their own (voting detailed below). After a specified time, the votes are added up, a winner for each category is announced, XP is awarded, and the new CM/winner is assigned, who has a week to come up with a new contest.(Whew!) About the contest: as I mentioned in a previous node, there will be 4 different categories:
The first two are subjective, the bottom two are objective. The CM shall be responsible for measuring the last two (wc and Benchmark, natch), and the first two shall be voted upon by the Monk masses. How? Well, since obfuscation and elegance should be extremely easy to distinguish, there is no need to discriminate - just have each person get two votes, which they use to mark what they think are the Most Elegant and the Most Obfuscated. Or they could use both votes for two elegance answers, etc. I don't think that matters too much.
Once the voting period is over, the CM tallies the votes (and she/he should be the *only* one allowed to see the counts, unlike today's voting system). The highest number of votes in each category wins. Tiebreakers of the first three categories are determined by a efficiency runoff, and Efficiency ties are determined by terseness. Final authority on all ties shall lie with the CM.
Depending on the number of entries, first, second, and third place will be awarded in each category. Entries that place in more than one category (i.e. elegance *and* efficiency) gain bonus XP for their creator. The overall winner is determined by adding up the results of all their entries as follows:
The one with the most foobars wins. Ties are solved by the method explained above (efficiency or terseness)
Once the final judging is done, the page is revealed, with all entries shown, as well as the top three marked. Showing total votes is probably not a good idea: why embarrass anyone who gets 1 vote compared to 120 for the third place? The page becomes a "normal" page at this point, as people reply (and discuss, and argue) about the entries.
Posting answers elsewhere on the site results in a -100 XP penalty and an immediate disqualification. AM's get their IP banned from the site (how else can you punish them?) Perhaps have the contest only visible to logged in users? Hard to say if these measures will be needed until we try, but I'm being thorough.
The only question is, should each person be allowed four entries? Two? Only one? Each will have to be a separate post, assuming that all of this will be done by using the existing perlmonks engine. This could be written as an external cgi script somewhere, but then there is no access to the perlmonk user data, so perlmonks code it is! :)
Question/comments welcome.
|
|---|