Eduka+ is one of my pet projects I’ve been working on a very long time ago (started 5 years ago I think). The Idea was to create a replacement for 2 programs used in Moldavian schools to teach children the basics of programming. Of course, being a pet project it grew beyond just that, incorporating a good help system, cool artwork (thanks Ion Popov for that) and many more functions. After 2 years of updates it pretty much stalled – until this week. There were some interests in this program so I was quickly motivated to produce some binaries to be distributed. I hit some problems along the way of course:
- It is horribly horribly written! I can’t even wonder how did I come up with such code 🙂
- Because of 1 there seem to be some problems on multi-core machines. The application is not really thread-safe but it works on one core pretty well.
- It was written in Delphi 7 and depended on some 3rd party components that made translating to a newer version of Delphi quite a hurdle.
Fixing the code is a no-no because I do not have the time nor the interest to do that which leaves us with threading problems. I did manage to hack-solve them by issuing SetProcessAffinityMask() calls to specifically tell windows to use one single CPU for the application. And for the 3rd party packages – Ion managed to remove the dependency on JEDI package (which provided replacements for the standard components) and I made it so that SynEdit package would not require to be installed as a component anymore.
All that actually revived Eduka+ and made it possible to build it on Delphi 10 (well with a little fixing of course).
There is a Google Code project for Eduka+ now (GPLv3) which you can find here. We hope to release a final version 1.7 very soon and actually finish what we have started!