Well coders, it's time to get this coding contest started.
I just want to note one thing. The point of this contest is to help coders in lowering the line size (and possibly file size) of their codes.
Due Date: June 17th, approximately 8 weeks Extended until July 15th
I will allow for an extension of the due date if a few of the coders need it. This should extend into any students' summer vacation too.
CompetitorsFirst off, let's get the competitors listed in their groups. These are not final lists as I will allow anyone who wishes to, to join later in the competition. They will not receive any extra time to complete their code either.
Advanced
- DregondRahl
- Mithras
- Ross
- Sasuke/Kenshin
- Tobias
- Cr0w
Beginner
- Fredy
- Nate
- Oracle
- Shockeye
- Triad
- Typo
The RulesThe rules are fairly general, but some require a bit more explanation to them. One even has it's own section later.
1. For beginners, the code must be under 1,500 lines. For advanced, the code must be under 2,000 lines. I will explain more about some exceptions to the line count portion later. (For example, comments obviously don't count.) I will be slightly lenient on this to about 20 lines above.o.
2. Your code should be well commented and your variables should be somewhat descriptive. (Example: var td = document.getElementsByTagName("td"); )
3. You may use as many open source functions, snippets, libraries, etc. as you wish. I would also like a link to where you obtained the items too if possible. These do count towards your total line count, with three exceptions (currently. If you wish to see if yours would count as an exception, post in this thread.) The exceptions are
PB Profile Constructor,
Persistent Data Storage Object, and
Profile Drop-Down AddOn.
4. For beginners, the code must make some form of modification to the main profile. Add a feature/stat, redesign it, etc. This mod should also add something that effects other pages in some way. It's up to you on what that portion will do.
For advanced, your code
must include some form of a profile editable option. It can include an admin editable portion to the code if you wish, as long as the admin editable portion is not useless (example: changing 1 or 2 variables in the source.)
5. The code must work in both Internet Explorer 7 and FireFox 2. Working in Opera 9 is an added bonus.
6. Users in the "advanced" category may use a server side language in their codes, preferably PHP. The server side portion must be given as the source when you submit the code. If you use a server side portion, your line count maximum will be raised to 3,000.
Grading CurriculumThere's a total of 100 possible points. I am putting no emphasis on DOM vs innerHTML, so take your pick on that. DOM will raise your line count though.
Speed and Code Efficiency - 30 points. This checks how fast the execution of your code is. If you are using a server side, I will ignore the loading time between when you load data from the server. This also checks to see if the code loads as fast as it could load.
Appearance - 20 points. This checks if the appearance of the modifications of your code hold (somewhat) true with the standard ProBoards look. For example, do you use a table with cellpadding=4 and cellspacing=1?
Concept - 20 points. This is just a general score on the concept and originality of your code. This is graded liberally.
Line Count Effectiveness - 30 points. Did you attempt to make the line count fairly low when compared to what it could have been? (File size in bytes is irrelevant to this scoring portion)
Explanation of the Line CountThis is probably the only difficult part of the contest. The line counting is quite flexible since I'm not trying to change your style of coding, just to improve your line count. First off, let's figure out what your maximum can be.
Beginners: 1,500
Advanced with no server side: 2,000
Advanced with server side: 3,000
When deciding the total number of lines, I will ignore all comments and white space lines. For example, the following only has two lines of code:
// Define variables
var aTD = document.getElementsByTagName("td"); // Line 1
var aTB = document.getElementsByTagName("table"); // Line 2
You may not place more than one line of execution on the same line. This example is two lines of execution:
cell.className = "windowbg"; cell2.className = "windowbg";
However, this is only one:
cell.className = cell2.className = "windowbg";
For objects, you may either space them out or force them to one line.
var obj = { count: 0, whee: 0 }; // 1 total line
var obj = {
count: 0,
whee: 0
}; // 4 total lines
Next thing is if's, for's, while's, if-else's, etc. with brackets (one line only). I will not count the bracket if the code could be rewritten without a bracket. For example, all three if's in this snippet are identical with the line count of 2. Also, you must put a line break after each if when calculating the total.
if(whee === true)
alert("true");
if(whee === true) alert("true");
if(whee === true){
alert("true");
}
The opening and closing script tags do not count towards the total line count. If you have any questions on the line counting, post in the discussion thread. This part can be fairly complex and may confuse a few people.
Submission of Your CodeTo submit your code, please PM it to me. If the code is too large, upload it to a/your host in a .txt file (or multiple if there's more than one part) and PM a link to that to me. If you use server side, a copy of the server side source must be provided. I will expect the host for the server side data to be hosted however.
PrizesRight now, the prizes look like this. (1st, 2nd, and third are available in both Advanced and Beginner.) When it says "Free Code Hosting," this means that Studio Zero will provide hosting (for a non-server side code) for both the code submitted and 2 other codes of your choice, if they need to be hosted of course.
1st Place - 7 ad-free credits, free code hosting, and a custom title
2nd Place - Free code hosting and a custom title
3rd Place - A custom title and a "Congratz!" from Dregond
So, let's get this contest started.
There's a
discussion thread in the Coders' Hangout if you have any questions.
Last Edit: Jun 9, 2007 19:56:15 GMT by Chris