Clifford Adams

See for current contact information. I have not been an active reader or contributor to the C2 wiki for well over a year (as of May 2004). Most of my contributions to this Wiki are anonymous, but you can click the title of this page to see the signed pages. -- CliffordAdams


Cliff wandered into Wiki around July 1999, and he had read most of it over the next two years. He often wondered WhyWikiWorks (and sometimes WhyWikiWorksNot). In late 1999, Cliff tried to improve the C2 wiki through the ChangeSummary project, which taught him difficult but valuable lessons about the limits of the C2-wiki community. Cliff was more successful in lobbying WardCunningham to solve the problems described in EditConflictResolution.

Cliff's major wiki project is UseModWiki, which has spawned several derivative projects.


Cliff is the author of the strn (usenet) newsreader extensions which add scoring, virtual newsgroups, and the "scan" modes to Wayne Davison's trn (which is an extension of Stan Barber's and LarryWall's rn). (At one time s/t/rn had #ifdef-ed code for both the PDP-11 and Cray supercomputers.) Strn was about 10K lines of C at its largest point (trn was about 40K lines). Cliff stopped actively maintaining strn in 1995, and merged most of its changes into trn 4.0. He believes LifesJustTooShort for vt100 interfaces and languages like C.

Strn was envisioned as the first stage of a Usenet Moderation Project, with a goal of giving people tools to share rating, summary, and editing information about Usenet postings. The only implemented idea was the sharing of scoring and virtual newsgroups using http. Cliff now hopes that these ideas can be realized in UseModWiki.

Forth and Smalltalk:

One of Cliff's old favorites is the ForthLanguage. Long ago Cliff implemented LispInForth? on a Commodore 64 (he couldn't quite afford a Lisp machine). He started with core data structures (atoms and cons-cells), advanced to list and symbol manipulation, then he simply translated the Lisp functions from a Lisp in Lisp demo. Cliff has considered a SmalltalkInForth (possibly by translating the Squeak SmalltalkInSmalltalk?). He thinks Forth could be a wonderfully powerful and flexible bytecode layer for Smalltalk.

Cliff has too many projects, but he sometimes thinks about "SmalltalkWithValues?" (think "C with Classes", but inverted), which would allow multiple classes to use the SmallInteger optimization. The cost would be one bit of SmallInteger coverage, and the initial idea would allow 16 or 32 small-value classes (each with 24 bits of value). Cliff is almost certain that someone else has already tried this - he can't be the only person who contemplated subclassing SmallInteger.


Cliff was the winner of the Third Annual ObfuscatedPerlContest? in the "Most Powerful" category. He can write and sometimes understand code like:

 #!/usr/local/bin/perl -s
 do '';($_,$n)=@ARGV;s/^.(..)*$/0$&/;($k=unpack('B*',pack('H*',$_)))=~
 ),$x):0,""/ge;($r,$t)=&bdiv($r,256),$_=pack(C,$t).$_ while$w--+1-2*$d;print}

(See for an explanation.)

Cliff is responsible for MeatballWiki and, hence, I owe him a round of beer. -- SunirShah (can I talk about him in the third person too?) [Sunir can if he wants too :-) -- SeanPalmer]


EditText of this page (last edited February 16, 2005) or FindPage with title or text search

Meatball   Why