Newsgroups: net.mail.headers From: hoey@NRL-AIC.ARPA (Dan Hoey) Date: Tue, 6-Mar-84 12:03:00 EST Subject: Re: smtp, errors, and delivery I know I'll regret this, but I think some of these ideas need straightening out, so I'll try. The return-path is, I am told, supposed to be the address of the sender of the message, routed in reverse order of the message's delivery. Many uses have been inferred for it, but in this pragmatic world I can tell you what it's used for (and if I've left your favorite use out, I'd like to hear it): 1. An address to send delivery errors back to. This saves the rfc-writers from having to document an ``Errors-to'' header field. 2. A fallback reply address. If the ``From'' or ``Reply-to'' field is garbage--some of them get typoed by hand, you know--the return path is sometimes usable. 3. A quick index to the ``Received'' lines, useful when those lines are out of order or missing. This can be useful in diagnosing mail problems. 4. A testament by the systems involved as to the actual origin of the message, useful when the mail is somehow unlawful and the malefactors are being rounded up. It should be noted that (1) is somewhat in conflict with (2) through (4), but since (1) is an important and routine function that hasn't otherwise been provided for we live with it. Incidentally, I imagine (4) is what Rich Zellich is talking about becoming more important with Milnet, but I'm not sure. The ``deliver-at-all-costs'' philosophy might better be stated as ``deliver even if you can't get back from here.'' When such a philosophy is taken, all the benefits of 1-4 are lost. The loss of (1) and (2) means that the message could get to a point where even with human intervention, there's no way of telling who the message is for or from, an uncomfortable situation for us dead-letter-office personnel. Loss of (3) could lead to not being able to figure out why we get into all these uncomfortable situations. And loss of (4) could prevent us from calling a halt to the chain letters, cranks, ransom notes, and other Trojan thoughts that we can't deliver, return, or diagnose anyway. Unfortunately, the ``responsibility'' philosophy seems to imply that you can't send mail unless it can be returned. With so many protocols around, one site's mailbox is another site's host name. Rudy's example of "_" in a host name is an example, but I'm aware of various uses of certain other @=." )\!:([%] special characters that might be insufficiently quoted--or quotable--to permit returning of the mail. It seems unfortunate that person A out in funny-character-land should be prohibited from sending his phone number to person B in easy-address-ville because host C in the middle is feeling responsible. I can suggest some more strategies for people who want to sail gracefully between the explosive source and the yawning sink. I'm pretty sure they're orthogonal, and some of them may even be easy. 1. Try to patch the return-path. For instance, put quotes around it? Maybe put parens around it and add "Postmaster"? I don't know if quotes and comments fit the return path syntax, but it's a try. 2. Stuff an error message containing the offending return-path onto the message before sending the message with an empty return-path. 3. Send a notification back along the return-path to warn that delivery errors may happen and the sender may not hear about them. 4. Log it locally so InterNetPol can track it back to its source if necessary. An ideal site might implement them on both sides (server and user). I would be interested in seeing other solutions to the problems of unusable return-paths. Somehow I can't get into this philosophy jazz, though. Dan Hoey --- Date: 10 May 1984 17:40-EDT From: Dan Hoey To: SF-LOVERS Subject: Blue Sky Fie LRC.HJJH@UTEXAS-20 remarks that YOLANDA: THE GIRL FROM EROSPHERE is more pornography than SF. As a devotee of both genres, I have to agree. You have to expect sex if you pick up something published by Grove Press--they made their start publishing Ulysses or Lady Chatterly or something back when they were obscene. Unfortunately, there's a lot of skiffy porn these days, probably because there's a lot of skiffy and porn in pop culture. But in the tradition of Kilgore Trout, the Vonnegut character who published masterpieces of SF in nudie mags, there are a few fairly decent examples SF and pornography being emulsified with humor. Unfortunately, you have to go to the used book shelves (in either of two sorts of shops) or hit the hucksters' tables at a con for the ones I know of, as they are all out of print. My favorite example is Ray Kainen, who wrote for the Olympia Press (another of ``those'' publishers, sadly now defunct). His novel THE COSMIC GASH follows Professor F. Rancid Gelding in his Raunchy Stabber as drives down the Screw-way, where all motive power is derived from sexual energy. There is a cast of zillions, all hilarious stereotypes: Rancid's wife Palomine and her horse Herman, secretary Wee Kling, biker Hott Cock, dancer Shenta Vidus, guru Shilly Brahmin, financier J. Burnup Gettit and his wife Gotta, valet Trudgen, Senator Homo Humnuts, author Norman Pitter-patter, psychiatrist Sickman Fried and his patient Amanda Punchingjelly, and the title character, a giant concave alien. Kainen's A SEA OF THIGHS is a similar piece, set on a university campus where a stereotypic cast of zillions comes together as the sex researchers Roseystern and Gildedk*ntz have an ``incident'' with their nuclear-powered experimental apparatus. The only other example of Kainen's work I have been able to find is SATYR TREK. This differs in that the c. of z. do not get together for one huge orgy, but interact with the protagonist serially as he gets tossed across time and space, sort of like a priapic Billy Pilgrim. I would have to rate this as the best SF of the lot, though it's a little too much of a cliff-hanger for my taste in pornography. I suppose I should also mention THE SEX MAGICIANS, by Robert Anton Wilson (co-author of the ILLUMINATUS trilogy). A Mama Vibe, sort of an orgone inversion, blankets Chicago and everyone goes crazy until the Illuminati intervene. A lot of the stereotype play like Kainen, though the humor is a little less wacky. Dan Hoey --- Date: Wed, 01 Aug 84 11:57:00 -0400 (EDT) From: Dan Hoey To: Cube Lovers Subject: Pocket cube program The UNIX-SOURCES@BRL mailing list recently forwarded this note from Usenet. Date: Tue, 31 Jul 84 13:47:22 EDT From: news@BRL-TGR.ARPA Subject: /usr/spool/news/net/sources/397 Date: Mon, 30-Jul-84 10:49:48 EDT From: eklhad@ihnet.UUCP (K.A. Dahlke) Subject: solve the 2x2x2 Rubix cube in a minimum number of moves Organization: AT&T Bell Labs, Naperville, IL After solving the Rubix cube 4 years ago, I turned my attention to more interesting (and more difficult) questions. How can one find the minimum path solution for an arbitrary position? How far away is the farthest positions? Is there one position diametrically opposed to start, or does it fan out into billions? Recently, I have started playing again, and have made some progress. Here is a computer program (C/unix) which solves the 2x2x2 cube in a minimum number of moves. The 2 cube is not as common as the 3 cube, but it is commercially available. If you only have a 3 cube (standard), just ignore the sides and centers, and use the corners. This effectively simulates a 2 cube. Thanks to ATT-BL for the use of their computing facilities. Later versions may come, if i am ambitious. Unfortunately, my program cannot be expanded to handle the 3 cube. Nobody has that much memory/CPU time. I will have to come up with something better. Feel free to contact me with any ideas about this subject. ---------------------------------------------------------------- The note is followed by about 1000 lines of c code that I can make available if you want it. Unfortunately, the program seems to believe that there are 870 * 729 = 634230 positions of the 2^3, while assiduous cube lovers realize the number is actually (7! / 2) * 3^6 = 2520 * 729 = 1837080 positions. The number 870 = 29 * 30 is strange. I guess it is an approximation of 6! + 5! + 4! + 3! + 2! = 872, since the code for encoding a position as an integer contains a table of those factorials. Dan --- Date: Tue, 07 Aug 84 19:24:00 -0400 (EDT) From: Dan Hoey To: Cube Lovers Subject: The pocket cube: correction, calculation, and conjectures Well, maybe this list is dead after all, if I can tell you there are (7!/2)(3^6) positions of the pocket cube, and have it stand for a week. The correct number is of course (7!)(3^6) = 3674160, since the generators are odd. But not being one to eat crow with a straight face, I have hacked the good hack, so I can give you the exact number P(N) of pocket cube positions exactly N quarter-turns from solved. (This was done in September 1981 for the half-twist metric; see the archives.) I have also computed the number L(N) of local maxima at each distance. These numbers are given below. N P(N) L(N) 0 1 0 1 6 0 2 27 0 3 120 0 4 534 0 5 2256 0 6 8969 0 7 33058 16 8 114149 53 9 360508 260 10 930588 1460 11 1350852 34088 12 782536 402260 13 90280 88636 14 276 276 An approach for dealing with these numbers (suggested to me by Dale Peterson) is to form the Poincare polynomial p(x) = SUM P(i) x^i i in hopes that it can be factored nicely. Unfortunately, this doesn't work out--with the exception of the obvious factor (x+1), p(x) is irreducible. I have also tried to decompose p(x) using the power (1+x)^2 series for ------------, which agrees with the first five terms of p(x) 3 - 2(1+x)^2 due to the lack of non-trivial identities. I haven't found any good ways of expressing p(x), but there may be something there. The point of all of this is that it could conceivably lead to a conjecture--or even a derivation--of God's number for the 3^3 puzzle. I might pass along another fuzzy recollection from a year and a half ago, in hopes that it is more informative than incorrect. Dale mentioned another classical method for dealing with group diameters. It seems there is a class of groups, called reflection groups, for which tight diameter bounds can be derived. A reflection group is a group of matrices with eigenvalues of plus and minus one. Some properties generalize to pseudo-reflection groups, where the eigenvalues all have complex magnitude one. We managed to construct isomorphisms between the 3^3 edge group and a reflection group, and between the corner group and a pseudo-reflection group. As I recall, he was fairly certain that the full cube group did not qualify, but that was beyond my depth. So if you think cubes are dead, remember it's not because the results are all in. Dan --- Date: Mon, 20 Aug 84 04:34:00 -0400 (EDT) From: Dan Hoey To: Cube Lovers Subject: The pocket cube and corners of the full cube Karl Dahlke, the author of the pocket cube program I mentioned on 1 August, sent me a note about the appearance of the unusual constant 870 in his program. It turns out that the program is correct, and the constant arises in an interesting way. Recall that the pocket cube has 729 orientations and 5040 permutations of the pieces. Dahlke had noticed that the ``reflections and rotations'' of a position need not be stored, since they are the same distance from start. By reflections and rotations, he means the S-conjugates, where S is the six-element symmetry group of the pocket cube with one corner fixed. It turns out that the pocket cube has 2 permutations with a six-element symmetry group, 16 permutations with a three-element symmetry group, 138 permutations with a two-element symmetry group, and 4884 permutations with a one-element symmetry group. Thus the number of permutations that are distinct up to S-conjugacy is 2 + 16/2 + 138/3 + 4884/6 = 870. This discussion of symmetry recalls a question I have meant to propose to Cube-Lovers for some time: How many positions are there in Rubik's Cube? We know from Ideal that the number is somewhat over three billion. Most cube lovers will tell you a number of about 43 quintillion. But I really don't see why we should count twelve distinct positions at one quarter-twist from solved--all twelve are essentially the same position. So the question, suitably rephrased, is of the number of positions that are distinct up to conjugacy in M, the 48-element symmetry group of the cube. I think this is an interesting question, but I don't see any particularly easy way of answering it. My best guess is that it involves a case-by-case analysis of the 98 subgroups of M, or at least the 33 conjugacy classes of those subgroups. In ``Symmetry and Local Maxima'', Jim Saxe and I examined five of the classes, which we called M, C, AM, H, and T. Even finding the numbers for the pocket cube is a little tricky. If we limit ourselves to symmetry in S, I believe the pocket cube has 2 positions with a six-element symmetry group, 160 positions with a three-element symmetry group, 3882 positions with a two-element symmetry group, and 3670116 positions with a one-element symmetry group, for 613062 positions distinct up to S-conjugacy. But the numbers for M-conjugacy are still elusive; I am not even sure how to deal with factoring out whole-cube moves in the analysis. I hope to find time to write a program for it. I expanded my pocket cube program to deal with the corner group of Rubik's cube. This group is 24 times as large as the group of the pocket cube, having 3^7 * 8! = 88179840 elements. The number of elements P(N) and local maxima L(N) at each (quarter-twist) distance N from solved are given below. N P(N) L(N) 0 1 0 1 12 0 2 114 0 3 924 0 4 6539 0 5 39528 0 6 199926 114 7 806136 600 8 2761740 17916 9 8656152 10200 10 22334112 35040 11 32420448 818112 12 18780864 9654240 13 2166720 2127264 14 6624 6624 The alert reader will notice that rows 10 through 14 contain values exactly 24 times as large as those for the pocket cube. This is not surprising, given that the groups are identical except for the position of the entire assembly in space, and each generator of the corner cube is identical to the inverse of the corresponding generator for the opposite face except for the whole-cube position. Thus when solving a corner-cube position at 10 qtw or more from solved, it can be solved as a pocket cube, making the choice between opposite faces in such a way that the whole-cube position comes out right with no extra moves. Dan --- Date: Wed, 22 Aug 84 18:06:00 -0400 (EDT) From: Dan Hoey To: Cube Lovers Subject: An outer automorphism of the cube group If you have a Rubik's cube where all the edges flip on each quarter-turn, you can solve it by using bifocals when it's odd. I noticed this while drawing a Hasse diagram of the subgroups of M. It turns out that M has a similar automorphism, where the odd elements are reflected through the center of the cube. If anyone wants the Hasse diagram, I can send it--it takes about 30 minutes to draw in the lines, for which directions are included. If you know whether there are other outer automorphisms of M, please let me know. Dan --- Date: 14 Nov 1984 23:50-EST From: Dan Hoey To: SF-LOVERS Subject: Re: Palmer's Emergence Cc: umcp-cs!allegra!physics!mitccc!lmi-capricorn!jmturn at NRL-AIC Date: 10 Nov 1984 09:47:16-EST From: James M Turner Apropos comments about Heinlein-like supercharacters: Candy is bright. Candy is strong. However, unlike most of RAH's super-characters, Candy is not perfect. She screws up, misjudges people, etc. And, most important, she has self-doubts. Frequently. No Heinlein superman ever stopped to think if they were doing the right thing. Also, Candy gets *very* scared on several occasions. Funny, the Emergence stories looked like a Podkayne clone to me. I can't quote you chapter and verse, but your description of C is exactly my vague recollection of P. Podkayne seemed unfinished, though, and there I think Emergence wins. But I think the best female adolescence story I've read is Panshin's Rite of Passage. Dan --- Newsgroups: net.unix-wizards From: Dan Hoey Date: Tue, 4-Dec-84 07:42:51 EST Subject: 4.2BSD catman(8) fails on large manual +FIX PROBLEM: /etc/catman -w gives message "?TMP" and creates an empty /usr/lib/whatis. REPEAT-BY: /etc/catman -w did it for us. It is dependent on the number of manual entries, and the size of their NAME sections. DIAGNOSIS: Catman runs /usr/lib/makewhatis, which uses ed(1) to massage a bunch of header lines from the manuals. Ed is running out of buffer space somewhere. "?TMP" is one of those `self-explanatory message's from ed. FIX: The same function can be performed with sed(1), and doesn't need to use a buffer. I have also made it include the "local" and "new" manual sections in the whatis database, though I'm not sure I should. In the diff listing below, replace "" with a tab character. 3c3 < for i in man1 man2 man3 man4 man5 man6 man7 man8 --- > for i in man1 man2 man3 man4 man5 man6 man7 man8 manl mann 9,17c9,11 < ed - /tmp/whatis <<\! < g/\\-/s//-/ < g/\\\*-/s//-/ < g/ VAX-11/s/// < 1,$s/.TH [^ ]* \([^ ]*\).*\([^-]*\)/\2(\1)/ < g/ /s///g < w /tmp/whatis2 < q < ! --- > sed -e 's/\\-/-/g' -e 's/\\\*-/-/g' -e 's/ VAX-11 / /g' \ > -e 's/^\.TH [^ ]* \([^ ]*\).*\([^-]*\)/\2(\1)/' \ > -e 's/ //g' /tmp/whatis >/tmp/whatis2 Dan Hoey Navy Center for Applied Research in Artificial Intelligence Hoey@NRL-AIC.ARPA ---