Every time you think you see light at the end of the tunnel, as you near it, it always seems to fade away and move farther away. We'v been on this path for long time already ... really frustrating, I might add. But I guess that's the thing with entering the arena as newcomer - you need to be capable of doing everything the existing masters are capable of - masters that have been around for years already - and then also have things the existing masters aren't capable of.
In current context, we'r still playing catch-up game with emule ... but the end is near. Basically, we'r missing secident and kademlia ...
It seems the closer to the end you get, the slower things are moving. Things that used to take mere few hours now take days. Take SecIdent for example - normally it would'v taken cpl days to implement, but now I'v been sitting on it for two days already. Sure, there's progress, but cmon - 2 days for some simple feature? Guess the spring or whatever tiredness is kicking in again.
Besides progressing on the SecIdent stuff, I also managed to close a major memory leak - we were leaving around lots of zombie clients due to some internal variables not being reset properly in Client class. There still seems to be one more leak around, regarding SourceInfo member, which I hope to close also before 0.1 release.
Yes, you heard correctly ... I'm thinking 0.1 release soon. Thing is - if I don't release 0.1 soon, I probably never will. You know all those dead projects on sourceforge, which usually die either before, or shortly after 0.1 release? Wouldn't want hydranode become yet another one of those. Technically, I should'v moved to 0.1 release months ago, but no, I wouldn't listen (to myself), I still had to spend time rewriting some internal API's, and perfect things ... time well spent, no doubt, but at some point you just have to tell yourself "its good enough" and move on ...
Current 0.1 roadmap indicates that we need SecIdent, dynamic incoming data decompression and better usability in shell (cancel `download` command would be nice). Everything else just has to stay as is - we really need to move on.
Kademlia, Ares, Bittorrent and GUI are the 4 additional things I need to implement before 1.0, so 0.2, 0.4, 0.6 and 0.8 releases could be dedicated to each of those 4 features. Technically, Kad, Ares and BT should be rather easy to implement, considering we have a pretty good API implemented in core, but only time will tell what will really happen. On the GUI stuff, considering that I have to also learn QT in the process (experience with wx helps tho), it probably takes a while too. Whatever the case, 1.0 won't be out before june/july, simply because of QT4 release date, which we are bound to (can't release win32 version of GUI before QT4 due to licence restrictions, though it's unlikely the GUI would be finished before that anyway).
So anyway, back to sleep, regain some strength, and try to finish SecIdent tomorrow.
Madcat, ZzZz