What's wrong with a bit of creative poisoning? Assuming it doesn't turn into a mail flood, it's not as though you're violating standard network ethics by sending a few emails, especially a few emails that they sent.
So go ahead - tell them that there are several different open smtp relays in the 127.*, 10.*, 172.16.*-172.31.* and 192.168.* IP ranges.
What would be better is to get a friendly admin to provide you with several IP addresses that either go nowhere or are behind a port 25 blackhole.
For advanced spammer annoyance, you could get a bunch of people in several different netblocks to volunteer to run SMTP blackholes (they need to have cheap bandwidth). An SMTP blackhole would accept the mail but then fail to deliver it anywhere. Then feed the spammer these machines as open proxies.
Actually, what about this design for an open relay: the first mail from any given IP address gets through, but starts a counter that will go back to 0 after 24 hours. Any subsequent email from that IP address will simply reset the counter. The end result is that the open proxy test will go through, and then probably the first spam mail, (assuming a different machine is used to test than to spam) but everything after that will be blackholed. Extending this to faking open https proxies that allow the spammer to connect to a given open smtp relay is left as an exercise for the reader.
Adding standard "useing this for spamming is unauthorized access" verbiage to the blackhole's EHLO line might also be adviseable. However, you might want to ask a lawyer about the consequences of something like that.
Of course, it'll take the spammers about a week to have all their software updated so that open relays of this type are no longer effective, but something's better than no respite from spam ever.
Yes, the GPL is an aggressive license, and yes, you get into trouble if you link to GPLed libraries and then release the result under a standard closed source license.
That's just the way the GPL is, (by design) everyone knows it by now (or should). Get over it. Saying "OSS use may == legal trouble" is using such a broad brush that I'm sure that someone could easily accuse you of spreading FUD.
There's no reason not to use GPLed source in building your closed source app. Want to use gcc? Fine. Want to use gnu make and bash to handle your automated builds? Fine. Want to use the ncftp client to automatically move your nightly builds from one place to another? Fine.
Just don't link in GPLed code into your proprietary executeable. (And, ok, I could see some worry about not wanting to link to LGPL'ed modules either if you're the kind of place that wants to slap sixteen kinds of "do not reverse engineer under penalty of whatever we can think of" clauses into your license agreement)
But use? Fine.
Also, there's a big range of licenses before you hit public domain that generally cause no problem being integrated into proprietary development. There's the X11 license, the very similar new BSD license, the old BSD license with advertising clause, the Apache license, the Perl Artistic license, etc.
Implying that open source libraries are somehow unique in the potential for licensing issues in code that uses them just tells me that you have not dealt with enough proprietary libraries or that you fail to realize that the payment of royalties is a licensing issue.
You know, the government ought to collect and disseminate the temperature data that the National Weather Service collects in a computer parseable format via anonymous ftp.
Oh wait, they do. They even provide you with loads of docs that will tell you more than you ever wanted to know about the format of government weather data.
I like the approach that VMS used - if you asked it to, it would generate a selection of random passwords that were still pronounceable. (You were then forced to pick one as your new password, or ask for a new set)
Actually, here's a better thought for JMSmythe's system: use one of those perl markov chain programs on a markov model trained to model English words, (I'm not sure whether you should train it on a dictionary or on English text, since training it on English text will tend to overemphasize certain words) and then drop two random digits somewhere in there. Then filter for the desired length, and present the users with a choice of (say) the first 10 things to come out of the generator.
Then you thought incorrectly. Trademarks are subject to such a required defense, but patents and copyrights are not.
There is the doctrine of laches, which allow a judge to hold that a patent holder, having allowed a use of their patent to go on without notice, cannot collect damages for use of their patent prior to filing suit, but this in no way invalidates their patent nor does it prevent them from collecting damages if the same defendant should happen to infringe on their patent in the future. (Laches is basically a way of wedging the reasonable "but I didn't know it was a problem" defense into patent law)
And no, IANAL, but I do know how to use Google (TM).
And perhaps if you narrow it that closely, you're right. But how about using the slightly larger area of "mathematics or computer science academia" and my name?
Now, I'm no longer in that scene, being a graduate school survivor, but when I was, I remember getting a request from a Swiss library asking whether I had any spare copies of "my book" 'Manifold Theory'. (The library's copy had been stolen, and it was out of print.) Of course I'm not the person they were looking for, and in fact (I believe) that the author was in fact already dead at the time they asked. (an odd coda is that a paperback version is now back in print)
So really, names aren't always that useful, even in a slightly specialized field.
After all, you'd hate to end up in a situation where you needed to prove to your hardware that your software was a legitimate, signed copy of a "legitimate" operating system. (where "legitimate" means the same thing it does with SSL certificates: paid off the right people)
Focus instead on having them crack down on people who do the copying, if possible try to have them communicate the message "You can't copy Microsoft's (or Borland's, or Corels's, or whatever) stuff freely". Get the name of the software company in there, and make it clear that it is the nature of the ownership of the software that makes this act illegal.
We don't want to spread the meme that copying software is illegitimate and fundamentally shady; instead, we want to spread the meme that (traditional) commercial software is owned, and that that's why copying it can get you in trouble - we want people to approach buying closed source as similar to renting a car, not buying one. With this meme firmly in place, free software alternatives don't automatically appear legally shady or risky (I've been in places that had explicit IT policies which barred people from installing any "free or shareware" software); however, if people felt at all guilty about giving away copies of free software, that would hurt us.
Above all, we don't want copy-protection schemes mandated in generic computing software.
There's always atlas, an open source platform-optimized linear algebra library with a BLAS interface.
And just because it came up in a different slashdot thread recently, I'll plug the debian packages for atlas, which are the perfect tool if your target platform is a heterogeneous x86 cluster. (Well, ok, it helps if the cluster is a bunch of Debian machines)
It'd probably be better to have a single key file which is encrypted with the user's password, and then all the files are encrypted with that key.
Then, on password change, just re-encrypt the key file.
However, there are other more significant technical obstacles with this proposal. I, for example, like my cron jobs to have access to my home directory.
I mean, I'll admit that I don't have any really interesting web pages up at the moment, and I've not been a long-time participant in any huge news flamewars, but I have had at least some personal web pages up since 1994 or thereabouts. (sure, they moved as I moved schools, but so?)
So anyway, I ought to be about as google-able as your average 20-something. But you see, this google search on my name doesn't actually produce any useful information about me. It doesn't say what high school I went to, it doesn't give who I work for, etc. All it gives is hit after hit about some artist who doesn't even really share my name. Sure, I have a somewhat common name, but it's not as though my last name were "Smith".
So what do people search on in order to find out dirt about their dates? I just can't see it as producing anything useful for most people.
There's also a more current page about the whole legal mess - note that what I'm reading as I briefly scan the page is that he's suing people in Federal court, and just filing it in the local (to him) district court. This is different from attempting to sue someone not in New York under New York state law. It still means that those who wish to defend themselves have potentially a long and expensive trip.
Ah, but when are you dealing exclusively with top-notch programmers who know the application area in and out, and who know already have all the relevant APIs installed?
It is relatively easy to come up with a problem which can take a moderately skilled perl programmer one day but take a similarly skilled C programmer a week or two.
People need to realize that when discussing languages in practical application, you're not going to be dealing with the ideal, perfect programmer doing the ideal, perfect job of implementation in the language under question. This means you have to ask things like: "what does this language encourage a moderately skilled programmer to do in accomplishing task x?", not "what does an uber-YOUR_LANGUAGE_HERE hacker do to accomplish task x?"
As an example, I've never ever seen anyone implement a bubble sort on a singly linked list in perl. (Oh sure, you could, but it doesn't happen in nature) In C, however, programmers sometimes consider it more trouble to convert from this list they made singly linked for ease of insertion (or whatever reason stuck them at the time) so that they can use the qsort() standard library function, and so end up rolling their own sorting routine. Oftentimes, the path of least resistance is seen to be a bubble sort.
(As an aside, the quicksort algorithm isn't really that complicated to remember; just remember the Haskell version - I don't understand why it isn't more common even among quick-and-dirty programmers)
Face it - a great deal of the practical utility of a language comes down to how it will be used by the average programmer, and the average programmer is not as good as everyone would like him to be.
Well, that seems like another argument for the strategy of splitting out the performance-critical portion of the code into modules that are then compiled several different times, targeted at different cpus, with cpu-detection code loading the appropriate version at runtime. Then your job could run across all three clusters at once if necessary, yet still enjoy the optimized goodness as though you knew what cluster it was running on ahead of time. Of course, the development time overhead of optimizing for all the different cluster types at once would probably only be worth it for components that were heavily re-used. (by that I mean the programmer time necessary to sort out the build system and cpu detection code to have the right thing happen automatically, not the recompile time)
In fact, the reason that the Debian atlas (Automatically Tuned Linear Algebra System) packages do just this is that the packager was faced with the problem of high-performance, cpu-intensive code running across a heterogeneous cluster. (the basic atlas install assumes that you will install from source and choose the proper flags for your machine) Once he'd worked out this system for his employer, (well, once he and several of his coworkers had...) he got permission to package the solution up for Debian.
Of course, if it's just as easy to compile the whole darn source tree for each target machine and then have a shell script run the correct program based on e.g. `uname -a` or/proc/cpu, then this approach and yours merge back into essentially the same set of actions.
The safest bet is to not have your job depend on tweaking the last little bit of performance out of a customer's machine when you have only a vague idea of which platform they might be running on. Either improve your algorithms in the whole, or hide the slow performing code in a place where the user won't notice. (if possible)
That said, another option is to isolate the performance-critical sections into chunks of code which get optimized separately and then have cpu-detection code choose the appropriate chunk at runtime. The debian atlas packages do something like this, though (AFAIR) they use hand-optimized assembly instead of just using compiler flags and/or different compilers. (and yes, you can have both the sse- and 3dnow-optimized packages installed on the same machine, and the code will load the appropriate shared library at runtime)
Then, instead of standardizing on a compiler, you'll need to standardize on a build system that will let you compile the code as you need it compiled.
Re:Windows Compliant / Posix Compliant Drivers
on
Compiling Under Wine
·
· Score: 1
Hrm. Is there really a sufficient market for this? I'd think that some of the work that the freetds folks have done would be relevant. (Of course, that's getting free clients to talk to MS SQL/Sybase servers, not the other way around)
That's a pretty standard postal mail fraud scam - there was even a few episodes of the public television TV show "Square One" which dealt with a similar scam. (in the "MathNet" sketches)
I could understand if you made that comment to someone with a three- or two-digit id, but I still consider myself a late arrival to slashdot. (Since I remember none of the days before logins)
I think that the point is that the gap between the position "I don't mind not having a written, fixed Constitution" and the position "the written constitution is an absolute necessity" is too large to be bridged by mere verbal argument. So yes, it is symmetrical, but that symmetry does not automatically negate the argument.
If it sounds like the poster is giving up on convincing you, it's because he is.
1024 is an "even" number when you consider binary.
Today I managed to learn new mathematics....that the even-ness of a number depends on the base it is expressed in. Hmmmm....perhaps the laws of mathematics change regularly, after all!!
Well, yes. "1024" is odd when you consider it in base 5. ("1024" base 5 == "139" base 10) Of course, in binary "1024" isn't a valid representation at all...
The best benefit of this is that you actually had a chance of seeing everything the word processor thought it knew about your document. Say you have some numbered list that should behave one way, but every time you print it, it renumbers itself. In word, in order to figure out what it thinks the numbered list is (and even whether it's a "real" numbered list, or if one of those numbers is just text), you have to go through different dialogs. In WP, with reveal codes, it just shows you what it thought of your document - and then you can see where the misunderstanding is between you and the computer.
In short, reveal codes let you debug your documents at a glance. A rare task, but it meant that those annoying times when you had to do the debugging were shortened. In word, you have to visit each paragraph, line, or character and look at the properties dialog to figure out what it thinks is going on.
Or did his doubling of the a in "contraact" confuse you enough to not recognize the word?
photoshop has no place in news gathering.
Where'd that come from? You're talking about the New York Post.
What's wrong with a bit of creative poisoning? Assuming it doesn't turn into a mail flood, it's not as though you're violating standard network ethics by sending a few emails, especially a few emails that they sent.
So go ahead - tell them that there are several different open smtp relays in the 127.*, 10.*, 172.16.*-172.31.* and 192.168.* IP ranges.
What would be better is to get a friendly admin to provide you with several IP addresses that either go nowhere or are behind a port 25 blackhole.
For advanced spammer annoyance, you could get a bunch of people in several different netblocks to volunteer to run SMTP blackholes (they need to have cheap bandwidth). An SMTP blackhole would accept the mail but then fail to deliver it anywhere. Then feed the spammer these machines as open proxies.
Actually, what about this design for an open relay: the first mail from any given IP address gets through, but starts a counter that will go back to 0 after 24 hours. Any subsequent email from that IP address will simply reset the counter. The end result is that the open proxy test will go through, and then probably the first spam mail, (assuming a different machine is used to test than to spam) but everything after that will be blackholed. Extending this to faking open https proxies that allow the spammer to connect to a given open smtp relay is left as an exercise for the reader.
Adding standard "useing this for spamming is unauthorized access" verbiage to the blackhole's EHLO line might also be adviseable. However, you might want to ask a lawyer about the consequences of something like that.
Of course, it'll take the spammers about a week to have all their software updated so that open relays of this type are no longer effective, but something's better than no respite from spam ever.
People have been saying "Orwell was only off by {abs(year-1984)}" or variations thereof since 1949, at least.
Yes, the GPL is an aggressive license, and yes, you get into trouble if you link to GPLed libraries and then release the result under a standard closed source license.
That's just the way the GPL is, (by design) everyone knows it by now (or should). Get over it. Saying "OSS use may == legal trouble" is using such a broad brush that I'm sure that someone could easily accuse you of spreading FUD.
There's no reason not to use GPLed source in building your closed source app. Want to use gcc? Fine. Want to use gnu make and bash to handle your automated builds? Fine. Want to use the ncftp client to automatically move your nightly builds from one place to another? Fine.
Just don't link in GPLed code into your proprietary executeable. (And, ok, I could see some worry about not wanting to link to LGPL'ed modules either if you're the kind of place that wants to slap sixteen kinds of "do not reverse engineer under penalty of whatever we can think of" clauses into your license agreement)
But use? Fine.
Also, there's a big range of licenses before you hit public domain that generally cause no problem being integrated into proprietary development. There's the X11 license, the very similar new BSD license, the old BSD license with advertising clause, the Apache license, the Perl Artistic license, etc.
Implying that open source libraries are somehow unique in the potential for licensing issues in code that uses them just tells me that you have not dealt with enough proprietary libraries or that you fail to realize that the payment of royalties is a licensing issue.
You know, the government ought to collect and disseminate the temperature data that the National Weather Service collects in a computer parseable format via anonymous ftp.
Oh wait, they do. They even provide you with loads of docs that will tell you more than you ever wanted to know about the format of government weather data.
I like the approach that VMS used - if you asked it to, it would generate a selection of random passwords that were still pronounceable. (You were then forced to pick one as your new password, or ask for a new set)
Actually, here's a better thought for JMSmythe's system: use one of those perl markov chain programs on a markov model trained to model English words, (I'm not sure whether you should train it on a dictionary or on English text, since training it on English text will tend to overemphasize certain words) and then drop two random digits somewhere in there. Then filter for the desired length, and present the users with a choice of (say) the first 10 things to come out of the generator.
Then you thought incorrectly. Trademarks are subject to such a required defense, but patents and copyrights are not.
There is the doctrine of laches, which allow a judge to hold that a patent holder, having allowed a use of their patent to go on without notice, cannot collect damages for use of their patent prior to filing suit, but this in no way invalidates their patent nor does it prevent them from collecting damages if the same defendant should happen to infringe on their patent in the future. (Laches is basically a way of wedging the reasonable "but I didn't know it was a problem" defense into patent law)
And no, IANAL, but I do know how to use Google (TM).
I think the point is that, after looking at large chunks of lisp code, even perl is an improvement.
And perhaps if you narrow it that closely, you're right. But how about using the slightly larger area of "mathematics or computer science academia" and my name?
Now, I'm no longer in that scene, being a graduate school survivor, but when I was, I remember getting a request from a Swiss library asking whether I had any spare copies of "my book" 'Manifold Theory'. (The library's copy had been stolen, and it was out of print.) Of course I'm not the person they were looking for, and in fact (I believe) that the author was in fact already dead at the time they asked. (an odd coda is that a paperback version is now back in print)
So really, names aren't always that useful, even in a slightly specialized field.
After all, you'd hate to end up in a situation where you needed to prove to your hardware that your software was a legitimate, signed copy of a "legitimate" operating system. (where "legitimate" means the same thing it does with SSL certificates: paid off the right people)
Focus instead on having them crack down on people who do the copying, if possible try to have them communicate the message "You can't copy Microsoft's (or Borland's, or Corels's, or whatever) stuff freely". Get the name of the software company in there, and make it clear that it is the nature of the ownership of the software that makes this act illegal.
We don't want to spread the meme that copying software is illegitimate and fundamentally shady; instead, we want to spread the meme that (traditional) commercial software is owned, and that that's why copying it can get you in trouble - we want people to approach buying closed source as similar to renting a car, not buying one. With this meme firmly in place, free software alternatives don't automatically appear legally shady or risky (I've been in places that had explicit IT policies which barred people from installing any "free or shareware" software); however, if people felt at all guilty about giving away copies of free software, that would hurt us.
Above all, we don't want copy-protection schemes mandated in generic computing software.
There's always atlas, an open source platform-optimized linear algebra library with a BLAS interface.
And just because it came up in a different slashdot thread recently, I'll plug the debian packages for atlas, which are the perfect tool if your target platform is a heterogeneous x86 cluster. (Well, ok, it helps if the cluster is a bunch of Debian machines)
It'd probably be better to have a single key file which is encrypted with the user's password, and then all the files are encrypted with that key.
Then, on password change, just re-encrypt the key file.
However, there are other more significant technical obstacles with this proposal. I, for example, like my cron jobs to have access to my home directory.
And how does this even work, anyway?
I mean, I'll admit that I don't have any really interesting web pages up at the moment, and I've not been a long-time participant in any huge news flamewars, but I have had at least some personal web pages up since 1994 or thereabouts. (sure, they moved as I moved schools, but so?)
So anyway, I ought to be about as google-able as your average 20-something. But you see, this google search on my name doesn't actually produce any useful information about me. It doesn't say what high school I went to, it doesn't give who I work for, etc. All it gives is hit after hit about some artist who doesn't even really share my name. Sure, I have a somewhat common name, but it's not as though my last name were "Smith".
So what do people search on in order to find out dirt about their dates? I just can't see it as producing anything useful for most people.
Cutco....
Must... sell... knives...
The whole experience still makes me shudder.
The story you're refering to about the fish store guy is detailed in this salon article.
There's also a more current page about the whole legal mess - note that what I'm reading as I briefly scan the page is that he's suing people in Federal court, and just filing it in the local (to him) district court. This is different from attempting to sue someone not in New York under New York state law. It still means that those who wish to defend themselves have potentially a long and expensive trip.
Ah, but when are you dealing exclusively with top-notch programmers who know the application area in and out, and who know already have all the relevant APIs installed?
It is relatively easy to come up with a problem which can take a moderately skilled perl programmer one day but take a similarly skilled C programmer a week or two.
People need to realize that when discussing languages in practical application, you're not going to be dealing with the ideal, perfect programmer doing the ideal, perfect job of implementation in the language under question. This means you have to ask things like: "what does this language encourage a moderately skilled programmer to do in accomplishing task x?", not "what does an uber-YOUR_LANGUAGE_HERE hacker do to accomplish task x?"
As an example, I've never ever seen anyone implement a bubble sort on a singly linked list in perl. (Oh sure, you could, but it doesn't happen in nature) In C, however, programmers sometimes consider it more trouble to convert from this list they made singly linked for ease of insertion (or whatever reason stuck them at the time) so that they can use the qsort() standard library function, and so end up rolling their own sorting routine. Oftentimes, the path of least resistance is seen to be a bubble sort.
(As an aside, the quicksort algorithm isn't really that complicated to remember; just remember the Haskell version - I don't understand why it isn't more common even among quick-and-dirty programmers)
Face it - a great deal of the practical utility of a language comes down to how it will be used by the average programmer, and the average programmer is not as good as everyone would like him to be.
Well, that seems like another argument for the strategy of splitting out the performance-critical portion of the code into modules that are then compiled several different times, targeted at different cpus, with cpu-detection code loading the appropriate version at runtime. Then your job could run across all three clusters at once if necessary, yet still enjoy the optimized goodness as though you knew what cluster it was running on ahead of time. Of course, the development time overhead of optimizing for all the different cluster types at once would probably only be worth it for components that were heavily re-used. (by that I mean the programmer time necessary to sort out the build system and cpu detection code to have the right thing happen automatically, not the recompile time)
...) he got permission to package the solution up for Debian.
/proc/cpu, then this approach and yours merge back into essentially the same set of actions.
In fact, the reason that the Debian atlas (Automatically Tuned Linear Algebra System) packages do just this is that the packager was faced with the problem of high-performance, cpu-intensive code running across a heterogeneous cluster. (the basic atlas install assumes that you will install from source and choose the proper flags for your machine) Once he'd worked out this system for his employer, (well, once he and several of his coworkers had
Of course, if it's just as easy to compile the whole darn source tree for each target machine and then have a shell script run the correct program based on e.g. `uname -a` or
The safest bet is to not have your job depend on tweaking the last little bit of performance out of a customer's machine when you have only a vague idea of which platform they might be running on. Either improve your algorithms in the whole, or hide the slow performing code in a place where the user won't notice. (if possible)
That said, another option is to isolate the performance-critical sections into chunks of code which get optimized separately and then have cpu-detection code choose the appropriate chunk at runtime. The debian atlas packages do something like this, though (AFAIR) they use hand-optimized assembly instead of just using compiler flags and/or different compilers. (and yes, you can have both the sse- and 3dnow-optimized packages installed on the same machine, and the code will load the appropriate shared library at runtime)
Then, instead of standardizing on a compiler, you'll need to standardize on a build system that will let you compile the code as you need it compiled.
Hrm. Is there really a sufficient market for this? I'd think that some of the work that the freetds folks have done would be relevant. (Of course, that's getting free clients to talk to MS SQL/Sybase servers, not the other way around)
That's a pretty standard postal mail fraud scam - there was even a few episodes of the public television TV show "Square One" which dealt with a similar scam. (in the "MathNet" sketches)
Pshaw. 3000 is low?
I could understand if you made that comment to someone with a three- or two-digit id, but I still consider myself a late arrival to slashdot. (Since I remember none of the days before logins)
I think that the point is that the gap between the position "I don't mind not having a written, fixed Constitution" and the position "the written constitution is an absolute necessity" is too large to be bridged by mere verbal argument. So yes, it is symmetrical, but that symmetry does not automatically negate the argument.
If it sounds like the poster is giving up on convincing you, it's because he is.
Well, yes. "1024" is odd when you consider it in base 5. ("1024" base 5 == "139" base 10) Of course, in binary "1024" isn't a valid representation at all...
The best benefit of this is that you actually had a chance of seeing everything the word processor thought it knew about your document. Say you have some numbered list that should behave one way, but every time you print it, it renumbers itself. In word, in order to figure out what it thinks the numbered list is (and even whether it's a "real" numbered list, or if one of those numbers is just text), you have to go through different dialogs. In WP, with reveal codes, it just shows you what it thought of your document - and then you can see where the misunderstanding is between you and the computer.
In short, reveal codes let you debug your documents at a glance. A rare task, but it meant that those annoying times when you had to do the debugging were shortened. In word, you have to visit each paragraph, line, or character and look at the properties dialog to figure out what it thinks is going on.