Notes for Developers
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 firstname.lastname@example.org . You must already know C or Ruby to help with this project.
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:
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
CompLearn is released under the Berkeley Software Distribution (BSD) license.