public static void main(String[] args)
			throws NumberFormatException, InterruptedException {
		// Options
		double theSpeed             = 50.0;
		boolean useHackerPanel      = false;
		double freakShowProbability = 0.00333333;    // Once a minute
		// Read options
		for(int i = 0; i < args.length; i++) {
			if (args[i].equals("-speed") && i < (args.length - 1)) {
				theSpeed = (new Double(args[i + 1])).doubleValue();
				i++;    // Don't consider the speed anymore
			}
			else if (args[i].equals("-freakshowprobability")) {
				freakShowProbability = (new Double(args[i + 1])).doubleValue();
				i++;    // Don't consider the probability anymore
			}
			else if (args[i].equals("-hackermode"))
				useHackerPanel = true;
			else if (args[i].equals("-help")) {
				System.exit(0);
			}
			else
				System.out.println("Unrecognized command line argument '"
						+ args[i] + "'. Ignored.");
		}

		// Create a washing machine simulation and a controller
		AbstractWashingMachine theMachine
		= new WashingMachineSimulation(theSpeed, freakShowProbability);
		@SuppressWarnings("unused")
		HackerPanel p;
		if (useHackerPanel) {
			p = new HackerPanel(theMachine);
		}
		theMachine.setButtonListener(new WashingController(theMachine, theSpeed));
		theMachine.start();

		// Wait for hell to freeze over
		Object o = new Object();
		synchronized(o) {
			o.wait();
		}
	}