All contestants will use a customized linux environment based on the current Ubuntu Long Term Support(LTS) release. This environment is optimized for booting off a usb flash drive, so no modifications to the computer hardware are required.
This is similar to the World Finals contest environment which is also conducted in a linux environment.
Installation is as simple as imaging a flash drive. Instructions for both Linux and Windows are provided.
gunzip ??.dd.gz
dd if=??.dd of=/dev/sdx bs=1M
Once you have imaged your flash drive, it can be used in any x86-64 computer capable of booting from a usb drive. EFI boot is not supported. The hard drive of the system will not be changed and is inaccessible to the contestants.
No password is needed to log in as the contestant
user. The password for the icpcadmin
account on the '-insecure' image is icpcadmin
, and this user has root (sudo) privileges.
On the regular images this password will be distributed by your contest manager.
To test all 13 language implementations run the following command which runs the solutions for eight ICPC style problems. This lasts several minutes and should produce columns of green "PASS"es. (Note: You may have to run this as the icpcadmin
user as the firewall may block the contestant from accessing all of the necessary data files)
wget -O - https://ser.cs.fit.edu/testing/test.sh | /bin/sh
Name Last modified Size Description
Parent Directory - sha1sums 2016-10-31 13:16 946 2016-10-26_image-amd64.img.gz 2016-10-31 13:14 2.2G 2016-10-19_image-amd64.img.gz 2016-10-19 21:19 2.3G 2016-08-06_image-i386.img.gz 2016-08-23 14:33 2.6G
The environment is loaded with just about every programming language you might want to use as well as some of the more popular IDEs and editors. See below for a list of available software and tools.
Language | Tool |
---|---|
Java | javac/java |
C | gcc |
C++ | g++ |
Pascal | fpc |
Haskell | ghc |
C# | mcs |
Fortran | gfortran |
ADA | gnat |
Python 2 | python2 |
Python 3 | python3 |
Scala | scalac/scala |
Tool Name | Version |
---|---|
Eclipse | 4.5(Codename Mars) |
Eclipse PyDev | 4.3.0.201508182 |
Eclipse CDT | 8.7.0.201506070 |
(G)Vim | 7.4.52 |
emacs | 24.3.1 |
gedit | 3.10.4 |
Atom | 1.0.19 |
GNU Make | 3.81 |
Monodevelop | 4.0.12 |
Code::Blocks | 13.12 |
This contest image is designed to provide contestants with easy access to their work after the contest is over. Contestants can take the drive with them and boot it on their own machines to recreate the contest environment exactly. They can also copy files into the folder /mnt/usbdrive
(or /home/contestant/usbdrive
), which is a Fat32 compatible filesystem. In this way they can simply plug the flash drive in to any Windows/OSX/Linux machine and view the files directly.
After the contest the firewall restrictions will expire and the system will have general access to the internet again.
Each workstation must be configured for each team with a few simple settings. The first time the environment boots it will run through a few prompts to set everything up. Just follow the prompts and everything will be configured. After configuration the system will run a self-test. If you see anything in red there's probably an issue. If you're seeing all green passes you're all set.
During the initial workstation set up the DOMjudge credentials are configured. When the team clicks on the login page in DOMjudge, there will be a button near the top that says "Log in using computer credentials". The team can click this button to be logged in to their assigned team. Manual login of teams is still possible
After the practice round, it is important to reset all team workstations before the real contest begins. This is a simple process. Log the contestant user out on each workstation. Then log in as the Clear Team Account
(teamreset) user using the same password as for the icpcadmin
user. This will remove all files from the contestant user and reboot the machine. It will preserve your team name, printer ip address settings, and DOMjudge credentials.
Logging in as the icpcadmin
user is sometimes beneficial if you need to adjust various things. It's a full linux machine so you can do basically whatever you'd need to do.
The firewall is configured to block the contestant user from accessing anything on the network except localhost
. There is a squid proxy running that is configured by default and only allows access to certain restricted sites.
All other users/accounts have unrestricted access to the network. This allows for printing with cups or troubleshooting issues without having to remember to turn the firewall off or back on.