SPA Conference session: It's Time to Light the Lights
|One-line description:||A light-hearted programming competition with real hardware|
|Session format:||Workshop [read about the different session types]|
|Abstract:||Pit your skills against other teams in this programming fight to the death.|
We provide Raspberry Pi computers and hardware - your job is to implement the control protocol. The first team to light the lights wins.
The catch is that access to the hardware is very expensive. Spend those minutes wisely!
Minutes on your own laptop are cheap though. Bring your development environment of choice (we Python or Java set up), and an SSH and Git client.
|Audience background:||Very much a programming exercise, knowledge of one of Python, Java or Ruby advantageous.|
|Benefits of participating:||Some insights into how to write and test code that should feed back into the hum-drum world of banking or whatever.|
We should have things to learn from the teams that do well. What things do you need to establish up-front, and what can be deferred? How useful is a detailed spec compared to the real world? How do objects and mocking compare to functional decomposition?
|Materials provided:||Raspberry Pi computers with the necessary hardware and tools installed|
|Process:||Divide into teams - pairs or pairs of pairs we suggest.|
Fork the exercise repo on GitHub to get the tools required and the spec.
The aim is to send a code by radio - wiggle a gpio pin the right way with the right timing and you will switch on a remote mains switch. Each team has a particular coded switch (we'll bring 8) connected to a light.
Start coding. Check into git on the way.
When a team feel the need to buy hardware minutes they can ssh into an available pi, git pull their work so far and try it out. Time spent on hardware costs 10x real-time.
The team that spends fewest minutes to light their light wins - others continue to give a ranking.
We'll have a retrospective at the end.
|Detailed timetable:||As long as possible! Maybe a Sunday session, or we can cut scope by providing some pre-written code.|
|Outputs:||Results of retrospective.|
We expect to learn things about mocking, functional decomposition, ready-fire-aim, teamwork...
|History:||We'll make sure we run a trial - maybe an XTC evening. That should let us know what tools we need and let us tune the cost of hardware minutes.|
|1. Duncan McGregor
|2. Richard Care