How the fuck did you get the formatting so nice? Thanks.
Now, isn't that a silly question-- by using a perl program, of course. Were you expecting anything else?:-)
Here it is, having been run on itself:
#!/usr/bin/perl -p # # code2html - convert code to html for posting to slashdot # # tchrist@perl.com # Sunday, December 19th, 1999
BEGIN { print "<TT>\n" }# and the spirit of awk...
# first kill all the tabs 1 while s{ \t + } { " " x (length($&)*8 - length($`)%8) }ex;
# then the four standard naughty bits s/&/&/g;# must remember to do this one first! s/</</g;# this is the most important one s/>/>/g;# don't close too early s/"/"/g;# only in embedded tags, i guess
# make lines break where they should s/^\s*$/<P>/ || s/$/<BR>/;
# make sure spaces aren't squishticated so we # can do indentation and properly align comments s/( {2,})/' ' x length($1)/ge;
END { print "</TT>\n" }#...shall be with us always
Also, if you're going to preview, make sure you hit the back buttand submit from the pre-previewed part. Slashdot has a bug on its escaped stuff otherwise; you lose the escaping after the preview. So look, but don't launch. There are other bugs in the slashdot presentation code that I'd really love to find (my nbsp code above is working around it by looking at only long stretches of spaces), but I don't have a recent copy to inspect.
My goodness, that was terrible Perl code. At the very least, you should fix the formatting. But it still is, well, icky. As posted, it won't work due to HTML lossage. This should be better, but... oh my. There are still potential bugs, too, due to incorrect detection of error conditions after matches.
It seems like a good candidate to hand to a programmer and say, "how would you rewrite this to make it less of a hack and more aesthetically pleasing as well?".
As licenças de programas abertos ou restritos, não restringirão outros programas distribuídos conjuntamente.
Fascinating! Unless one cops the plea that libraries aren't programs, so aren't covered by this bill, it sure sounds to me like only LGPL'd libraries would be permitted, not GPL'd ones.
3.Anyone have any idea how to fix the problem of dynamic IPs?
Either with IP splicing as used for mobile IP and web performance, or else via RBL-style DNS games. Here's a suggested reading list.
Read Bill LeFebvre's article on Internet Black Holes to learn how the Real-Time Black Hole system uses DNS creatively. You can also go write to the source if you prefer. Here's an excerpt:
The simplest way to get started using the MAPS RBL to protect your mail relay against theft of service by spammers is to arrange for it to make a DNS query (of a stylized name) whenever you receive an incoming mail message from a host whose spam status you do not know.
Application layer proxies already play an important role in today's networks, serving as firewalls and HTTP caches -- and their role is being expanded to include encryption, compression, and mobility support services. Current application layer proxies suffer major performance penalties as they spend most of their time moving data back and forth between connections, context switching and crossing protection boundaries for each chunk of data they handle. We present a technique called TCP Splice that provides kernel support for data relaying operations which runs at near router speeds. In our lab testing, we find SOCKS firewalls using TCP Splice can sustain a data throughput twice that of normal firewalls, with an average packet forwarding latency 30 times less.
Application layer proxies are an extremely popular method for adding new services to existing network applications. They provide backwards compatibility, centralized administration, and the convenience of the application layer programming environment. Since proxies act as traffic concentrators, serving multiple clients at the same time, during peak load periods they often become performance bottlenecks. In this paper we present an extension of the TCP Splice technique called TCP Tap that promises to dramatically improve the performance of a HTTP caching proxy, just as TCP Splice doubled the throughput of an application layer firewall proxy.
Recently, the focus of the work on NEPPI applications was mostly on high performance URL-aware switching using TCP splicing. TCP splicing is a technique for bridging TCP connections at the IP level within the kernel, thus avoiding the overhead of application-level copying between sockets as performed by programs such as proxies. URL-aware switching with TCP splicing can be utilized in layer 7 switches to achieve high performance content-aware redirection of HTTP requests. We have developed of prototype of a layer 4/7 switch based on NEPPI.
Due to advances in wireless communication technology there is a growing demand for providing continuous network access to the users of portable computers, regardless of their location. Existing network protocols cannot meet this requirement since they were designed with the assumption of a static network topology where hosts do not change their location over time. Based on IP's Loose Source Route option, we have developed a scheme for providing transparent network access to mobile hosts. Our scheme is easy to implement, requires no changes to the existing set of hosts and routers, and achieves optimal routing in most cases. An outline of the proposed scheme is presented and a reference implementation is described.
Host mobility is becoming an important issue due to the recent proliferation of notebook and palmtop computers, the development of wireless network interfaces, and the growth in global internetworking. This paper describes the design and implementation of a mobile host protocol, called the Internet Mobile Host Protocol (IMHP), that is compatible with the TCP/IP protocol suite, and allows a mobile host to move around the Internet without changing its identity. In particular, IMHP provides host mobility over both the local and wide area, while remaining transparent to the user and to other hosts communicating with the mobile host. IMHP features route optimization and integrated authentication of all management packets. Route optimization allows a node to cache the location of a mobile host and to send future packets directly to that mobile host. By authenticating all management packets, IMHP guards against possible attacks on packet routing to mobile hosts, including the interception or...
RFC 2230 has some words that might be relevant here:
Dial-Up Host Example
This example outlines a possible use of KX records with mobile hosts that dial into the network via PPP and are dynamically assigned an IP address and domain-name at dial-in time.
Consider the situation where each mobile node is dynamically assigned both a domain name and an IP address at the time that node dials into the network. Let the policy require that each mobile node act as its own Key Exchanger. In this case, it is important that dial-in nodes use addresses from one or more well known IP subnets or address pools dedicated to dial-in access. If that is true, then no KX record or other action is needed to ensure that each node will act as its own Key Exchanger because lack of a KX record indicates that the node is its own Key Exchanger.
Consider the situation where the mobile node's domain name remains constant but its IP address changes. Let the policy require that each mobile node act as its own Key Exchanger. In this case, there might be operational problems when another node attempts to perform a secure reverse DNS lookup on the IP address to determine the corresponding domain name. The authenticated DNS binding (in the form of a PTR record) between the mobile node's currently assigned IP address and its permanent domain name will need to be securely updated each time the node is assigned a new IP address. There are no mechanisms for accomplishing this that are both IETF-standard and widely deployed as of the time this note was written. Use of Dynamic
DNS Update without authentication is a significant security risk and hence is not recommended for this situation.
They may have had a point, considering that we do not have an educated populace, and that media manipulation does more to affect a vote than reasoned examination of the issues does.:-(
Some people say we hackerscholars spell things inconsistently. This is not so! I herein relate advice revealed during communal reverie with our past lives...
CAIUS IULIUS CAESAR: I long ago lost patience with my colony's colonies' inability to spell licence and defence as Cicero and I wrote. But equally beneath contempt lie the Britannici themselves, a band of delinquent dandies given over to the peculiar perversions of their powdered Gallic conquerors and accompanying meretrices and connubials, who after two millennia of syncopated instruction still cannot properly write color, labor, or valor in the fashion we their noble forefathers proscribed and inscribed. A pox on both their orthographies!
ALEXANDER OF MAKEDONIA: The miscegenation of Greeks and Barbarians has surely found foetid fruit in those two races of which you, my spiritual grand-nephew and semperfidelitous catamite, have just so eloquently written. The one race seems unable to faithfully write analyse or paralyse in the manner that I myself wrote, while the other reveals their equal incompetence with respect to the just renderings of parenthesize, hypothesize, isochronize, or apotheosize -- as Aristotle duly taught me.
CAPTAIN JAMES COOK: I say there, book learning is for books, not Men! A Man must endeavour to seek out his Destiny. Let none cry Foul that the bold Name of my valiant Ship, the proud Endeavour, should find itself remembered in the writings even of the westernmost Colonies and in the names of their Heavenly Vessels.
So you see, it's really not our fault. We just do what the voices tell us to do.:-)
As somebody else suggested, another way to do this, a way using a higher protocol, is with an RBL-style DNS hack instead of an IP hack. You could finger @somenick.someisp.net and have their DNS reverse figure out where you really are. For some purposes, this would be preferred. For others, you want to hack IP so that talk somenick@someisp.net would work, too.
But this all seems pretty obvious stuff. Surely there are ISPs using DNS or IP hacks for clever routing of static names and addresses to dynamic connections? Firewall people have done some kinds of this for a long time.
Well, if you look at the GNU packages slated to come out in Solaris 8, you'll see that perl 5, apache, and ssh among other GNU-goodies, come with the OS.
Yes, Solaris 8 is rumored to come with v5.005 of Perl. But Perl has nothing to do with the FSF. Trust me on this one.
The last good version of SunOS was in the 4.x series, they when with SysV for sunOS 5.x and byond. Linux is okay, but it isn't BSD, and us old school people still demand the idiocrancies of BSD. (Linux isn't really SysV) I suppose most/. readers these days won't have any idea what I'm talking about since the BSD vs SysV was ages ago.
Oh, I know just what you mean. ``We still remember, we who dwell...'':-)
You can install BSD pretty easily on a Sparc. I've got an ancient and superslow Sun that I recently upgraded from SunOS to real BSD, and it's smooth as can be. It doesn't even seem slow anymore, but then again, it's mostly a firewall.
Mammals have three surviving (in some cases, barely) groups. Placental mammals (you, me, and the horse you rode in on) always beat out marsupial mammals (possums, wallabies, tasmanian devils, and Captain Kangaroo) when these come into competition/contact, as we saw with the Panama landbridge. My guess is that marsupial mammals likewise beat out the monotreme mammals (the two species of echidna plus the platypus are all we have left) when these came in contact.
I've said this before. I'll say it again. How the fuck is it that replying to an offtopic post is itself an offtopic act? Go moderate the person who actually started down the path of diversion. But don't go fucking jamming on somebody who gives real information about the post he's replying to just because seven levels ago the topic was different and because you happen to recognize the name of the deeply nested poster. Fucking moderator bullshit.
You make a very, very good point. Isn't there a way the Linux and *BSD kernel could be patched to disallow execution from a stack? I know there's plenty of memory protection and such in there, so can't we put in one more layer of protection?
First of all, I do believe that having everyone running a Linux kernel an i386 architecture with an executable stack is three strikes against you. The most secure sites I know are intentionally running neither that kernel nor on that chip. This introduces enough valuable diversity that it alone will stimy many script kiddies with root kits. Remember the Linux PowerPC cracking challenge? The kiddies' root kids didn't have the right machine language code to try to execute, so buffer overruns would have just DOS'd you.
So, let's just change chips.:-) Of course, that's hardly enough. Can't we clear up a lot of these exploits by fixing the stack? The answer is yes, we could clear up a lot of them. But that sadly, it's not going to cure the class of problem completely.
Why should stack and data pages be executable? Why are any pages that are executable also writable? Well, there are a couple reasons for that. Certainly it hasn't always been that way. But the signal trampoline code from gcc(1) makes this very attractive, and it's a bit annoying to change. You still have to deal with issues of mmap(2), which can ask for pages with any access bits it cares for.
And let's not pretend please that C is the issue here. It's not. You're diddling the instruction set. I don't care if you used a Pascal compiler. You could still diddle it. Then again, there's something to be said for having a cleaner library. See the end of this missive for a simple, elegant, and effective approach to one class of these problems in C by someone famously inclined toward the simple and elegant.
Even with a non-executable stack, you can still be bitten. Several such exploits have appeared on bugtrak. Here's one. The short explanation for why this isn't a panacea is that if I push a pointer to "/bin/sh" and a (char *)0 on the stack in a place right before an system(3) (well, or or execl(3) or execve(2) or whatever) then it'll still suck to be you. Notice I haven't executed any code that I put on the stack. I just managed to change some of the arguments to existing calls.
Let me put up a copy of some mail from Ted T'so, who said it well:
Well with a non-executable stack most security conscious system administrators will sleep better:) I can guarantee that. (Not too much better as holes always exist but quite a lot).
The advantage of the patch is that it will stop the current set of attacks that take the form of "find buffer overrun in a program", followed by "apply standard toolkit to exploit buffer overrun by putting executable code on the stack".
The disadvantage of the patch is that after we apply, within a few months we will see a new toolkit of the form "corrupt the stack to point the return address into someplace entertaining in libc --- like right before an an execl call in the implementation of popen()."
The danger is people thinking that with this patch, they don't need to worry about finding and fixing buffer overrun bugs in their code....
So let's not get too self-satisfied with having non-executable stacks. It's still not enough.
The idea of a non-executing stack has been tossed around for ages. The problem with this is that it would break programs that use dynamic executable code. I believe Perl, for example, would be unusable on such a system.
No, that's not true. Perl doesn't put code on the stack. Each Perl interpreter (and yes, one program can comprise several of these) keeps its own "virtual" stack. What goes on there are not machine op-codes, but Perlish ones.
Perhaps you're thinking of Franz Lisp.
Even if the 386 had no support for separate rwx bits on page tables, there are newer architectures available.
But that won't help you, really. I'll explain why in a separate posting.
Scarcity is the root of all evil- people say money is, but we wouldn't need money without scarcity.
You're just testing me, right? Didn't I fix this misquote yesterday? And last week? And the week before that?
Sigh.
You're thinking of either the "radix malorum" quote from the prologue to the Pardoner's Tale in Chaucer, or the more original reference from 1 Timothy 6:10, which reads, "For the love of money is a roo t of all kinds of evil." Note the emphasis. Here's one write-up on the misquote.
Whatever the case, a thief is a still a thief. And someone who steals software is such a thief. I hope yo would take no umbrage when someone steals from your bank account or burgles your home, for it is the same ethic which you yourself espouse.
You do not rape the rapist, just to show them how much you detest rape. You do not extort from the extorter, just to show them how much you detest exortion. And you certainly do not steal from someone you consider a thief just to show them how much you don't like what they're doing.
Apparently ethics and morality have no place in your world, sir.
The classical rules would say to use the following for "singular, plural":
clitoris, clitorides (Greek)
penis, penes (Latin)
vagina, vaginae (Latin)
testis, testes (Latin)
scrotum, scrota (Latin)
larynx, larynges (Greek)
pharyx, pharynges (Greek)
(Yes, the last two could theoretically occur in sexual contexts. But Sphinx/Sphinges probably wouldn't.:-)
In practice, only medical texts tend to do so. (Now you know why physicians take Greek and Latin.) The rest of us just add the normal English endings. It's not like these comes up very often in pillow talk.
As for irides (literally, rainbows), hm... I suppose some of these naughty bits might on occasion be iridescent.
I'm glad slashdot has never done a feature article on how to talk dirty in Latin. Otherwise we'd doubtless be innundated with requests for Natalia the Irrumatrix.:-)
And no, "Irrumatrix" isn't the bootleg, uncut, XXX-rated version of that silly Matrix movie with Keanu caught doing the naughty. Then again, with recent advances in digital technology, one never knows what they might come up with.:-)**2
Ever notice how programmers always react to every computer problem by writing a program?
Well, what do you expect us to do? Go pay Microsoft or some lawyer to solve our problems for us?
I think not.
Programmers program. It's who we are, and we should hardly be ashamed of it. Do you berate an auto mechanic for popping the hood when something's wrong with his car?
This code doesn't even allow MIMEd Christmas Cards through!
Gosh, you're right. It doesn't. Why, fancy that! Hint: this is not a bug, but a feature. I prefer that people ask for my permission before they go filling up my mail spool. Better yet, send me a hand-written Christmas card.
And that netiquette checker is the most anal retentive thing I've ever read.
You mean "the most anal-retentive thing" you've ever seen.:-)
Nobody posts like that.
What do you mean? Nobody posts using the crud that the checker looks for, or that nobody posts without using it? In either case, you really need to get out more.
Fine that it works for you, but it doesn't work for others. I am not located in the US (of course most of the spam I get comes from the US). I have to pay for local phone calls (and no, I can't afford my very own E1). Bouncing spam at my site of the wire is of no use, since at that point I have already paid for downloading it.
You could still make sue of sendmail's anti-spam features. They don't require analysis of the entire body. They simply refuse the transaction. This is cheaper.
You could also do local analysis to determine whether to discard or refile into a low priority mail-folder this incoming mail. This would be an alternative to bouncing it.
I'm not saying I do not sympathize with your problem. I'm just saying that the techniques I mentioned still could be of some benefit to you.
We'd probably all like to see spammers go to jail, lose their jobs and homes, and probably get their teeth knocked out, too. But until and unless theirs a war-on-drugs level commitment to track down these criminal abusers, we have to do what we can by ourseles. I'd like to see an address in some crime investigation unit that you could forward spam to. The officials there would do the work of tracking down the criminal sender and then prosecuted to the fullest extent of the currently missing laws.
You can do a lot to fight spam. Junkbusters has a site devoted to getting these intrusions out of our lives. I've used their anti-junk snailmail system, and it really does work well. They've also got a nice page on stopping computer UBE crud, too.
Personally, I never hide my mail address. It's dishonest, and, technically, against the rules. My real address, tchrist@perl.com, is sitting right here in this message, on the header for this comment, and is also posted in a hundred thousand different places--if not more. But you know what? I don't see much spam. I auto-bounce at least fifty pieces of spam per day. And most days, not more than a couple make it through -- but only once.
Some spammage get bounced because the sender is on my own blacklist of forbidden addresses, which lately includes things like/\b\d+\.net/. Others are bounced because they look like spam, or because they're mime-encrypted. This is all taken care of by a custom receiving program, plus some other scripts to dynamically update the blacklist.
And yes, now and then a few innocent men are sent to the gallows. This is the price we pay on the war against spam. If it's important, they'll figure out another way to mail me.
Do you remember when people started hating Gary Gygax and TSR Hobbies, Inc.? It was when they started to have a legal team who would "defend" the company's IP. I guess that's what happens once you become a "real" business.
Here it is, having been run on itself:
Also, if you're going to preview, make sure you hit the back buttand submit from the pre-previewed part. Slashdot has a bug on its escaped stuff otherwise; you lose the escaping after the preview. So look, but don't launch. There are other bugs in the slashdot presentation code that I'd really love to find (my nbsp code above is working around it by looking at only long stretches of spaces), but I don't have a recent copy to inspect.Anyway....
It seems like a good candidate to hand to a programmer and say, "how would you rewrite this to make it less of a hack and more aesthetically pleasing as well?".Fascinating! Unless one cops the plea that libraries aren't programs, so aren't covered by this bill, it sure sounds to me like only LGPL'd libraries would be permitted, not GPL'd ones.
- Read Bill LeFebvre's article on Internet Black Holes to learn how the Real-Time Black Hole system uses DNS creatively. You can also go write to the source if you prefer. Here's an excerpt:
- Here's the abstract for TCP Splicing for Application Layer Proxy Performance, by Pravin Bhagwat et al.:
- Here's the abstract for Improving HTTP Caching Proxy Performance with TCP Tap:
- Cohen, A., S. Rangarajan, and H. Slye. On the Performance of TCP Splicing for URL-aware Redirection. In: Proceedings of the USENIX Symposium on Internet Technologies and Systems, pp. 117-125, October 1999.
- A Mobile Networking System based on Internet Protocol(IP) Pravin Bhagwat, Charles Perkins. Proceedings of USENIX Symposium on Mobile and Location Independent Computing, August, 1993, Cambridge, MA.
- A Mobile Host Protocol Supporting Route Optimization and Authentication IEEE Journal on Selected Areas in Communications, special issue on "Mobile and Wireless Computing Networks," 13(5):839-849, June 1995. c IEEE. Andrew Myles Department of Electronics
- RFC 2230 has some words that might be relevant here:
Happy reading.That's not true. It is easy to provide stable IP addresses even for users of dynamic IP.
They may have had a point, considering that we do not have an educated populace, and that media manipulation does more to affect a vote than reasoned examination of the issues does. :-(
So you see, it's really not our fault. We just do what the voices tell us to do. :-)
Microsoft hates open protocols. See ESR's Halloween documents. Netscape was hardly a protocol, you know.
But this all seems pretty obvious stuff. Surely there are ISPs using DNS or IP hacks for clever routing of static names and addresses to dynamic connections? Firewall people have done some kinds of this for a long time.
You can install BSD pretty easily on a Sparc. I've got an ancient and superslow Sun that I recently upgraded from SunOS to real BSD, and it's smooth as can be. It doesn't even seem slow anymore, but then again, it's mostly a firewall.
See this link or this one for a terrific discussion of all this. The Encylopædia Britannica also has a long article. Here's a less technical bit on monotremes in general plus specific links for the echidnas and platypus. Lastly, here's a brief write-up on the sleep of the platypus.
Informatively yours, :-)
Sure, but with Roman numerals, you'll never take a divide-by-zero exception. :-)
I've said this before. I'll say it again. How the fuck is it that replying to an offtopic post is itself an offtopic act? Go moderate the person who actually started down the path of diversion. But don't go fucking jamming on somebody who gives real information about the post he's replying to just because seven levels ago the topic was different and because you happen to recognize the name of the deeply nested poster. Fucking moderator bullshit.
So, let's just change chips. :-) Of course, that's hardly enough. Can't we clear up a lot of these exploits by fixing the stack? The answer is yes, we could clear up a lot of them. But that sadly, it's not going to cure the class of problem completely.
Why should stack and data pages be executable? Why are any pages that are executable also writable? Well, there are a couple reasons for that. Certainly it hasn't always been that way. But the signal trampoline code from gcc(1) makes this very attractive, and it's a bit annoying to change. You still have to deal with issues of mmap(2), which can ask for pages with any access bits it cares for.
And let's not pretend please that C is the issue here. It's not. You're diddling the instruction set. I don't care if you used a Pascal compiler. You could still diddle it. Then again, there's something to be said for having a cleaner library. See the end of this missive for a simple, elegant, and effective approach to one class of these problems in C by someone famously inclined toward the simple and elegant.
What I strongly suggest that anyone interested in this do is read existing literature on this. Yes, it's work, but it's really, really good for you. Start with the paper StackGuard: Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks. And yes, the buffer overrun in the version of Perl referenced by this paper has long since been fixed. But then read about how to defeat this. You can also check out disabling an executable stack on Solaris, and why this isn't a cure-all.
Even with a non-executable stack, you can still be bitten. Several such exploits have appeared on bugtrak. Here's one. The short explanation for why this isn't a panacea is that if I push a pointer to "/bin/sh" and a (char *)0 on the stack in a place right before an system(3) (well, or or execl(3) or execve(2) or whatever) then it'll still suck to be you. Notice I haven't executed any code that I put on the stack. I just managed to change some of the arguments to existing calls.
Let me put up a copy of some mail from Ted T'so, who said it well:
So let's not get too self-satisfied with having non-executable stacks. It's still not enough.Here's the promised gem of insight from Dennis:
That's certainly an, um, interesting approach, eh?Perhaps you're thinking of Franz Lisp.
Even if the 386 had no support for separate rwx bits on page tables, there are newer architectures available.
But that won't help you, really. I'll explain why in a separate posting.
Sigh.
You're thinking of either the "radix malorum" quote from the prologue to the Pardoner's Tale in Chaucer, or the more original reference from 1 Timothy 6:10, which reads, "For the love of money is a roo t of all kinds of evil." Note the emphasis. Here's one write-up on the misquote.
Whatever the case, a thief is a still a thief. And someone who steals software is such a thief. I hope yo would take no umbrage when someone steals from your bank account or burgles your home, for it is the same ethic which you yourself espouse.
You do not rape the rapist, just to show them how much you detest rape. You do not extort from the extorter, just to show them how much you detest exortion. And you certainly do not steal from someone you consider a thief just to show them how much you don't like what they're doing.
Apparently ethics and morality have no place in your world, sir.
- clitoris, clitorides (Greek)
- penis, penes (Latin)
- vagina, vaginae (Latin)
- testis, testes (Latin)
- scrotum, scrota (Latin)
- larynx, larynges (Greek)
- pharyx, pharynges (Greek)
(Yes, the last two could theoretically occur in sexual contexts. But Sphinx/Sphinges probably wouldn't.In practice, only medical texts tend to do so. (Now you know why physicians take Greek and Latin.) The rest of us just add the normal English endings. It's not like these comes up very often in pillow talk.
You can see the -ides inflection in compounds:
As for irides (literally, rainbows), hm... I suppose some of these naughty bits might on occasion be iridescent.I'm glad slashdot has never done a feature article on how to talk dirty in Latin. Otherwise we'd doubtless be innundated with requests for Natalia the Irrumatrix. :-)
And no, "Irrumatrix" isn't the bootleg, uncut, XXX-rated version of that silly Matrix movie with Keanu caught doing the naughty. Then again, with recent advances in digital technology, one never knows what they might come up with. :-)**2
I think not.
Programmers program. It's who we are, and we should hardly be ashamed of it. Do you berate an auto mechanic for popping the hood when something's wrong with his car?
You could also do local analysis to determine whether to discard or refile into a low priority mail-folder this incoming mail. This would be an alternative to bouncing it.
I'm not saying I do not sympathize with your problem. I'm just saying that the techniques I mentioned still could be of some benefit to you.
You can do a lot to fight spam. Junkbusters has a site devoted to getting these intrusions out of our lives. I've used their anti-junk snailmail system, and it really does work well. They've also got a nice page on stopping computer UBE crud, too.
Personally, I never hide my mail address. It's dishonest, and, technically, against the rules. My real address, tchrist@perl.com, is sitting right here in this message, on the header for this comment, and is also posted in a hundred thousand different places--if not more. But you know what? I don't see much spam. I auto-bounce at least fifty pieces of spam per day. And most days, not more than a couple make it through -- but only once.
Some of them get bounced using sendmail's anti-spam features. I'm a big fan of the Realtime Blackhole List, which sendmail can be configured to access.
Some spammage get bounced because the sender is on my own blacklist of forbidden addresses, which lately includes things like /\b\d+\.net/. Others are bounced because they look like spam, or because they're mime-encrypted. This is all taken care of by a custom receiving program, plus some other scripts to dynamically update the blacklist.
I don't automatically bounce mail that violates reasonable netiquette, but I do have a periodic posting about the idiotic Jeopardy mail.
And yes, now and then a few innocent men are sent to the gallows. This is the price we pay on the war against spam. If it's important, they'll figure out another way to mail me.
It's your easiest and best move to opt out of consumerist, media-driven mind control--not to mention the beatification of the mediocre.
Do you remember when people started hating Gary Gygax and TSR Hobbies, Inc.? It was when they started to have a legal team who would "defend" the company's IP. I guess that's what happens once you become a "real" business.