CGIForum is a highly configurable template-based discussion board. It supports expandable/collapsible threads of unlimited depth, name registration with password encryption, multiple sections from within a single script, previewing, searching, and marking of new entries. It also lets you specify date-ranges to limit the number of displayed entries. The included administration script lets you change, delete, and restore entries at any time.
Jind is an interpreter for a toy programming language. The aim of the game is to lead a person out of a labyrinth by giving appropriate textual instructions. The challenge is to find a general solution by using conditions and loops. Jind can be used to teach the basics of programming in an understandable, entertaining, and instructive way.
Alana is a highly responsive Turing Machine simulator with many examples, like (unary and binary) addition, subtraction and multiplication, "copy band content", string parsing examples, and divisibility and primality testing. The documentation contains an introduction to Turing Machines as well as some interesting theoretical information (halting problem, busy beaver, universal Turing Machines) and pointers to further literature.
Finomaton lets you comfortably draw and typeset finite state machines (automata) and similar graphs. The resulting graphs are exported to plain MetaPost and can be included in TeX and LaTeX documents for excellent typesetting quality. States are magnetic to facilitate connection, and any TeX command can be embedded in the labels of states and lines.
Hoarescope helps to prove partial correctness assertions of AL programs over natural numbers using Hoare logic (Hoare calculus). It can be used as an aid for teaching and learning this aspect of theoretical computer science at the undergraduate level. Hoarescope performs inferences as far as possible, usually leaving only a few terms for the user to prove. The resulting proof tree is exported to LaTeX for easy inclusion in your own documents.
Simsttab (which stands for "Simplistic School Time-Tabler") is a timetabling engine that can generate timetables satisfying requirements typical for secondary schools in Austria ("Gymnasium"-type), Germany, and maybe other European countries. It supports coupling of lessons and rudimentary room reservation.
> You're right. Can you think of a good
> example of a Tcl/Tk app that I should
> look at?
As I said, I would like you to have a look at two of my own programs written using Tcl/Tk, namely "Tickletankle" and "Alana" (available on Freshmeat) and I'm looking forward to hearing your oppinion about them. (Please note that the dialog system in Alana needs some minor refinements which will be included in the next release. If you want, I can send you my latest local version, which already incorporates them.)
I also wrote an application using Qt: "Spakes". Please look at it too, and tell me what you think about it or what I can do better by using the more advanced tools that nowadays come with Qt.
> No way. GTK and Qt with RAD are every
> bit as fast, and the end result doesn't
> look like complete garbage when you're
Maybe they are as fast, but Tcl/Tk is much more than just a GUI toolkit. It's a high-level scripting language offering many other things beside GUI programming (yes, Qt also offers much more, but I find it's not as beautiful and fun to work with as Tcl/Tk).
> Every Tk app ever written looks
> like it comes from the bad old days of
> early 90s Unix, complete with
> disastrously ugly widgets, poor support
> for basic interaction things like focus
> control, clipboard, drag&drop, etc.
In my experience, Tcl/Tk programs are among the most easily and most intuitively usable programs to work with. I also tried my best when writing my own Tcl/Tk apps. May I recommend that you have a look at Tickletankle and/or Alana (available on Freshmeat) and please tell me what annoys you.
> I suggest you take another look at GTK
> or Qt. They've come a long way.
Yes, maybe I should do this (have a look at Spakes, available on Freshmeat, written using Qt, and tell me what I can do better). Then again, maybe you should have a look at Tcl/Tk in turn.