Maemo.org Coding Competition 2016

Line 5: Line 5:
-
Welcome to the maemo.org '''Coding Competition 2016''' wiki page! Beginning Monday ''' 1st August??''', and running for '''3 months??'''. This years competition has four following categories: '''Something new''', '''Fixing/Updating''', '''Beginner''' and '''Wishlist'''. Whether you are an experienced developer, porter, hacker or  just a beginner on your very first hacks/codes, we have a category that suits you and your codings! Entries for Maemo & Mer based devices are eligible.
+
Welcome to the maemo.org '''Coding Competition 2016''' wiki page! Beginning Monday ''' 1st August??''', and running for '''3 months??'''. This years competition has four following categories: '''Something new''', '''Fixing/Updating''' and '''Beginner'''. Whether you are an experienced developer, porter, hacker or  just a beginner on your very first hacks/codes, we have a category that suits you and your codings! Entries for Maemo & Mer based devices are eligible.
-
In times like these, without Nokia or any other corporate entity sponsoring prizes/devices, there are of course limited resources for big giveaways. We are relying on your donations. There will also be a '''wishlist/community bounty''' where community may wish some application, port, fix, hack etc. and donate towards it.
+
In times like these, without Nokia or any other corporate entity sponsoring prizes/devices, there are of course limited resources for big giveaways. We are relying on your donations. There will also be a '''wishlist''' where community may wish some application, port, fix, hack etc. and donate towards it.
'''Entry is free.''' If there are any questions we have a discussion thread for the competition at http://talk.maemo.org/showthread.php?t=96268
'''Entry is free.''' If there are any questions we have a discussion thread for the competition at http://talk.maemo.org/showthread.php?t=96268

Revision as of 19:45, 12 July 2016

Contents

Introduction - Remark: not yet valid

(NB: THIS IS UP-TO-NOW JUST A PLACEHOLDER FOR UPCOMING COMPETITION!! And not ready yet http://wiki.maemo.org/Maemo.org_coding_competition_2012)


Welcome to the maemo.org Coding Competition 2016 wiki page! Beginning Monday 1st August??, and running for 3 months??. This years competition has four following categories: Something new, Fixing/Updating and Beginner. Whether you are an experienced developer, porter, hacker or just a beginner on your very first hacks/codes, we have a category that suits you and your codings! Entries for Maemo & Mer based devices are eligible.

In times like these, without Nokia or any other corporate entity sponsoring prizes/devices, there are of course limited resources for big giveaways. We are relying on your donations. There will also be a wishlist where community may wish some application, port, fix, hack etc. and donate towards it.

Entry is free. If there are any questions we have a discussion thread for the competition at http://talk.maemo.org/showthread.php?t=96268

If you are new to the Maemo community, please feel free to check out our introduction page to learn more about us.

Thanks for your interest in taking part, we can't wait to see what you'll develop for us! :)

(NB: The final details are still being ironed out, so the below is subject to change. Keep watching this space!)

Devices & Platforms

  • Maemo
    • Includes all Maemo devices and MeeGo Harmattan devices.
  • Mer-based
    • Includes all Mer-based devices. E.g. SailfishOS, NemoMobile, AsteroidOS etc.


Categories

The 4 categories:

  • Something new
    • In this category all new creations, for example applications, device ports, cross-platform, any kind hacks, and et cetera, are viable.
  • Fixing/Updating
    • Anykind of fixes, updates, backporting, exploiting/reverse engineering closed packages in to this category.
  • Beginners
    • First contribution
  • Wishlist
    • Community members can wish and/or donate something to be developed


Competition Timeline

The competition is currently scheduled to accept submissions for 3 months, starting on Monday 1st August 2016??? and ending on Monday 31st October 2016???. Competition entries must be submitted by 12 midnight on Sunday 30th October ??(UTC time). Voting will run from November 14th through November 30th 2016???, 23:59 UTC.

How to Submit an Application

    1. TODO

To enter, you can submit your application entry via one of two ways - the competition submission page available at [1] or by emailing directly to the email address maemo.competition2012@gmail.com. You will also align your entry to one of the judging categories[2] at that time. in addition, you will also need to provide some details for the judging thread, including 2 screenshots, a brief description of your application, and an outline of what work you personally completed on it.

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

Only applications received via the submission page or emailed directly to the competition email address will be counted as valid entries in the competition. New participants are welcome to join at any time up until the closing date.

Prizes

    1. TODO
  • Something new
  • Fixing/Updating
  • Beginners
  • Wishlist

Donations for the Community Prize Fund

    1. TODO

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. You can find more information on the donation paypal process (with screenshots) on this post


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,001,30 48,70yes, 15/6/2012
25/5/2012Wonko40,001,1138,89yes
Totals840,00 (Pledged)33,06805,94 (Paid)

Participants

    1. TODO

The final list of participants for voting is available at http://talk.maemo.org/showpost.php?p=1264774&postcount=579

And you can see the application submissions listed by category on the external website http://cc2012.crochik.com/ and also on forum posts via the links below:

  • Something new []
  • Fixing/Updating []
  • Beginners []
  • Wishlist []


The below table displays the submission details, as received, for each application. (The table is currently in process of being updated with the final details.)

Developer Application Category Beginner Entry (Y/N) Platform (MeeGo/Maemo/etc) Entry Received?
marrat (Marcel D. Juhnke) MeeDocs (Google Docs/GDrive client for N9) Updates and development on existing apps N Harmattan YES
Khertan (Benoît HERVIER) KhtBMA Desktop, System & Utilities N Harmattan YES
Khertan (Benoît HERVIER) KhtNotes Desktop, System & Utilities N Harmattan YES

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 winners but, as communally agreed, there will be one prize per developer.

(

  • Apps must be available as executable and your entry should include at least two screen shots and a brief description to take part in the election. The applications have to run on default hardware running on an official version of Maemo or Harmattan.

)

  • 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.
  • A new application, in the context of the competition, is one which has not been previously developed for the Maemo or Mer-based platform.
  • Ported applications are welcome, however only the work of porting will be considered (unless the original program is from the same developer and was developed or extended within the competition timeframe). These entries should include a description of work done during the porting process to enable the application to run on the platform.
  • Already released software must have a substantial upgrade from previous releases to qualify for entry to the 'Update' category. These entries should also include a list of changes the author has made to the previous version.
  • Coding competition entries marked as beginner will also automatically be entered into the beginners contest if they meet the following criteria: entries to the beginners competition should be the authors first released coding project(s) for the Maemo or Mer-based platforms, and must have been first released between the competition start and end dates.
  • Entries that are not stand alone software will have to include any libraries or files required to run, or they should be easily available via the normal repositories. Clear instructions will have to be provided. In the case of interpreters and emulators copyrighted files should not be included.
  • There will be a feature freeze on entries during the voting stage of the competition. Please limit your code changes to bug fix only for any competition entry release during this period, and this restriction should remain until the end of the vote.
  • Only users of maemo.org who are registered at the start of the competition and have at least 10 karma at the time of voting are entitled to vote.

(

  • Device prizes are distributed by Nokia, in accordance with any rules and restrictions of the Nokia device program. Receipt of devices from previous distribution programs could affect the competition winner(s) options of available device. If a suitable device cannot be arranged through the device program, we will make efforts to substitute a share of the community prize fund.

) (

  • In the event where one or more applications are tied in a prize winning position after voting has ended, the application whose submission was received first by the competition email address (either directly or via the web page form) will take precendence.

)

  • There is no legal right to win.

Voting

Voting will run from November 14th through November 30th 2016, 23:59 UTC

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

    1. TODO

The Nokia Qt SDK is the official set of tools with everything needed to design and create applications for the N900. 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" thread is a great PyQt tutorial for beginners and will have you coding your first app in minutes, and here's a tutorial from Linuxuser.co.uk.

The 'Developer' forum on maemo.org 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 #mccXVI

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: You can enter your application via the competition entry form available at http://kojacker.net/blog/?page_id=170#entryform or by emailing your application to maemo.competition2012@gmail.com directly.


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.

Wishlist

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

If you would like to have an App but you can't code yourself, write it down here! Many devs are happy to get a new idea input. (Rom Manager was a proposal from last year).

application name short description features link to similar app or screenshots
Rom Manager A rom manager for emulators. Choose folders for roms of different systems.

Rom audition and fixing using Romcenter databases

Rom downloading.

Integration with most popular emulators (DrNokSnes, PicoDrive, ...)

Rom Gripper for Android.
Tumblr client Tumblr client for n900 and n9/50 login, post, read, follow, unfollow, etc. http://tumblita.com/ for example
NFC Alarm clock An alarm clock that only turns off when a certain nfc tag is detected Clock, alarm, and assigning different tags to different alarms Don't know any
NFC Card emulator Use nfc to simulate cards Store and manage different nfc/rfid cards, using the phone instead of the plastic Do not know any similar

Discussion

Please participate in the discussion at talk.maemo.org

Contact

You still have questions? Contact us!

Previous competitions

Events