Hey, new tags! Cool! Let's try them out...
RecentChanges
matt
Did it work? I guess I'll find out when I hit the Post button. Such is one of the major fallacies of web-based
interaction. Submit, Reload, Submit, Reload...
Anyway, the reason I was going to actually post my diary entry today was about an interesting incident we
had
yesterday at work. Well, maybe it's not really terribly interesting, but it brought up some interesting thoughts.
We
are cursed with a Microsoft Exchange server for our e-mail here at work. Someone
apparently created a global mailing list alias called "TechSupport" that contained what appeared to be
all the addresses in our corporate addressbook. (I'm still fuzzy on the details, but that's fine,
because
thankfully it's not my job to keep up on Exchange.) Someone got impatient with a technical services request and
forwarded it to this alias, which resulted in everyone getting said TSR. An honest mistake, probably.
The result was that a large number of yahoos worldwide were blindly hitting "Reply To All" and indicating to the
entire corporation (and sub-corporations) that they did not comprehend why they got this e-mail in the first place.
(There were also some
non-yahoos who got it who were desperately trying to turn the tide.) Back in the UNIX wing of our IS department,
where I hang out, I joked that this proves that e-mail virii are not a technical problem, but a social problem -- there
was no code involved, yet for all intents and purposes this had a very similar effect to ILOVEYOU or one of the
other infamous virii. (Actually, my statement was much shorter, but true to form, I waxed philosophical shortly
after making the origial statement.) This got me thinking that if computing is ever to be pervasive, that perhaps it's
taking the wrong approach entirely. Don't get me wrong -- I don't know what the "right" approach is. But if
otherwise intelligent people can cause so much of a problem just by one simple mistake, perhaps we are not
giving
the masses what they need.
I spotted what I think is a bug in OpenBSD's cpp (which,
btw,
is actually GCC 2.95.3 prerelease; but this little bit shows up in at least
OpenBSD 2.7 as well, which used GCC 2.95.2.) cpp has support for a concatenation operator in macro
definitions,
like so:
#define CONCAT(A,B) A ## B
The concatenation operator is meant to allow you to create macros that put two things right up next to each
other
without whitespace (so that CONCAT(foo,bar) yields foobar.) However, in our cpp, this only
works if the file you're running through cpp is a C++ file (i.e. .C, .cpp, etc.), or if you're using gcc
-E. Other cpp's (also based on GCC 2.95.x) don't exhibit this problem. I spent two nights trying to figure
out why but GCC is too big of a beast for me to track it down. :-/ Anyway, I posted more of a query than anything
to our tech mailing list, and hopefully someone a little better than me can figure it out... (for the curious: I want to
use it in our ports.cf, which is an override for several key defines that are used by imake, to move imake-based
software out of /usr/X11R6 into /usr/local -- except I want to be able to move it to a user-defined location rather
than
just /usr/local.)
Oh, and everyone should really read about the monkeys at nutters dot
org.
I'm serious. I found it self-validating, yet it still made me stop and think in many different ways.