With Windows sockets, it is imperative to look at the error returned by send() if it fails. If the error is WSAENOBUFS, then it means that the packet you are trying to send is too large and must therefore be reduced. It is possible that the Java implementation doesn't do this.
Here is a snippet of code that is NECESSARY to be able to transfer data reliably on Windows. Please note that while just a single send() will work most of the time, there is no garantee that it will. Try, for example, sending chunks of 1MB, 8MB, 64MB, 128MB and 256MB and see at what point you get WSAENOBUFS. You may be surprised.
I couldn't agree more about Slashdot really dropping the ball on this one. The funniest/worst part in my view is that the Register story is about a previous slashdot story, with a link to a post provided! Talk about a dup.
For sure, I agree with the thinking that reverse engineering is good. I think that the issue here though is the use of unsanctionned client software that can produce costly effects for BitKeeper.
McVoy did mention that in the past, someone played a bit with some of the internal file structures and that it ended up costing him $35,000 to fix the problems that it created. I can imagine that a client software, that was developped only by reverse enginneering, has the potential to cause serious damage to his company. In truth, open source software is not always tested extensively. In this case, especially not against a server who's developper doesn't want to share the interface.
Now, are there solutions to this situation? Yeah, plenty I think.
I don't necessarily disagree with your post, but I want to point out that TV stations don't tend to download shows off kaazaa and then charge for them. They tend to license the shows which in other words make (part of) your payment to them go up the chain to the originators of the shows.
Just like, with music, it would be nice if a little download of content was associated with a little upload of cash. Like instead of opening the upload ports for faster download, open the wallet.
Otherwise, we may have to always contend with garage productions. In a way, that's also similar to OSS!
that other English speaking countries are unable to make their own TV shows and must therefore import everything from the US (especially stuff like the West Wing).
Not that the US would run their shows (except rarely on PBS) , but maybe they could make something successful at home.
Good old Debian stable mighty be a safe bet for organisations wishing to avoid being targetted by lawsuits.
As we all know, Linux 2.6 is rife with stolen SCO code (milions of lines according to certain estimates). This may also be true for 2.4, but to a lesser extent. It's still being looked at AFAIK.
In my view, the biggest problem that MS is trying to solve here is not people who buy pirated software on the street (which is impossible to do), but rather make people who buy new computers get a legal copy of Windows immediately by making the added cost not much at all.
So in other words and a short sentence, they are targetting second and especially third tier OEM's, IMO.
You might know how easy it was to turn NT Workstation into NT Server.
In Windows 2000 (and maybe XP), in order to prevent people from doing this, the system idle loop was modified. It scans the memory area where the setting for this is located about every second, and replaces it with the right value if it was changed.
Now that's an interesting way of enforcing crippled software.
Hi,
With Windows sockets, it is imperative to look at the error returned by send() if it fails. If the error is WSAENOBUFS, then it means that the packet you are trying to send is too large and must therefore be reduced. It is possible that the Java implementation doesn't do this.
Here is a snippet of code that is NECESSARY to be able to transfer data reliably on Windows. Please note that while just a single send() will work most of the time, there is no garantee that it will. Try, for example, sending chunks of 1MB, 8MB, 64MB, 128MB and 256MB and see at what point you get WSAENOBUFS. You may be surprised.
while (cbBuffer > 0)
{
for (cbToSend = cbBuffer;;)
{
cbSent = send(Socket,Buffer,cbToSend,0);
if (cbSent >= 0)
{
Buffer += cbSent;
cbBuffer -= cbSent;
break;
}
else if ((WSAGetLastError() != WSAENOBUFS) || ((cbToSend >>= 1) == 0)) return FALSE;
}
}
Note that on UNIX you should check errno for ENOBUFS as well, just in case.
Indeed, I am sick and tired of it!
Yeah but if you got all your news from blogs like I do, you would be as well informed as you are now, and for free!!!! ;)
I couldn't agree more about Slashdot really dropping the ball on this one. The funniest/worst part in my view is that the Register story is about a previous slashdot story, with a link to a post provided! Talk about a dup.
For sure, I agree with the thinking that reverse engineering is good. I think that the issue here though is the use of unsanctionned client software that can produce costly effects for BitKeeper.
McVoy did mention that in the past, someone played a bit with some of the internal file structures and that it ended up costing him $35,000 to fix the problems that it created. I can imagine that a client software, that was developped only by reverse enginneering, has the potential to cause serious damage to his company. In truth, open source software is not always tested extensively. In this case, especially not against a server who's developper doesn't want to share the interface.
Now, are there solutions to this situation? Yeah, plenty I think.
I don't necessarily disagree with your post, but I want to point out that TV stations don't tend to download shows off kaazaa and then charge for them. They tend to license the shows which in other words make (part of) your payment to them go up the chain to the originators of the shows.
Just like, with music, it would be nice if a little download of content was associated with a little upload of cash. Like instead of opening the upload ports for faster download, open the wallet.
Otherwise, we may have to always contend with garage productions. In a way, that's also similar to OSS!
that other English speaking countries are unable to make their own TV shows and must therefore import everything from the US (especially stuff like the West Wing).
Not that the US would run their shows (except rarely on PBS) , but maybe they could make something successful at home.
The beacon of Western civilization.
Lunix Torvalds
Out of curiousity, did you try running Solaris x86, and if not why?
Good old Debian stable mighty be a safe bet for organisations wishing to avoid being targetted by lawsuits.
As we all know, Linux 2.6 is rife with stolen SCO code (milions of lines according to certain estimates). This may also be true for 2.4, but to a lesser extent. It's still being looked at AFAIK.
In my view, the biggest problem that MS is trying to solve here is not people who buy pirated software on the street (which is impossible to do), but rather make people who buy new computers get a legal copy of Windows immediately by making the added cost not much at all. So in other words and a short sentence, they are targetting second and especially third tier OEM's, IMO.
You might know how easy it was to turn NT Workstation into NT Server.
In Windows 2000 (and maybe XP), in order to prevent people from doing this, the system idle loop was modified. It scans the memory area where the setting for this is located about every second, and replaces it with the right value if it was changed.
Now that's an interesting way of enforcing crippled software.
I like Solaris. I find that it's more professional and robust than Linux. But what do I know, I only wrote Linux.
I would like to see more comments in the new code coming in from the contributors. Watch out for an announcement concerning this on the mailing lists.