Category Things I’ve Learned

Secular Bible Study: Judges

Here are the notes (also in
org mode) for the talk I’m giving later today about the book of Judges.

Secular Bible Study: Ecclesiastes

Here are the
notes
(also
in org format)
for the Secular Bible Study presentation I’m going to be giving in an hour or so, about the book of Ecclesiastes.

Secular Bible Study: The Book of Joshua

I’m leading Secular Bible Study today, so here are my notes on the book of Joshua (org-mode version).

More details later, hopefully.

Update, Sat Apr 18 17:42:26 2009:

Well, that went pretty well, I thought. I didn’t get to give my presentation, just give out bits and pieces of it as they became relevant to the conversation. Then again, since I wasn’t really able to turn my disjoint collection of notes into a coherent presentation, it’s probably just as well.

I mentioned Iron Chariots, the counter-apologetics wiki (which is where I got the definitions of henotheism and monolatrism. (Consider this a plug for the site. All of you who attended had interesting things to contribute, so you might as well contribute to the wiki and share with the world.)

The topic of theologians tying themselves in logical knots to justify or rationalize things like the book of Joshua reminded me of this post by Greta Christina, comparing religion to fan fiction.

I’ve probably forgotten some references that I promised people. If so, please speak up in the comments.

Cleaning a Nokia N810 Keyboard

Posted in hopes that it’ll help someone somewhere:

A while ago, I spilled lemonade on my N810’s keyboard, then accidentally closed it before I could wipe it clean. I did what I could, but over the following days, the keyboard increasingly started making squeaking and crunching sounds. So I thought I’d take it apart to see if I could clean it.

It turns out that the keyboard just comes off. If you raise the stand bar (the one you need to raise to insert an SD card or open the battery cover), you’ll see three holes in the front (four, actually: the smaller one is the microphone). The three holes hold hooks that hold the keyboard in place.

Slide out the keyboard, and use a small screwdriver to push the hooks in. Lift the keyboard up a bit, and then pull it out. You’ll be left with the metallic keycaps, looking down at the actual sensors.

I washed the keycap assembly with water and a sponge, let everything dry, snapped the keyboard back into place, and presto! Good as new. the keyboard doesn’t feel crunchy anymore. Happiness ensued.

Oh, and you probably want to remove the battery before doing anything else.

Audacity Tip: Cleaning up Scratches

.figure {
display: block;
text-align: center;
}
.caption {
font-style: italic;
}

Just something I discovered recently while using Audacity to clean up some old vinyl recordings:

The Click Removal tool does a darn good job of cleaning up most scratches, but not all. IME it’s still necessary to go back after it to fix what it missed (I find that the Repair tool works well for small scratches).

Unfortunately, a lot of scratches are hard to see with the default waveform view: a scratch can have a small amplitude (smaller than the clean waveform around it); it’s annoying because it shows up as a short burst of white noise in the middle of a tune.

The black bars mark the location of an audible but invisible click.

However, white noise shows up as a vertical bar in spectrum view. So what I did was:

  1. Duplicate the track I’m cleaning up.
  2. Mute the copy.
  3. Switch the copy to spectrum view; leave the original in waveform view.

That way, you can zoom out and easily find scratches on the spectrum view. By the time you zoom in and the spectrum becomes too smeared out to be useful, you can see the scratch in the waveform view, so you can fix it.

In spectrum view, the scratch is clearly visible as a bar that goes all the way to the top.

The downside of this technique is that Audacity has to do lots of FFTs to show the spectrum. So you may want to use a fast machine for this.

As we zoom in, the spectrum becomes too smeared out to be useful, but in waveform view, the scratch becomes obvious.

The other downside, of course, is that since you can see a lot more flaws, it takes ten times longer to fix a track.

Arthur Dent’s Procedural Filibuster

Anyone who’s watched Frank Capra’s
Mr. Smith Goes to Washington
knows what a filibuster is: the Senate has no time limit on debate, so
a senator can just talk and talk and talk for hours, thus preventing
the Senate from taking a vote. This can be stopped if 60 senators vote
to halt debate (a cloture vote), allowing Senate business to resume.

Gary Gamber has a
history
of the filibuster. One interesting twist, though, is that — if
that site is correct — since 1975 Senate rules allow for the
procedural filibuster: if 41 or more senators to simply say that they
intend to filibuster, the filibuster is assumed, the motion is
dismissed, and business resumes.

In other words, a senator can say “I intend to filibuster. Then you’ll
have a cloture vote to shut me up, but 40 of my colleagues and I will
vote against cloture, so the motion will fail; I’ll keep talking until
I run out the clock, and the vote on the issue I care about won’t take
place. So let’s just save ourselves some time and simply pretend that
that’s what happened.”

This seems very similar to the scene in
The Hitch-Hiker’s Guide to the Galaxy
where Arthur Dent is lying in front of the bulldozers to prevent them
from demolishing his house.
He[1]
tells the foreman that since he’s going to be doing this all day, and
since the workers are resigned to this anyway, then they don’t
actually need Arthur there, and he can just run down to the
pub.

[1] Or Ford, in the TV series.

Unlike the Senate, Douglas Adams’s fictional bulldozers do demolish
Arthur’s house as soon as he’s not there to stop them.

And this illustrates a weakness of the procedural filibuster.
Filibusters work because people can and do tie up the floor of the
Senate, preventing real business from occurring. Filibusters are also
a good thing, because they prevent the majority from running roughshod
over the minority. If a senator feels strongly enough about an issue,
he can prevent the vote from occurring, even though he is in the
minority, as long as he can convince 40 others to let him go on. At
the same time, the fact that a filibuster is physically demanding
helps reserve it for those cases when negotiation fails.

But ultimately, it depends for its effectiveness on the senator in
question being able and willing to walk the walk: to talk for as long
as it takes, without a bathroom break if necessary, until either he or
the rest of the Senate gives in. (Though I think there are rules for
allowing two or more senators to take turns, to give each other a
break.)

Fortunately, the majority leader has the option of calling the
filibustering senator’s bluff: bypass the procedural part where the
majority and minority anticipate each other’s moves, and actually go
through the motions: talk, cloture motion, count the votes.
Unfortunately, I understand the current majority leader, Harry Reid,
has failed to use this power, leading to an unprecedented number of
procedural filibusters.

Anticipating a series of events and acting as if they had actually
happened only works if all of the players agree that that’s how things
will play out. In reality, a lot of senators are old, and while they
love to hear themselves talk, even they aren’t necessarily up to the
task of speaking for 20 hours straight, or whatever it actually takes
to block a vote. It wouldn’t hurt Reid to remind those who are abusing
the power of the filibuster what a real one actually entails.

Word O’ the Day

Found while looking up something else1:

misogallic adj. characterized by hatred of the French.

1: In case you were
wondering, the thing I was looking for was another word for
“homophobe”, since homophobes sometimes say that the word doesn’t
apply to them, because they’re not afraid of homosexuals. I haven’t
found anything better, so may I suggest “misohome”?

Unicode Input in Emacs

One question that had been bugging me for a while is, how does one
input a character in Emacs, given its Unicode hex code?

Answer: use the ucs input method, then use
uHHHH to input, where HHHH is the character’s
hex code.

Unfortunately, it doesn’t look as though there’s a way to input a
character by its decimal code.

Also, C- toggles an input method on and off, rather than
cycling through a list. So if you’re writing HTML (and therefore want
the default input method) with French text (for which you want the
latin-1-postfix input method), but need to insert box-drawing
characters (for which you need ucs), you’ll wind up using
M-x set-input-method a lot.

A Better Way to Toggle

(Warning: what follows may be obvious or trivial to many.)

One of the cool things about AJAX is switching parts on and off: you
can make an element visible simply by

myElement.style.display = "block";

or hide it with

myElement.style.display = "none";

But the problem with this is that it requires the JavaScript script to
know a lot about the document. The example above doesn’t look too bad,
but what if you have something like a pulldown menu that appears when
you click a button?

Let’s say that originally, the button is gray and has a “+” icon next
to the text. When you click on it, the menu becomes visible, but the
button also changes to red, and the “+” icon changes to “-“, to show
that the menu is active.

Now you have all sorts of CSS resources that you have to keep track
of. It would be nice to put them in the .css file, with the
rest of the style stuff.

Read More

Different Stylesheets for Browsers With and Without JavaScript

As hacks go, this one is pretty obvious, but I thought I’d throw it
out there anyway.

Let’s say there are three stylesheets you want to use on your web
page: one for all browsers (style.css), one for browsers with
JavaScript enabled (style-js.css), one for browsers without
JavaScript (style-nojs.css). This can be useful for things
like “display the fancy drop-down menu only if the browser supports
JavaScript; display the plain-HTML menu only if the browser doesn’t
support JavaScript”.

The common stylesheet is pretty standard:

<link rel="stylesheet" type="text/css" href="style.css"/>

The one for browsers that don’t support JavaScript is also pretty
easy: that’s what <noscript> is for:

<noscript>
  <link rel="stylesheet" type="text/css" href="style-nojs.css"/>
</noscript>

Finally, what’s the best way to have different behavior in browsers
that support JavaScript? Why, run a script, of course:


  document.write('n');