Click here to Skip to main content
16,016,623 members
This competition has ended

Code Lean and Mean

In days of yore it was a badge of honour to be able to fit a full file manager, spreadsheet application, appointment reminder and Tetris Easter Egg within a 32KB executable.

Kids these days are hard pressed to get "Hello, World" in under 4MB so we're going to wind back the clock.

The Challenge

Create an application that will calculate and display the changes between two text files as fast as possible using the least amount of memory possible. Provide timing data and maximum memory use data to prove you're the leanest and meanest.

There will be 3 categories:

  1. C/C++
  2. .NET (any language)
  3. Any other language

Once you have created your application and posted it as an article, post a link in the forum below so we can all view and comment on it.

Notes

  1. You can wrap your solution in a GUI if you wish, and there's no need to report memory usage or speed of the framework you use to support your code.
  2. The format of the files is unimportant. Treat them as plain text.
  3. Some runtimes such as .NET have a large working set already. You only need to report the maximum amount of memory your code uses above and beyond the base working set needed by the underlying runtime. If. while calling runtime methods, member is allocated then if possible this will have to be taken into account.

Test Data

All applications will use the same data. This file contains two large HTML files that have a small number of changes.

The competition ends Midnight August 31, 2009.

The prize

T-shirt

Fame, adulation and a Code Project T-shirt.

Contest Rules and Entry Requirements

  1. Qualifying articles must calculate and display the changes between two HTML files as fast as possible using the least amount of memory possible.
  2. Timing data and maximum memory use reporting must be included in the application.
  3. The contest will begin on August 10 and end on August 31, 2009 at 11:59:59 PM US Eastern Standard Time. All entries must be submitted during this period in order to qualify.
  4. No cheating, lying, or cussing and keep it above the belt.
  5. Our judges' decision is final and no correspondence will be entered into.
  6. Only those who live in jurisdictions in which this contest is legal may enter.
  7. Any breach of the rules will result in the prize being awarded to another entrant.
  8. By entering the contest you agree to the rules, conditions of entry, and agree that your name, member profile information, and article can be used for promotional purposes by The Code Project.
  9. Entries shall be deemed to be submitted by the authorized account holder of the e-mail address submitted at the time of entry unless clearly indicated otherwise. "Authorized account holder" is defined as the natural person who is assigned to an e-mail address by an internet access provider, on-line service provider, or other organization (e.g. business, educational institution, etc.) that is responsible for assigning e-mail addresses for the domain associated with the submitted e-mail address.
  10. The Code Project reserves the right to add to this contest.

Eligibility

This competition is open to software development professionals & enthusiasts who are of the age of majority in their jurisdiction of residence; however, residents of Quebec and of the following countries are ineligible to participate due to legal constraints: Cuba, Iran, Iraq, Libya, North Korea, Sudan, and Syria. Employees (or a member of their immediate family) of The Code Project or any of their affiliates, subsidiaries, advertising or promotional agencies are also ineligible to participate. Void where prohibited by law.

Determination of Winner

All entries will be reviewed and rated by members of The Code Project community, as well as undergo the review of judges appointed by The Code Project. A winner will be determined by The Code Project's selected judges, after taking into consideration the comments and ranking of entries by members of The Code Project community, on the basis of which entry best meets the judging criteria set forth.

Judging criteria includes but is not limited to

  • Efficiency, determined as speed and memory use.
  • How tightly an entry adheres to the conditions of entry, including article focus and scope
  • Broad applicability to a wide variety of developers
  • Overall article quality, coherence and structure
  • Amount of discussion an entry generates in its forum area

How To Enter         

Entry is by the normal article submission process or as described above. Please read the submission guidelines before submitting your entry.

Lost, late, misdirected, or illegible entries will be disqualified. Any entry containing content that The Code Project deems objectionable for any reason will be disqualified. All decisions of The Code Project with respect to any aspect of the competition, including, without limitation, the eligibility of entries, are final and binding on all entrants in all matters as they relate to this competition. The Code Project reserves its right to modify the Rules.

All entries become the property of The Code Project who assumes no responsibility for lost, late, delayed, destroyed or misdirected mail, voice messages, e-mail or any computer errors or malfunctions. No correspondence will be entered into with entrants.

The Code Project does not assume any responsibility for incorrect or inaccurate capture of entry information, technical malfunctions, human or technical error, lost, delayed or garbled data or transmissions, omission, interruption, deletion, defect or failures of any telephone or computer line or network, computer equipment, software or any combination thereof. Entry materials/data that have been tampered with or altered are void. If for any reason, in the opinion of The Code Project in its sole discretion, the competition is not capable of running as originally planned, or if the administration, security, fairness, integrity or the proper conduct of the competition is corrupted or adversely affected, including by reason of infection by computer virus, bugs, tampering, unauthorized intervention, fraud, technical failures or any other causes beyond its control, The Code Project reserves its right to cancel, terminate, modify, amend, extend or suspend the competition including cancelling any method of entry, and select a winner from previously received eligible entries. The Code Project reserves its right in its sole discretion to disqualify any individual it finds to be tampering with the entry process or the operation of the competition or to be acting in violation of the Rules or otherwise in a disruptive manner. The Code Project reserves its right to seek remedies and damages to the fullest extent of the law for any attempts to deliberately damage the competition web site or to undermine the legitimate operation of this competition. The Code Project shall not be held responsible for any errors or negligence that may arise or occur in connection with the competition including any damage to an entrant's computer equipment, system, software or any combination thereof, as a result of their participation in this competition or from downloading any material from the competition website where applicable.

Intellectual Property

It is a condition of entry that you grant to The Code Project a royalty-free, non-exclusive, transferable, irrevocable, perpetual, worldwide license to reproduce, and otherwise use and publicly display your entry (in part or in its entirety) in any and all media for any purpose. All entries submitted and judged as winners may appear on The Code Project Web site(s). Entries will not be returned. All articles submitted by you will retain your copyright and will be attributed to you.

Your warranties

It is a condition of entry that you confirm that your entry: is original; has not been previously published, released, distributed or submitted or used for study or work-related purposes; has been created by you; and is owned exclusively by you, or where you enter as part of a group, by the individual members of that group; is virus-free; and complies with Canadian law.

Liability

It is a condition of entry that you agree that to the extent permitted by law that The Code Project, its retailers, suppliers, associated companies and agencies will not be liable for any direct, indirect or consequential loss or damage whatsoever, including personal injury, which is suffered as a result, or arising from, any person participating in the competition or on connection with winning any prize.

Before being awarded a Prize, a potential winner may be required to sign and return within the time stipulated by The Code Project, a full release and indemnity form stating that he/she has read and understood these official rules and regulations ("Rules"), grants all consents required, authorizes The Code Project to broadcast, publish and disseminate his/her name, city of residence, photograph, likeness, sobriquet and voice, in connection with any promotion or publicity, and/or for general news, entertainment and information purposes at no additional compensation to the potential winner, beyond the awarding of or participation in the Prize, accepts the Prize as offered and releases The Code Project from any and all liability of any kind arising out of the potential winner's participation in the competition and receipt and use of the Prize.

In the event that the potential winner does not comply with all the provisions as contemplated in these Rules, The Code Project shall have the right to disqualify the potential winner and award the prize to an alternative winner and The Code Project shall be fully and completely released and discharged from any liability or responsibility in this regard.

Notification of prize winners

The Code Project will make reasonable efforts to notify a prize winner, however The Code Project may disqualify your entry and select an alternative winner if your prize or prize notification is returned to The Code Project as undeliverable.

Privacy

It is a condition of entry and of receiving the benefit of the prize that prize winners agree to the use of their images, names, article in any publicity desired by The Code Project, without compensation. By entering this competition, each entrant consents to the collection, use and distribution of his/her personal information (information that identifies an entrant as an individual, such as home telephone number, age and home address) by The Code Project for the purposes of implementing, administering and fulfilling this competition. The Code Project will not sell or transmit this information to third parties except for the purposes of administering this competition. Any inquiry concerning the personal information held by The Code Project should be addressed to The Code Project at 250 Ferrand Drive, Suite 503, Toronto, Ontario, M3C 3G8, Canada.

No relationship with The Code Project

Participating in the competition does not constitute any form of employment or contractor relationship between you and The Code Project.

Governing law

The competition is governed by the laws of Ontario, Canada and the applicable federal laws of Canada. The competition is subject to all applicable federal, provincial, state and municipal laws and regulations. This competition is void where prohibited by law.

Discussions

 
GeneralSmart TextDiff Utility for Intel© 64 Platform Pin
Arthur V. Ratz30-Apr-16 3:43
professionalArthur V. Ratz30-Apr-16 3:43 
GeneralDeltaScope updated Pin
NYCChris2-Sep-09 10:54
NYCChris2-Sep-09 10:54 
General[Contest Entry] Pin
Sean Ewington1-Sep-09 10:30
staffSean Ewington1-Sep-09 10:30 
GeneralRe: [Contest Entry] Pin
NYCChris1-Sep-09 11:06
NYCChris1-Sep-09 11:06 
General...and a C# version for me too Pin
Eric Haddan31-Aug-09 16:15
Eric Haddan31-Aug-09 16:15 
General[Contest Entry] Pin
Nicholas Butler31-Aug-09 9:23
sitebuilderNicholas Butler31-Aug-09 9:23 
General[Contest Entry] Pin
Nicholas Butler31-Aug-09 2:47
sitebuilderNicholas Butler31-Aug-09 2:47 
GeneralAnother C++ entry Pin
Alain Rist29-Aug-09 22:26
Alain Rist29-Aug-09 22:26 
GeneralAnother C++ entry updated Pin
Alain Rist31-Aug-09 10:44
Alain Rist31-Aug-09 10:44 
GeneralMy C++ Entry Pin
Eric Haddan29-Aug-09 15:05
Eric Haddan29-Aug-09 15:05 
GeneralMy entry (PIEBALDdiff) [modified] Pin
PIEBALDconsult28-Aug-09 15:21
mvePIEBALDconsult28-Aug-09 15:21 
GeneralRe: My entry (PIEBALDdiff) Pin
Luc Pattyn28-Aug-09 15:44
sitebuilderLuc Pattyn28-Aug-09 15:44 
GeneralRe: My entry (PIEBALDdiff) Pin
PIEBALDconsult29-Aug-09 5:29
mvePIEBALDconsult29-Aug-09 5:29 
GeneralNew entry Pin
Luc Pattyn27-Aug-09 5:27
sitebuilderLuc Pattyn27-Aug-09 5:27 
GeneralNew version of old entry Pin
Luc Pattyn31-Aug-09 15:58
sitebuilderLuc Pattyn31-Aug-09 15:58 
GeneralRe: New entry Pin
Michael Scott Smith1-Sep-09 3:55
Michael Scott Smith1-Sep-09 3:55 
GeneralRe: New entry Pin
Luc Pattyn1-Sep-09 4:06
sitebuilderLuc Pattyn1-Sep-09 4:06 
GeneralRe: New entry Pin
Michael Scott Smith1-Sep-09 11:59
Michael Scott Smith1-Sep-09 11:59 
GeneralRe: New entry Pin
Michael Scott Smith1-Sep-09 12:08
Michael Scott Smith1-Sep-09 12:08 
General[Contest Entry] Pin
Nicholas Butler27-Aug-09 3:48
sitebuilderNicholas Butler27-Aug-09 3:48 
NewsRe: [Contest Entry] Updated Pin
Nicholas Butler28-Aug-09 7:37
sitebuilderNicholas Butler28-Aug-09 7:37 
GeneralSubmitted article for this contest. Pin
Gaurav Dudeja India26-Aug-09 23:51
Gaurav Dudeja India26-Aug-09 23:51 
AnswerThe O(ND) diff algorithm is on CodeProject since 2006 [modified] Pin
Matthias Hertel24-Aug-09 10:35
professionalMatthias Hertel24-Aug-09 10:35 
General[Contest Entry] Code Lean and Mean File DIFF (FIFF) Application [modified] Pin
Ilka Guigova23-Aug-09 15:50
Ilka Guigova23-Aug-09 15:50 
GeneralNo problem. What's the coding job pay? Pin
Edwin Smith21-Aug-09 13:00
Edwin Smith21-Aug-09 13:00 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

You must sign in to participate in this contest.
This contest has ended.
10 Aug - 31 Aug 2009