Hi,

I'm looking to buy a 17" monitor soon, and it seems that I can't decide what
monitor I should buy. I have a MAG 17S (this is a .25 dpi version and it using
a TRINITON tube) and a NANAO 560i in mind.

Does anyone know of any specification or problems these monitor have?

Actually, any related opinions at buying a 17" monitor will be welcomed.

 Thanks in advance,


Detectors are legal in Alberta, the old law was overturned a long time ago.

--


There are many cases, but I do not remeber names.  The Isralis shot and killed
a UN observer in Gaza in the first half of Intifada.


x>>
x>>>> Fake convertible roofs and vinyl roofs.
x>>>> Any gold trim.
x >
x>>>     These, I will agree, are abominations, right along with the fake
x>>>continental spare-tire kit -- it's sad watching those little old ladies
x>>>try to load their groceries into the trunk with that huge tire-medallion
x>>>in the way.
x>>>     Most pitiful fake convertible top: on a "Cadillac" Cimarron, with
x>>>all the chrome door trim still visible -- not fooling *anyone*.
x>>>Of course, there was that Hyundai Excel I once saw...
x>>
Least you think bad taste is something new:
Back in the early 1970s I saw a couple of cars with *flocked* paint jobs.
Thats not a typo. I think they sprayed on some kind of glue then blew
on tiny pieces of nylon. It comes out looking like felt. Can you picture
a huge Plymouth Fury III in dark blue felt? I think I can even remember
one guy who did it in red to a early 1960s Corvette. That was after he had
turned it into a station wagon.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mack Costello <mcostell@oasys.dt.navy.mil> Code 65.1 (formerly 1720.1)
David Taylor Model Basin, Carderock Division Hq. NSWC    ___/-\____
Bethesda, MD 20084-5000   Phone (301) 227-2431          (__________>|


	Hey, Dana!  Long time, no read.  I'm afraid the squid rating has
gone up slightly since getting the Ninja, but I'm trying very hard to restrain
myself--the bodywork is just too damned expensive (knock, knock).

	At least it's quiet...

Later,


mjs>Well, there are just as many courses here and elsewhere that do *not*
mjs>teach the technique, yet seem to be rather successful...

Sure.  You don't miss what you never had.  Those poor sods don't know
what they're missing.  I guess ignorance is bliss, eh Mike?

Mr. Bill


  "May your skin stick to a frozen bed pan"
  "May your apple juice be mistakenly drawn from the urinalisys
lab"


If you were omniscient, you'd know who exactly did what, and with what
purpose in mind.  Then, with a particular goal in mind, you sould be
able to methodically judge whether or not this action was in accordance
with the general goal.

In an objective system, there are known goals.  Then, actions are judged
as either being compatible with these goals, or not.  Simple.  The problem
with most systems in current practice is that the goals differ.  That is,
the goals of each society are different.

Note that an objective system is not necessarily an inherent one.

I've said it many, many times.

Which part do you have a problem with?

But, we can enslave the animals, right?  But just not kill them?  Or
are you a vegetarian for health reasons?

No.  I fail to see how my *personal* views are relevant, anyway.

Of course not.  It seems perfectly valid to kill members of other species
for food.  It might be nice, though, if the other animals were not made
to suffer.  For instance, a cow in a field lives out its life just about
the same way it would in the wild.  They seem happy enough.  However,
the veal youngsters aren't treated very well.

I don't know.  What is the goal of this particular system?  There is no
inherent system.

Nope.  Again, it seems okay to kill other species for food.


Yeah, I'm sure that our lab would love a ride (he's the type that sticks his
head out car windows) but I didn't think that he would enjoy being bungee-
corded to the gas tank, and 65 lbs or squirming beast is a bit much for a
backpack (ok who's done it....).


I have a stereo compressor-limiter by
Audio Logic (Model MT-66).  The gates work,
but the compressor seems to be gone on one
channel, and very weak on the other.

I'll probably need an ocsilloscope to trace it
down (no pun intended), but if any one with
experience with this type of equipment could
point me in a certain direction as to where the
circuit is most likely to fail, I'd sure appreciate it.

--
Robert C. Stephens		rob@dexter.psych.umn.edu


============================================================================
David Matthew Deane (deane@binah.cc.brandeis.edu)


Hello,

I have a BC200XLT handheld radio scanner which recieves police, fire,
ambulance, aircraft, cordless and cellular phone, etc.  The unit is in
original condition and comes with the manual, the power supply and
battery charger.  Price is $200 plus s/h.

Austin Harris


Just a quick summary of recent findings re. high speed modems. Top three
contenders seem to be AT&T Paradyne, ZyXEL, and US Robotics. ZyXEL has the
biggest "cult following", and can be had for under $300, but I ignored it
because I need something with Mac software, which will work without any
tweaking.

The AT&T Dataport earns nearly unanimous praises for reliability. They are
backordered at the moment, probably because of the special $299 price in
effect until May. Its fax capabilities are worse than that of the other two
modems. WARNING: AT&T ads say that the modem comes with a Mac kit (cables &
all), and has lifetime warranty. This applies *only* when you order
directly from Paradyne! I called ElekTek (one of the distributors), and
they wanted to charge me $16 for cable, and gave only 1 year warranty...

USR Sportster for the Mac is also highly (but not as highly) recommended;
it's only $250 from ClubMac, and if you are willing to roll your own cable
and don't care about the FAXstf software, you can get the generic model
from PC outlets for $190.

All this assuming that you don't have a rich uncle, and can't afford a
Motorola Codex...  :-(    I ended up ordering the Dataport; we'll see how
it works in two weeks or so.


A slightly used (less than two months old) SupraFaxModem is for sale.
It comes with latest ROM 1.2H, communication software, fax software,
original manuals, and the original registration card.

Here are some specs:

  Model #     : SUPFAXV32BIS
  Description : SupraFaxModem V.32bis
  Type        : Internal
  Data Speed  : 14,400/12,000/9600/7200/4800/2400/1200/300 bps data
		(upto 57000bps with V.42 data compression)
  Protocols   : Bell 103/212A,CCIT V.21/V.22/V.22bis/V.32/V.32bis/V.42/
	      : V.42bis, MNP 2-5, & MNP 10
  Fax         : 14,400/12,000/9600/7200/4800/2400 bps send/receive fax
	      : Class 1 & 2 commnads
	      : Group III compatible
  Transmission: V.17,V.29,V.27ter
  other       :
		non-volatile memory; autoanswer/autodial (tone or pulse);
		extended AT commands and result codes; includes diagnostics,
		phone jacks, subscriptions to free online services.
		5 year warranty.

  Asking : $180 (neg.) + S/H

If interested, please e-mail.


The last name is Niedermayer, as in New Jersey's Scott's last name, because
(you guessed it) they are brothers.  But Rob Niedermayer is a center, not
a defenseman.

I am not sure that the Sharks will take Kariya.  They aren't saying much, but
they apparently like Niedermayer and Victor Kozlov, along with Kariya.  Chris
Pronger's name has also been mentioned.  My guess is that they'll take
Niedermayer.  They may take Pronger, except that they already have too many
defensive prospects.


How about Cockroaches?


	We only need to ask the question: what did the founding fathers
consider cruel and unusual punishment?

	Hanging? Hanging there slowing being strangled would be very
painful, both physically and psychologicall, I imagine.

	Firing squad ? [ note: not a clean way to die back in those
days ], etc.

	All would be considered cruel under your definition.
	All were allowed under the constitution by the founding fathers.

---

        " Whatever promises that have been made can than be broken. "


Not entirely.  Its not a premise, its a conclusion.  Second, that scientists
(for the most part) exlude the possibility is not a problem, its a necessity.
Scientists are empircists, not theologians.

So do scientists, and long before you did.  Clearly you have a deep and
fundamental misunderstanding of science.

Absolutely and utterly false (except for some were AMHs). Lucy (Australopithecus
afarensis, ca. 3 to 3.25 mya) is 40% complete, and about 80% taking into
consideration bilateral symmetry.  Lucy walked upright and bipedally, just
like humans, and the two share a remarkably similar dental pattern.  Her
cranial morphology is unlike humans or modern apes.  There are hundreds of
other specimens of this and other species, of which only some are *partially*
reconstructed.  They exist Bill.  You can touch them, feel them, hold them.
But forget hominids.  The earth, the universe, the cultural record all look and
test out as ancient indeed.  They are not reconstructions.  Has God has tricked
us here too?  It won't go away, Bill.

So *you* and other fundamentalists say.  What about the billions who don't
say so?  Beware of people who say they have the truth, Bill, and reconsider
each time you think you do.

That was not your point, Bill.  Your point above was God *has* the power ....
Scientists generally agree with that.  That's a far cry from saying God did.
Please attempt to understand your own posts.

I have your info, and I have replied - several days ago.  Hope you have it.
Somehow your post above appeared at my server only today.


Now this is getting interesting!

I was raised Roman Catholic before becoming an atheist, so I have stated
this Creed you quote nearly every Sunday until I was about 18.  For some
reason, I always took the 'resurrection' in this statement to mean the
resurrection of the soul, but I guess resurrection does strictly mean
the raising of the physical body.  I have some questions on this point:

1.  I always thought that Christians believe the descent into hell was
pretty much immediate, and that there are people burning in hell right
now.  You seem to be implying that it will not occur until after the
"great judgement" (which I read as meaning the proverbial Judgment Day).
I was always a little confused on this point, even when I was with the
church -- maybe someone can clear it up for me.  Where will my "soul"
(which, by the way, I don't believe in) exist until that time?

2.  Will the new body I will have be created out of the same atoms
that my body now is made of, or will it be built from scratch?  My
physical body now is susceptible to aging, etc. -- so I guess my
new body will have to be radically different in order to be immortal
so it can be tortured for all eternity?

3.  Since I will have a physical body, I assume it will need a physical
place to exist in -- where is this hell?  In the center of the earth?
Do you think we could find it if we dig?

Mark Schnitzius
schnitzi@eola.cs.ucf.edu
Univ. of Central Florida

[There is not complete agreement on the details of the afterlife.  I
think the most common view is that final disposition does not occur
until a final judgement, which is still in the future.  In the
meantime, some believe that people "sleep" until the final
resurrection (or because God is above time, pass directly from death
to the future time when the resurrection occurs), while others believe
that souls have a disembodied, pre-resurrection existence until then.
There are probably other alternatives that I'm omitting.

The new body is generally conceived of being implemented in a
different "technology" than the current one, one which is not mortal.
(Paul talks about the mortal being raised to immortality, and Jesus'
resurrected body -- which is the first example -- clearly was not
subject to the same kind of limitations as ours.)  It is assumed that
there are enough similarities that people will recognize each other,
but I don't think most people claim to know the details.  I don't
think I'd say it's the same atoms.  I'd assume there would be some
analog of a physical place, but I wouldn't expect to find it under the
earth or up in the sky.  I'd suspect that it's in another dimension,
outside this physical world, or whatever.  But again, we have little
in the way of details.


Also if they don't get it exactly right or your eyes change
again, contacts to correct for it are out of the question.
This is due to the strange conical shape your cornea takes
after the surgery.

--
Michael Manning
mmanning@icomsim.com (NeXTMail accepted.)


Los Angeles Times, Tuesday, April 13, 1993.  P. A1.

NEW DETAILS OF EXTENSIVE ADL SPY OPERATION EMERGE

	* INQUIRY: Transcripts reveal nearly 40 years of espionage
	  by a man who infiltrated political groups

By Richard C. Paddock, Times staff writer.

SAN FRANCISCO -- To the outside world, Roy Bullock was a small-time
art dealer who operated from his house in the Castro District.  In
reality, he was an undercover spy who picked through garbage and
amassed secret files for the Anti-Defamation League for nearly 40
years.

His code name at the prominent Jewish organization was Cal, and he was
so successful at infiltrating political groups that he was once chosen
to head an Arab-American delegation that visited Rep. Nancy Pelosi
(D-San Francisco) in her Washington, D.C., office.

For a time, Cal tapped into the phone message system of the White
Aryan Resistance to learn of hate crimes.  From police sources he
obtained privileged, personal information on at least 1,394 people.
And he met surreptitiously with agents of the South African government
to trade his knowledge for crisp, new $100 bills.

These are among the secrets that Bullock and David Gurvitz, a former
Los Angeles-based operative, divulged in extensive interviews with
police and the FBI in a growing scandal over the nation-wide
intelligence network operated by the Anti-Defamation League.

Officials of the Anti-Defamation League, while denying any improper
activity, have said they will cooperate with the investigation.  They
have refused to discuss Bullock and Gurvitz.

Transcripts of the interviews -- among nearly 700 pages of documents
released by San Francisco prosecutors last week -- offer new details
of the private spy operation that authorities allege crossed the line
into illegal territory.

At times, the intelligence activities took on a cloak-and-dagger air
with laundered payments, shredded documents, hotel rendezvous with
foreign agents and code names like "Ironsides" and "Flipper."

On one occasion, Gurvitz recounts, he received a tip that a
pro-Palestinian activist was about to board a plane bound for Haifa,
Israel.  Although the Anti-Defamation League publicly denies any ties
to Israel, Gurvitz phoned an Israeli consular official to warn him.
Shortly afterward, another official called Gurvitz back and debriefed
him.

The court papers also added to the mystery of Tom Gerard, a former CIA
agent and San Francisco police officer accused of providing
confidential material from police files to the Anti-Defamation League.

Gerard fled to the Philippines last fall after he was interviewed by
the FBI, but left behind a briefcase in his police locker.  Its
contents included passports, driver's licenses and identification
cards in 10 different names; identification cards in his own name for
four American embassies in Central America; and a collection of blank
birth certificates, Army discharge papers and official stationery from
various agencies.

Also in the briefcase were extensive information on death squads, a
black hood, apparently for use in interrogations, and photos of
blindfolded and chained men.

Investigators suspect that Gerard and other police sources gave the
ADL confidential driver's license or vehicle registration information
on a vast number of people, including as many as 4,500 members of one
target group, the Arab-American Anti-Discrimination Committee.

Each case of obtaining such data from a law enforcement officer would
constitute a felony, San Francisco Police Inspector Ron Roth noted in
an affidavit for a search warrant.

The Anti-Defamation League, a self-described Jewish defense and civil
rights organization, acknowledges it has long collected information on
groups that are anti-Semitic, extremist or racist. The ADL's
fact-finding division, headed by Irwinn Suall in New York, enjoys a
reputation for thoroughness and has often shared its information with
police agencies and journalists.

However, evidence seized from Bullock's computer shows he kept files
on at least 950 groups of all political stripes, including the
American Civil Liberties Union, Earth Island Institute, the United
Farm Workers, Jews for Jesus, Mother Jones magazine, the Center for
Investigative Reporting, the Bo Gritz for President Committee, the
Asian Law Caucus and the AIDS activist group ACT UP.

The computer files also included information on several members of
Congress, including Pelosi, House Armed Services Committee Chairman
Ron Dellums (D-Berkeley) and former Republican Rep. Pete McCloskey
from the Bay Area.

In their statements, Bullock and Gurvitz said the Anti-Defamation
League has collected information on political activists in the Los
Angeles area for more than 30 years.  They said they worked closely
with three Los Angeles County sheriff's deputies who specialized in
intelligence work, a Los Angeles Police Department anti-terrorism
expert and a San Diego County Sheriff's Department intelligence
officer.

A spokesman for the Los Angeles Sheriff's Department said he knew
nothing of any contact between the deputies and the ADL.  The Los
Angeles Police Department, which earlier refused to cooperate with the
investigation, and the San Diego Sheriff's Department declined
comment.

Bullock, 58, is one of the most intriguing characters in the spy
drama.  Although he is not Jewish, he began working undercover as a
volunteer for the ADL and the FBI in Indiana in 1954 after reading a
book about a man who infiltrated the Communist Party.

Bullock moved to Los Angeles in 1960 and was given a paid position by
the ADL as an intelligence operative, he told authorities.  In the
mid-1970s, he moved to San Francisco and continued his spy operations
up and down the West Coast.

To keep his identity secret, his salary has always been funneled
through Beverly Hills attorney Bruce I. Hochman -- who has never
missed a payment in more than 32 years, Bullock said.

"I was an investigator for the ADL.  I investigated any and all
anti-democratic movements," Bullock said.  ". . . Officially, I'm only
a contract worker with Bruce Hochman.  That way, the league would not
be officially connected with me."

Bullock said he became a master at infiltrating groups from Communists
to Arab-American to gay radicals to skinheads, usually using his own
name but once adopting the alias Elmer Fink.

"I'm one of a kind," he told police.

In recent years, however, his ADL affiliation has increasingly become
known, and at one point he was confronted by a skinhead armed with a
shotgun who threatened to kill him.

In the mid-1980s, he helped San Francisco police solve a bombing at a
synagogue by combing through the trash of extremist Cory Phelps and
matching handwriting with samples on a threatening letter obtained by
police.  In part because of this investigation, he became close
friends with Gerard, who at the time was working in the San Francisco
police intelligence division.

Bullock frequently searched through the garbage of target groups.  An
FBI report noted how he investigated one Palestinian group:

"Bullock would write reports based on what he found in the trash, and
would share the reports with Gerard.  Bullock also gave the trash to
Gerard for Gerard to examine.  Gerard would later return the trash to
Bullock."

From a wide range of sources, Bullock compiled files on 9,876
individuals and more than 950 political groups.  Gerard, whose files
contained many identical entries, kept files on 7,011 people.

In 1987, Bullock and Gerard began selling some of their vast wealth of
information to the South African government.  Bullock tells of
meetings secretly with South African agents at San Francisco hotels
and receiving envelopes filled with thousands of dollars in new $100
bills.

Bullock insists the information he sold consisted of data he culled
only from public sources. Once he rewrote an innocuous item published
by San Francisco Chronicle columnist Herb Caen about South African
Bishop Desmond Tutu and the wife of prominent attorney Melvin Belli --
and submitted it as his own work.

Bullock said it was Gerard who sold official police intelligence.
Bullock said he split about $16,000 from the South African government
evenly with Gerard, telling him at one point, "I may be gay but I'm a
straight arrow."

In his interviews with the police and FBI, Bullock talked freely about
engaging in certain activities that prosecutors say would appear to
violate the law.

For example, Bullock admitted to receiving driver's license records
and criminal histories from Gerard on about 50 people -- a fraction of
the confidential police data found in his computer.  And he said
Gerard gave him complete San Francisco Police Department intelligence
files on various Nazi groups that were supposed to be destroyed under
department policy.

Bullock said he also received a confidential FBI report on the Nation
of Islam that he later shredded at the Anti-Defamation League's San
Francisco office.

Bullock seemed proud of his "Operation Eavesdrop," in which he used a
paid informant, code-named Scumbag, to help tap into a White Aryan
Resistance phone message network, listening to the messages left by
members of the right-wing group.  "For a short time, it was
wonderful," he told police.

In Los Angeles, ADL operative Gurvitz was hired about four years ago
as a "fact-finder" to keep intelligence files and occasionally go
undercover to the meetings of target groups.

Among other things, he told San Francisco authorities, the Los Angeles
ADL office kept a record of any Arab-American who had "anti-Israel
leanings" or who wrote a letter to a newspaper expressing such
sentiment.

Gurvitz was recently forced to resign after an incident in which he
attempted to misuse the ADL intelligence network to seek revenge on a
rival who got a job Gurvitz wanted at the Simon Wiesenthal Center for
Holocaust Studies.  Gurvitz got confidential police data on the rival
and threatened to expose him as a Jewish spy to a right-wing hate
group.

Gurvitz has since begun cooperating with police and the FBI in the
probe, providing considerable information about the ADL operation.
Unlike Bullock, he has been assured he is not a subject of the
investigation.

Gurvitz declined through his father in Los Angeles to be interviewed
by The Times. Bullock's attorney said his client would not comment.


I bought my HP48sx calculator a month ago, used once but put it back in the
box.  Includes manual and I'm including about 7 high density disks packed with
dozens if not hundreds of games and programs. All you need to do is buy the
pc cable for around $20 bucks so you could use the software.

	   $255 shipping included or best offer.


There was a Science fiction movie sometime ago (I do not remember its
name) about a planet in the same orbit of Earth but hidden behind the
Sun so it could never be visible from Earth. Turns out that that planet
was the exact mirror image of Earth and all its inhabitants looked like
the Earthings with the difference that their organs was in the opposite
side like the heart was in the right side instead in the left and they
would shake hands with the left hand and so on...

 C.O.EGALON@LARC.NASA.GOV

C.O.Egalon@larc.nasa.gov


Once in a while you have to put in a good word for something that works
well.  I have had no problems with my Toshiba 3401.  It works very well with
DOS and OS/2.  For OS/2, you don't need to load any special drivers.  The
installation will detect that it is a Toshiba drive and you are done.

BTW, it's also very fast!


Madmen are mad.  Do we try to explain the output from a broken computer?
I think not.


I have stated before that I do not consider myself an atheist, but
definitely do not believe in the christian god.  The recent discussion
about atheists and hell, combined with a post to another group (to the
effect of 'you will all go to hell') has me interested in the consensus
as to how a god might judge men.  As a catholic, I was told that a jew,
buddhist, etc. might go to heaven, but obviously some people do not
believe this.  Even more see atheists and pagans (I assume I would be
lumped into this category) to be hellbound.  I know you believe only
god can judge, and I do not ask you to, just for your opinions.


Enclosed are the rules, guidelines and related information for the 10th
International Obfuscated C Code Contest.  (This is part 2 of a 2 part
shar file).

Enjoy!

chongo <Landon Curt Noll> /\oo/\
Larry Bassel

=-=

#!/bin/sh
# This is part 02 of a multipart archive
# ============= mkentry.c ==============
echo "x - extracting mkentry.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > mkentry.c &&
X/* @(#)mkentry.c	1.24 3/1/93 02:28:49 */
X/*
X * Copyright (c) Landon Curt Noll & Larry Bassel, 1993.
X * All Rights Reserved.  Permission for personal, education or non-profit use
X * is granted provided this this copyright and notice are included in its
X * entirety and remains unaltered.  All other uses must receive prior
X * permission in writing from both Landon Curt Noll and Larry Bassel.
X */
X/*
X * mkentry - make an International Obfuscated C Code Contest entry
X *
X * usage:
X *	mkentry -r remarks -b build -p prog.c -o ioccc.entry
X *
X *	-r remarks		file with remarks about the entry
X *	-b build		file containing how prog.c should be built
X *	-p prog.c		the obfuscated program source file
X *	-o ioccc.entry		ioccc entry output file
X *
X * compile by:
X *	cc mkentry.c -o mkentry
X */
X/*
X * Placed in the public domain by Landon Curt Noll, 1992.
X *
X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
X * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
X * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
X */
X/*
X * WARNING:
X *
X * This program attempts to implement the IOCCC rules.  Every attempt
X * has been made to make sure that this program produces an entry that
X * conforms to the contest rules.  In all cases, where this program
X * differs from the contest rules, the contest rules will be used.  Be
X * sure to check with the contest rules before submitting an entry.
X *
X * Send questions or comments (but not entries) about the contest, to:
X *
X *	...!{sun,pacbell,uunet,pyramid}!hoptoad!judges
X *	judges@toad.com
X * The rules and the guidelines may (and often do) change from year to
X * year.  You should be sure you have the current rules and guidelines
X * prior to submitting entries.  To obtain all 3 of them, send Email
X * to the address above and use the subject 'send rules'.
X *
X * Because contest rules change from year to year, one should only use this
X * program for the year that it was intended.  Be sure that the RULE_YEAR
X * define below matches this current year.
X */
X
X#include <stdio.h>
X#include <ctype.h>
X#include <time.h>
X#include <sys/types.h>
X#include <sys/stat.h>
X
X/* logic */
X#ifndef TRUE
X# define TRUE 1
X#endif /* TRUE */
X#ifndef FALSE
X# define FALSE 0
X#endif /* FALSE */
X#define EOF_OK TRUE
X#define EOF_NOT_OK FALSE
X
X/* global limits */
X#define RULE_YEAR 1993		/* NOTE: should match the current year */
X#define START_DATE "1Mar92 0:00 UTC"	/* first confirmation received */
X#define MAX_COL 79		/* max column a line should hit */
X#define MAX_BUILD_SIZE 256	/* max how to build size */
X#define MAX_PROGRAM_SIZE 3217	/* max program source size */
X#define MAX_PROGRAM_SIZE2 1536	/* max program source size not counting
X				   whitespace and {}; not followed by
X				   whitespace or EOF */
X#define MAX_TITLE_LEN 12	/* max chars in the title */
X#define MAX_ENTRY_LEN 1		/* max length in the entry input line */
X#define MAX_ENTRY 8		/* max number of entries per person per year */
X#define MAX_FILE_LEN 1024	/* max filename length for a info file */
X
X/* where to send entries */
X#define ENTRY_ADDR1 "...!{apple,pyramid,sun,uunet}!hoptoad!obfuscate"
X#define ENTRY_ADDR2 "obfuscate@toad.com"
X
X/* uuencode process - assumes ASCII */
X#define UUENCODE(c) (encode_str[(int)(c)&0xff])
X#define UUENCODE_LEN 45		/* max uuencode chunk size */
X#define UUINFO_MODE 0444	/* mode of an info file's uuencode file */
X#define UUBUILD_MODE 0444	/* mode of the build file's uuencode file */
X#define UUBUILD_NAME "build"	/* name for the build file's uuencode file */
X#define UUPROG_MODE 0444	/* mode of the program's uuencode file */
X#define UUPROG_NAME "prog.c"	/* name for the program's uuencode file */
X
X/* encode_str[(char)val] is the uuencoded character of val */
Xchar encode_str[256+1] = "`!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_";
X
X/* global declarations */
Xchar *program;			/* our name */
Xlong start_time;		/* the startup time */
X
X/* forward declarations */
Xvoid parse_args();
Xvoid usage();
XFILE *open_remark();
XFILE *open_build();
XFILE *open_program();
XFILE *open_output();
Xvoid output_entry();
Xvoid output_remark();
Xvoid output_author();
Xvoid output_info();
Xvoid output_build();
Xvoid output_program();
Xvoid output_end();
Xint get_line();
Xvoid output_till_dot();
Xint col_len();
Xvoid check_io();
Xvoid uuencode();
X
Xmain(argc, argv)
X    int argc;		/* arg count */
X    char **argv;	/* the args */
X{
X    FILE *remark=NULL;	/* open remarks stream */
X    FILE *build=NULL;	/* open build file stream */
X    FILE *prog=NULL;	/* open program stream */
X    FILE *output=NULL;	/* open output stream */
X    char *rname=NULL;	/* file with remarks about the entry */
X    char *bname=NULL;	/* file containing how prog.c should be built */
X    char *pname=NULL;	/* the obfuscated program source file */
X    char *oname=NULL;	/* ioccc entry output file */
X    struct tm *tm;	/* startup time structure */
X
X    /*
X     * check on the year
X     */
X    start_time = time((long *)0);
X    tm = gmtime(&start_time);
X    if (tm->tm_year != RULE_YEAR-1900) {
X	fprintf(stderr,
X	"%s: WARNING: this program applies to %d, which may differ from %d\n\n",
X	    argv[0], RULE_YEAR, 1900+tm->tm_year);
X    }
X
X    /*
X     * parse the command line args
X     */
X    parse_args(argc, argv, &rname, &bname, &pname, &oname);
X
X    /*
X     * open/check the input and output files
X     *
X     * We open and truncate the output file first, in case it is the same
X     * as one of the input files.
X     */
X    output = open_output(oname);
X    remark = open_remark(rname);
X    build = open_build(bname);
X    prog = open_program(pname);
X    if (output==NULL || remark==NULL || build==NULL || prog==NULL) {
X	exit(1);
X    }
X
X    /*
X     * output each section
X     */
X    output_entry(output, oname);
X    output_remark(output, oname, remark, rname);
X    output_author(output, oname);
X    output_info(output, oname);
X    output_build(output, oname, build, bname);
X    output_program(output, oname, prog, pname);
X    output_end(output, oname);
X
X    /*
X     * flush the output
X     */
X    if (fflush(output) == EOF) {
X	fprintf(stderr, "%s: flush error in %s: ", program, oname);
X	perror("");
X	exit(2);
X    }
X
X    /*
X     * final words
X     */
X    printf("\nYour entry can be found in %s.  You should check this file\n",
X	oname);
X    printf("correct any problems and verify that the uudecode utility will\n");
X    printf("correctly decode your build file and program.\n\n");
X    printf("This program has been provided as a guide for submitters.  In\n");
X    printf("cases where it conflicts with the rules, the rules shall apply.\n");
X    printf("It is your responsibility to ensure that your entry conforms to\n");
X    printf("the current rules.\n\n");
X    printf("Email your entries to:\n");
X    printf("\t%s\n", ENTRY_ADDR1);
X    printf("\t%s\n\n", ENTRY_ADDR2);
X    printf("Please use the following subject when you Email your entry:\n");
X    printf("\tioccc entry\n\n");
X    /* all done */
X    exit(0);
X}
X
X/*
X * parse_args - parse the command line args
X *
X * Given the command line args, this function parses them and sets the
X * required name flags.  This function will return only if the command
X * line syntax is correct.
X */
Xvoid
Xparse_args(argc, argv, rname, bname, pname, oname)
X    int argc;		/* arg count */
X    char **argv;	/* the args */
X    char **rname;	/* file with remarks about the entry */
X    char **bname;	/* file containing how prog.c should be built */
X    char **pname;	/* the obfuscated program source file */
X    char **oname;	/* ioccc entry output file */
X{
X    char *optarg;	/* -flag option operand */
X    int flagname;	/* the name of the -flag */
X    int i;
X
X    /*
X     * Not everyone has getopt, so we must parse args by hand.
X     */
X    program = argv[0];
X    for (i=1; i < argc; ++i) {
X
X	/* determine the flagname */
X	if (argv[i][0] != '-') {
X	    usage(1);
X	    /*NOTREACHED*/
X	}
X	flagname = (int)argv[i][1];
X
X	/* determine the flag's operand */
X	if (flagname != '\0' && argv[i][2] != '\0') {
X	    optarg = &argv[i][2];
X	} else {
X	    if (i+1 >= argc) {
X		usage(2);
X		/*NOTREACHED*/
X	    } else {
X		optarg = argv[++i];
X	    }
X	}
X
X	/* save the flag's operand in the correct global variable */
X	switch (flagname) {
X	case 'r':
X	    *rname = optarg;
X	    break;
X	case 'b':
X	    *bname = optarg;
X	    break;
X	case 'p':
X	    *pname = optarg;
X	    break;
X	case 'o':
X	    *oname = optarg;
X	    break;
X	default:
X	    usage(3);
X	    /*NOTREACHED*/
X	}
X    }
X
X    /*
X     * verify that we have all of the required flags
X     */
X    if (*rname == NULL || *bname == NULL || *pname == NULL || *oname == NULL) {
X	usage(4);
X	/*NOTREACHED*/
X    }
X    return;
X}
X
X/*
X * usage - print a usage message and exit
X *
X * This function does not return.
X */
Xvoid
Xusage(exitval)
X    int exitval;		/* exit with this value */
X{
X    fprintf(stderr,
X	"usage: %s -r remarks -b build -p prog.c -o ioccc.entry\n\n", program);
X    fprintf(stderr, "\t-r remarks\tfile with remarks about the entry\n");
X    fprintf(stderr, "\t-b build\tfile containing how prog.c should be built\n");
X    fprintf(stderr, "\t-p prog.c\tthe obfuscated program source file\n");
X    fprintf(stderr, "\t-o ioccc.entry\tioccc entry output file\n");
X    exit(exitval);
X}
X
X/*
X * open_remark - open/check the remark file
X *
X * The remark file should be indented by 4 spaces, and should not extend
X * beyond column MAX_COL.  These are not requirements, so we only warn.
X *
X * This function returns NULL on I/O or format error.
X */
XFILE *
Xopen_remark(filename)
X    char *filename;
X{
X    FILE *stream;		/* the opened file stream */
X    char buf[BUFSIZ+1];		/* input buffer */
X    int toolong=0;		/* number of lines that are too long */
X    int non_indent=0;		/* number of lines not indented by 4 spaces */
X
X    /*
X     * open the remark input file
X     */
X    stream = fopen(filename, "r");
X    if (stream == NULL) {
X	fprintf(stderr, "%s: cannot open remark file: %s: ",
X	    program, filename);
X	perror("");
X	return(NULL);
X    }
X
X    /*
X     * look at each line
X     */
X    while (fgets(buf, BUFSIZ, stream) != NULL) {
X
X	/* count lines that do not start with 4 spaces */
X	if (buf[0] != '\n' && strncmp(buf, "    ", 4) != 0) {
X	    ++non_indent;
X	}
X
X	/* count long lines */
X	if (col_len(buf) > MAX_COL) {
X	    /* found a line that is too long */
X	    ++toolong;
X	}
X    }
X
X    /* watch for I/O errors */
X    check_io(stream, filename, EOF_OK);
X
X    /* note long lines if needed */
X    if (toolong > 0) {
X	fprintf(stderr,
X	    "%s: WARNING: %d line(s) from %s extend beyond the 80th column\n",
X	    program, toolong, filename);
X	fprintf(stderr,
X	    "%s:          This is ok, but it would be nice to avoid\n\n",
X	    program);
X    }
X
X    /* note non-indented lines, if needed */
X    if (non_indent > 0) {
X	fprintf(stderr,
X	    "%s: WARNING: %d line(s) from %s are not indented by 4 spaces\n",
X	    program, non_indent, filename);
X	fprintf(stderr,
X	    "%s:          This is ok, but it would be nice to avoid\n\n",
X	    program);
X    }
X
X    /* return the open file */
X    rewind(stream);
X    return(stream);
X}
X
X/*
X * open_build - open/check the build file
X *
X * The how to build file must not be longer than MAX_BUILD_SIZE bytes.
X *
X * This function returns NULL on I/O or size error.
X */
XFILE *
Xopen_build(filename)
X    char *filename;
X{
X    FILE *stream;		/* the opened file stream */
X    struct stat statbuf;	/* the status of the open file */
X
X    /*
X     * open the how to build input file
X     */
X    stream = fopen(filename, "r");
X    if (stream == NULL) {
X	fprintf(stderr, "%s: cannot open how to build file: %s: ",
X	    program, filename);
X	perror("");
X	return(NULL);
X    }
X
X    /*
X     * determine the size of the file
X     */
X    if (fstat(fileno(stream), &statbuf) < 0) {
X	fprintf(stderr, "%s: cannot stat how to build file: %s: ",
X	    program, filename);
X	perror("");
X	return(NULL);
X    }
X    if (statbuf.st_size > MAX_BUILD_SIZE) {
X	fprintf(stderr,
X	    "%s: FATAL: the how to build file: %s, is %d bytes long\n",
X	    program, filename, statbuf.st_size);
X	fprintf(stderr,
X	    "%s:        it may not be longer than %d bytes\n",
X	    program, MAX_BUILD_SIZE);
X	return(NULL);
X    }
X
X    /* return the open file */
X    return(stream);
X}
X
X/*
X * open_program - open/check the program source file
X *
X * The program source file must be <= 3217 bytes.  The number of
X * non-whitespace and }{; chars not followed by whitespace must
X * be <= 1536 bytes.
X *
X * This function returns NULL on I/O or size error.
X */
XFILE *
Xopen_program(filename)
X    char *filename;
X{
X    FILE *stream;		/* the opened file stream */
X    struct stat statbuf;	/* the status of the open file */
X    int count;			/* special count size */
X    int c;			/* the character read */
X
X    /*
X     * open the program source input file
X     */
X    stream = fopen(filename, "r");
X    if (stream == NULL) {
X	fprintf(stderr, "%s: cannot open program source file: %s: ",
X	    program, filename);
X	perror("");
X	exit(7);
X    }
X
X    /*
X     * determine the size of the file
X     */
X    if (fstat(fileno(stream), &statbuf) < 0) {
X	fprintf(stderr, "%s: cannot stat program source file: %s: ",
X	    program, filename);
X	perror("");
X	return(NULL);
X    }
X    if (statbuf.st_size > MAX_PROGRAM_SIZE) {
X	fprintf(stderr,
X	    "%s: FATAL: the program source file: %s, is %d bytes long\n",
X	    program, filename, statbuf.st_size);
X	fprintf(stderr,
X	    "%s:        it may not be longer than %d bytes\n",
X	    program, MAX_PROGRAM_SIZE);
X	return(NULL);
X    }
X
X    /*
X     * count the non-whitespace, non {}; followed by whitespace chars
X     */
X    count = 0;
X    c = 0;
X    while ((c=fgetc(stream)) != EOF) {
X	/* look at non-whitespace */
X	if (!isascii(c) || !isspace(c)) {
X	    switch (c) {
X	    case '{':		/* count if not followed by EOF or whitespace */
X	    case '}':
X	    case ';':
X		/* peek at next char */
X		c = fgetc(stream);
X		if (c != EOF && isascii(c) && !isspace(c)) {
X		    /* not followed by whitespace or EOF, count it */
X		    ungetc(c, stream);
X		    ++count;
X		}
X		break;
X	    default:
X		++count;
X		break;
X	    }
X	}
X    }
X
X    /* watch for I/O errors */
X    check_io(stream, filename, EOF_OK);
X
X    /* look at the special size */
X    if (count > MAX_PROGRAM_SIZE2) {
X	fprintf(stderr,
X	    "%s: FATAL: the number of bytes that are non-whitespace, and\n",
X	    program);
X	fprintf(stderr,
X	    "%s:        that are not '{', '}', ';' followed by whitespace\n",
X	    program);
X	fprintf(stderr,
X	    "%s:        or EOF must be <= %d bytes\n",
X	    program, MAX_PROGRAM_SIZE2);
X	fprintf(stderr,
X	    "%s:        in %s, %d bytes were found\n",
X	    program, filename, count);
X	return(NULL);
X    }
X
X    /* return the open file */
X    rewind(stream);
X    return(stream);
X}
X
X/*
X * open_output - open/check the entry output file
X *
X * This function returns NULL on open error.
X */
XFILE *
Xopen_output(filename)
X    char *filename;
X{
X    FILE *stream;		/* the opened file stream */
X
X    /*
X     * open the ioccc entry output file
X     */
X    stream = fopen(filename, "w");
X    if (stream == NULL) {
X	fprintf(stderr, "%s: cannot open ioccc entry file for output: %s: ",
X	    program, filename);
X	perror("");
X	exit(8);
X    }
X
X    /* return the open file */
X    return(stream);
X}
X
X/*
X * output_entry - output the ---entry--- section
X *
X * Read the needed information form stdin, and write the entry section.
X */
Xvoid
Xoutput_entry(output, oname)
X    FILE *output;		/* entry's output file stream */
X    char *oname;		/* name of the output file */
X{
X    char title[MAX_TITLE_LEN+1+1];	/* the entry's title */
X    char buf[MAX_COL+1+1];		/* I/O buffer */
X    int entry=0;			/* entry number */
X    int ret;				/* fields processed by fscanf */
X    int ok_line=0;			/* 0 => the line is not ok */
X    char skip;				/* input to skip */
X    FILE *date_pipe;			/* pipe to a date command */
X    time_t epoch_sec;			/* seconds since the epoch */
X    char *p;
X
X    /*
X     * write the start of the section
X     */
X    fprintf(output, "---entry---\n");
X    check_io(output, oname, EOF_NOT_OK);
X
X    /*
X     * write the rule year
X     */
X    fprintf(output, "rule:\t%d\n", RULE_YEAR);
X    check_io(output, oname, EOF_NOT_OK);
X
X    /* determine if this is a fix */
X    printf("Is this a fix, update or resubmittion to a ");
X    printf("previous entry (enter y or n)? ");
X    while (get_line(buf, 1+1, 0) <= 0 || !(buf[0]=='y' || buf[0]=='n')) {
X	printf("\nplease answer y or n: ");
X    }
X    if (buf[0] == 'y') {
X	fprintf(output, "fix:\ty\n");
X	check_io(output, oname, EOF_NOT_OK);
X	printf("\nBe sure that the title and entry number that you give\n");
X	printf("are the same of as the entry you are replacing\n");
X    } else {
X	fprintf(output, "fix:\tn\n");
X	check_io(output, oname, EOF_NOT_OK);
X    }
X
X    /*
X     * write the title
X     */
X    printf("\nYour title must match expression be a [a-zA-Z0-9_=] character\n");
X    printf("followed by 0 to %d more [a-zA-Z0-9_=+-] characters.\n\n",
X	MAX_TITLE_LEN-1);
X    printf("It is suggested, but not required, that the title should\n");
X    printf("incorporate your username; in the\n");
X    printf("case of multiple authors, consider using parts of the usernames\n");
X    printf("of the authors.\n\n");
X    printf("enter your title: ");
X    do {
X	/* prompt and read a line */
X	if ((ok_line = get_line(title, MAX_TITLE_LEN+1, MAX_COL-9)) <= 0) {
X	    printf("\ntitle is too long, please re-enter: ");
X	    continue;
X	}
X
X	/* verify the pattern, not everyone has regexp, so do it by hand */
X	if (!isascii((int)title[0]) ||
X	    !(isalnum((int)title[0]) || title[0] == '_' || title[0] == '=')) {
X	    printf("\ninvalid first character in the title\n\n");
X	    printf("enter your title: ");
X	    ok_line = 0;
X	} else {
X	    for (p=(&title[1]); *p != '\0' && *p != '\n'; ++p) {
X		if (!isascii((int)*p) ||
X		    !(isalnum((int)*p) ||
X		      *p == '_' || *p == '=' || *p == '+' || *p == '-')) {
X		    printf("\ninvalid character in the title\n\n");
X		    printf("enter your title: ");
X		    ok_line = 0;
X		}
X	    }
X	}
X    } while (ok_line <= 0);
X    fprintf(output, "title:\t%s", title);
X    check_io(output, oname, EOF_NOT_OK);
X
X    /*
X     * write the entry number
X     */
X    printf("\nEach person may submit up to %d entries per year.\n\n",
X	MAX_ENTRY);
X    printf("enter an entry number from 0 to %d inclusive: ", MAX_ENTRY-1);
X    do {
X	/* get a valid input line */
X	fflush(stdout);
X	ret = fscanf(stdin, "%d[\n]", &entry);
X	check_io(stdin, "stdin", EOF_NOT_OK);
X	/* skip over input until newline is found */
X	do {
X	    skip = fgetc(stdin);
X	    check_io(stdin, "stdin", EOF_NOT_OK);
X	    if (skip != '\n') {
X		/* bad text in input, invalidate entry number */
X		entry = -1;
X	    }
X	} while (skip != '\n');
X
X	/* check if we have a number, and if it is in range */
X	if (ret != 1 || entry < 0 || entry > MAX_ENTRY-1) {
X	    printf(
X	      "\nThe entry number must be between 0 and %d inclusive\n\n",
X		MAX_ENTRY-1);
X	    printf("enter the entry number: ");
X	}
X    } while (ret != 1 || entry < 0 || entry > MAX_ENTRY-1);
X    fprintf(output, "entry:\t%d\n", entry);
X    check_io(output, oname, EOF_NOT_OK);
X
X    /*
X     * write the submission date
X     */
X    /* returns a newline */
X    epoch_sec = time(NULL);
X    fprintf(output, "date:\t%s", asctime(gmtime(&epoch_sec)));
X    check_io(output, oname, EOF_NOT_OK);
X
X    /*
X     * write the OS/machine host information
X     */
X    printf(
X      "\nEnter the machine(s) and OS(s) under which your entry was tested.\n");
X    output_till_dot(output, oname, "host:");
X}
X
X/*
X * output_remark - output the ---remark--- section
X *
X * Read the needed information form stdin, and write the entry section.
X */
Xvoid
Xoutput_remark(output, oname, remark, rname)
X    FILE *output;		/* entry's output file stream */
X    char *oname;		/* name of the output file */
X    FILE *remark;		/* stream to the file containing remark text */
X    char *rname;		/* name of the remark file */
X{
X    char buf[BUFSIZ+1];		/* input/output buffer */
X
X    /*
X     * write the start of the section
X     */
X    fprintf(output, "---remark---\n");
X    check_io(output, oname, EOF_NOT_OK);
X
X    /*
X     * copy the remark file to the section
X     */
X    while (fgets(buf, BUFSIZ, remark) != NULL) {
X	fputs(buf, output);
X	check_io(output, oname, EOF_NOT_OK);
X    }
X    check_io(remark, rname, EOF_OK);
X
X    /* be sure that the remark section ends with a newline */
X    if (buf[strlen(buf)-1] != '\n') {
X	fputc('\n', output);
X	check_io(output, oname, EOF_NOT_OK);
X    }
X}
X
X/*
X * output_author - output the ---author--- section
X *
X * Read the needed information from stdin, and write the author section.
X * If multiple authors exist, multiple author sections will be written.
X */
Xvoid
Xoutput_author(output, oname)
X    FILE *output;		/* entry's output file stream */
X    char *oname;		/* name of the output file */
X{
X    char buf[MAX_COL+1+1];	/* I/O buffer */
X    int more_auths;		/* TRUE => more authors to note */
X    int auth_cnt=0;		/* number of authors processed */
X
X    /*
X     * prompt the user for the author section
X     */
X    printf("\nEnter information about each author.  If your entry is after\n");
X    printf("%s and before the contest deadline, the judges\n", START_DATE);
X    printf("will attempt to Email back a confirmation to the first author\n");
X
X    /*
X     * place author information for each author in an individual section
X     */
X    do {
X
X	/* write the start of the section */
X	fprintf(output, "---author---\n");
X	check_io(output, oname, EOF_NOT_OK);
X
X	/* write the author */
X	printf("\nAuthor #%d name: ", ++auth_cnt);
X	while (get_line(buf, MAX_COL+1, MAX_COL-9) <= 0) {
X	    printf("\nname too long, please re-enter: ");
X	}
X	fprintf(output, "name:\t%s", buf);
X	check_io(output, oname, EOF_NOT_OK);
X
X	/* write the organization */
X	printf("\nEnter the School/Company/Organization of author #%d\n",
X	    auth_cnt);
X	printf("\nAuthor #%d org: ", auth_cnt);
X	while (get_line(buf, MAX_COL+1, MAX_COL-9) <= 0) {
X	    printf("\nline too long, please re-enter: ");
X	}
X	fprintf(output, "org:\t%s", buf);
X	check_io(output, oname, EOF_NOT_OK);
X
X	/* write the address */
X	printf(
X	    "\nEnter the postal address for author #%d.  Be sure to include\n",
X	    auth_cnt);
X	printf("your country and do not include your name.\n");
X	output_till_dot(output, oname, "addr:");
X
X	/* write the Email address */
X	printf(
X	    "\nEnter the Email address for author #%d.  Use an address from\n",
X	    auth_cnt);
X	printf(
X	    "a registered domain or well known site.  If you give several\n");
X	printf("forms, list them one per line.\n");
X	output_till_dot(output, oname, "email:");
X
X	/* write the anonymous status */
X	printf("\nShould author #%d remain anonymous (enter y or n)? ",
X	    auth_cnt);
X	while (get_line(buf, 1+1, 0) <= 0 || !(buf[0]=='y' || buf[0]=='n')) {
X	    printf("\nplease answer y or n: ");
X	}
X	fprintf(output, "anon:\t%s", buf);
X	check_io(output, oname, EOF_NOT_OK);
X
X	/* determine if there is another author */
X	printf("\nIs there another author (enter y or n)? ");
X	while (get_line(buf, 1+1, 0) <= 0 || !(buf[0]=='y' || buf[0]=='n')) {
X	    printf("\nplease answer y or n: ");
X	}
X	if (buf[0] == 'y') {
X	    more_auths = TRUE;
X	} else {
X	    more_auths = FALSE;
X	}
X    } while (more_auths == TRUE);
X    return;
X}
X
X/*
X * output_info - output the ---info--- section(s)
X *
X * Read the needed information from stdin, and write the info section.
X * If multiple info files exist, multiple info sections will be written.
X */
Xvoid
Xoutput_info(output, oname)
X    FILE *output;		/* entry's output file stream */
X    char *oname;		/* name of the output file */
X{
X    char infoname[MAX_FILE_LEN+1];	/* filename buffer */
X    char yorn[1+1];		/* y or n answer */
X    char *uuname;		/* name to uuencode as */
X    FILE *infile;		/* info file stream */
X
X    /*
X     * prompt the user for info information
X     */
X    printf("\nInfo files should be used only to supplement your entry.\n");
X    printf("For example, info files may provide sample input or detailed\n");
X    printf("information about your entry.  Because they are supplemental,\n");
X    printf("the entry should not require them to exist.\n\n");
X
X    /*
X     * while there is another info file to save, uuencode it
X     */
X    printf("Do you have a info file to include (enter y or n)? ");
X    while (get_line(yorn, 1+1, 0) <= 0 || !(yorn[0]=='y' || yorn[0]=='n')) {
X	printf("\nplease answer y or n: ");
X    }
X    while (yorn[0] == 'y') {
X
X	/* read the filename */
X	printf("\nEnter the info filename: ");
X	while (get_line(infoname, MAX_FILE_LEN+1, 0) <= 0) {
X	    printf("\nInfo filename too long, please re-enter: ");
X	}
X
X	/* compute the basename of the info filename */
X	/* remove the trailing newline */
X	uuname = &infoname[strlen(infoname)-1];
X	*uuname = '\0';
X	/* avoid rindex/shrrchr compat issues, do it by hand */
X	for (--uuname; uuname > infoname; --uuname) {
X	    if (*uuname == '/') {
X		++uuname;
X		break;
X	    }
X	}
X
X	/* attempt to open the info file */
X	infile = fopen(infoname, "r");
X	if (infile == NULL) {
X	    fprintf(stderr, "\n%s: cannot open info file: %s: ",
X		program, infoname);
X	    perror("");
X	    continue;
X	}
X
X	/*
X	 * write the start of the section
X	 */
X	fprintf(output, "---info---\n");
X	check_io(output, oname, EOF_NOT_OK);
X
X	/* uuencode the info file */
X	uuencode(output, oname, infile, infoname, UUINFO_MODE, uuname);
X
X	printf("\nDo you have another info file to include (enter y or n)? ");
X	while (get_line(yorn, 1+1, 0) <= 0 || !(yorn[0]=='y' || yorn[0]=='n')) {
X	    printf("\nplease answer y or n: ");
X	}
X    };
X    return;
X}
X
X/*
X * output_build - output the ---build--- section
X *
X * Read the needed information from stdin, and write the build section.
X */
Xvoid
Xoutput_build(output, oname, build, bname)
X    FILE *output;		/* entry's output file stream */
X    char *oname;		/* name of the output file */
X    FILE *build;		/* open build file stream */
X    char *bname;		/* name of the build file */
X{
X    /*
X     * write the start of the section
X     */
X    fprintf(output, "---build---\n");
X    check_io(output, oname, EOF_NOT_OK);
X
X    /*
X     * uuencode the program file
X     */
X    uuencode(output, oname, build, bname, UUBUILD_MODE, UUBUILD_NAME);
X    return;
X}
X
X/*
X * output_program - output the ---program--- section
X *
X * Read the needed information form stdin, and write the program section.
X */
Xvoid
Xoutput_program(output, oname, prog, pname)
X    FILE *output;		/* entry's output file stream */
X    char *oname;		/* name of the output file */
X    FILE *prog;			/* open program stream */
X    char *pname;		/* name of program file */
X{
X    /*
X     * write the start of the section
X     */
X    fprintf(output, "---program---\n");
X    check_io(output, oname, EOF_NOT_OK);
X
X    /*
X     * uuencode the program file
X     */
X    uuencode(output, oname, prog, pname, UUPROG_MODE, UUPROG_NAME);
X    return;
X}
X
X/*
X * output_end - output the ---end--- section
X *
X * Read the needed information form stdin, and write the 'end section'.
X */
Xvoid
Xoutput_end(output, oname)
X    FILE *output;		/* entry's output file stream */
X    char *oname;		/* name of the output file */
X{
X    /*
X     * write the final section terminator
X     */
X    fprintf(output, "---end---\n");
X    check_io(output, oname, EOF_NOT_OK);
X    return;
X}
X
X/*
X * get_line - get an answer from stdin
X *
X * This function will flush stdout, in case a prompt is pending, and
X * read in the answer.
X *
X * This function returns 0 if the line is too long, of the length of the
X * line (including the newline) of the line was ok.  This function does
X * not return if ERROR or EOF.
X */
Xint
Xget_line(buf, siz, maxcol)
X    char *buf;			/* input buffer */
X    int siz;			/* length of input, including the newline */
X    int maxcol;			/* max col allowed, 0 => disable check */
X{
X    int length;			/* the length of the input line */
X
X    /* flush terminal output */
X    fflush(stdout);
X
X    /* read the line */
X    if (fgets(buf, siz+1, stdin) == NULL) {
X	/* report the problem */
X	check_io(stdin, "stdin", EOF_NOT_OK);
X    }
X
X    /* look for the newline */
X    length = strlen(buf);
X    if (buf[length-1] != '\n') {
X	int eatchar;		/* the char being eaten */
X
X	/* no newline found, line must be too long, eat the rest of the line */
X	do {
X	    eatchar = fgetc(stdin);
X	} while (eatchar != EOF && eatchar != '\n');
X	check_io(stdin, "stdin", EOF_NOT_OK);
X
X	/* report the situation */
X	return 0;
X    }
X
X    /* watch for long lines, if needed */
X    if (maxcol > 0 && (length > maxcol || col_len(buf) > maxcol)) {
X	/* report the situation */
X	return 0;
X    }
X
X    /* return length */
X    return length;
X}
X
X/*
X * output_till_dot - output a set of lines until '.' by itself is read
X *
X * This routine will read a set of lines until (but not including)
X * a single line with '.' is read.  The format of the output is:
X *
X *	leader:\tfirst line
X *	\tnext line
X *	\tnext line
X *	   ...
X *
X * This routine will not return if I/O error or EOF.
X */
Xvoid
Xoutput_till_dot(output, oname, leader)
X    FILE *output;		/* entry's output file stream */
X    char *oname;		/* name of the output file */
X    char *leader;		/* the lead text for the first line */
X{
X    char buf[BUFSIZ+1];		/* input buffer */
X    int count;			/* lines read */
X    int done=FALSE;		/* TRUE => finished reading input */
X
X    /* instruct the user on how to input */
X    printf("\nTo end input, enter a line with a single period.\n");
X
X    /* read lines until '.' or EOF */
X    count = 0;
X    while (!done) {
X	/* issue the prompt */
X	printf("%s\t", (count>0) ? "" : leader);
X	fflush(stdout);
X
X	/* get the line */
X	if (get_line(buf, BUFSIZ, MAX_COL-9) <= 0) {
X	    printf("\nline too long, please re-enter:\n\t");
X	    continue;
X	}
X
X	/* note if '.' was read */
X	if (strcmp(buf, ".\n") == 0) {
X	    done = TRUE;
X	}
X
X	/* write line if we read something */
X	if (!done) {
X	    fprintf(output, "%s\t%s", (count++>0) ? "" : leader, buf);
X	    check_io(output, oname, EOF_NOT_OK);
X	}
X    }
X
X    /* if no lines read, at least output something */
X    if (count <= 0) {
X	fprintf(output, "%s\t.\n", leader);
X	check_io(output, oname, EOF_NOT_OK);
X    }
X    return;
X}
X
X/*
X * col_len - determine the highest that a string would reach
X *
X * Given a string, this routine returns that a string would reach
X * if the string were printed at column 1.  Tab stops are assumed
X * to start at 9, 17, 25, 33, ...
X */
Xint
Xcol_len(string)
X    char *string;		/* the string to examine */
X{
X    int col;	/* current column */
X    char *p;	/* current char */
X
X    /* scan the string */
X    for (col=0, p=string; *p != '\0' && *p != '\n'; ++p) {
X	/* note the column shift */
X	col = (*p=='\t') ? 1+((col+8)/8*8) : col+1;
X    }
X    if (*p == '\n') {
X	--col;
X    }
X
X    /* return the highest column */
X    return col;
X}
X
X/*
X * check_io - check for EOF or I/O error on a stream
X *
X * Does not return if EOF or I/O error.
X */
Xvoid
Xcheck_io(stream, name, eof_ok)
X    FILE *stream;		/* the stream to check */
X    char *name;			/* the name of this stream */
X    int eof_ok;			/* EOF_OK or EOF_NOT_OK */
X{
X    /* test for I/O error */
X    if (ferror(stream)) {
X	fprintf(stderr, "%s: error on %s: ", program, name);
X	perror("");
X	exit(1);
X
X    /* test for EOF */
X    } else if (eof_ok == EOF_NOT_OK && feof(stream)) {
X	fprintf(stderr, "%s: EOF on %s\n", program, name);
X	exit(1);
X    }
X    return;
X}
X
X/*
X * uuencode - uuencode a file
X *
X * Perform the uuencoding process identical to the process performed
X * by the uuencode(1) utility.
X *
X * This routine implements the algorithm described in the uuencode(5)
X * 4.3BSD Reno man page.
X */
Xvoid
Xuuencode(output, oname, infile, iname, umode, uname)
X    FILE *output;		/* output file stream */
X    char *oname;		/* output filename */
X    FILE *infile;		/* input file stream */
X    char *iname;		/* input filename */
X    int umode;			/* the mode to put on the uuencode file */
X    char *uname;		/* name to put on the uuencode file */
X{
X    char buf[UUENCODE_LEN+1];	/* the uuencode buffer */
X    int read_len;		/* actual number of chars read */
X    int val;			/* 6 bit chunk from buf */
X    char filler='\0';		/* filler uuencode pad text */
X    char *p;
X
X    /*
X     * output the initial uuencode header
X     */
X    fprintf(output, "begin %o %s\n", umode, uname);
X    check_io(output, oname, EOF_NOT_OK);
X
X    /*
X     * clear out the input buffer
X     */
X    for (p=buf; p < &buf[sizeof(buf)/sizeof(buf[0])]; ++p) {
X	*p = '\0';
X    }
X
X    /*
X     * We will process UUENCODE_LEN chars at a time, forming
X     * a single output line each time.
X     */
X    while ((read_len=fread(buf,sizeof(buf[0]),UUENCODE_LEN,infile)) > 0) {
X
X	/*
X	 * the first character is the length character
X	 */
X	fputc(UUENCODE(read_len), output);
X	check_io(output, oname, EOF_NOT_OK);
X
X	/*
X	 * We will convert 24 bits at a time.  Thus we will convert
X	 * 3 sets of 8 bits into 4 sets of uuencoded 6 bits.
X	 */
X	for (p=buf; read_len>0; read_len-=3, p+=3) {
X
X	    /* bits 0 to 5 */
X	    val = (p[0]>>2)&0x3f;
X	    fputc(UUENCODE(val), output);
X	    check_io(output, oname, EOF_NOT_OK);
X
X	    /* bits 6 to 11 */
X	    val = ((p[0]<<4)&0x30) | ((p[1]>>4)&0x0f);
X	    fputc(UUENCODE(val), output);
X	    check_io(output, oname, EOF_NOT_OK);
X
X	    /* bits 12 to 17 */
X	    val = ((p[1]<<2)&0x3c) | ((p[2]>>6)&0x03);
X	    fputc(UUENCODE(val), output);
X	    check_io(output, oname, EOF_NOT_OK);
X
X	    /* bits 18 to 23 */
X	    val = p[2]&0x3f;
X	    fputc(UUENCODE(val), output);
X	    check_io(output, oname, EOF_NOT_OK);
X	}
X
X	/* end of UUENCODE_LEN line */
X	fputc('\n', output);
X	check_io(output, oname, EOF_NOT_OK);
X
X	/*
X	 * clear out the input buffer  (don't depend on bzero() or memset())
X	 */
X	for (p=buf; p < &buf[sizeof(buf)/sizeof(buf[0])]; ++p) {
X	    *p = '\0';
X	}
X    }
X
X    /* check the last read on the input file */
X    check_io(infile, iname, EOF_OK);
X
X    /* write end of uuencode file */
X    fprintf(output, "%c\nend\n", UUENCODE(filler));
X    check_io(output, oname, EOF_NOT_OK);
X}
SHAR_EOF
chmod 0444 mkentry.c ||
echo "restore of mkentry.c failed"
set `wc -c mkentry.c`;Wc_c=$1
if test "$Wc_c" != "33961"; then
	echo original size 33961, current size $Wc_c
fi
# ============= obfuscate.info ==============
echo "x - extracting obfuscate.info (Text)"
sed 's/^X//' << 'SHAR_EOF' > obfuscate.info &&
X1993 Obfuscated contest information
X
XCopyright (c) Landon Curt Noll & Larry Bassel, 1993.
XAll Rights Reserved.  Permission for personal, education or non-profit use is
Xgranted provided this this copyright and notice are included in its entirety
Xand remains unaltered.  All other uses must receive prior permission in writing
Xfrom both Landon Curt Noll and Larry Bassel.
X
XThe International Obfuscated C Code Contest (IOCCC), in the sprit of
Xco-operation, is willing mention other programming contents, as space
Xpermits.
X
XHow to have your contest included in this file:
X
X    If you wish the IOCCC judges to include your contest in this file,
X    send a request to:
X
X	judges@toad.com
X
X    We request that contest descriptions be limited to 50 lines and to
X    not exceed 2500 bytes.  We typically request that your contest
X    include a current description of the IOCCC.
X
X    In order to be included in this file for given year, we must
X    receive a current description no EARLIER than Jan 1 00:00:00 UTC and
X    no LATER than Feb 15 00:00:00 UTC.  Agreement to publish your
X    contest must also be obtained prior to Feb 15.  Annual contests
X    that fail to submit a new entry will be dropped from this file.
X
XOfficial Disclaimer:  (pardon the officialese)
X
X    The contents noted below, other than the IOCCC, are not affiliated
X    with the IOCCC, nor are they endorsed by the IOCCC.  We reserve the
X    right to refuse to print information about a given contest.
X
X    The information below was provided by the particular contest
X    organizer(s) and printed by permission.  Please contact the
X    contest organizer(s) directly regarding their contents.
X
XWith that official notice given, we present for your ENJOYMENT, the following
Xinformation about contents:
X
X---------------------------------------------------------------------------
X
X    10th International Obfuscated C Contest
X
X	"The original obfuscated contest"
X
X    Obfuscate:  tr.v.  -cated, -cating, -cates.  1. a.  To render obscure.
X                b.  To darken.  2. To confuse:  Their emotions obfuscated
X		their judgment.  [LLat. obfuscare, to darken : ob(intensive) +
X                Lat. fuscare, to darken < fuscus, dark.] -obfuscation n.
X                obfuscatory adj.
X
X    GOALS OF THE CONTEST:
X
X        * To write the most Obscure/Obfuscated C program under the rules below.
X        * To show the importance of programming style, in an ironic way.
X        * To stress C compilers with unusual code.
X        * To illustrate some of the subtleties of the C language.
X        * To provide a safe forum for poor C code.  :-)
X
X    The IOCCC is the grandfather of USENET programming contests.  Since
X    1984, this contest demonstrated that a program that mearly works
X    correctly is not sufficient.  The IOCCC has also done much to add
X    the arcane word 'obfuscated' back into the English language.
X    (see "The New Hacker's Dictionary" by Eric Raymond)
X
X    You are strongly encouraged to read the new contest rules before
X    sending any entries.  The rules, and sometimes the contest Email
X    address itself, change over time.  A valid entry one year may
X    be rejected in a later year due to changes in the rules.  The typical
X    start date for contests is in early March.  Contest rules are normally not
X    finalized and posted until the beginning of the contest.  The typical
X    closing date for contests are in early May.
X
X    The contest rules are posted to comp.unix.wizards, comp.lang.c,
X    misc.misc, alt.sources and comp.sources.d.  If you do not have access
X    to these groups, or if you missed the early March posting, you may
X    request a copy from the judges, via Email, at;
X
X        judges@toad.com   -or-   ...!{sun,uunet,utzoo,pyramid}!hoptoad!judges
X
X    Previous contest winners are available via anonymous ftp from
X    ftp.uu.net under the directory /pub/ioccc.
X
X---------------------------------------------------------------------------
X
X    0th International Obfuscated Perl Contest
X	By: Landon Noll & Larry Wall
X
X    This content is being planned.  Someday when Landon & Larry are not too
X    busy, they will actually get around to posting the first set of rules!
X
X		  but other existing projects got in the way.  Hopefully
X		  something will be developed after Nov 1993."
X
X---------------------------------------------------------------------------
X
X                2nd International obFUsCaTeD POsTsCripT Contest
X                     Jonathan Monsarrat (jgm@cs.brown.edu)
X                         Alena Lacova (alena@nikhef.nl)
X
X    A  contest of  programming skills  and  knowledge, exclusively  for the
X    PostScript programming language. Its purpose:
X
X    * To spread knowledge of PostScript and its details.
X    * To applaud those with the best tricks.
X    * To prove  that humans can  beat those damnable  machine generators at
X      their own game by writing  the most obscure and mysterious PostScript
X      programs ever.
X
X    Winners will receive the fame and attention that goes with having their
X    program entry posted as a winner to programmers world-wide.
X
X    The 1993 contest rules and results are available by ftp as
X    ``wilma.cs.brown.edu:pub/postscript/obfuscated*.shar'', or individually
X    in the obfuscated directory. The judges will post the 1994 rules
X    in November to comp.lang.postscript on Usenet, and other places.
X    Send questions to jgm@cs.brown.edu.
X
X    Categories include: Best Obfuscated PostScript, Best Artwork,
X    Most Compact, Best Interactive Program, Most Useful, and
X    anything so unusual and creative that it deserves an award.
X
X    The judges will choose the winners of each category.
X
X    Alena Lacova  is a system  administrator at NIKHEF  (Institute for High
X    Energy and Nuclear  Physics) in the  Netherlands. She is  the author of
X    The PostScript Chaos  Programs, which draw  Julia sets, Mandelbrot sets
X    and other kinds of fractal functions.
X
X    Jonathan Monsarrat is a graduate  student from MIT and Brown University
X    in  the  U.S.A. He  is  the  FAQ maintainer  for  the  Usenet newsgroup
X    comp.lang.postscript and the author of The PostScript Zone and LameTeX.
X .
X
SHAR_EOF
chmod 0444 obfuscate.info ||
echo "restore of obfuscate.info failed"
set `wc -c obfuscate.info`;Wc_c=$1
if test "$Wc_c" != "6257"; then
	echo original size 6257, current size $Wc_c
fi
exit 0


The Quantum LPS 240AT is supposed to have a 256K cache on the IDE
controller built into the card.  Yet when I do a DOS DIR command
on my system, the disk is always accessed (I can hear the mechanical
movement of the heads).  Why is this happening?  Strangely, even
when I have smartdrive installed, every DIR command accesses the
disk.  Did I somehow de-activate the cache?  This is happening on each
of two machines with an LPS 240AT drive.


Maybe, maybe not.  A new graduate would obviously be well trained (but
perhaps without sufficient experience). A radiologist trained 10 or
15 years ago who has not kept his continuing education current is a
whole 'nuther matter.  A OB who HAS trained in modern radiology technology
is certainly more qualified than the latter and at least equal to
the former.

If the radiologist is also trained in OB/GYN, why not?

John


Besides this was the same line of horse puckey the mining companies claimed
when they were told to pay for  restoring land  after strip mining.

they still mine coal in the midwest,  but now it doesn't look like
the moon when theyare done.


(1) Did you check that a new *.grp file was actually created in your Windows
    directory?
(2) Are you _turning off_ your computer when windows is running rather than
    closing Program Manager?


Has anybody gotten CVIEW to work in 32k or 64k color mode on a Trident
8900c hi-color card? At best the colors come out screwed up, and at worst the
program hangs. I loaded the VESA driver, and the same thing happens on 2
different machines.

	If it doesn't work on the Trident, does anybody know of a viewer that
does?


Actually the reasons you don't see so many cooling towers at fossil plants are
1) fossil units (multiple units per plant) are generally smaller than
nuclear plants.  300 MWe seemed to be a very popular size when many
fossil plants were built.  The average nuclear plant is 1000 MWe.  2) many
fossil plants were grandfathered when water discharge regulations were
adopted ("why those old dirt burners can't harm anything, let 'em go.").
3) powered draft cooling towers, low enough to the ground to be generally
not visible from off-site, are quite popular with fossil plants.  4) fossil
plants used to get much less regulatory attention than nuclears.

Actually the condensing environment is essentially the same for plants
of similar size.  The issues are the same regardless of where the
heat comes from.  Condensers are run at as high a vacuum as possible in
order to reduce aerodynamic drag on the turbine.  The condenser pressure is
normally water's vapor pressure at the condensing temperature.  It is
desirable that the steam exhaust be free of water droplets because
moisture in the steam causes severe erosion damage to the turbine
low pressure blades and because entrained water moving at high velocity
causes erosion of the condenser tubes.  The coldest and thus lowest
pressure condensing environment is always the best.

A related issue is that of pumping the condensate from the hotwell (where
the water ends up after dripping off the condenser tubes.)  Since the
condenser is at a very low pressure, the only force driving the
condensate into the hotwell pumps is gravity.  If the condensate is too
hot or the gravity head is too low, the condensate will reflash into
steam bubbles and cause the condensate pumps to cavitate.  This is a
particularly destructive form of cavitation that is to be avoided at all
costs.

The hotwell pumps are located in the lowest point in the plant
in order to provide a gravity head to the pumps.  How much lower
they must be is a function of how hot the water is allowed to get in
the hotwell.  Typically hotwell temperatures run between 100 and 120
degrees depending on the temperature of the river water (this term is
used to describe the river grade water even when the cooling tower
system is operating in closed loop mode and essentially no river water
is pumped.)  When the river water temperature is high in the summer,
operators will typically allow the hotwell level to rise in order
to provide more gravity head.  There is a tradeoff involved since higher
hotwell levels will encroach onto the condensing tubes and reduce the
condenser area.

At least in the East and elsewhere where moisture actually exists in the
air :-), the river water will almost always be cooler than the discharge
water from the cooling towers.  The temperature of the discharge water
from the cooling towers is set by the ambient air temperature and
humidity.  It is very rare in the East to hear of actual river water
temperatures exceeding 70 degrees.  A vast difference from the typical
"95-95" days (95 degrees, 95% humidity) we see routinely in the East.
It is not unusual, particularly where the econazis have been successful
in clamping rigid discharge water temperature limits on a plant, for the
plant to have to reduce the firing rate when the air temperature gets
too high and the condenser cannot handle the heat load without excessive
pressure.

True.  Actually secondary plant (the part that makes electricity and
feeds feedwater to the boiler) water chemistry has been the bastard
stepchild until recently and has not gotten the respect it deserves.
The plant chemists have just in the past decade or so fully understood
the costs of impure water.  By "impure", I mean water with a few
dozen extra micromho of conductivity and/or a few PPM of dissolved
oxygen.  Secondary water is now typically the most pure one will
find outside the laboratory.

John


I have the EuroWiper boots in White and had to throw away the first pair
since I found no way of cleaning them after they looked almost black. Now
I have my second pair of white ones and once again they are dirty. I need
a way to clean them w/o removing them since I had to cut them to remove
them, is there a way? Or should I just buy black ones?
thanks
-Joel

----------------------------------------------------------------------------
Joel Sprechman                             sprec-j@acsu.buffalo.edu
University at Buffalo                      v069pff7@ubvms.cc.buffalo.edu


Does anyone know what hardware is required and where I could find it for
sound recording on the  Mac Portable.

Thanks


Yep, at:
oak.oakland.edu
they have a couple different 68HC16 things in
/pub/msdos/emulators
and get the file
00-index.txt
for a list of what they have.
lige


Tracy your monitor is on its way. Mike Damico


Someone else said something similar.  I will not comment on the
value or lack of value of Elias's "proposal".  I just want to say
that it is very distressing that at least two people here are
profoundly ignorant of Nazi racial doctrine.  They were NOT
like Elias's idea, they were more like the opposite.

Nazis believed in racial purity, not racial assimilation.  An
instructive example is the Nazi attitude to Gypsies.  According to
Nazi theoreticians, Gypsies were an Aryan race.  They were persecuted,
and in huge numbers murdered, because most European Gypies were
considered not pure Gypsies but "mongrels" formed from the pure Gypsy
race and other undesirable races.  This was the key difference between
the theoretical approach to Jews and Gypsies, by the way.  It is also
true that towards the end of WWII even the "purist" Gypsies were
hunted down as the theory was forgotten.


Listen, *ASSHOLE*, I'm just commenting on what I heard
reported on the sports news!!

You'll notice my skeptical comment!  Sheesh... I thought this group
wasfor conversation!  Guess I was wrong. }-<


It is silly to make this statement.  Fifteen minutes after the fire
started, the "official word" out of FBI  headquaters in DC was
that the DV's committed suicide.  It would seem logical that the
lantern story has more credibility.  You can't even to pretend to
know for sure what happened... although Clinton is doing just that.


Hams can legally run up to 1500 watts.  It is very unlikely, however,
that a ham would be running that kind of power from a car.  Ham rigs
for cars put out around 100 watts.  It is possible that a 100 watt
radio would cause interference to consumer electronic 100 feet
away.  Most TVs, stereos, and VCRs have very poor RF shielding.
If you experience the problem frequently, it may be
caused by a ham, CBer, or other radio operator in a base station
nearby.    The interference may have been caused by a radio
transmitter used for other purposes, such as police, fire,
etc.  If you heard voices over your stereo, I think you are
correct in assuming that the source is an RF transmitter.

If you have frequent trouble, you may want to try the RF ferrite
chokes available at Radio Shack.  The interference is probably
being picked up by your speaker wires, and those chokes can
be installed on the wires very easily (without cutting them).
Good instructions are included with the chokes.
If that does not solve the problem, you may want to search your
neighborhood for a radio operator.  Look for antennas on the roof
or car.  Talk to him/her about your problem.  There are things
a radio operator can do to reduce interference.

--


I ran in to this problem I while ago, and from what I remember you should use
XtTranslateCoordinates etc. after realizing the main widget to calculate
the location of the popup, then use something like XtVaSetValues on the
popup widgets before ever using them.  Calling SetValues repeatedly (e.g.
every time something pops up) seems to be what slows you down.  I never
delved deep enough to figure out exactly why though...

---------------------------
Jeremy Payne
UIUC Neuroscience program /
College of Medicine
jrpayne@uiuc.edu
(217)244-4478


Alright, beat this automobile sighting.

Driving along just a hair north of Atlanta, I noticed an old, run down
former car dealership which appeared to deal with, and repair, older
rare or exotic foreign sports cars. I saw:

Ford GT-40 (!), the famous model from Ford, that seemed to win most of
its races in the late 60s, including Le-Mans 4 or 6 times.

Two Jensen Interceptors, one a convertable, one a hatchback?

Porsche 911 (boring compared to the rest)

THREE Ferarries, a Mondial, a 308 prepared for racing, and a red 60s model
that I couldn't identify.

And at the bottom, a late 70s MG convertable.

Outside there was a rotting Rover 3500 saloon, which was never regularly
sold in the U.S.

And in the showroom, there was a small italian body, either an Alpha Romeo
or a Lancia. It was about the size of an Austin Mini.
The trunklid was missing, exposing a boot with a voltage regulator
in the upper left corner of the wall, and a chunk of metal removed from
the floor on the right hand side as if something would leave the trunk
and go to the outside from here.
The taillights looked like they
would be the round type (if they were there). Does anyone know what the
make of this one is?

Certainly made my day...


From my rather rusty knowledge of radio, most radio receivers use a superhet
circuit, so that the incoming signal is mixed with a local oscillator, giving
a fixed intermediate frequency (IF) that is more easily amplified. The
detector detectors work by picking up IF re-radiated from your radar
detector. In Britain, where one has/used to pay for a TV licence, there
are/were TV detector vans prowling the streets, looking for people who hadn't
paid their licence fee. They had a couple of long solenoid antennae on the
roof, and I believe could triangulate an operating TV from the IF.

I wonder how much of the IF is radiated back from the detector antenna, and
how much from the rest of the module. It might be worth putting the detector
in a proper RF shielded enclosure.


 Can You report CRT and other register state in this mode ?
 Thank's.


[With Frank's permission, I have added some information here (and in
one case changed the order of his contributions) in order to clarify
the historical relationship of the views.  My comments are based
primarily on William Rusch's historical summary in "The Trinitarian
Controversy", Fortress.  I'm going to save this as an FAQ.  --clh]

MAJOR VIEWS OF THE TRINITY

[SECOND CENTURY

The writers of the 2nd Cent. are important, because they set up much
of the context for the later discussions.  Justin Martyr, Aristides,
Athenagoras, Tatian, and Theophilus of Antioch are known as the
"Apologists".  Their theology has often been described as "Logos
theology".  Based strongly on wording in John, they took more or less
a two-phase approach.  Through eternity, the Logos was with the
Father, as his mind or thought.  This "immanent Word" became
"expressed" as God revealed himself in history, ultimately in Jesus.
Thus Jesus' full distinction from the Father only became visible in
history, though the Logos had been present in God from eternity.
Rusch regards this view is containing many of the emphases of the
final orthodox position, but in a form which is less sophisticated,
because it did not have the technical language to properly deal with
the eternal plurality in the Godhead.

Irenaeus held views somewhat similar to the Apologists.  However he
was uncomfortable with the two-stage approach.  He still viewed God as
one personage, with distinctions that did not become fully visible
except through his process of self-revelation (the "economy").  The
distinctions are present in his essential nature.  Irenaeus emphasized
the Holy Spirit more than the Apologists.  Irenaeus' views should
probably be called "economic trinitarianism", though that term is
normally used (as below) to refer to later developments.

THIRD CENTURY

--clh]

Dynamic Monarchianism

Source: Theodotus
Adherents: Paul of Samosota, Artemon, Socinus, Modern Unitarians
Perception of God's Essence: The unity of God denotes both oneness of nature
and oneness of person. The Son and the Holy Spirit therefore are
consubstantial with the Father's divine essence only as impersonal attributes.
The divine dunamis came upon the man Jesus, but he was not God in the strict
sense of the word.
Perception of God's Subsistence: The notion of a subsistent God is a palpable
impossibility, since his perfect unity is perfectly indivisible. The
'diversity' of God is apparent and not real, since the Christ event and the
work of the Holy Spirit attest only to a dynamic operation within God, not to
a hypostatic union.
Asignation of Deity/Eternality:
 Father: Unique originator of the universe. He is eternal, self-existent, and
without beginning or end.
 Son: A virtuous (but finite) man in whose life God was dynamically present in
a unique way; Christ definitely was not deity though his humanity was deified.
 Holy Spirit: An impersonal attribute of the Godhead. No deity or eternality
is ascribed to the Holy Spirit.
Criticism(s): Elevates reason above the witness of biblical revelation
concerning the Trinity. Categorically denies the deity of Christ and of the
Holy Spirit, thereby undermining the theological undergirding for the biblical
doctrine of salvation.
[In summary, this probably best thought of as not being Trinitarianism
at all.  God is an undifferentiated one.  Son and Holy Spirit are seen
as simply names for the man Jesus and the grace of God active in the
Church.  --clh]

Modalistic Monarchianism

Source: Praxeas
Adherents: Noatus, Sabellius, Swedenborg, Scleiermacher, United Pentecostals
(Jesus Only)
Perception of God's Essence: The unity of God is ultra-simplex. He is
qualitatively characterized in his essence by one nature and person.  This
essence may be designated interchangeably as Father, Son, and Holy Spirit.
They are different names for but identical with the unified, simplex God. The
three names are the three modes by which God reveals Himself.
Perception of God's Subsistence: The concept of a subsistent God is erroneous
and confounds the real issue of the phenomenon of God's modalistic manifesting
of himself. The paradox of a subsisting "three in oneness" is refuted by
recognizing that God is not three persons but one person with three different
names and corresponding roles following one another like parts of a drama.
Asignation of Deity/Eternality:
 Father: Fully God and fully eternal as the primal mode or manifestation of
the only unique and unitary God
 Son: Full deity/eternality ascribed only in the sense of his being another
mode of the one God and identical with his essence. he is the same God
manifested in temporal sequence specific to a role (incarnation).
 Holy Spirit: Eternal God only as the tile designates the phase in which the
one God, in temporal sequence, manifested himself pursuant to the role of
regeneration and sanctification.
Criticism(s): Depersonalizes the Godhead. To compensate for its Trinitarian
deficiencies, this view propounds ideas that are clearly heretical. Its
concept of successive manifestations of the Godhead cannot account for such
simultaneous appearances of the three persons as at Christ's baptism.
[Rusch comments that evidence on these beliefs is sketchy.  There are
actually two slightly different groups included: Noetus and his
followers, and Sabellius.  Noetus was apparently more extreme.
Sabellius followed him, and attempted to use some features of economic
Trinitarianism to create a more sophisticated view.  Unfortunately,
information about Sabellius comes from a century later, and there
seems to be some confusion between him and Marcellus of Ancyra. --clh]

[I've moved the following description to be with the other
third-century views.  It originally appeared near the end.  --clh]

"Economic" Trinitarianism

Source: Hippolytus, Tertullian
Adherents: Various "neo-economic" Trinitarians
Perception of God's Essence: The Godhead is characterized by triunity: Father,
Son, and Holy Spirit are the three manifestations of one identical,
indivisible substance. The perfect unity and consubstantiality are especially
comprehended in such manifest Triadic deeds as creation and redemption.
Perception of God's Subsistence: Subsistence within the Godhead is articulated
by means of such terms as "distinction" and "distribution" dispelling
effectively the notion of separateness or division.
Asignation of Deity/Eternality:
The equal deity of Father, Son, and Holy Spirit is clearly elucidated in
observation of the simultaneous relational/operational features of the
Godhead. Co-eternality, at times, does not intelligibly surface in this
ambiguous view, but it seems to be a logical implication.
Criticism(s): Is more tentative and ambiguous in its treatment of the
relational aspect of the Trinity.
[Note that this is a development of the Apologists and Irenaeus, as
mentioned above.  As with them, the threeness is visible primarily in
the various ways that God revealed himself in history.  However they
did say that this is a manifestation of a plurality that is somehow
present in the Godhead from the beginning.  Tertullian talks of
the Father, Son, and Holy Spirit as being three that are one in
substance.  Many people regard this view as being essentially
orthodox, but with less developed philosophical categories.  --clh]

[Origen, developing further an approach started by Clement, attempted
to apply neo-Platonism to Christian thought.  He set many of the terms
of the coming battle.  In Platonic fashion, he sees the Son as a
mediator, mediating between the absolute One of God and the plurality
of creating beings.  The Son is generated, but he is "eternally
generated".  That is, the relationship between Father and Son is
eternal.  It cannot be said that "there was once when he was not" (a
phrase that will haunt the discussion for centuries).  Having the Son
is intrinsic to his concept of God.  The Father and Son are described
as separate "hypostases", though this may not have quite the meaning
of separate subsistence that it had in some contexts.  The union is
one of love and action, but there is some reason to think that he may
have used the term homoousios ("of the same substance").  The Holy
Spirit is also an active, personal substance, originated by the Father
through the Son.  Origen's intent is trinitarian, not tritheistic, but
he pushes things in the direction of separateness.

FOURTH CENTURY

--clh]

Subordinationism  [often called Arianism --clh]

Source: Arius
Major Adherents: Modern Jehovah's Witnesses, and several other lesser known
cults
Perception of God's Essence: The inherent oneness of God's nature is properly
identifiable with the Father only. The Son and the Holy Spirit are discreet
entities who do not share the divine essence.
Perception of God's Subsistence: The unipersonal essence of God precludes the
concept of divine subsistence with a Godhead. "Threeness in oneness" is self-
contradictory and violates biblical principles of a monotheistic God.
Asignation of Deity/Eternality:
 Father: The only one, unbegotten God who is eternal and without beginning.
 Son: A created being and therefore not eternal. Though he is to be venerated,
he is not of the divine essence.
 Holy Spirit: A nonpersonal, noneternal emanation of the Father. He is viewed
as an influence, an expression of God.  Deity is not ascribed to him.
Criticism(s): It is at variance with abundant scriptural testimony respecting
the deity of both Christ and the Holy Spirit. Its hierarchial concept likewise
asserts three essentially separate persons with regard to the Father, Christ,
and the Holy Spirit. This results in a totally confused soteriology.
[Note also that in most versions of this view, the Son is not fully
human either.  He is supernatural and sinless.  That distinguishes this
view from adoptionism.  --clh]

Orthodox Trinitarianism

Source: Athanasius
Adherents: Basil, Gregory of Nyssa, Gregory of Nazianzus, Augustine, Thomas
Aquinas, Luther, Calvin, Contemporary orthodox Christianity
Perception of God's Essence: God's being is perfectly unified and simplex: of
one essence.  This essence of deity is held in common by Father, Son, and Holy
Spirit. The three persons are consubstantial, coinherent, co-equal, and co-
eternal.
Perception of God's Subsistence: The divine subsistence is said to occur in
three modes of being or hypostases. As such, the Godhead exists "undivided in
divided persons." This view contemplates an identity in nature and cooperation
in function without the denial of distinctions of persons in the Godhead.
Asignation of Deity/Eternality:
In its final distillation, this view unhesitatingly sets forth Father, Son,
and Holy Spirit as co-equal and co-eternal in the Godhead with regard to both
the divine essence and function.
Criticism(s): The only shortcoming has to do with the limitations inherent in
human language and thought itself: the impossibility of totally describing the
ineffable mystery of "three in oneness."
[At least in the 4th Cent, there were several different approaches, all
of which fit the description here, and all regarded as orthodox, but which
are somewhat different in detail.  Nicea was originally held to respond
to Arius.  Arius can be thought of as carrying Origen's thought a bit
too far, to the point of making the Son a separate entity.  In general
the East tended to take an approach based on Origen's, and it was hard
to get acceptance of Nicea in the East.  Its final acceptance was
based on the work of Athanasius with the Cappadocians: Gregory of Nyssa and
Gregory of Nazianzus, among others.  While starting with three,
they show that their unity in nature and and action is such that one
must think of them as being a single God.  This allowed the Council
of Constantinople, in 381, to get wide agreement on the idea of
three hypostatese and one ousia.  --clh]

Adapted from _Charts of Christian Theology and Doctrine_, by H. Wayne House.

Frank


	Nor, to point out the obvious, are the deluded, siege-mentality
followers of a religious nut-case who thought he was Jesus Christ or possibly
The Big Guy.
	Personally, much as I regard the BATF and FBI as ConDupes, I'll take
their word over a bunch of silly pinks who were stoopid enough to lock
themselves up with a goofball like "David Koresh" in a makeshift arsenal.
	************************************************************
	*  	The_Doge of South St. Louis			   *
	*		Dobbs-Approved Media Conspirator(tm)	   *
	*	"One Step Beyond"  -- Sundays, 3 to 5 pm	   *
	*		88.1 FM		St. Louis Community Radio  *
	*  "You'll pay to know what you *really* think!"           *
	*			-- J.R. "Bob" Dobbs"		   *
	************************************************************


I don't know, but I'm as willing to speculate as anyone.

Several people have suggested that the chips use public-key cryptography.
Another possibility is to use Diffie-Hellman key exchange, or some other
algorithm which has a similar effect.  DH allows both ends to agree on
a session key which they use with symmetric cryptography (something
like DES) for the encryption.

How could the "back door" keys work in this system?  I can see a few
possibilities.  One is that the DH-like algorithm has the property that
the session key can be deduced by an eavesdropper who knows the back door
keys for one (or possibly both) communicants.  Perhaps the random numbers
used in the DH are seeded by the back door key, or some such.

Another possibility, as was suggested here earlier, is that the chips
simply broadcast the session key, encrypted with the chip's own
internal secret key.  In this system the back door keys are secret keys
usable for decrypting this session key broadcast.  Actually the chip's
secret key doesn't need to be a public key in this usage, but can be
identical to the secret back-door key.  (This proposal seems most
straightforward to me.)

Still another possibility is that the encryption algorithm used for the
message itself has a "dual key" property, that possession of either of
two keys can be used to decrypt it.  One key would be the session key from
the DH exchange, and the other would be the back door key for the chip.

It's worth noting that one of the proposals Dorothy Denning raised
during her amazingly prescient on-line discussion last November and
December was a variation on Diffie-Hellman in which a third party would
participate in deriving the session keys.  This doesn't quite fit into
what we know of how Clipper works but it hints that those who had early
knowledge of Clipper (or whose thinking was somehow synchronized with
Clipper designers) may have had Diffie-Hellman on their minds.


Have anybody succeded in converting a atari monomchrome monitor into a
mono VGA monitor. If so please let me know exactly how you did and what
graphics card you used.

	/Thanx


Well, after suffering from an intense fit of Minnesota-induced cabin fever,
I've decided to road trip to Milwaukee and take in a couple of games this
weekend. A couple games at County stadium will be great to relieve tension,
but I thought "Why not go to Wrigley for a game too?"

  I see the Cubs are playing the Phillies on Sat (2:05 start, I believe
that's Eastern time listed). I figured it would be fun to bounce down to
Wrigley for the day game and live it up a little. I'm wondering if anyone
(esp. Cubbie fans) have some advice on:

  1) If I'm taking 41 (Skokie Hwy) south until it runs into 94, what's the
     best way to get to Wrigley? I'm planning on getting there an hour or
     two early and paying through the nose for parking to keep things easy.

  2) Is it probable that I'll be able to walk up and get bleacher seats (2 or
     3) on game day? I figure since it's early in the year, Ryno's out and
     the weather isn't great I should be able to get tickets. If not, what's
     the best way to get advance tickets; can I call the Cubs' ticket office
     directly and pick up tickets at the will call window?

  3) Any advice on where to eat before or after the game?

  4) Do they allow inflatable I-luv-ewe dolls (present from Lundy) into the
     bleachers? :-)


Interesting article, Craig.  It's amazing how hard it is to get baseball
teams to understand how to properly market their teams and treat their
customers.  No other business could ever get away with the 19th century
attitudes that most current owners display in running their clubs.  I guess the
owners look at baseball's high growth rate and ask why it's necessary
to bring 20th century business practices into the game, but they don't
realize how much more growth the game is capable of and how much they
pay in terms of long-term popularity by not doing better by the game
and its fans.


I don't know a great deal about the support for C++ in UIM/X, but I can tell
you that there is good support for it in TeleUSE.  In TeleUSE you can call any
C++ method from a "D" module.  What you can do then is to use the "D" language
for most of your interface code and then use C++ for you application code.

I should tell you that there is some real neat stuff coming out of TeleUSE soon
in regard to C++, but I can't give you many details.  You should talk to your local sales rep and get the lowdown on what they will be doing in the near furture.

If you want example code of how C++ integrates with TeleUSE you should look at
$TeleUSE/examples/Thermometer


     BO JACKSON 1963
  1988 KCR    437  106  16   4  23   28   29   7  .253   67  .243  .288  .455
  1989 KCR    517  134  19   5  33   41   27  10  .274   92  .259  .314  .507
  1990 KCR    405  110  17   1  27   44   16   9  .286   77  .272  .343  .519
  1991 CWS     71   16   3   0   3   12    0   1  .240   10  .225  .337  .394
    MAJ      1430  366  55  10  86  125   72  27  .270  246  .256  .316  .489
    MAJ       598  153  23   4  36   52   30  11

This is what Jackson looked like in 88-91, with everything converted
to a neutral park, on the basis of run production. His equivalent
average started at .253 in 88, was up to .274 in 89 and 286 in 90. So
let us say he had established, in his last two seasons, a .280 level
of play.

That is good. Very good, in fact. But it probably doesn't make the top
ten in the league. The 10th best EQA in the AL in 1992 was Dave
Winfield's .296; Thomas was first at .350. First in the NL was Bonds,
an incroyable .378; tenth was Bip Roberts, .297. But .280 is better
than any season in the past five years by Joe Carter; it is about what
Mattingly had in 1988 (.285); what Felix Jose had the last two years;
just ahead of Time Raines' five-year average; better than Ryan
Klesko's MLEs.

He got more attention from the media than was warranted from his
baseball playing, though; his hype was a lot better than his hitting.
That is the basis for the net.comments about him being overrated. The
media would have you beleive he was a great hitter. I think he was a
good, maybe very good hitter. He was IMO, something like the 30th best
hitter in the majors.


#> Ah, I know women who wear miniskirts without wearing underwear, and
#> they are not prostitutes.
#No, I suppose they must be sluts.

Nope. They both are very nice women, whom I'm good friends with.

Or do you think its ok to rape anyone when you don't like the way they
dress?

#> Gee, Both Clayton and Kaldis engaging in ad hominem arguments.
#Where?

Calling someone names, as you did. Are you ignorant of what an ad
hominem argument is?

#You provided absolutely no evidence, chump.

I provided a quote from the judge. What else do you want?


I guess Hasan finally revealed the source of his claim that Israel
diverted water from Lebanon--his imagination.


Hello,
I purchased my new 486 with a NoName graphics card installed which is obviously
Speedstar 24 compatible. Its name is "VGA 4000 TrueColor".
It is accompanied with some drivers and the utilities VMODE, XMODE and
at least one more MODE, as well as some drivers for Lotus, Windows, etc.
Only one of the drivers is told to provide the TrueColor mode, namely
the Windows 3.1 driver.
Nowhere else, except in the ad, is any pointer to the TrueColor mode.
Some articles in this group about the Speedstar 24 and some other facts
made me believe that my card is compatible to that one.

Does anybody out there know how this mode can be adjusted? How can I write
a driver which allows me to have 16.7 millions of colors with a resolution
of 640 x 480 with 45 Hz interlaced ?