APIFest08

From APIDesign

(Difference between revisions)
Jump to: navigation, search
(New page: As part of promotion of TheAPIBook and also celebration of ten anniversary of NetBeans releases, we decided to play again the game described in [[Using_Games_to_Improve_API_Design_...)
Line 3: Line 3:
Thanks to the courtesy of Arseniy Kuznetsov, director of [[NetBeans]], the winner(s) of the [[APIFest08]] will receive a copy of [[TheAPIBook]].
Thanks to the courtesy of Arseniy Kuznetsov, director of [[NetBeans]], the winner(s) of the [[APIFest08]] will receive a copy of [[TheAPIBook]].
-
The game is primarily organized by [mailto:jakub.podlesak@sun.com Jakub Podlešák] with the technical oversight by [mailto:jaroslav.tulach@apidesign.org Jaroslav Tulach]. There will be few rounds of the competition, during which the participants are supposed to solve tasks given to them in timely manner and send their results to Jakub's [mailto:jakub.podlesak@sun.com email address]. The whole competition will use rules like those of [http://openide.netbeans.org/tutorial/api-fest.html API Fest One].
+
There will be few rounds of the competition, during which the participants are supposed to solve tasks given to them in timely manner and send their results to the API Fest 08 [mailto:apifest08@apidesign.org mailing list]. The whole competition will use rules like those of [http://openide.netbeans.org/tutorial/api-fest.html API Fest One].
== Task 1 ==
== Task 1 ==
Line 18: Line 18:
* [http://source.apidesign.org/hg/apifest08/file/tip/currency/src/org/apidesign/apifest08/currency/Convertor.java currency/src/org/apidesign/apifest08/currency/Convertor.java] - will contain the API that you should create.
* [http://source.apidesign.org/hg/apifest08/file/tip/currency/src/org/apidesign/apifest08/currency/Convertor.java currency/src/org/apidesign/apifest08/currency/Convertor.java] - will contain the API that you should create.
* [http://source.apidesign.org/hg/apifest08/file/tip/currency/test/org/apidesign/apifest08/test/Task1Test.java currency/test/org/apidesign/apifest08/test/Task1Test.java] - this is the class with actual tasks that your API has to fullfil. Please stuff the method bodies with code, so they demonstrate use of your API.
* [http://source.apidesign.org/hg/apifest08/file/tip/currency/test/org/apidesign/apifest08/test/Task1Test.java currency/test/org/apidesign/apifest08/test/Task1Test.java] - this is the class with actual tasks that your API has to fullfil. Please stuff the method bodies with code, so they demonstrate use of your API.
-
The project is currently not compilable (you need to make the Convertor class public somehow), compile it, compile its tests and execute the tests so they pass without a failure. Remember that [[Runtime Aspects of APIs]] are as important as API signatures. Then commit your changes into your repository and bundle Jakub your work:
+
The project is currently not compilable (you need to make the Convertor class public somehow), compile it, compile its tests and execute the tests so they pass without a failure. Remember that [[Runtime Aspects of APIs]] are as important as API signatures. Then commit your changes into your repository and bundle your work:
<source lang="bash">
<source lang="bash">
Line 25: Line 25:
</source>
</source>
-
That is all, happy API designing! Send [mailto:jakub.podlesak@sun.com Jakub] your work by Friday, Sep 26, 2008. We'll discuss your design decisions on Czech JUG session on Monday, Sep 29, 2008 together with announcement of task two!
+
That is all, happy API designing! Send your work to the API Fest 08 [mailto:apifest08@apidesign.org mailing list] by Friday, Sep 26, 2008. We'll discuss your design decisions on Czech JUG session on Monday, Sep 29, 2008 together with announcement of task two!
-
For those who will not make the [[Mercurial]] work for them, there is an alternative option: You can download source ZIP file from [http://source.apidesign.org/hg/apifest08/ repository page], modify it and send [mailto:jakub.podlesak@sun.com Jakub] the ZIP file back. However as this is more work for us, we will process these submissions only if we have enough time. Preferably use the [[Mercurial]]'s bundle command.
+
For those who will not make the [[Mercurial]] work for them, there is an alternative option: You can download source ZIP file from [http://source.apidesign.org/hg/apifest08/ repository page], modify it and send the ZIP file back. However as this is more work for us, we will process these submissions only if we have enough time. Preferably use the [[Mercurial]]'s bundle command.
== Final Round ==
== Final Round ==
There will be multiple rounds each with new task. The goal is to finish the last round and select the winner by Oct 26, 2008 - that is the day of the [[NetBeans]] first release anniversary!
There will be multiple rounds each with new task. The goal is to finish the last round and select the winner by Oct 26, 2008 - that is the day of the [[NetBeans]] first release anniversary!

Revision as of 11:57, 22 September 2008

As part of promotion of TheAPIBook and also celebration of ten anniversary of NetBeans releases, we decided to play again the game described in Chapter 17. The participants include primarily members of Czech JUG, extended potentially with everyone who likes to play and wishes to celebrate with us.

Thanks to the courtesy of Arseniy Kuznetsov, director of NetBeans, the winner(s) of the APIFest08 will receive a copy of TheAPIBook.

There will be few rounds of the competition, during which the participants are supposed to solve tasks given to them in timely manner and send their results to the API Fest 08 mailing list. The whole competition will use rules like those of API Fest One.

Task 1

The first task consists of downloading the template. The preferred way is to use Mercurial and clone the apifest08 repository:

hg clone http://source.apidesign.org/hg/apifest08/

You will get an Ant project in the currency directory. It is designed to be opened in NetBeans IDE easily, but it can also be manipulated from command line or other tools by those who prefer pain over comfort.

Two sources files are important:

The project is currently not compilable (you need to make the Convertor class public somehow), compile it, compile its tests and execute the tests so they pass without a failure. Remember that Runtime Aspects of APIs are as important as API signatures. Then commit your changes into your repository and bundle your work:

hg ci -m "Here is my solution for task1"
hg bundle $HOME/myname-task1.hg

That is all, happy API designing! Send your work to the API Fest 08 mailing list by Friday, Sep 26, 2008. We'll discuss your design decisions on Czech JUG session on Monday, Sep 29, 2008 together with announcement of task two!

For those who will not make the Mercurial work for them, there is an alternative option: You can download source ZIP file from repository page, modify it and send the ZIP file back. However as this is more work for us, we will process these submissions only if we have enough time. Preferably use the Mercurial's bundle command.

Final Round

There will be multiple rounds each with new task. The goal is to finish the last round and select the winner by Oct 26, 2008 - that is the day of the NetBeans first release anniversary!

Personal tools
buy