PHP Competition Results - Runners up
If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!
Finally we have a result, it has taken weeks of judging and lots of hardwork. The scores are ready and today I will first announce the runners up from the Top 6. I will then tomorrow announce the 3rd place, then day after that second, you get the idea. The scoring was based upon a point system in which each judge had to rank the top 6 in order. The points from each judge were then compiled and the final scores calculated.
Before we get onto the results I would just like to thank everyone who entered the competition, although it has been a lot of hard work it has been great fun as well. I hope to run more competitions in the future and will be looking for more sponsors for bigger and better prizes (hint: if you work for any PHP related company and want coverage then get in touch!)
The results are given below.
| Entry | Nick | Stuart | Cal Evans | Total |
| 1st. ?????? | 4 | 6 | 6 | 16 |
| 2nd. ?????? | 1 | 3 | 4 | 8 |
| 3rd. ?????? | 6 | 1 | 1 | 8 |
| 4th. JB | 2 | 2 | 3 | 7 |
| 5th. Maurice Fonk | 3 | 4 | 0 | 7 |
| 6th. Rob Haynes | 0 | 0 | 2 | 2 |
Before you read some of the quotes and comments for the last 3 entries I would like to mention that very few of the entries I received ‘worked out of the box’ and in
most cases needed some kind of configuration. Although the rules stated (I thought clearly) many entries had warnings/notices so I had to take the decision that because
so many broke the rules that I had to make judgement calls on what got included, I did also instruct each of the Judges to make their own judgements to take into account
entries that were troublesome to work.
JB
This one did properly handle the transition from hand to foot. The code is not elegant and I do not believe that it is ultimately maintainable. Some of the classes are documented, others lack any documentation at all. The UI is confusing as well. It was unclear that there were 3 methods to input the information. Finally, the author actually uses a globals statement. (Oh the horror) While it did succeed with my test, I cannot say that this is a good example of programming.
- Worked out of the box
- “Clunky” interface
- Dictionary upload limited to 100k for no apparent reason - very small for a dictionary file
- WAP version is a nice idea, implementation is a bit messy
- Minimal commenting
- Partial separation of code and presentation
- Lots and lots of notices generated when solving - appears to be one for each candidate word
- Use of dict.org to lookup word definitions is a nice touch
Maurice Fonk
While I would have loved to have seen this one because it runs on the Zend Framework, I could not make it work. Most attempts to properly install it simply gave a 500 Error.
- Does not work out of the box, needed to be located in /wordgame
- Uses Zend Framework
- Algorithm uses recursion
- Start and end words of different length give an error or “End word not in dictionary”
Rob Haynes
The UI isn’t as nice as the first two and a bit confusing. I’m not really told what I’m supposed to upload or pull from a URL. I tried just using a word list but then it told me I didn’t enter a wordlist. The code is nicely formatted and mostly OO although he does have more procedural than I think is necessary. As with the first one, I was expected to enter the entire list of words to transform hand to foot and it would figure it out.
- Worked out of the box
- Extremely confusing interface
- Multi-lingual
- According to the supporting documentation, modifying the system in any way requires changes to the code, including adding a dictionary
I had planned to launch the results with the ability to view each of the entries but Stuart (one of the judges) was hosting them but had a major problem with his web server and will take a few days for us to set them up again.
Third place will be announced tomorrow.
Comment by Robert on 18 July 2007:
Classes? Frameworks? Wow.
When I read the contest description I never once even thought of going to such trouble. The problem seems straight forward enough - something you could implement in just one or two-hundred lines of code or so. All it takes is Dijkstra’s algorithm, no? Were such OOP lengths necessary?
Comment by Nick Halstead on 18 July 2007:
People have gone to amazing lengths, you wait until you see the Top 3.
Comment by Nick Halstead on 18 July 2007:
Stuart just pointed out to me on MSN, that I had got some of the comments the wrong way round between Maurice & Rob which I have now fixed.
Comment by antych on 18 July 2007:
Ahh damn you, I have a pay review tomorrow and was hoping you will announce me a winner by then ;))
Comment by Robert on 18 July 2007:
I’m looking forward to them
Now that I think more about it, my “amazement” comes from the contest’s original description I think. You listed
1. That the code works
2. Does not produce any errors/warnings/notices.
3. Efficiency and elegance of the solution.
4. Robustness
5. Maintainability
as the judging criteria. #1 and #2 are pretty cut and dry. And of the other three criteria I guess I focused on “elegance of the solution” when thinking about the problem. I didn’t consider creating a grand UI and relying on a large framework as elegant for a problem like this one. Still, can’t wait to see the results!
Comment by antych on 18 July 2007:
Robert, for me those last 3 points mean small, clean, reusable code.
Using a framework allows you just that, you don’t need to reinvent the wheel.
And I did it in ZF with Ajax just to play around not to win something.
Comment by Robert on 18 July 2007:
Totally valid point, antych. I just didn’t see a wheel that needed reinventing in this case.
Comment by Rob Haynes on 18 July 2007:
Nifty. Can’t wait to see the top three. =)
Pingback by developercast.com » Nick Halstead’s Blog: PHP Competition Results - Runners up on 19 July 2007:
[...] Halstead has posted the runners up in the PHP programming competition he conducted: Finally we have a result, it has taken weeks of [...]