Maemo.org Coding Competition 2012

(Donations for the Community Prize Fund)
(Q: Which Twitter Hashtag to use for this Competition?: Changed hashtag)
Line 135: Line 135:
====Q: Which Twitter Hashtag to use for this Competition?====
====Q: Which Twitter Hashtag to use for this Competition?====
-
: '''A:''' Please use [https://twitter.com/#!/search/%23mcc2012 '''#mcc2012''']
+
: '''A:''' Please use [https://twitter.com/#!/search/%23mccXII '''#mccXII''']
=== Application requirements ===
=== Application requirements ===

Revision as of 16:00, 3 June 2012

Contents

Introduction

Categories

Competition Timeline

How to Submit an Application

To enter, simply submit your application via the competition submission page available at http://competition.meetmeego.org/ and align it to one of the main categories[1]. You will also need to provide some details for the judging thread, including at least 2 screenshots, a brief description of your application, and an outline of what work you personally completed on it.

Authors who mark their entry as 'beginner' will also have their application automatically entered into the beginner category.

Only applications entered through the submission page will be counted as valid entries in the competition. New participants are welcome to join at any time up until the closing date.

Prizes

Donations for the Community Prize Fund

The following list shows all of the donations and pledges made to the community prize fund so far. There is no fixed amount - all donations are very welcome - and will be accepted from now until the closing date of the competition.


To donate via PayPal, just click on the following link and specify the amount you want to donate. https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FTU62WATF94BW

Please don't forget to include your maemo.org username in the PayPal message to be mentioned in the following list. If no maemo.org username is included, the donation will be marked as anonymous.


Our special thanks to the following people for their generous contributions:

Date Nickname Amount (gross) in € PayPal fee in € Amount (net) in € Paid
24/5/2012kojacker50,00 tbc
25/5/2012Wonko40,001,1138,89yes
25/5/2012Anonymous15,000,6414,36yes
25/5/2012Anonymous50,002,8047,20yes
26/5/2012helex50,00-50,00 @BBjam Berlin
26/5/2012ljo60,001,4958,51yes

Rules

To ensure that the event runs properly, there are a few essential rules:

  • Only individuals may participate. Companies are excluded from the competition because of equity reasons.
  • If you have coded your app in a team and you win one of the prizes, your team has to designate one person as the winner.
  • Any number of apps can be submitted and elected as winner.
  • Apps must be uploaded as executable including at least two screen shots and a brief description on the submissions website to take part in the election. The applications have to run on default hardware running on an official version of Maemo or Harmattan.

THE SUBMISSIONS WEBSITE HAS STILL TO BE UPDATED. PLEASE DON'T SUBMIT APPS JUST YET!

  • All applications, which are created and uploaded during the duration of the competition and do not violate any laws or copyright will take part in the election. When porting apps, only the work of porting will be considered, unless the original program is from the same developer and was developed or extended in the competition timeframe.
  • Only users of maemo.org who are registered at the time of voting and have at least 10 karma are entitled to vote.
  • There is no legal right to win.

Voting

The voting frontend, the webinterface via which you enter your vote, is the same as for the Maemo Council elections. So you can establish an order among the participating applications indicating your preferences. Thereby, the first choice has the most impact. With following choices the impact gets less and less. The last choice has the least impact.

Counting Votes

After the voting period has finished the votes are counted. The ranking order of participants is determined based on all valid votes.

The tool used for counting the votes is OpenSTV. We use OpenSTV version 1.6.1-1 which can be publicly downloaded from http://packages.debian.org/squeeze/openstv The openstv executable used is extracted from the *.deb package.

For each category, the ranking of candiates is determined individually.

As general "vote counting system" Fractional Transfer Single Transferable Vote (FTSTV) is used. FTSTV, however, does not provide a way for determining the order of participants out of the box.

For determining the ranking among the participating applications the following approach is used:

  • The winner is determined by running OpenSTV for one seat.
  • Subsequently, the second place is determined by running OpenSTV for two seats. Thereby, the winner from step 1 plus another participant will be elected. The newly added/elected participant is placed second.
  • For determining the third place, OpenSTV is run for three seats. The newly added/elected participant takes the third place.
  • This process is repeated until the number of seats reaches n-1 with n being the number of participants. The remaining participant not being added or elected yet takes the last place.

For automating this counting process the following script is used

election=$1

tail -n 1 $election | sed 's/"//g'

>/tmp/result
for i in $(seq $(expr $(head -c 2 $election) - 1))
do
  openstv-run-election -r CsvReport -s $i FTSTV $election \
    | awk -F, '/Elected/ { print $1 }' \
    | while read w
        do if ! grep -q "$w" /tmp/result
          then
            echo $w >> /tmp/result
            break
          fi
        done
done
awk 'BEGIN { i = 1; } { print i, $0; i++; }' /tmp/result | sed 's/"//g'

This script should be saved to a file named "results" and can be called as follows:

for i in *.blt; do sh results $i; done

Assuming the script + openstv-run-election are in the same directory as the result files (the *.blt files) for all categories and the current directory is this directory, this way of calling the script will perform the counting for all categories. The only thing that may be changed in the above script is the passage "openstv-run-election" for adding a proper path to the actual location of the OpenSTV executable, e.g., to point to "/usr/bin/openstv-run-election". Aside from this exception the script must not be changed at all.

However it is still possible to also do the vote counting manually using the described process. Vote counting process, OpenSTV version used, and counting script are all publicly available so everyone can perform the voting and verify the final official results.

App Developer Resources

Getting started with Maemo application development

The Nokia Qt SDK is the official set of tools with everything needed to design and create applications for the N900 [2]. The development wiki is a great place to start, it contains lots of code examples and development guides. The "Windows Python and Qt in 30 mins"[3] thread is a great PyQt tutorial for beginners and will have you coding your first app in minutes, and here's a link to a tutorial from Linuxuser.co.uk[4].

The 'Developer' forum on maemo.org[5] is an excellent resource to find answers and ask questions of your own.

FAQ

Spreading the word

Q: Which Twitter Hashtag to use for this Competition?

A: Please use #mccXII

Application requirements

Q: It is obligatory to code in Qt?

A: No, it isn't, but it would make your life probably a lot easier because you will be able to reach more platforms. We encourage everyone to use Qt.

App/Application submission process

Q: Where to submit my application?

A: There is an application submission page available. This will be the only valid way to participate in the competition.

Q: Updates allowed during the competition?

I have a new app in the repository, I am considering to apply for the contest.. If i submit it now, will that prevent me to upload further versions to the repos or Ovi/Nokia Store? (As it's a work in progress)

A: No. you can upload updates anytime.

Q: Who selects the category of the application?

Will the developers select the category when they join the competition or will someone sort it into the correct category before the voting begins?

A: They will choose the category for their app, but everyone should keep an eye on that. Before the voting process starts we'll check if every app is in a reasonable category, so that it is not possible to cheat by choosing the category with the lowest competition.

Application proposal

http://www.developer.nokia.com/Community/Wiki/Apps_Missing Desirable apps missing from Nokia platforms

Discussion

Please participate in the discussion at http://talk.maemo.org/showthread.php?t=83761

Contact

You still have questions? Contact us!

Events