]> mj.ucw.cz Git - moe.git/blob - doc/index.html
Doc: Note that Isolate has moved
[moe.git] / doc / index.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html40/strict.dtd">
2
3 <html><head>
4 <title>The Moe Contest Environment</title>
5 <link rev=made href="mailto:mj@ucw.cz">
6 <link rel=stylesheet title=Default href="moe.css" type="text/css" media=all>
7 </head><body>
8
9 <h1>The Moe Contest Environment</h1>
10
11 <p>The Moe Contest Environment (formerly MO-Eval) is a system for conducting
12 programming competitions similar in spirit to the
13 <a href="http://www.ioinformatics.org/">International Olympiad in Informatics</a> &ndash;
14 contestants solve programming tasks, submit the source code of their solutions,
15 which is then automatically tested on a set of test inputs.
16
17 <p>Moe is built in a modular way, making it easy to adapt it to the specifics
18 of a particular contest, to other types of tasks, or other programming languages.
19
20 <p>A brief description of the system and of the ideas behind it can be found in the following series
21 of papers published in <a href="http://www.mii.lt/olympiads_in_informatics/">Olympiads in Informatics</a>:
22
23 <ul>
24 <li><a href="http://mj.ucw.cz/papers/eval.pdf">M. Mare&scaron;: Perspectives on grading systems</a>
25 <li><a href="http://mj.ucw.cz/papers/eval2.pdf">M. Mare&scaron;: Moe &ndash; Design of a Modular Grading System</a>
26 <li><a href="http://mj.ucw.cz/papers/fairness.pdf">M. Mare&scaron;: Fairness of Time Constraints</a>
27 <li><a href="http://mj.ucw.cz/papers/isolate.pdf">B. Blackham, M. Mare&scaron;: A New Contest Sandbox</a>
28 </ul>
29
30 <h2>Status</h2>
31
32 <p>At this moment (2015-07-26), most parts of Moe are obsolete, but many
33 of its ideas still live in other contest systems, most notably <a href="http://github.com/cms-dev/cms">CMS</a>.
34
35 <p>The <a href="isolate.1.html">Isolate</a> sandbox now lives in <a href="https://github.com/ioi/isolate">its
36 own repository</a> at GitHub.
37
38 <p>Other useful parts will hopefully find their new home soon.
39
40 <h2>Modules</h2>
41
42 <table class=modules>
43 <tr><th>module
44     <th>description
45     <th>status
46 <tr><td>sandbox
47     <td>Runs the contestant's solution in a controlled and secure environment,
48         limiting its execution time, memory consumption and system calls.
49         We have a stable implementation (<code>box</code>) based on ptrace
50         and a new one (<code>isolate</code>) based on Linux kernel containers.
51     <td class=statedone>works
52 <tr><td>judges
53     <td>A set of utilities for comparing the solution's output with the correct
54         answer at a given level of strictness.
55     <td class=statedone>works
56 <tr><td>evaluator<br>(a.k.a. grader)
57     <td>This module controls the whole process of grading the solution. It runs
58         the compilers, the sandbox and the judges as described in configuration
59         files.
60     <td class=statedone>works
61 <tr><td>evaluator v2
62     <td>We have decided to rewrite the evaluator from scratch in Python for greater
63         flexibility. It will however need some more time to finish.
64     <td class=statewip>in progress
65 <tr><td>queue manager
66     <td>Distributes grading between a cluster of computers, each of them running
67         the evaluator.
68     <td class=statepart>works, but needs revision
69 <tr><td>submitter
70     <td>Handles submitting of solutions by contestants and passing them to the
71         evaluation system. Contains a server daemon and a front-end for contestants.
72         (If your contest uses a web-based contestant interface, you probably do not
73         need this, although it can serve as a clean interface between your web services
74         and the evaluator.)
75     <td class=statepart>works, but needs revision
76 </table>
77
78 <h2>Download</h2>
79
80 <p>Moe is still under heavy development, so the best way to obtain the latest
81 version is directly from our <a href="http://git.or.cz/">Git</a> repository at git://git.ucw.cz/moe.git.
82 The master branch of the repository is kept in a stable state, new development
83 is done on other branches and then merged to the master. You can also <a href="http://www.ucw.cz/gitweb/?p=moe.git;a=summary">browse
84 the repository online</a>.
85
86 <p>We occasionally publish snapshot tarballs in our <a href="ftp://ftp.ucw.cz/pub/mj/eval/">FTP archive</a>.
87
88 <h2>Documentation</h2>
89
90 <p><span class="statewip">Warning:</span> Most parts of this documentation are outdated. Please consult the papers above
91 to get a more up-to-date picture.
92
93 <ul>
94 <li><a href="anatomy.html">Anatomy of Moe</a>
95 <li><a href="install.html">Installation</a>
96 <li><a href="tasks.html">Tasks and their types</a>
97 <li><a href="eval.html">Evaluating solutions</a>
98 <li><a href="public.html">Utilities for contestants</a>
99 </ul>
100
101 <h2>Contests</h2>
102
103 <p>Moe (or some of its modules) are used at the following contests:
104
105 <ul>
106 <li><a href="http://mo.mff.cuni.cz/p/index.html.en">Czech Olympiad in programming</a> since 2002
107 <li><a href="http://mo.mff.cuni.cz/cpspc/">CPSPC</a> (Czech-Polish-Slovak Preparation Camp) on some years
108 <li><a href="http://www.fi.muni.cz/ceoi/">CEOI 2007</a> (Central-European Olympiad in Informatics)
109 <li><a href="http://www.ioinformatics.org/">IOI<a> since 2009 (used the sandbox module)
110 <li><a href="http://codex2.ms.mff.cuni.cz/project/">CodEx</a> (a web-based system, originally
111         designed for evaluation of students' homeworks, but also used for several programming
112         contests)
113 </ul>
114
115 <h2>Languages</h2>
116
117 <p>Moe is known to work with these programming languages:
118
119 <ul>
120 <li>Pascal (<a href="http://www.freepascal.org">Free Pascal Compiler</a>)
121 <li>C and C++ (<a href="http://gcc.gnu.org/">GCC</a>)
122 <li>C# (<a href="http://www.mono-project.com/">Mono</a> with some hacks)
123 <li>Haskell (<a href="http://www.haskell.org/ghc/">GHC</a>)
124 </ul>
125
126 <p>Adding a new language should be easy, as long as the language behaves in a sane
127 way (e.g., if it does not need to use a zillion threads for a trivial program
128 as Java does).
129
130 <h2>Portability</h2>
131
132 <p>Moe is developed and tested on Linux, but all modules except the sandbox should
133 happily work on any UNIX-like system providing a reasonable set of GNU
134 utilities (especially bash) and Perl. This probably includes MinGW or Cygwin
135 on Windows, but we have not tested that.
136
137 <p>The sandbox heavily depends on the target OS. The current version works
138 only on Linux with kernel version 2.6 or newer and only on the i386 and amd64
139 architectures. Porting to other architectures should require only minor changes,
140 porting to other systems is likely to be hard.
141
142 <p>The <code>isolate</code> sandbox does not depend on CPU architecture,
143 but it requires a recent Linux kernel in a configuration which might be different
144 from your distribution's default.
145
146 <h2>Authors</h2>
147
148 <p>Moe has been written by the following people:
149
150 <ul>
151 <li><a href="http://mj.ucw.cz/">Martin Mare&scaron;</a>, <a href="mailto:mj@ucw.cz">mj@ucw.cz</a>
152 <li>Tom&aacute;&scaron; Gaven&#269;iak (the queue manager module and parts of the new evaluator)
153 <li>Bernard Blackham (parts of <code>isolate</code>)
154 </ul>
155
156 <p>We are also thankful to Jan K&aacute;ra and Milan Straka for their help and for
157 many fine ideas.
158
159 <h2>License</h2>
160
161 <p>Moe can be used and distributed under the terms of the <a
162 href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License version 2.</a>
163
164 <h2>Feedback</h2>
165
166 <p>All bug reports, suggestions and patches are welcome. Please mail them to our mailing
167 list <a href="mailto:moe@ucw.cz">moe@ucw.cz</a>. You can <a href="http://www.ucw.cz/mailman/listinfo/moe">ask
168 the list server</a> to subscribe to this list.
169
170 </body></html>