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

Saturday, March 25, 2006

Busy with real life; compiler troubles

Been super-busy with real-life things the entire week, which, unfortunately, has left little or no time for Hydranode development.

One of the main problems I'm facing related to Hydranode right now is compiler(s). As reported earlier, VS2005 has serious memory leakage bug in iostreams library, and rebuilding the library, while fixing the problem, is only a partial solution, since it introduces several problems of it's own related to development and packaging. MinGW doesn't have that leak, and seems to produce lowest-memory-usage version of Hydranode, but has considerably longer compile/link times, as well as nearly twice as large final binaries. Currently I'm testing VS2003, which produces smallest final binaries (I don't fully know yet, but it appears I don't have to ship runtime dll's when compiling with VS2003, since at least XP has those DLL's installed by default), but it also seems to have at least some memory leakage (hydranode uses 50-60mb memory instead of the expected <30mb). I'd really love to use VS2003 though, since ~3mb final installer size (including user interface and qt dlls) is pretty appealing, compared to ~5mb with VS2005 and ~7-8mb with MinGW.

Another topic has been various progress/availability-o-meters in user interface. I have the bars from the designer but haven't gotten around to implement them. Basically, we'll have availability-o-meter (both in search and transfer), and progress-o-meter. The progress-meter is planned to display only progress, not detailed chunk status, as in emule, and most probably will be composed of three differently-colored parts - green for completed, blue for available, but not downloaded, and red for unavailable. Extended chunk-status-meter might be available from download details section (not implemented yet). On the progress-bar, we'll display the progress percentage, and I'm also considering merging the 'completed' column into the same progress column as well, to save space. So the text on the bar would become '78% / 467 MB' for example.


If it's just the size of the binary, why not use an executable packer like UPX (

Typically nice compression, no overhead, transparent decompression at runtime.
MinGw is twice bigger, even with compression
I was talking about final installer sizes, which mean compressed with winrar (or other packer) at maximum settings. The final unpacked size is irrelevant, since p2p users have large hard drives, but the installer size is, since that's what one needs to download initially.

There's high cpu (about 17% under P3-733MHz box, Win2003, ed2k+hnsh) usage with MinGW build when the waiting queue became as large as over 3,000
Usually, the P2P user also has no porblem in downloading hundreds of MB. I would not give too much consideration on the size. as long as its not 100 MB nobody will care. Using download servers such as sourceforges, or using P2P itself as well for distribution will server all purposes enough.
About the installer, I think there are to main user groups, but having a very small installer is a great advantage (a friend recommended Hydranode to other and giving him the small file or sending him by email/im in few time even on slow connections). Here is that I think about what's better for the two main user groups...

For Windoze people: What about using 7zip with a custom installer? This could reduce dramatically the file size, it's a very great and free compression app/algorithm.

For tuxie people: For Linux stuff it's a lot more important Hydranode being in most important linux distros, and installer is too secondary but you can do it in the Mozilla Firefox manner too.


About the *meters: I'm afraid because that graphical manner of showing avaibility/parts available/... it was seems very interesting, showing a lot of information in an easy way for the user. I want to know fastly viewing the downloads/search results:

- Available sources.

- If the file has complete sources available.

- If with all the sources available it's possible to download the file at 100% (are there parts on the file not available to download or all parts has sources available for download them all?).

- Estimated time to download the file, queue and related stuff.

- Bitrate/quality of multimedia files, specially in the search results. Codec used for the multimedia files (use ffmpeg for that).
Please not forget users using "anti-mainstream" window managers like Ion.

Like the Ion author said:

Just remember that not all programs will play nicely with Ion because of presumptions about the window management model and even incompliance to the ICCCM.

Please keep this in mind, I hope you are doing it actually. I'm a happy Ion user (test it, it may be too weird for you, but I love it).

Here is an extract of the Ion wikipedia entry:

In Unix computing, Ion (aka IonWM) is a tiling and tabbing window manager for the X Window System. It is designed such that it is possible to manage windows using only a keyboard, without needing a mouse. It is the successor of PWM and is written by the same author. Since the first release of Ion in the summer 2000, similar alternative window management ideas have begun to show in other new window managers: Larswm, ratpoison, StumpWM, WMI, and TrsWM. First versions of Ion were released under the Artistic License, while Ion2 and Ion3 (still under development) are released under the LGPL. Since version 2, Ion has been scriptable in the Lua programming language. Ion is still being actively developed by its original creator Tuomo Valkonen with the help of a growing Ion user community.

Source: Wikipedia entry of "Ion (X window manager)"
I hope you don't forget the power of regular expresions", they can be very powerful for filtering and searching. Put this for doing easier the addition of more search manners by the user and even by the HYdranode developers.

Average user maybe not know how to use it, but please not forget those "mythical power user" and the nerd ones. Maybe for the nerd ones that is nothing for them and they probably want the ability to use Lua and Perl scripts for Hydranode and Hydranode GUI 8>)
Post a Comment

<< Home

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