Maintained by Brian Connors
Opened for business 21 March 2000
Last updated 21 March 2000


This is the Comprehensive Not Quite C Archive Network, a web-based clearinghouse for useful code modules and snippets for Lego Mindstorms-based robots using Dave Baum's Not Quite C programming language. NQC is a C-like language that supports the Mindstorms RCX and Scout controllers as well as the Technic Cybermaster controller; it is probably the most important third-party package for Mindstorms development, as well as the best documented (Dave has even written one of the two books on the market that cover Mindstorms).

If you'd like to have your code represented on the CNAN, submission guidelines are below. As for the "Network" part, that isn't quite there yet, but when it is you can find a list of mirrors below as well. If you'd like to contribute something, read the submission guidelines and contact me at connorbd@yahoo.com.

Map of the Archive

Mirrors

If you wish to put one up, contact me.

Submission Guidelines

Note that these are subject to change at any time, especially if the situation with regard to non-html uploads at GeoCities changes anytime soon.

  1. All work must be signed and must be written by the person posting the code. Anonymous, plagiarized or third-party submissions will be ignored and/or removed.
  2. All files must either be plain-text or use the standard CNAN boilerplate format. Due to the limitations of GeoCities' upload facilities, I can't currently accept tarballs, .zip files, or .sit files; however, if you wish to include a link to an outside site containing your code in such format, you may feel free.
  3. All files must be sent as standard email attachments.
  4. Unless explicitly otherwise stated by the author, all code belongs to the signed authors under terms of the Mozilla Public License. You may explicitly state any other open source license terms that you wish (including public domain), but MozPL was chosen since it seems to be the prevailing license in the Mindstorms community. I do not recommend GPLed code; see A Few Words on Licensing below for the reasons why.
  5. Your code will be posted as is, naked for all to see. You are strongly encouraged to format neatly and document thoroughly; code comments are nice, and a well-written HTML man page is better. This is not the IONQCCC, and one-liners are not useful sample code.

A Few Words on Licensing

The following is the opinion solely of Brian Connors and does not reflect an official position of the Comprehensive NQC Archive Network.

The prevailing license in the Lego world right now is the Mozilla Public License, which allows unrestricted use of derivative works but still maintains the original as an open-source product, much like the GNU Library General Public License; its proprietary twin, the Netscape Public License, gives the code's author special rights regarding its use that creators of derivative works do not, such as the ability to write "uninfected" code with the protected code.

This, to my mind, is the best of both worlds: the software is maintained as open-source, without trampling on the rights of the user. Unfortunately, this is at odds with the most famous open-source license of them all, the GNU General Public License, which recognizes no right to proprietary use of the code at all. I believe this is why the Lego community has adopted MozPL as the standard license for packages such as NQC and LegOS; however, it has the effect of making combinations of MozPL and GPL code legally impossible. If you don't like the terms of the MozPL, there is also the BSD license (use however you want, but give credit), the Perl Artistic License, the Apple Public Source License (use as you wish, but cough it up if the owner of the original code asks you to), and several others; check out Opensource.org to find a license that works for you.

I will accept GPL code, since it is too well established in the hacker community to ignore. But given the issues involved, I highly recommend that you don't use the GPL on any code you wish to submit to the CNAN; at the very least, stick to LGPL or one of the less "radical" licenses out there. Mindstorms is just a toy (a cool toy, but a toy) and I don't want to see petty lawsuits flying over the issue.

Mirroring the CNAN

You may provide a mirror of the CNAN, but in order for me to link to it you have to

  1. contact me so I can put you on the main page,
  2. maintain an exact, up-to-date copy of the archive (I may provide a perl script to crawl the site to make mirror maintenance easier),
  3. and maintain all contact addresses.
You may add a clause saying where your mirror is located, replacing the location bit below; if you want to release a CD-ROM or DVD-ROM collection, all you need do is get my permission in writing and send me a free copy. You may link to this site freely; in order to do so, you may use the following cleverly retro-70s graphic with a link to the master page only:

Legalese

The code fragments contained on these pages are the property of their creators; you use them at your own risk and at their benevolence, and I therefore ask that you respect their intellectual property as they wish. I make these available as a service to the Lego Mindstorms online community, and neither I nor Dave Baum, the author of NQC itself, are responsible for supporting them.

The graphics on this page (especially the pbrick^3 logo) are (c)2000 Brian Connors and the Comprehensive NQC Archive Network and may not be used without permission.

Lego and Mindstorms are trademarks of The Lego Group. If NQC isn't a trademark belonging to Dave Baum, it probably should be. Comprehensive NQC Archive Network is not a trademark of Brian Connors, but as long as I'm maintaining the archive I'd prefer you pretend that it was.


Location: http://geocities.datacellar.net/ResearchTriangle/Station/2266/mindstorms/cnan/index.html

Click here to return to my Mindstorms page.
Click here to return to 2266 Research Triangle. 1