A vision for clc-wiki
A one-stop-shop for a typical comp.lang.c reader or contributor, providing: posting guidelines for comp.lang.c, listings of useful C resources, a fully cross-referenced C language and library manual along with portable implementations and alternatives for library functions, headers and macros, and a C tutorial accessible to all levels of understanding. Various other featured articles would include style guidelines and comparisons, tips and tricks and 'a day in the life of a C programmer coding systems of type X'.
Quality ensured through a system of code and general content review by acknowledged technical experts; no page visible by default to a casual reader unless it's been reviewed. If no reviewed version exists, the page is clearly marked 'unreviewed' for the casual reader.
Where do we stand now?
The quality controls aren't there right now, but review templates (see for example the summary lines below code in strlen) allow for manual quality control procedures for anyone willing to perform code reviews. Reviews of entire pages aren't yet directly supported by the wiki software in any way.
Work is progressing on an extension to the wiki that will support all of this with minimal need for human intervention. Contact Netocrat if you're interested in details and the exact status.
Content itself is patchy. The resources part of the content is reasonably complete; the reference part is very incomplete and is still being structured.
Discussions on work in-progress
The Project:Feedback page is anonymously editable and can be used for discussing anything relating to clc-wiki.
Todo list
- content:
- flesh out the tutorial, language and library reference manuals
- write test harnesses for standard library functions and add to the reference page for each
- add missing K&R2 solutions
- flesh out the C style article
- general and ongoing:
- review any unreviewed code blocks and add results to the summary line
- review content of all pages for accuracy, completeness and legibility (especially immediately after a change); correct any issues and/or note the problem on the talk page.
- quality systems:
- extend the wiki software to support the review process described in the vision above
Future content possibilities
Other content ideas are:
- Selected comp.lang.c posts of archival value
- Useful utility code snippets and functions
- Lists of useful C-related software
- "the definitive portable C links page"
- Book reviews
- Links to online learning material
- Feature articles of relevance to a C programmer, implementor, teacher or student, describing one or more of:
- issues encountered whilst learning C or implementing/optimising a C compiler/library
- a neat use of portable C whilst implementing something
- a 'day in the life of ...'
- Anything else that's topical in comp.lang.c
Discussions to incorporate the comp.lang.c FAQ on the basis that the existing static site would remain as the official FAQ and wikified FAQ material would remain copyright Steve Summit and publisher are ongoing and positive, but currently this site is not performing that role.
Suggestions for content guidelines were also historically drafted on the page Planning:Proposed Content Guidelines.
Origins and history
The idea for this wiki publically surfaced on August 23 2005 in the original C FAQ wiki thread. Hosting on a home server with a DSL connection was volunteered by FlashGordon.
Intermittent planning, development and email discussion occurred for several months between those initially involved - FlashGordon, Ipapadop and Netocrat. At first it was assumed that comp.lang.c regulars would accept only a fairly strict charter with limited editing access, and edits by non-sysops were blocked. A basic voting extension was developed to support such a charter.
A (Perl) script to wikify and import the contents of Richard Heathfield's unmaintained K&R2 solutions site was written and attempts were made to obtain the consent of the various contributors for their contributions to be migrated to the wiki.
Around this point the limited editing access was loosened to allow editing by any logged in user.
Further discussion then occurred in the c.l.c wiki update thread that started on December 29 2005. On January 2 2006, during this thread, the K&R2 solutions import script was run; around that time the domain name clc-wiki.net was registered - until then the site had been hosted under the clc.flash-gordon.me.uk domain.
Around mid-January 2006 with ongoing conversation in the update thread, the community and resources category was populated with introductory comp.lang.c and C Standard pages along with compiler, IDE and home page listings, mostly seeded from Netocrat's static site.
Other content started accumulating - scs contributed a Portability and ANSI C Compliance article based on one of his past Usenet posts; various other contributors started adding terms and concepts and sketching out the start of a C library reference manual and a C language reference manual.
Much of the code for a portable standard library implementation was contributed by Gregory Pietsch; this was halted abruptly due to another thread on comp.lang.c starting March 12 2006 where allegations of copyright infringement were made. This resolved without legal problems and much of the code contributed can still be used.
Subsequent to and partly inspired by the copyright incident, a policies and conventions document was written. Around this time the style article began and Jannis began work on documenting string.h as part of the library reference. Discussion on the form and content of the C tutorial also began.
In early April after encountering some content structuring difficulties, a sub-project to develop a treeview-style skin was started - temporarily suspending the review/voting extension work. This in-progress skin was then installed on the test server and was also used independently elsewhere.
In mid-June the site moved to temporary hosting for about a week; on its return to its home base the Treeview skin was installed as the default skin and articles were retitled to suit it by a remote script run under the ImportBot account. Some accounts and edits - those for the period beginning about a month prior to the temporary hosting - were briefly lost and required manual restoration to the database.
Not long after that, the wiki's hosting moved from FlashGordon's home server to a professional server, payed for by FlashGordon, and also hosting his personal site amongst other roles.