
- NEVER USE SPACES IN FILENAMES!

- There are two groups of files in every (any) platform subdirectory:
  a) files that contain globally visible functions and
     go-between the platform specific part and common code.
  b) files that are only support functions in (a)
  For example:
  client_*.* contains/references functions that are globally visible.
  supp_*.*   contains/references functions that support functions in
             client_*.* but are not visible outside the platforms:macos
             subdirectory

- (again) NEVER USE SPACES IN FILENAMES!

- avoid including more than one custom header file from common code.

- when creating functions that are to be globally visible try to use
  functions names that are "well known".
  somethingdoesthis(withsomeunknownunexplainableparameter) is uncool.
  For example, everybody knows what the "0" to usleep(0) is, but 
  whats the "0" to DoYieldToMain(0)?

- avoid (CLIENT_OS == OS_MACOS) sections in common code. If you see
  no other (CLIENT_OS == ... ) in the part you are about to modify, 
  STOP AND THINK. MacOS is *NOT* special: if somebody else has managed
  to port without needing a CLIENT_OS == ..., then you don't either.
  
- Configure your editor to insert real spaces when you press tab.

- Do not make assumptions about what is in common code. The interfaces
  between common code and platform specific stuff is clear and clean
  and well (self-) documenting. Do not create dependancies on ANYTHING
  in common code. Common calls plat code, never the other way around.
  (there is one exception to this for event-driven OSs, but you'll find
  it soon enough :)
  
- It may sound obvious, but this rule has already been broken: 
  Do not hard code anything variable (eg contest count, names etc),
  No code does this, not even common, so why are you?

- Drop anything meggs'ish, particularly DES cores. distributed.net no 
  longer has permission to use his stuff. There are no alternatives.
  DES is over, and many ports already don't include DES (its up
  to porters to remove it).
  
- The world really doesn't need 5 ways to build the client. One project
  file is quite sufficient.
  
  
