Notes for Developers
Help Wanted
CompLearn is growing in power and popularity every day. There are now many interesting development paths that could use help from the community.
- Macintosh / PowerPC drag and drop support for 3D visualization demo
- Windows precompiled binaries of recent versions
- Documentation of ruby extension using rdoc
- More documentation for core complearn such as better man pages
- Implement this as a preprocessing phase for audio formats: A Many to One Discrete Auditory Transform by Jack Xin and Yingyong Qi (pure genius!)
If you are interested in helping with the complearn project then email your area of interest to Rudi at cilibrar@gmail.com . You must already know C or Ruby to help with this project.
Packaging
CompLearn was packaged using Autoconf and compile scripts are generated through Automake.
Gang of Four's Design Patterns
CompLearn was written using several object-oriented design patterns as recognized by the Gang of Four in their classic publication Design Patterns: Elements of Reusable Object-Oriented Software. Singletons, Factory Methods, and Iterators are just a handful of such solutions implemented in CompLearn. The Adapter pattern, in particular, as seen in the classes CompAdaptor and TreeAdaptor, were employed to enhance flexibility and expandability.
Need more info on Design Patterns? Try these links:
Naming Conventions
Several styles are used in CompLearn's implementation.
- Classes and Structs - Pascal Case. First letter is uppercase. e.g., DataBlock, EnvMap
- Functions - Camel Case. First letter is lowercase. e.g., loadDoubleDoubler(), getValueAt()
- Variables and Parameters - Lowercase, unless a flag variable.
- Flags - Camel Case. f is the first letter. e.g., fIsRooted, fBinary
Commenting
CompLearn comments are compatible with Doxygen, the auto-documentation system. For more information on how to document CompLearn, please see Documenting the code at Doxygen's homepage.
License
CompLearn is released under the Berkeley Software Distribution (BSD) license.