On September 12th the Wellington Perl Mongers HackOff formula was successfully transplanted into the Python community as part of the Kiwi Pycon conference in Wellington, New Zealand. Much fun was had on the night, but even if you missed the event, you can still join in the fun by solving the problems listed below.
From the original announcement ...
This year's Codewars event will feature a revised format with the goal of getting more people involved.
Codewars will still be a team event, but this year we're inviting EVERYONE to join in. We'll help people assemble into teams on the night and hope that some of you will use this as an opportunity to meet new people.
This year's event will feature a series of problems for all teams rather than the knock-out style of competition from previous years. That means if another team beats you in the first question, you stay in the game and may catch and pass them on later questions.
The incurably competitive will race to complete the greatest number of problems in the shortest time. Others will take things at a more sedate pace and enjoy the challenge of pitting their wits against the warped and twisted Codewars-master.
Most of the problems will require you to write a program to find the solution. You may use any language you like to get the job done, although it seems likely Python will be popular.
Whilst not actively discouraging the competitive angle, we were aiming to optimise more for fun and participation - that was mostly successful.
We ended up with nine teams on the night. Each team comprised 3-5 people, with one or more laptops connected over wireless to the competition web server.
Once the teams were all logged in to the web server, the first problem was made available. The teams downloaded a data file from the server and set to work 'decoding' (and I use that term very loosely) the file to reveal a 'token'. Here's an example of a token:
When a team successfully revealed a token, they would type it into the web server, which would validate the token and then make the next problem available. The web application also gave teams the opportunity to show their work - upload program files or shell command histories etc, for later analysis.
It's important to note that although this was billed as a programming competition, there was no requirement that teams use only their own code. All teams had full internet access for using search engines, downloading software packages and submitting files to web services. The only thing that mattered was finding the right answer as quickly as possible.
One team didn't get the memo about optimising for fun and were fully optimised for winning. Team "Cats" deployed Perl with ruthless efficiency and managed to complete all six problems before the official finish time! Unfortunately since they weren't actually registered Kiwi Pycon attendees, we couldn't declare them the official winners.
The official winners were Team "Best Cats" who provided further data to suggest feline references in the team name is a winning formula. They completed the fifth problem shortly after 9pm - as we were packing up.
Three teams completed four problems; two teams completed three problems and "Team Food Recovery Option" who had optimised for food consumption and started nearly two hours late managed a creditable two problems.
This chart shows the number of problems completed by each team over time.
The chart would have been even better if it managed to provide live updates on the night but due to the codemaster's own ineptitude it steadfastly refused to show anything but a pair of axes all evening.
The raw timing data is shown in the table below:
|Team Name||Problem 1||Problem 2||Problem 3||Problem 4||Problem 5||Problem 6|
|Halt and catch on fire||18:36:10||19:14:00||19:36:33||20:35:31|
|Back of the Bus||19:00:34||19:26:05||20:17:49||20:48:49|
|'; DROP TABLE Users; --||18:41:01||19:25:52|
|Team Food Recovery Option||20:13:47||20:37:01|
Even if you missed the event, you can still join in the fun. Listed below are the same six problems that were used on the night. For each problem there is a data file and a 'hint'. The correct solution (token) is also listed but this is largely redundant because in each case it's pretty obvious when you've solved it.
|1.||Data File||There's no substitute for big words||
|2.||Data File||It looks like a perfect square||
|3.||Data File||Journey to the mooooon||
|4.||Data File||A walk in the woods||
|5.||Data File||Choose your weapon carefully||
|6.||Data File||From sliderule to spreadsheet [MODIFIED]||
Problem 3 even had its own soundtrack.
We may or may not post a solutions page, but you probably won't need it anyway.
If you want to publish your own solutions then by all means do so and let us know so we can link to them: