Both developers and users like to see their program evolve. JPD like many other open source projects relies on user feedback. Indeed developers are satisfied when they present what users want in their software. For such reasons we extremely value feature requests and bug reports. These are the tools for our success and tools for users to have stronger and more useful open source programs.
JPartialDownloader is a Java HTTP[S]/FTP/BitTorrent partial
downloader
. At least it started out this way. Our goal was to
write a program that downloaded files in pieces and later on merged
them to reconstruct the main file. But after a while most of our
development efforts were put on the BitTorrent protocol. It was very
helpful if you could download only some of the files of a multi-file
torrent. Multi-connection HTTP/FTP downloads was also added.
And now the project is moving in the direction to support features that are some how related to partial downloading.
When JPD started it was simple, we needed an URL and an optional range to start downloading. It had a Command Line Interface and a simple Graphical User Interface. But in order to add new features we needed stronger user interfaces. (For example supporting mirror sites, multi-output files or selecting files from BitTorrent downloads).
Extending the CLIs would have made them very complex and a few people bothered to read the documentation and use these features. So we needed stronger UIs. There were two options in front of us. Using XML or GUI. Using XML was a acceptable approach and it was easier to test but most users prefer the GUI. So we decided to add a stronger GUI and left XML to be added in future.
We use "make it run, make it right" cycles. (Or maybe "make it right, make it fast", whichever you like.) Now there are many places in the program that can be optimized for memory usage, but as optimization decreases development speed we don't try to make the program as efficient as possible. Instead in each release some new performance bottlenecks are fixed.
Currently the program is started with a limit of 64MB of memory. This
amount is more than enough for HTTP/FTP protocols but the dynamic
nature of BitTorrent downloads requires more memory. You can pass the
-Xmx128m
command line argument to your virtual machine to
extend the memory limit. (That is java -Xmx128m -jar jpd.jar
...
).