p300 On Uservoice
p300 now has a sub-page on uservoice.com. If you have ideas or feature requests, feel free to vote or submit them ![]()
p300 now has a sub-page on uservoice.com. If you have ideas or feature requests, feel free to vote or submit them ![]()
Our beta tester ShadowIce found (and hopefully solved) some problems with the p300 bandwidth limiting code when you are using Windows 2000 and Opera. It made web browsing very slow when an upload was running and bandwidth limited in p300. This will be fixed in the next release.
Thanks ShadowIce!
The latest version of p300 mainly focuses on UI improvements and some smaller bugfixes under the hood.
Changes include:
Have fun ![]()
The new p300 version will have an updated look which is more messenger-like. Also I have done some usability improvements.
Contact me if you want to test ![]()
Maybe Finding good names should have been written earlier
Because p300 just means “project” + “$number_that_came_to_my_mind” ![]()
I’m currently changing the windows in p300 to a MDI interface.
While doing this, I have found a nice Java thing: setLocationByPlatform enables you to let your JVM choose the position of a new Window. This means that windows won’t be placed at 0,0 but will be overlapped according to what your platform thinks is nice.
The latest version of p300 is a bugfix release, fixes and enhancements include:
Have fun ![]()
I’ve recently spent some hours to track down a mysterious bug and I just couldn’t find it. Since my application is using a lot of Threads/Workers it came to my mind that a RuntimeException I did not catch could be the cause. I wrote a global handler for it and found where the problem was
The code in p300 I am using:
Somewhere in main():
Thread.setDefaultUncaughtExceptionHandler(new P300UncaughtExceptionHandler ());
The class:
public class P300UncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {
public void uncaughtException(Thread t, Throwable e) {
System.err.println ("Uncaught exception by " + t + ":");
e.printStackTrace();
}
}
How to test it:
new Thread () { public void run () { throw new RuntimeException ("x");}}.start ();
For p300 I am currently using a Selector to check if I can read from or write to a socket.
However this lead me to a weird problem: I am selecting for at most 30 seconds and I have received a timeout for writing even though this can’t really be and only happens with some OS combinations. I’ve found this thread in the Sun Forums and adapted my internal logic to the information from this thread:
Instead of always selecting for OP_WRITE when I want to write, I just try to write. If i was not able to write everything (that is, buffer.remaining () > 0) I select for OP_WRITE.
This seems to work fine
(That fix is not in p300 619 yet, it will come with the next bugfix release in the next days)
I have released a new version of the p300 file sharing tool. Changes:
Get it at the p300 website.
Thanks to the people who tested it ![]()
I’ve started distributing beta releases of p300 to selected users. If you want to participate in testing new releases please contact me ![]()
A stupid thing about Java NIO and using blocking sockets (Who does that? Me in p300 because I want to use the increased performance of using FileChannel.transferFrom) is that the SO_TIMEOUT is not used anymore even if you set it.
However, switching to nonblocking IO is not that hard. You can use one Selector per SocketChannel and select() for OP_READ or OP_WRITE before every read or write. This way you can have a select (timeout in msec).
The URL of the p300 website has changed from p300.fauleban.de to p300.eu
This should be easier for non-german-speaking people to read and remember. (by the way, “faule bande” means “lazy gang”)
I have read that that the Updater of Shareaza will download another client that is not the original Shareaza but another Gnutella client, together with some Adware.
Even though p300 has a very very small userbase I am happy that I have implemented cryptographical signing from day 1. So such a thing will not happen if someone is able to get hold of the p300 website.
By the way, the real Shareaza page is on sourceforge now.
The changes from the last version:
Have fun downloading it at the p300 site. Thanks to all the testers.
I consider checking out GCJ (with or without SwingWT) for the Windows-Version of one of the next p300 releases. But first I’d have to see which licensing issues this would bring up
Why only the Windows Version? OS X users can be happy to have Java per installed default, Linux users are used to installing things (in this case a JVM).
This is a rather boring new release with not much new features, but some bug fixes:
Get it from the p300 site ![]()
(Part 1)
I had problems with moving files after their downloading has been finished. These problems did not occur on Unix-like operating systems like my OS X and Linux but only with Windows. I just was not able to move the file with file.renameTo of the Java API.
After some researching on the web and especially the Sun forums I saw that I am not alone with this problem. The solution is stupid but logical: Before using file.delete() or file.renameTo():