"You can't win if you don't risk losing."
Throughout the last 1.5 years of this project, this blog has served one major purpose - to give insight about what's going on behind the scenes of an open source project, down to the gory details of every-day matters; questions, doubts and thoughts about past work, present objectives and future directions; to share the joy (and occasional sadness) of the life of an open source developer. Throughout this time, I have followed a strict rule of honesty and openness, even at times where it might not be the best option - everyone makes mistakes, but I believe that acknowledging that you made a mistake and correcting it is still better than hide your mistakes in the first place.
Throughout my life, I have always had hobbies of some kind - be it collecting stamps, playing online RPG's or coding free software. One constant that has followed from hobby to hobby is that I don't tend to stay with one thing longer than 6 months at a time. More often than not, I return to the topic (or similar topic) at a later time, usually after another 4-5 months of doing other things. Hydranode project has been a major exception to that rule, with a whooping 18 months of activity with only two vacations (2 weeks during xmas/2005 and 5 weeks during spring/2006). It was the complexity, the satisfaction of creating something that many deemed impossible, the constant chance to learn something new, the friends and blog-readers, that kept me going for all this time.
Doing such a large-scale project alone means 12-hour workdays without free weekends; it's a constant pressure to deliver quality code, user-support, and daily progress updates, which leaves very little, if any, time to spend time in unrelated activities. I have always liked to spend maximum amount of time with my hobbies, be it coding or playing online RPGs, and ignore the world outside computers altogether for extended periods of time. But ignorance can only go so far.
"The light at the end of the tunnel is a train."
We'd like to pretend that the world outside doesn't exist; that us, free software engineers, live outside the rules of the world; that we can provide a service that anyone in the real world considers expensive, for free. It's a fun game, but ignorance has the habit of coming to bite you at the end of the day; this isn't the first time this has happened [to me], and most likely won't be the last. Whether it's getting expelled from school, losing a job, or simply waking up one day, looking in the mirror and going "what the ...?", you suddenly realize all that you've been ignoring for a long time suddenly comes at you at frightening speeds.
"Ignorance can be cured; stupidity is forever."
From past experience, I can say that it's best to handle the situation, solve the issues, play by the rules of the real world, rather than bury one's head into the sand and pretend it doesn't exist. We all make mistakes, but it's those who recognize the mistakes and correct them that stand out as winners at the end of the day. I'm not saying that Hydranode is a mistake - definitely not; but there have been some mistakes made somewhere along the way, which must be corrected before moving on.
"When all your wishes have been granted, many of your dreams will be destroyed."
Everyone wants to get somewhere in life; everyone has a dream of what his/her life should be in a perfect world. Good things happen to those who wait, but on the flip-side, a sleeping cat can't catch a mouse, and left to themselves, things tend to go from bad to worse. In the end, it's all about choices. To pursue one's dream, or to hope that the dream comes to you. Reminds me a scene from
Collateral (2004), where a cab-driver has a dream of starting a limu-company on a tropical island, and is only driving cab temporarily to raise money... for twelve years already.
Is there a point in this post? Let's find a point. There are very few areas where one can work at one's own schedule, be as challenging, rewarding and intriguing as this project. However, despite what free software enthusiasts would like to believe, development costs money, and a hungry, unmotivated programmer is a bad programmer. Thus, instead of radically lowering the quality of development that has been the key ingredient in Hydranode development, I prefer to not develop when I do not feel motivated; it's like an artist drawing a picture - you can quickly see if the artist was motivated and interested or not.
Contrary to what many of you are thinking right now, this doesn't mean the end of the project. Knowing myself, it's highly unlikely that I can find other areas of work which provide this amount of freedom, flexibility and challenge as Hydranode and similar projects. However, developing merely for the sake of developing and rushing the product out of the door will only hurt the quality and final outcome of the project, jeopardizing the very essence upon which Hydranode was built on.
"The darkest hour is just before dawn."
The bottom line is that I've hit the bottom; both in the financial, and energetical sense; it's -28°C outside, deep into the long, dark and cold Estonian winter, with 4 months left before there's hope for warmth. But in all that darkness, there's a beam of light; a beginning of a path. I do not know if it's the right path, but the only way to find out is to get on it and see where it takes me.
To finish this lengthy posting on a more positive tone, there is one thing that I know for certain; I'v given it a lot of thought, and reached a conclusion that Hydranode is something that I truly want to do; but in order to do so, I must guarantee myself certain level of income and other pre-requisites; Hydranode itself was never designed to be a revenue-generating project, and attempts to attach such methods to it will only hurt it. But I have a plan, and if all goes well, within less than 6 months I hope to fully execute the plan, which will provide me with enough resources to do what I enjoy most - cutting-edge programming :)
Madcat.