Version 34 of Christophe Muller

Updated 2002-05-23 13:00:55

Email: [L1 ]


Why Tcl?

Hello, I have been working with TCL since 1993, mostly for developing at Simulog [L2 ], the GUI of a simulation environment named "Open Modline" (and latter OML). It was included tools such as an "Experimenter" [L3 ], an "Analyzer" [L4 ], and a "Reporter" [L5 ]. I also used the Tcl format as a Data Interchange Format between the Qnap2 simulation engine and all the tools [L6 ].

Today, I'm still a big fan of Tcl, even if Java has become more important in my new job at Gemplus [L7 ], a Smart Cards [L8 ] manufacturer. I have been working on a Java framework for using Smart Cards named OpenCard Framework (OCF), see the web site I have set-up for more details: http://www.gemplus.fr/developers/technologies/opencard/ and the official OCF site: http://www.opencard.org/ . During three years, I have also been involved in OCF consortium technical committee and have specified its process for work with the help of Gary Ellison, from Sun (see http://www.opencard.org/work/ ). My interests are detailed (not very much) in my Advogato Personal info page: http://advogato.org/person/cmuller/

Now that I am working in a new project, I am back to using Tcl because I have set up an internal wiki for the project. I started from Jean-Claude Wippler's very good Wikit tool, written in Tcl and using his MetaKit database, and I have made a couple of changes. This is why I love Tcl actually, it's the language where you can take any piece of code written by anybody else and understand and modify it, I was already doing that 15 years ago and it still works! For me Tcl is the "Open Source" language, just try to do that with C++!


BTW, feel free to modify this page at will, it is a work in progress...

Of course!


Wikit

The part below is devoted to the project of enhancing Wikit.

News

Jean-Claude JCW :-) has recently announced in WiKit under CGI a new version of wikit named nwikit (see the Wikit Home Page [L9 ] for more details) and I'd like to finish working on my patches and then try to integrate everything in his new version.. (but some features are still being implemented at that time).

Rationale

The question one might ask is Why are you not using a Perl or PHP wiki that is already much more developed than wikit?

And my answer is that I'm very much concerned by the usability issue. I see other wikis with embedded HTML, %variables%, keywords, plugins, etc. and IMHO, they have many advantages but they also have a big drawback- their learning curve is slowly becoming as steep as HTML or LaTeX or even worse (Word!). Actually, I even find the rendered HTML pages difficult to read (and so difficult to use!) with many links, tables, etc. KISS is a good principle in UI (still IMHO). See, in the links below, Dr. Nielsen's site.

So yes, I would like more powerful features in wikit, and also a better looking CSS-ized HTML code with a few nice looking features, but no, I don't want Word at all. For this reason, I prefer to slowly modify wikit in a way that suits this philosophy rather than switch to Twiki, PHPWiki, or you-name-it.

A good example of this is that I have introduced the notion of headers in wikit but there is no new markup! :-)

Roadmap

Already implemented features are:

  • Page Editing Conflict Detection,
  • Local FS access through the new local:// protocol,
  • Proper HTML <html>, <head>, tags are generated,
  • A <link> tag for CSS is generated with styles/wiki.css as default,
  • Possibility of giving labels to external links (this one is a yucky hack...),
  • Title information added to numbered links in brackets,
  • Generation of headers for the title (H1), bold (H2) or italic (H3) lines,
  • Addition of named anchors for headers, to make linking easier,
  • Link to the Help page in every footer,
  • Static caching of pages after each edition for speed-ups,
  • Export script that allows tagging some of the pages as public and export them to a static web site (was useful for us..).

Plus the integration of two patches:

  • the Image Embedding patch from Jean-Claude, also applied here, and
  • the Last Diffs patch from Brian Theado.

Brian is the author of tkoutline. For seeing its new feature in action, click to see the last diffs of its own wiki - Home Page: [L10 ]). BTW, I find it very nice the way Brian gave access to the diff (i.e., the footer's Update on ... becomes a link).

My roadmap is:

  1. Finish implementing the new enhancements (see the list below)
  2. Port everything to the new nwikit
  3. Work on future enhancements, from the suggestion list (see below)

Still in progress are:

  • I didn't take the time to integrate a second patch from Brian dealing with "Table of Contents",
  • Support for map images, (will be using the Local FS feature for the first time, so for an internet wiki, it would need an upload script in addition, but this is not something very hard),
  • Support for drawing images with a Java applet [L11 ] such as Jfig or TWikiDraw,
  • A small wiki2latex script similar to the wiki2html (see Wiki format to HTML) that already exists, to help producing papers.. :-) although generation of Docbook instead of LaTeX would be fine too,
  • An index maker script that lists all the existing pages by alphabetic order, or by page number,

Suggestions (see also Suggestions for Wikit):

  • Submission of comments by email,
  • Printable Version link,
  • Page GC (or page deletion) for an empty page after an amount of time,
  • Preview button on the edit form showing the rendered HTML below the form,
  • Table syntax (?) I'm not sure about this one.. Maybe a small Java spreadsheet widget generating a GIF would be simpler.. (?),
  • Email alerts on specific pages,
  • Conversion of the CGI shell script to pure Tclsh first, then conversion either to FastCGI or to a script that does RPC to a wiki server using the Tcllib comm features. This would dramatically reduce the browsing time (although after the implementation of static pages features, the priority lowered..),
  • Upload of attachments for using local:// references,
  • Support for a user-friendly editor as a Java applet that could be launched from the form (?) I'm not so sure about this one either.. it is aimed at "Word users" but I would like them to give a try to wiki syntax first... :-).

LV with regards to the editor comment - perhaps there is a way to write something in Word (VisualBasic for Apps, etc.) that would convert a document formatted for Word into an equivalent Wikit formatted document... of course, it would be a 'downgraded' format. Note also that one requirement for wikits are that all features are accessible via the lynx text html browser. So a things like a Java component needs to have equivalent text access.


Wow... - After seeing all this, I'm now bent more than ever on placing nwikit into CVS. It will, as with MetaKit and TclKit, be essentially a reado-only setup. But in this case with eager interest in helping to consolidate things. There seem to be, right now, three people working on wikit improvements - not to ignore several who have helped in the past. The CVS setup is not intended to prevent anyone from going their own way and doing whatever they like with the wikit codebase - just an option for those who wish to see things come back full circle.

One last comment, *please* consider joining the TclersWiki discussion group on Yahoo. It's been dormant lately, but I suspect that'll change soon. I'll announce my nwikit progress there asap.

Anyway, great to see all these ideas... -JCW

PS. One of these day's I'll move my notes to the WiKit or Suggestions for Wikit page, or perhaps create a new page do discuss progress.

CM Thanks for your fast comment! I also agree that for three developers, a full-featured sourceforge site is really not worth the time to set it up!.. but a CVS with all the versions would be nice. I will try to finish the features that I am currently developing asap, in order to reach a stable state (hopefully). Then I will send a version to you and Brian, so that you can play with it, then I'll try to apply my patches to your new version (CVS might help me there.. :-). BTW, I am subscribed to the TclersWiki mailing-list (Larry "LV" put me in :-)

BTW, I am not sure that everything listed above will be desirable for the official version, even if some features are very necessary for us internally (I'm thinking about the export mechanism for instance), I'll leave it to you to decide what to integrate...


JCW Ah, but see, that's one of the things I'd like to refine a bit: the presen ce of packages will trigger functionality, i.e. plugins - in the nicest possible way I hope.

Ok. I have started to consolidate things. For now (pressed for time, leaving for a long weekend), I've brought it in line with Steve Landers' local mode embellishments (try it!). Still need to add a substantial amount of reshuffling and badly needed comments by AK, but I just won't have time to do it now. Here goes, the latest "nwikit" (which I'm calling "wikit" again, btw):

  • to just try it, download and run from this temp spot [L12 ]
        tclkit wikit.bin   (or chmod, mv, and run as "wikit")
  • to track CVS:
        cvs -d:pserver:[email protected]:/home/cvs login   (empty pw)
        cvs -d:pserver:[email protected]:/home/cvs co wikit
        tclkit wikit/bin/main.tcl
  • to pack it into a wikit.bin scripted doc:
        ln -s wikit wikit.vfs  (or "mv wikit wikit.vfs")
        sdx fs2sd wikit.bin

I'll tidy up and finish this work next week. Promise!


Biblio

A few interesting links for people working on Wiki engines (there are so many! ;-)


Category Home page Category Tcler's Wiki