Archives April 2009

Freedom of Religion = Freedom of Bigotry, Apparently

According to
today’s Post:

Faith organizations and individuals who view homosexuality as sinful and refuse to provide services to gay people are losing a growing number of legal battles that they say are costing them their religious freedom.

The lawsuits have resulted from states and communities that have banned discrimination based on sexual orientation. Those laws have created a clash between the right to be free from discrimination and the right to freedom of religion, religious groups said, with faith losing.

(emphasis added)

The article lists a few examples, such as a photographer who refused
to photograph a commitment ceremony, and doctors at a fertility clinic
who refused to inseminate a lesbian. The only one that I think I might
have a problem with is a student group at the University of California
that was denied recognition because of its views on sex outside of
“traditional” marriage, but the article is short on specifics.

What these people are saying, as I understand it, is that practicing
their religion requires them to regard certain other people as
inferior, and to deny them the services they offer to most people. In
short, they’re feeling butthurt because the courts are stomping over
their perceived right to bigotry.

"We cater to white trade only" restaurant sign
How exactly is this different from refusing service to blacks or Jews
because one’s religion says they’re inferior?

The law doesn’t say you can’t be a bigot and a homophobe. That would
be thoughtcrime, which would be unenforceable, apart from the very
abhorrence of the notion of crimethink. The first amendment even gives
you the right to tell that world that gays or blacks or lefties or
Mets fans are inferior. What the law does say, however, is that you
can’t necessarily act on your bigotry. “Your right to swing your fist
ends where my nose begins”, and all that.

IANAL, but as I understand it, if you run a business that purports to
be open to the public, that means you can’t just arbitrarily decide
which groups you will and won’t cater to. That’s probably a gift from
the civil rights movement.

Now, historically, religious groups have gotten a fair amount of
slack, from zoning law exemptions, to tax exemption, to drug law
exemptions. But the US constitution also includes the
14th
amendment
:

All persons born or naturalized in the United States, and subject to the jurisdiction thereof, are citizens of the United States and of the State wherein they reside. No State shall make or enforce any law which shall abridge the privileges or immunities of citizens of the United States

The whole point of the bill of rights, the foundation of the freedoms
that we Americans rightly pride ourselves on, is the idea that America
should be a land where everyone has an equal shot at happiness, and no
one is privileged by virtue of noble birth or preferential treatment.
And that means that your freedoms stop when they prevent others from
seeking life, liberty, and the pursuit of happiness.

And if your religion requires you keep others down, so much the worse
for your religion.

(Photo credit: Image Editor at flickr.)

Tagline Dump

If you’ve gotten mail from me, you may have noticed that there’s a
randomly-generated tagline at the bottom. Here are some of the more
recent ones, that I haven’t sorted through yet. Some are by me; most aren’t. I’ve
linked to the original sources where creating a link didn’t involve a lot of work.

Read More

UMD to End Graduation Prayer

According to the not always reliable
Diamondback
(hey, whaddya want? It’s a student paper), the University of Maryland
senate has voted to stop having prayers at graduation ceremonies. This
doesn’t affect individual colleges’ ceremonies, though.

It seems to have been a pretty decisive vote, too: 32-14.

The main arguments against the move seem to confuse secularism with
anti-theism:

“We need to be careful not to send the message that
secular language is seen as superior and acceptable while religious
language is seen as inferior and unacceptable,” [the university’s
Episcopalian chaplain, Peter Antoci] said.

It’s quite simple, really: if I’m at a staff meeting, and others are
talking about last night’s basketball game, and I say “Could you
please stop talking about basketball so that we can get on with the
business at hand and get out of this meeting early?”, I’m not saying
that basketball is a Bad Thing, or that talking about basketball is
bad. I’m just saying that it’s irrelevant to the purpose of the
meeting, so please do it on your own time.

According to the article, the university still employs 14, count ’em!,
14 chaplains, and I’m not aware of any movement to fire or censor them
(unless your definition of “censorship” includes denying them a
captive audience).

Of course,
some people
are appalled that this happened around the same time that
a porn flick was going to be shown on campus:

Great: Porn is ok; prayer is not.

I guess I’ll mark this one as “straw man”, since no one is suggesting
that porn be shown at graduation ceremonies.

Don’t Put Information in Two Places

While playing around with a Perl script to look up stock quotes, I
kept getting warning messages about uninitialized values, as well as
mising data in the results.

I eventually tracked it down to a bug in an old version of the
Finance::Quote
Perl module, specifically to these lines:

# Yahoo uses encodes the desired fields as 1-2 character strings
# in the URL.  These are recorded below, along with their corresponding
# field names.

@FIELDS = qw/symbol name last time date net p_change volume bid ask
             close open day_range year_range eps pe div_date div div_yield
	     cap ex_div avg_vol currency/;

@FIELD_ENCODING = qw/s n l1 d1 t1 c1 p2 v b a p o m w e r r1 d y j1 q a2 c4/;

Basically, to look up a stock price at
Yahoo! Finance,
you fetch a URL with a parameter that specifies the data you want to
retrieve: s for the ticker symbol (e.g., AMZN), n
for the company name (“Amazon.com, Inc.”), and so forth.

The @FIELDS array lists convenient programmer-readable names
for the values that can be retrieved, and @FIELD_ENCODING
lists the short strings that have to be sent as part of the URL.

At this point, you should be able to make an educated guess as to what
the problem is. Take a few moments to see if you can find it.

The problem is that @FIELDS and @FIELD_ENCODING
don’t list the data in the same order: “time” is the 4th
element of @FIELDS ($FIELDS[3]), but t1,
which is used to get the time of the last quote, is the 5th element of
@FIELD_ENCODING ($FIELD_ENCODING[4]). Likewise,
date is at the same position as t1.

More generally, this code has information in two different places,
which requires the programmer to remember to update it in both places
whenever a change is made. The code says “Here’s a list of names for
data. Here’s a list of strings to send to Yahoo!”, with the unstated
and unenforced assumption that “Oh, and these two lists are in
one-to-one correspondence with each other”.

Whenever you have this sort of relationship, it’s a good idea to
enforce it in the code. The obvious choice here would be a hash:

our %FIELD_MAP = (
	symbol	=> s,
	name	=> n,
	last	=> l1,
	…
)

Of course, it may turn out that there are perfectly good reasons for
using an array (e.g., perhaps the server expects the data fields to be
listed in a specific order). And in my case, I don’t particularly feel
like taking the time to rewrite the entire module to use a hash
instead of two arrays. But that’s okay; we can use an array that lists
the symbols and their names:

our @FIELD_MAP = (
	[ symbol	=> s ],
	[ name	=> n ],
	[ last	=> l1 ],
	…
)

We can then generate the @FIELDS and @FIELD_ENCODING
arrays from @FIELD_MAP, which allows us to use all of the old
code, while preserving both the order of the fields, and the
relationship between the URL string and the programmer-readable name:

our @FIELDS;
our @FIELD_ENCODING;

for my $datum (@FIELD_MAP)
{
	push @FIELDS,         $datum->[0];
	push @FIELD_ENCODING, $datum->[1];
}

With only two pieces of data, it’s okay to use arrays inside
@FIELD_MAP. If we needed more than that, we should probably
use an array of hashes:

our @FIELD_MAP = (
	{ sym_name	=> symbol,
	  url_string	=> s,
	  case_sensitive	=> 0,
	},
	{ sym_name	=> name,
	  url_string	=> n,
	  case_sensitive	=> 1,
	},
	{ sym_name	=> last,
	  url_string	=> l1,
	  case_sensitive	=> 0,
	},
	…
)

Over time, the amount of data stored this way may rise, and the cost
of generating useful data structures may grow too large to be done at
run-time. That’s okay: since programs can write other programs, all we
need is a utility that reads the programmer-friendly table, generates
the data structures that’ll be needed at run-time, and write those to
a separate module/header/include file. This utility can then be run at
build time, before installing the package. Or, if the data changes
over time, the utility can be run once a week (or whatever) to update
an existing installation.

The real moral of the story is that when you have a bunch of related
bits of information (the data field name and its URL string, above),
and you want to make a small change, it’s a pain to have to remember
to make the change in several places. It’s just begging for someone to
make a mistake.

Machines are good at anal-retentive manipulation of data. Let them do
the tedious, repetitive work for you.

MD Legislature Censors Porn at University

Just to show how out of touch I am with local news, the Hoff movie
theater at the University of Maryland was going to show a porn film,
Pirates II: Stagnetti’s Revenge
(Wikipedia link; should be SFW), preceded by a talk by a representative of Planned
Parenthood
(Washington Post,
UMD
Diamondback
coverage).

Then the Maryland General Assembly heard about this, and pushed
through an amendment to a budget bill denying the university state
funds if it showed a XXX-rated movie. The university pulled the film,
and the amendment was withdrawn.

As you can imagine, this has caused a certain amount of discussion on
teh Intertubes.

The Post says that the state funding that would have been withdrawn
amounted to $424 million. I haven’t managed to find the current
budget, but in
FY2003, the
total budget for this campus was $1.16 billion, of which $633 million
(54%) came from the state. Assuming that the current year’s budget is
comparable, clearly this amounts to a threat by the legislature to
cripple the university, if not shut it down entirely. I’ll leave it up
to the courts to decide whether this is legal or not, but clearly it’s
an attempt at censorship.


The Diamondback quotes Vice President for Student Affairs Linda
Clement as saying,

We thought it was an opportunity to have a dialogue revolving around pornography as a film genre and promote student discussion

and in that spirit, the Mod +1: Insightful award of the day goes to
commenter Stephanie,
responding to another comment:

“Psychological studies have shown that pornography creates a subconscious idea of what sex should be and how females should behave, and generates anger.”

This is exactly why we need to have conversations about pornography instead of just relegating it to a private space.

One thing to bear in mind is that the movie in question isn’t Jamaican
Amateurs 19
or Asian Cum-Shots 116 or some similar
piece of Extruded Pr0n Product. Evidently Pirates II had a
budget
of $8 million,
sets,
(NSFW), costumes, CGI effects, and even a
plot.
It was released both as a hardcore porn movie, and also in an
abbreviated R-rated version.

So presumably it would have served as an illustration of what porn can
be, not what it usually is (something like what Moore and Gebbie did
with
Lost Girls).

Of course, I haven’t seen this movie, so I’m probably assuming too
much. But if you were going to have a conversation about pornography,
and show a movie so that everyone’s talking about the same thing, this
movie seems like a reasonable choice.

I wouldn’t mind exploring questions like, does porn degrade women? If
so, is this a necessary feature of porn? Does it set unrealistic
expectations about sex?

I can understand the latter objection. But on the other hand, one
might also argue that romance novels and “chick flicks” set
unrealistic expectations about love and romance. And why doesn’t
anyone complain that action movies set unrealistic expectations about,
well, a whole slew of things? Does anyone think they can jump out of a
fourth-story window while dodging a hail of bullets, roll behind a
parked car, and fire back at one’s attackers? Or engage in a 60 mph
car chase through crowded city streets without wrapping oneself around
a streetlight? In these cases, we understand that what’s on the
screen, while grounded in reality, frequently takes flights of fantasy
because it looks cool. Why can’t we take the same approach to porn?
(The first piece of advice that I saw on cunnilingus, possibly in
Everything You Always Wanted to Know About Sex but Were Afraid
to Ask
, basically said to forget how it’s done in movies; if
you’re doing it right, you’re blocking all the action with your head,
so it doesn’t make for good cinema.)


Another comment that caught my attention was
this one
by Jor:

The screening wasn’t intended to be recreational but rather educational.

which brings to mind the words of Tom Lehrer:

I do have a cause, though: it is obscenity. I’m for it.

Unfortunately, the civil liberties types who are fighting this
issue have to fight it, owing to the nature of the laws, as a matter
of freedom of speech and stifling of free expression and so on, but we
know what’s really involved: dirty books are fun, that’s all there is
to it. But you can’t get up in a court and say that, I
suppose.

I have to ask: what if this screening were purely
recreational? How would that change anything? The Hoff theater
shows
plenty of movies just for fun, without a lecture or discussion
attached. It’s at the student union, fer cryin’ out loud. Downstairs,
there’s a bowling alley with pool tables and video games, but no one’s
suggesting that those should be frowned upon unless you can tie them
to a talk about newtonian mechanics or computer graphics. Across the
street is a football stadium; I’ve never heard the slightest inkling
of a suggestion that it be used only to teach about game theory or the
dynamics of competing groups.

So how is a screening of Pirates II different? Well, it’s
got sex in it, obviously. But why is sex always
the great exception?

In recent years, I’ve seen the term “porn” applied metaphorically to
non-sexual content. E.g., The Passion of the Christ has
been called
biblical porn“,
and the Left Behind series has been called
Armageddon porn“.
The idea is that the point of the œuvre is quite
obviously to show some subject (Jesus’ suffering and pre-tribulatin
suffering, in the examples above), and everything else is there to
allow that depiction to happen. There are plenty of videos that fit
that description, usually filed under “special interest” at the video
store.


Then there’s
this gem:

Pornography IS the largest industry on the internet … why try to draw MORE viewers to it by attempting to make it publicly acceptable? Check out Patrick Carnes book, “Out of the Shadows”. Sex addiction is right up their with alcoholism and food addiction. But it’s worse because the shame of it is often carried by the addict alone, while the addict destroys his world trying to keep it a secret. I’m speaking from experience. Please don’t dismiss this as fun or educational.

The argument here seems to be “porn is not socially acceptable, so
people feel ashamed when they watch it in private. But if it were
socially acceptable, more people would watch it, and would feel
ashamed”. Obviously a circular argument, along the same lines as “gays
should stay in the closet, because otherwise they’ll be made to feel
miserable by homophobes like me”.

Okay, there’s the other argument, that some people have a real problem
with sex addiction. This may even be true. But hiding porn and trying
to pretend that it doesn’t exist doesn’t solve anything, any more than
Prohibition helped alcoholics.

And no, I’m not denying that 90+% of porn is crap, and that many of
the prudes’ allegations may be true. But can we at least face the
problems head-on, openly, like adults, and not try to sweep them under
the rug?