||Looks good, but I'd add a lot more explanation about functionality of different plugins and their installation. Personally I still use PopsEdit, compile using Arena and test each case one-by-one, mostly because I've totally failed installing anything more advanced. Discussion of other languages and IDEs compatible with different plugins is also a must.
Also we need more info about basic Arena running - using applet instead of application, different settings of connection, commands used to ask admins questions etc. These are minor things but can be a real pain for a new person.
||I'm not an expert at the different plugins used - I've hardly used anything other than KawigiEdit. And I don't have much information about IDEs compatible with other languages as well.
My view on this recipe is that it is not meant to be comprehensive - Just as a starting point, with links provided so that interested members can go look it up.
||A rewrite of the recipe.
You want to set up the TopCoder Arena so that you can solve problems in the Practice Rooms and participate in SRMs.
Let us tackle this in 3 parts: Running the Arena, navigating the Arena and using plugins (optional).
Running the Arena:
The TopCoder Arena can be launched directly from the TopCoder website via JNLP (Java Network Launching Protocol) - simply choose "Algorithm" -> "Launch Arena" from "Competitions" menu. You will need Java Runtime Environment and Java Web Start for it to run.
Navigating the Arena:
Let us break down the menu structure and look at what each item does:
- Search: Used to search which chat/practice room a user is in. This is useful if you have friends also using the Arena, and quickly want to get to the room they are in.
- Visited Practice Rooms: These list the Practice rooms that you have been in.
- Active Users: This lists the other users actively using the Arena at that point of time.
- Important Messages: During an SRM, this will include messages such as "Div 2 1000 will be re-evaluated now" or "Due to the technical problems in the SRM, this SRM will not change your rating".
- Log Out: This allows you to log out of the Arena if you want to end your work with Arena (perhaps using a public computer) or just want to update your rating after SRM (you need to log out and then log in again). Just closing the Arena window will have the log out effect too.
- Admin Chat Lobby: Use this forum to directly talk to one of the TopCoder admins.
- Chat Rooms 1 and 2: Most of the users of the Arena will be in one of these chat rooms. This is a fun place to be before and after SRM.
- Special Lobbies: When a company or an organization sponsor an event, a special chat room will sometimes be set up for them. You can interact with representatives of that company in that chat room at specified times, usually just before/after an SRM.
- Disable/Enable chat options: This includes a lot of options that control what gets displayed on your chat window, such as people entering and leaving the room.
- Enable Unused Code Check: This tiny little option is extremely important - it specifies if, when you submit when your code, TopCoder checks whether over 30% of your code is unused. If this check is switched off, and TopCoder later evaluates your submissions and finds more than 30% of your code is unused, you will lose a lot of points. This check is rough one, but if it fires, it's better to check your code.
- Editor: This enables you to add or delete plugins. Plugins will be covered in more detail later in this recipe.
- User Preferences: This enables you to change the look and feel of the Arena by modifying the fonts and colors used.
Practice Rooms Practice Rooms are places where you can solve and submit problems, just like in SRMs. However, your rating will not change based on the problems you solve in practice rooms. There are practice rooms for SRMs, Marathons, Tournaments (such as the TopCoder Open), and TopCoder Highschool contests. Each event, such as an SRM or a Tournament Round, will have its own practice room. The practice rooms are listed in order of chronology and clicking on its name takes you to that particular practice room. SRMs before 144 are not included.
Once you have entered a practice room, a new menu item appears - "Practice Options". It allows you to clear codes of problems you have written and run system tests for submitted practice solutions.
This will list the active contests and will provide submenus for registering for a contests, seeing division summaries, and so on.
For taking part in an SRMs this is main Arena menu: use it to register beforehand and to enter after SRM launch.
This allows you to learn about the contest format such as the rules and FAQ, and about the Arena.
TopCoder Arena plugins are a set of community-developed and maintained tools to enhance Arena experience.
| Name | Purpose | Supported languages | Dependencies |
| KawigiEdit | Editing, testing | C++, C#, Java, Visual Basic | |
| ExampleBuilder | Testing | C++, C#, Java | CodeProcessor |
| PopsPack | Editing, testing, other (6 plugins total) | Tests for Java only | CodeProcessor for 2 plugins in the pack |
| TZTester | Testing | C++ | CodeProcessor, PopsEdit or FileEdit |
| CodeProcessor | Helper for other plugins | | |
| PopsEdit | Editing, debugging, testing | Java, syntax highlight for C++ | |
| FileEdit | Bridge to external editor | | |
There are two main purposes of TopCoder Arena plugins: more convenient source text editing and automated testing (but there are plugins and with other goals).
Installing plugins is not necessary to compete and win in Algorithm competitions, but plugins can give an extra edge and help to squeeze out several minutes of precious contest time.
The list of plugins is available at TopCoder Arena plugins page. Short overview of every known plugin:
A feature-rich editor plugin, that supports all four languages available for SRMs (Java, C++, C# and Visual Basic) and local testing. The plugin was created to overcome some problems of PopsEdit (main problem - PopsEdit has full support for Java only). Features a timer that shows score you'll get for the current problem if you submit it now.
To download the latest version visit < ahref="http://topcoder.yajags.com/">KawigiEdit homepage (note that it has newer version than TopCoder Arena plugins page).
ExampleBuilder is a CodeProcessor plugin to parse a problem statement and produce code to test the examples in the target language. ExampleBuilder comes with code templates for Java, C++, and C#. The plugin is known to have a problem with testing solutions which return floating point values - it uses exact comparison instead of TopCoder rules for comparing floats.
PopsPack is not a plugin, but a collection of several experimental plugins including plugin that talks to user, auto logon and auto download plugins and local test cases generator (for Java only).
Look up PopsPack documentation for more information (but remember that PopPack plugins are fully experimental).
TZTester is a CodeProcessor plugin that automatically extracts the examples test cases given in the problem description and generates C++ code that runs the test cases.
The plugin is designed to work with either PopsEdit or FileEdit. If you use other editors, you may need to adapt accordingly.
Plugin that will allow you to write pre/post processing source code scripts for use with other editor plugins.
There are two branches of the plugin - 1.2 and 2.0, but the later has not been tested or verified by TopCoder staff and known to have problems in some installations, so CodeProcessor 1.2 is recommended.
Feature rich editor with integrated debugger and local testing (Java only). One of the first TopCoder Arena plugins. Supports Java and (to some extent) C++.
Plugin that will read/write the problem information to an external file. This allows you to use your favorite editor/IDE to code the solutions to the problems.
||You should note that on onsite events competitor's computer contains NO compilers. So you can use any plugin you like but automated testing is not available. That's why if a person plans to participate in onsite event he should probably compete without automated testing from time to time.
||Just stumbled across this - some of the information is incorrect.
PopsPack - the talking applet, auto logon, auto download plugins do not currently work since TC removed a critical plugin API call needed by those.
CodeProcessor 2.0 is definitely the recommended version. I know of no issues related to it and MANY plugins not listed require the functionality only available in 2.0.
PopsEdit - unless you know something I don't - there is no syntax highlighting specifically for C++ (may appear to work since the syntax is somewhat similar to java - but there is no explicit support for it).
Other - I certainly wouldn't use the sentence "Short overview of every known plugin". I personally know of about 15 others that are in use (outside of 3 others I wrote that are not listed). There is also a wealth of CodeProcessor scripts that are in the wild.
I'd also certainly put in a small blurb on how to write one (which is very easy, and documented)...
||Thanks for the update - having first-hand information is invaluable in such cases. Maybe you could offer your version of this recipe, with better insight?
||I probably could if you don't mind me expanding/rearranging it a bit (example - the various connection options/proxy absolutely should be hit on since that's one of the biggest stumbling blocks. Some of the chat options should probably be covered as well since chat is very popular and /admin is important to know)
||Sure I don't mind - I'd hate to have incomplete or wrong information here, and my own experience with the plugins is quite limited. Feel free to write the recipe however you see fit.