Think of it as an extreme version of a coding dojo, where you are constantly challenged with new requirements and have to make quick decisions on what you should develop. An extreme startup server is used to steadily grown requirements by asking you what seems to be simple questions at an increasing rate and complexity. As these questions grow and change, as a normal project would, you are continually urged to develop your code to meet these changes.
Scores are displayed for each time in real time, so you can see your progression in terms of your competition. Teams can choose any language they wish to implement their product and there are a number of basic project templates to help you get started.
Like other dojos its best to run the extreme startup workshop with a number of pairs or very small teams, to get people coding.
The facilitator of the workshop will setup an extreme startup hub server that will pump out questions and keep scores of all the answers. Install Ruby 1.9.2 and get the code from Github.
When testing the setup of the extreme startup hub, run the project using:
WARMUP=1 ruby web_server.rb
When starting the extreme startup session, start up the server using:
Extreme Startup Company Server - 1 per team
For your Clojure product development you will need:
Running lein repl in the top level of the project directory should load the project code into the repl. If not, then run (load-file 'src/extremestartup/server.clj)
3000 is the port number to run your server on, you can use anything that is available on your machine
Open your browser at http://localhost:3000/ to see if it works
The facilitator should provide you a URL to connect to. Select the "I want to play!" link and register your team.
Check your current IP address on your laptop and use that address for the URL. To find your IP address, open a command line terminal and run ifconfig (Mac / Linux) or ipconfig (windows). Make sure you use the port number you specified, if different from above.
Load the rules.clj file and extend the dispatcher function to your heart's content. Use the testrule macro to quickly unit test your dispatcher.
Hint: you may want to have a look at the questions you are getting asked, so you can answer them!!
* You can use lein run to fire up Jetty with your code - the only downside is you have to kill and run Jetty each time you make a change. Jetty will run on port 8080 by default, so you would use that port value as the end part of the URL when adding a player - i.e. http://192.168.1.2:8080