Qt GUI Programming Contest
This contest is open to anyone, there is no entry fee and you do not have
to sign away your copyright. The winner is paid $2000 and the two runners-up $500
each, all three winners receive one Qt Duo Pack [http://www.troll.no/pricing.html]
(worth over $2000) each, the world gets some free software, and more people see
how good Qt [http://www.troll.no/] is.
Entry
Any program can be entered, provided that it is written in C++ and uses Qt under
the free software license. (If you don't know Qt, check out our tutorial [http://www.troll.no/qt/tutorial.html].
If you know C but not C++, it's not really written for you, but have a look.) Modifications
of existing programs may be entered, and will be judged appropriately.
Entrants are encouraged to use third-party reusable components, and also to structure
the program as one or more reusable components and one main program.
Programs may be entered by a single person or teams. Teams must be represented
by a single person, who will receive the prize. It is acceptable to submit class
work, term projects and the like. The contest judges, anyone employed by Troll Tech
[http://www.troll.no/troll.html], or their relatives, may not enter the contest.
The deadline for entry is May 1st, 1997, 16:00 MET DST. Programs that haven't
reached Troll Tech (via e-mail or FTP) by then are not eligible.
Here are some ideas for eligible programs:
- A paint program, like MacPaint, Windows Paintbrush or Deluxe Paint, or like
MacDraw or idraw.
- Adding a graphical user interface to an existing free program (efax, gprof,
tar, or any other).
- A reimplementation of your favorite 8-bit game. One member of the jury,
at least, will argue eloquently that anyone who reimplements Manic Miner, Jetpac
or Trailblazer should be sanctified at once.
- A web browser. The world needs a good free web browser - without
animated gif or frame support.
- A calendar program; tell people about their meetings, exams, let them jot
down some notes, keep track of what time was spent on.
- A chat program... either a graphical
talk
or (easier and probably
better) a multi-person chat program. Could add voice here, but text is the most
useful, we think.
- An animated sprite editor for Warwick Allison's [http://student.uq.edu.au/~s002434/]
SpriteField [http://student.uq.edu.au/~s002434/qt/SpriteField/doc/html/]. Possible
features: view several pixmaps of the same figure in an animation, moving or
standing still; edit individual pixmaps; grab pixmaps out of other windows.
- Scanner control software. There are many SCSI scanners, but little free
software to control them, and to manipulate the images they produce.
- The list can go on and on; only your imagination limits it.
You don't need to sign any form or notify anyone that you wish to enter the program,
just download Qt [http://www.troll.no/dl/] and start coding. There's a good tutorial
[http://www.troll.no/qt/tutorial.html] on the web and in the Qt distributions; if
you haven't written any GUI software before we recommend that you check it out.
What the Jury Will Look For
The criteria fall into four rough groups. None are all-important; a program that
is weak in one area can still win if it is strong in the others.
Programs that are based on or incorporate older code, or use existing class libraries,
will be judged as such.
User Interface
- Pleasing appearance.
- The user interface is easy and natural on the eye, without e.g. garish color
clashes.
- Accessible functions.
- The functions are logically and naturally laid out, such that the user can
learn and use the program's functions easily and with few mistakes.
- Consistency.
- The user interface is laid out in a consistent and orthogonal way; similar
concepts in different parts of the user interface look and feel the same.
The Code and More
- Neat and elegant design.
- The design of the program is modular, easy to understand and extensible.
The design uses reusable components where appropriate, and also (perhaps) contains
new reusable components that may be used in other programs.
- Clean implementation.
- The source code is well organized, with a consistent coding style and sensible
class, functions and variable names.
Bonus points for using the smalltalk convention; classes, structs and other
types' names start with an upper-case letter (QFrame, MainWidget) while functions
and variable names start with a lower-case letter (resize(), qApp).
CPU and memory efficiency count for something, but not much. A good design
or implementation will win over one spoiled by opaque hacks to save a bit of
memory or gain a little performance. (Of course, a good design tends to
be fast.)
Since .cpp
is now the dominant suffix for C++ source, we recommend
that you use .cpp
for new projects rather than .cc
,
.cxx
, .C
or something else.
- Complete and accurate documentation.
- Both the design and the implementation are documented, there is a man page,
and there is a sufficient user's manual.
If the user interface is good, there isn't much need for a user's manual,
of course.
Building the Program
- Portability.
- It is desirable for the program to work on all the operating systems and
compilers that provide the necessary features.
- Ease of installation.
- Ordinary users should be able to compile and install the program.
Usefulness
- General usefulness.
- Not the most important criterion, but a generally useful program will win
over a more obscure one.
- Uniqueness.
- Not yet another clock or screen saver! Please!
How to Enter
Upload your program to the /incoming/contest directory of ftp.troll.no (which has
not yet been created) and send a message about it to contest@troll.no afterward,
or mail it (MIME or uuencode) to contest-entries@troll.no. In either case you will
get an auto-reply when your message has been received.
Prizes
The first prize is worth over US$4000 ($2000 cash, plus one
Qt Duo Pack). A Qt Duo Pack consists of Windows 95/NT and X11 professional licenses
for the same developer, with one year of technical support and upgrades.
The second and third prizes are each worth over US$2500 ($500
cash, plus one Qt Duo Pack).
The Jury
The jury consists of
- Warwick Allison - PhD student at the University of Queensland,
- Arnt Gulbrandsen - Troll Tech,
- Jordan K. Hubbard - the FreeBSD core team, and
- Erik Troan - Red Hat Software
Any questions or other correspondence should be sent to contest@troll.no.
Links of Interest
If you've read this far, these links may perhaps be of interest:
- Downloading Qt http://www.troll.no/dl/
- Qt Tutorial http://www.troll.no/qt/tutorial.html
- Examples http://www.troll.no/exprog.html
- Professional Licensing and Pricing http://www.troll.no/pricing.html
- Qt User Quotes http://www.troll.no/qtusers.html
At present there is no mailing list for contest entrants, but if there's significant
interest (and qt-interest@troll.no doesn't cover your needs), we can always make
one. Ask contest@troll.no.
Last modified 1996/10/31 by the Webmaster at Troll Tech