Subject: OT - programming logflash Re: [lojban] Logflash

From: Brook Conner <[email-masked]>
Date: Mon, 08 May 2000 19:10:29 -0400

I started with rants and such, but quickly realized I'd put the more
interesting stuff first.

I posted a long tirade about programming tools for conlangs on the
conlang mailing list. It didn't address drilling software like logflash,
but many of the issues I think are relevant.

>From an engineering standpoint, a flash-card vocabulary drilling program
has several different components. Some of these are best left to
existing libraries (because they've been done and aren't specific to the
task at hand - displaying text and inputting it, for example). Others
are more specific, such as generating random permutations of the
vocabulary lists and tracking performance on the vocabulary. Logflash
puts the vocab into "piles" based on how well the user is doing on that
word. Deciding when to move vocabulary from pile to pile is an
interesting part of the problem. Deciding how to position text fields on
the screen is not "interesting" in the sense that it is not a
*programming* problem so much as a *usability* or *esthetics* problem
(both of which being skills that can be as demanding as programming in
their own right - don't think I'm holding up programming as the hardest
skill around - I'm trying to suggest what kind of skills are needed for
what parts of logflash).

While I think more software tools for lojban would be a Good Thing, I'd
hope that what resources lojban has would be used as efficiently as possible.....

Now the point-by-point stuff.... where I show my own programming biases......

Robin Lee Powell wrote:
> >> No, I meant I'm doing a complete rewrite from the algorithm statement, in
> >> C, using ncurses.

<programming-language-rant>

Eeek. How painful.

> > Using C is probably a very good idea,
> 
> Strongly agree.

Ooof. Okay if the author is really only comfortable in C, I suppose. But
this is really a case of using the wrong tool to get the job done.
You'll spend more time on memory management, parsing the file, and
tweaking ncurses than you will on any substantive flashcard
functionality. IMNSHO. At least do yourself a favor and use the GNU
readline lib, if you really can't stand using a programming language
more suited to the task (such as Perl, a perfectly awful programming
language that is amazingly useful). For that matter, Pascal is not
particularly well-suited to programming something like Logflash
(clearly, it can be done - the point is that other languages do it more easily).

> >using ANSI/POSIX would be yet even better so that it is very portable
> >at the end (I can help you with that),

ANSI C with Posix libraries is hardly the most portable of possible
solutions.... but I digress

> Agree. GNU autoconf is also good.

Again, probably not the best tool for the job, and, while easy to use
for people compiling someone else's code, it's a bitch and a half to set
up, and the macros are just from hell.

</programming-language-rant>

> >and of course make it GPL'ed. ;-))
> 
> Strongly disagree. The GPL is viral in a very virulent and obnoxious
> way. Use the LGPL or put it in the public domain or something.

Oh, I'm not even gonna deal with this one - take it to slashdot, kids.

Brook