Happenings

PHP Challenge #2

It’s time for the second PHP challenge. This time I want an Integer to Roman Numeral converter. So the script should accept a single parameter (an integer), and return the roman numeral which corresponds to the integer. If anyone has any difficulty trying to work out how to do this, search google for information on roman numerals.

Here are the rules:

  • The winner is the person who writes the shortest script that works on sample integers that I will run on it
  • All functions must return a value,
  • All functions must be called RNC,
  • All functions submitted are considered public domain and hence can be reproduced and used with or without credit to anyone by anyone (so no bitching if someone rips off your script after the challenge finishes),
  • The winning script will be archived here for prosperity and to help others,
  • New rules may be added here at any time,
  • New Rule: The script should be able to handle integers in the range 1 to 4999. If no-one manages this, the upper-limit will be lowered to 3999. Handling integers outside this range is unnecessary,
  • My decision is final, but the shortest (file size) script will be the winner,
  • All functions should be submitted to Solitude@vkps.co.uk,
  • The deadline for entries is 12pm GMT on March 5th 2003

That should be fairly simple to follow. Any questions should be sent to the same email address. Good luck!

PHP Challenge #1 Results

Thanks to everyone who submitted scripts for this little challenge. The scripts have been tested and there is a clear winner. But let’s start at 3rd place, which goes to Bane with a 94 byte entry:
function GCD($A,$B){<br />for($i=1,$MAX=1;$i<=$A;$i++){<br />if(!($A%$i)&&!($B%$i)){<br />$MAX=$i;<br />}<br />}<br />return$MAX;<br />}<br />This entry used a similar method to most other entries to work out the GCD, but was quite a bit smaller than most entries.

Unfortunately, it was 1 byte larger than Jante’s 93 byte entry:
function GCD($num1,$num2){<br />while($num2!=0){<br />$t=$num1%$num2;$num1=$num2;$num2=$t;<br />}<br />return $num1;}<br />Now this entry could have been made much smaller by replacing $num1 with $n and $num2 with $m (or any other 1 letter variable name), but not much can be done about that now.

The clear leader, however, was ZeroByte’s 58 byte entry:
function gcd($n,$m){<br />if(!$m)return$n;return gcd($m,$n%$m);<br />}<br />That is some fantastic use of recursion to get the size right down. Congratulations, ZeroByte!

It should be noted that the winning entry will be archived soo. Also, the code sizes shown were for all formatting and comments removed.

Customer Dogma

In the film Dogma, the universe is based on the fact that “God is infallible”. Breach of this idea would cause the universe to cease existing; to be uncreated.

Something I realised today: we should all be eternally grateful that the same consequences do not apply to a breach of the old saying “the customer is never wrong”. Uncreated a billion times over. At least.

Failures

Some of you might have noticed that certain parts of the site (namely, the archives) have been inaccessible for the last few days, and others haven’t been updated (namely, the whole thing). Why, you ask? I’ve been talking about updating the back-end of the site a lot recently. On Friday I finally got the changes finished on the offline version of the site. One merge later with the online version and disaster. Here’s what went wrong:

  1. My devbox (being Windows based) has no real understanding of file permissions. My online box (which runs on Linux) does. By scripting for the former, I failed to anticipate the “File Permission Denied” messages that my online site (rightly) gave me,
  2. The archives. I completely forget to change the code for them, so it choked the minute the update went live. Doh,
  3. The RSS feed died, inexplicably. It should be working again (I’ll know when this update goes online).

I had planned to fix all of this over the weekend, but a cold virus had other ideas. Until I get time to really thing about the problems facing the updated back-end, I thought it would be best to just switch to a back-up I made minutes before I made the change. (ALWAYS back-up before a big change, stuff like this is bound to happen).

Funny Geometry

One of the best Flash animations I’ve seen in a while: Triangle and Square. Short, funny and to the point.

Via Yeah, But Is It Art?.