changes; modularization
David Calinski <[email protected]> Thu, 16 Oct 2003 03:49:41 +0200
| Newsgroups | gmane.comp.tools.memaid.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi all, I removed categories from the core. I was very unhappy about the way they were implemented, and I just can't stand so many complications for categories that are almost of no use. There have to be another, simpler way - e.g. front-end can use multiple databases. I also removed, in the core, possibility to use "Forced repetitions" mode. Let me explain why I consider this mode to be bad. I designed MemAid to be a tool that allows to MINIMIZE time spend on learning by allowing anybody to make repetitions on *the most optimal* days (when an information is close to forget). Now, late repetitons are evil, they destroy the most optimal flow of learning. But it's really hard to avoid them - IIRC even in the first MemAid version (0.0.1) I implemented a basic algorithm to cope somehow with such repetitions. Late repetitions are evil, but MemAid *MUST* be able to cope with them. No doubts about it. We all may be late with repetitions (we may be on holidays without computer, or just don't have time for repetitions on a day.) "Forced ahead-of-time repetitions" are second evil. But evil that this time can be easily avoided (and was not present in earlier memaid versions) - just by not offering this "feature" to user. Yes, MemAid since 0.4.0 can cope much much better (NOTE: better =/= very well) with repetitions that are not on the "right time" - ANN can learn from such cases and ANN can give better intervals on them. But such repetitions still makes a lot of complications in code (e.g. see beginning of void move() in the old core - to really fix it here we would have to use (and save in elements.* files) yet another variable to count ahead-of-time repetitions and complicate code in more places yet.), and not only in code, but also horrible complication in the learning flow. And the most important is that such forced repetitions are of no sensible use in a software designed to MINIMIZE time spend of learning to the absolute MINIMUM while keeping retention MAXIMAL. There are some rare cases when the "forced repetitions" would be useful though (e.g. making repetitions before going for longer holidays without computer), but it's easy to make such routines outside the core - if anyone wants this feature. I simply don't want it in the core. Now, there are *many important* things to be done in memaid. Training ANN and ANN can be yet improved to give better intervals, faster learn from user, etc. - *this* is my area of interest in memaid. I want to make it better tool in when it comes to most optimal repetitions. I don't care about things I won't use (categories or other fancy stuff that bloats code and don't make memaid anything better when it comes to the basic idea of memaid use). If anyone wants a categories or any other things - feel free to write a module for memaid core. I would like to see memaid more modularized. E.g. I plan to write a module for statistics (e.g. stats.c) that would have much more statistical functions. There can be modules for categories, etc. A front-end maybe won't use fancy statistics - then it won't use statistics module. An another front-end maybe won't use categories - then it won't use categories module. Etc. I don't agree to bloat the core with everything, the core has to be "simple as possible, but any simpler". I should earlier write about it... but only now I realized that many things in memaid development are recently going in a direction that I don't like at all. Dave ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php