Alo Sarv
lead developer

Donate via

Latest Builds

version 0.3
tar.gz tar.bz2
Boost 1.33.1 Headers
MLDonkey Downloads Import Module Development
Payment completed
Development in progress.
Developer's Diary

Monday, September 11, 2006

When is a software project "finished" ?

anonymous commented: After that much work done, I cannot believe this will stop here. If the project is not finished, Madcat, was a waste of time.

Define finished please. I have created generic cross-platform P2P client framework/API, and two proof-of-concept modules; I have created graphical user interface, an extendable IPC mechanism and much more.

Hydranode was meant to attract a lot of external developers due to it's well-documented and well-formatted codebase, as well as it's base API's generic nature; I've already written a couple of custom applications based on Hydranode base libraries, well beyond the API's original ideas.

Yet as it turned out, the quality standards are too high for external developers to join; also, when you have a messy codebase, everyone jumps in trying to "fix" it (I saw that working very well in *mule projects), yet a well-formatted and well-structured codebase, the average OSS programmer won't have an idea of where to start because there aren't easy things to fix.

As far as "finishing" the project goes, you can never call a piece of software finished. There's ALWAYS room for improvement, new features and such; yet I don't have a lifetime to spend on something that takes 15+h/day to develop and brings me zero income. I no longer have the luxury of living with near-zero monthly expenses - I gotta earn money to pay for food, rent and so on and so forth.

My greatest regret with Hydranode is that I didn't create a messy codebase; if I did that, there'd be a full-sized team behind the project already; but as it stands now, there's very little hope someone will pick up this project's maintainance, since developers knowing sufficient amount of C++/STL/Boost are hard to come by in OSS community, as it turns out. Personally, I know about 2-3 developers who'd have sufficient skillset to continue this project at these quality levels, and all of them are busy with other things.

Lesson learned - well-written codebase will cause most coders to run away in fear, rather than join in. However, I would never call Hydranode a waste of time; it's a great CV/Resume entry for me (I've gotten multiple job offers over the world already, from people who've seen Hydranode codebase), I've mastered advanced C++ (I knew very little C++ when I started this project), and I learned quite a lot about user interface design, usability testing and so on - all very valuable. I wrote Hydranode because I wanted to learn; towards that end, Hydranode has been a major success. But Hydranode failed as OSS project; next time I start some OSS project (doubtful it'll happen though), I'll create a messy codebase using basic C++ (no template metaprogramming, design patterns or any other of that "advanced crap"), and I'm willing to bet large sums of money that developers come running to join in.

If you do wish to continue this project, drop me a mail; other than that, as long as there's no decent financing behind this project, I cannot afford to spend time on it in foreseeable future.


Bummer - but understandable.
Best wishes...
How loing can measure 'forseeable future'?

Best wishes to u ...

I'll miss the time spend with every step (revision) of hydranode, and those develop blog that I must read for each day.
since developers knowing sufficient amount of C++/STL/Boost are hard to come by in OSS community, as it turns out

It is a problem of the free software by now. Most times free software means no money costs. There is no money, and people needs money. I need a lot of it many and I will never do such a thing as Madcat did. You are very sacrificed. It is very sad that this great project will stop due to money reasons, until free software developers can really make a living of his work.

But the most general question that we should send to the air is: Until when will this happen? Will someday most of OSS devs make money from their job like if you where working in Microsoft?

If not, most initiatives like this will fail. Only projects like this success when there are major needs (web browsing -> firefox), when there are few competitors (and there are a lot of P2P programs, most free software like emule and azureus) or when are supported by huge software entities. Most k* programs succeed because they "belong" to the kde project and gnome suceed better than kde because was the ubuntu default desktop environment.
So what if C++/STL/Boost programmers are hard to come by? I'm willing to learn. What are some _good_ resources that you'd recommend?

Also: Some documentation of hncgcomm would be nice ;-).

Madcat, if you plan on walking away, (and I think that'd be a shame - this is a remarkable peice of software!) in the spirit of open-source try to find a successor that'll keep this project alive!
The resources I used for learning C++/Boost/STL:

Thinking in C++ - free, excellent book about STL and C++

Design Patterns -, excellent overview and detailed information about design patterns - language-independant)

C++ Templates - The Complete Guide by David Vondervoode - expert-level C++ template metaprogramming book, from - Quick reference for ASCII table and STL

Advanced SGI STL reference

Boost libraries reference.


I've been looking at the Hydranode code for a couple of weeks now... picking up C++ again (it has been a while), willing to help this project to remain alive. But it will take some time...

And before enig123 asks... I believe "some time" means a couple of months, but I'm not sure. :-)
It wasn't a waste of time, it's the best p2p app (core+gui) I've ever used. I can't believe no one wants to develop on hydranode. If I had the time I'll be coding... Long time ago I tried to understand mldonkey code and it was awful. I though it was good to have a new projet from scratch as hydranode, well coded and well documented. I can't believe no one follow your steps. It's OSS code so someday someone will start from it, I hope so. Best whises Madcat
Madcat...rly...i'm crying...
What should I say, it's sad.
Best wishes.
It´s to sad..
Please continue man !!!!!!!!1

You work is so high quality !!!
This job can get you famous and you can get job easy !!

Everyone know you quality of code !, i cannot help code the core, but sure i can help into gui !

Please stay !
hi madcat,
what are the plans for making a new homepage? i am thinking to make a simple non technical homepage to make hydranode more popular, but if this page gets a more "mainstream" design i better stop these plans. perhaps a video on youtube/digg with a nice presentation of hydranode will make some puplicity for new developers.
I will miss your development blog....I used to read it everyday

best wishes and thanks for your work.
I'm using HN for some time, now. I though it could became a very good peace of software in couple of release (I think it's still missing something).. I'm a little sad! I think that HN didn't attracked programmers because of a low number of users. And low level of user for .. .I don't konw, probably they prefer a full featured software rather than walking on the wild side... well all this for saying: thanks a lot for everything Madcat. fedro
I don't think its about the lack of skills amongst OSS developers. Complexity is, of course, one thing. Even with good skills, a complex project still needs time to get used to. Hobbyists seldom have such time when they just want to add or fix something simple. Then, hydranode IMHO lacked one standard OSS way of communication: a (developer) mailing list. Forums just don't cut it.
Hope this is not the end.

You did a great job.

If it is... best wishes... you are great.
hydranode is the nicest and most well engineered piece of software that I ever saw. I really enjoyed dropping some lines in it, also If I couldn't spend as much time as I wanted on the project. Thanks and best wishes to you

Andrea (cyberz)
Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?