Archives June 2016

“Guns Don’t Kill People”

A story from the Associated Press tells of a clash between white nationalists and counterprotesters in Sacramento (emphasis added):

SAN FRANCISCO (AP) — A white nationalist group’s rally outside the California state Capitol building turned violent as fighting broke out with a larger group of counter protesters, leaving 10 people injured with stab wounds, cuts and bruises.

Fights erupted when about 30 members of the Traditionalist Worker Party gathering to rally around noon Sunday were met by about 400 counter-protesters, California Highway Patrol Officer George Granada said. [&hellip]

Sacramento Fire Department spokesman Chris Harvey said nine men and one woman, ranging from 19 to 58 years old, were treated for stab wounds, cuts, scrapes and bruises. Of the injured, two were taken to the hospital with critical stab wounds, but they were expected to survive.

The thing that leapt out at me is that in a country where we keep having mass shooting after mass shooting, week after week after blood-soaked week, to the point where most of them don’t even make the news, this clash, which sounds like a 400-person brawl, didn’t kill anyone.

The other thing that’s missing from the reporting: guns.

So yeah, people are stupid and violent, and if they don’t have guns, will find other ways of killing each other — after all, we did it for thousands of years before the invention of gunpowder — but guns make it so much easier.

Let’s not make it any easier to kill our fellow humans than it has to be, okay?

So You’ve Poked Your Eye Out
Tower of Parliament in Planet of the Apes
Image by @jeremiahtolbert. Used with permission.

If you are or have a parent, you’re no doubt familiar with expressions like “It’s fun until somebody gets hurt” or “You’ll shoot your eye out, kid!” in A Christmas Story. In one of those rare cases where Russian is more compact than English, my dad would use the word “доигрались” (“do-ee-GRA-lees’”) when my brother and I played too rough and someone wound up getting hurt. It’s from “играть” (“ee-grat’”, to play) and the prefix “do-”, meaning “until” or “up to the point that”.

We’d play, he’d tell us to be more careful, we’d ignore him, and then someone’s knee would get scraped or head bumped, or something in the house would be broken. And my father would look at us and say, “доигрались”, “So you didn’t think, didn’t listen, and now…” and the “and now” would be there for all to see, too obvious to mention.

That’s a word that’s been coming to mind a lot lately. The Republican party has spent decades cultivating anger, ignorance, and xenophobia. Now they have an ignorant, xenophobic candidate whom they can’t control. Доигрались.

Churches have spent decades, even centuries vilifying women and LGBT people, and now they’re panicking because young people aren’t joining. Доигрались.

Most recently, Britons have decided that they hate foreigners so much, they’re going to divorce Europe, and sent the Pound into free fall. It’s still too early to tell what the final outcome will be, but I’m still thinking, доигрались.

SMH.

It’s Too Soon to Ask for Evidence, and What Is Evidence, Anyway?

Let’s take a peek over at Eve Keneinan’s post Keeping Track, which recounts a Twitter discussion between her, @MrOzAtheist, and Mark Houlsby, about Houlsby’s assertion that

There is no evidence for God. Therefore God does not exist.

Here’s a representative excerpt from Keneinan’s recap/rebuttal:

But evidence is an epistemological concept, pertaining to knowledge, to how we know that something exists or not, and what its properties are. Existence on the other hand is a metaphysical or ontological concept.

And another:

His claim that MH1: There is no evidence for God is already defeated by AMH1: It is possible there is evidence of God that has not yet be discovered.  I of course hold there is evidence for God, and plenty of it, [and so on, and so on]

And this (emphasis added):

I and others have attempted to refute this argument by arguing “absence of evidence is not evidence of absence.” We proffered plausible counterexamples: such things as protons (at one time), intelligent life in the Andromeda galaxy, and black holes (at one time). We argued that it is overwhelmingly likely that there are things for which we do not yet have evidence.

Go read, or at least skim, the whole thing if you’re curious.

In my experience, this sort of argument isn’t at all unusual for the more intellectual, ivory-tower sort of apologist. But here’s the thing: Keneinan says that “at one time” there wasn’t evidence for black holes. That “at one time” was on the order of a century: it was 101 years ago that Karl Schwarzschild discovered the radius around a collapsed star that bears his name.

A hundred years ago, we couldn’t sequence DNA because we didn’t know its shape and didn’t understand its role in reproduction. Hell, we hadn’t even isolated insulin yet.

Keneinan uses the word “galaxy” in the full knowledge that everyone knows what that is, and why it’s difficult to find life there. But a hundred years ago, we didn’t know that those fuzzy blobs in telescopes were in fact other cosmic islands of stars like our Milky Way. We didn’t know about the expanding universe or the Big Bang.

Meanwhile, we’ve had Islam for 1400 years, Christianity for 2000, Judaism for over 3000, and they’re still stuck on “well, you can’t disprove God” and “what constitutes evidence, anyway?”

You’d think that if there were any solid evidence for God, it would’ve shown up by now.

If You Use Unix, Use Version Control

If you’ve used Unix (or Linux. This applies to Linux, and MacOS X, and probably various flavors of Windows as well), you’ve no doubt found yourself editing configuration files with a text editor. This is especially true if you’ve been administering a machine, either professionally or because you got roped into doing it.

And if you’ve been doing it for more than a day or two, you’ve made a mistake, and wished you could undo it, or at least see what things looked like before you started messing with them.

This is something that programmers have been dealing with for a long time, so they’ve developed an impressive array of tools to allow you to keep track of how a file has changed over time. Most of them have too much overhead for someone who doesn’t do this stuff full-time. But I’m going to talk about RCS, which is simple enough that you can just start using it.

Most programmers will tell you that RCS has severe limitations, like only being able to work on one file at a time, rather than a collection of files, that makes it unsuitable for use in all but a few special circumstances. Thankfully, Unix system administration happens to be one of those circumstances!

What’s version control?

Basically, it allows you to track changes to a file, over time. You check a file in, meaning that you want to keep track of its changes. Periodically, you check it in again, which is a bit like bookmarking a particular version so you can come back to it later. And you can check a file out, that is, retrieve it from the history archive. Or you can compare the file as it is now to how it looked one, five, or a hundred versions ago.

Note that RCS doesn’t record any changes unless you tell it to. That means that you should get into the habit of checking in your changes when you’re done messing with a file.

Starting out

Let’s create a file:

# echo "first" > myfile

Now let’s check it in, to tell RCS that we want to track it:

# ci -u myfile
myfile,v <-- myfile
enter description, terminated with single '.' or end of file:
NOTE: This is NOT the log message!
>> This is a test file
>> .
initial revision: 1.1
done

ci stands for “check in”, and is RCS’s tool for checking files in. The -u option says to unlock it after checking in.

Locking is a feature of RCS that helps prevent two people from stepping on each other’s toes by editing a file at the same time. We’ll talk more about this later.

Note that I typed in This is a test file. I could have given a description on multiple lines if I wanted to, but usually you want to keep this short: “DNS config file” or “Login message”, or something similar.

End the description with a single dot on a line by itself.

You’ll notice that you now have a file called myfile,v. That’s the history file for myfile.

Since you probably don’t want ,v files lying around cluttering the place up, know that if there’s a directory called RCS, the RCS utilities will look for ,v history files in that directory. So before we get in too deep, let’s create an RCS directory:

# mkdir RCS

Now delete myfile and start from scratch, above.

Done? Good. By the way, you could also have cheated and just moved the ,v file into the RCS directory. Now you know for next time.

Making a change

All right, so now you want to make a change to your file. This happens in three steps:

  1. Check out the file and lock it.
  2. Make the change(s)
  3. Check in your changes and unlock the file.

Check out the file:

# co -l myfile
RCS/myfile,v --> myfile
revision 1.1 (locked)
done

co is RCS’s check-out utility. In this case, it pulls the latest version out of the history archive, if it’s not there already.

The -l (lower-case ell) flag says to lock the file. This helps to prevent other people from working on the file at the same time as you. It’s still possible for other people to step on your toes, especially if they’re working as root and can overwrite anything, but it makes it a little harder. Just remember that co is almost always followed by -l.

Now let’s change the file. Edit it with your favorite editor and replace the word “first” with the word “second”.

If you want to see what has changed between the last version in history and the current version of the file, use rcsdiff:

# rcsdiff -u myfile
===================================================================
RCS file: RCS/myfile,v
retrieving revision 1.1
diff -u -r1.1 myfile
--- myfile 2016/06/07 20:18:12 1.1
+++ myfile 2016/06/07 20:32:38
@@ -1 +1 @@
-first
+second

The -u option makes it print the difference in “unified-diff” format, which I find more readable than the other possibilities. Read the man page for more options.

In unified-diff format, lines that were deleted are preceded with a minus sign, and lines that were added are preceded by a plus sign. So the above is saying that the line “first” was removed, and “second” was added.

Finally, let’s check in your change:

# ci -u myfile
RCS/myfile,v <-- myfile
new revision: 1.2; previous revision: 1.1
enter log message, terminated with single '.' or end of file:
>> Updated to second version.
>> .
done

Again, we were prompted to list the changes we made to the file (with a dot on a line by itself to mark the end of our text). You’ll want to be concise yet descriptive in this text, because these are notes you’re making for your future self when you want to go back and find out when and why a change was made.

Viewing a file’s history

Use the rlog command to see a file’s history:

# rlog myfile

RCS file: RCS/myfile,v
Working file: myfile
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
Test file.
----------------------------
revision 1.2
date: 2016/06/07 20:36:52; author: arensb; state: Exp; lines: +1 -1
Made a change.
----------------------------
revision 1.1
date: 2016/06/07 20:18:12; author: arensb; state: Exp;
Initial revision
=============================================================================

In this case, there are two revisions: 1.1, with the log message “Initial revision”, and 1.2, with the log “Made a change.”.

Undoing a change

You’ve already see rlog, which shows you a file’s history. And you’ve seen one way to use rcsdiff.

You can also use either one or two -rrevision-number arguments, to see the difference between specific revisions:

# rcsdiff -u -r1.1 myfile

will show you the difference between revision 1.1 and what’s in the file right now, and

# rcsdiff -u -r1.1 -r1.2 myfile

will show you the difference between revisions 1.1 and 1.2.

(Yes, RCS will just increment the second number in the revision number, so after a while you’ll be editing revision 1.2486 of the file. Getting to revision 2.0 is an advanced topic that we won’t cover here.)

With the tools you already have, the simplest way to revert an unintended change to a file is simply to see what the file used to look like, and copy-paste that into a new revision.

Once you’re comfortable with that, you can read the manual and read up on things like deleting revisions with rcs -o1.2 myfile.

Checking in someone else’s changes

You will inevitably run into cases where someone changes your file without going through RCS. Either it’ll be a coworker managing the same system who didn’t notice the ,v file lying around, or else you’ll forget to check in your changes after making changes.

Here’s a simple way to see whether someone (possibly you) has made changes without your knowledge:

# co -l myfile
RCS/myfile,v --> myfile
revision 1.2 (locked)
writable myfile exists; remove it? [ny](n):

In this case, either you forgot to check in your changes, or else someone made the file writable with chmod, then (possibly) edited it.

In the former case, see what you did with rcsdiff, check in your changes, then check the file out again to do what you were going to do.

The latter case requires a bit more work, because you don’t want to lose your coworker’s changes, even though they bypassed version control.

  1. Make a copy of the file
  2. Check out the latest version of the file.
  3. Overwrite that file with your coworker’s version.
  4. Check those changes in.
  5. Check the file out and make your changes.
  6. Have a talk with your coworker about the benefits of using version control..

You already know, from the above, how to do all of this. But just to recap:

Move the file aside:

# mv myfile myfile.new

Check out the latest version:

# co -l myfile

Overwrite it with your coworker’s changes:

# mv myfile.new myfile

Check in those changes:

# ci -u myfile
RCS/myfile,v <-- myfile
new revision: 1.3; previous revision: 1.2
enter log message, terminated with single '.' or end of file:
>> Checking in Bob's changes:.
>> Route around Internet damage.
>> .
done

That should be enough to get you started. Play around with this, and I’m sure you’ll find that this is a huge improvement over what you’ve probably been using so far: a not-system of making innumerable copies of files when you remember to, with names like “file.bob”, “file.new”, “file.new2”, “file.newer”, and other names that mean nothing to you a week later.

Reason Rally 2016

I’m down on the Mall for the Reason Rally (I’m an official redshirt). If you see me, day hi!

BillDo Opines on the Reason Rally

Oh, goody! BillDo has written a piece about this Saturday’s Reason Rally on the National Mall (are you coming? If you’re an atheist, agnostic, freethinker, none, or anywhere in that general ballpark, you should totally come). Shall we see what nuggets of wisdom he might share with us from the depths of his pious bowels?

They stand for nothing, believe in nothing, and many are good for nothing.

Feel that Christian love! BillDo usually has his panties in a knot, but here he looks like a jamboree at Victoria’s Secret.

Most of the speakers are nobodies

I suppose that depends how you define “nobody”. It’s true that none of the major party candidates will be speaking, and no sitting presidents or senators. But I count two sitting Representatives (Tulsi Gabbard, D-HI and Rep. Bobby Scott, D-VA), as well as House candidate Jamie raskin (D-MD).

I also count a number of scientists and entertainers, including more Wu Tang Clan members than I realized (then again, I’m an old, and I don’t follow the hippity-hop).

But hark! Bill continues:

an exception being Penn Jillette: He is known for his obscene rants against Mother Teresa.

Actually, no: he’s known for being a stage magician. Pointing out that the Albanian worshiper of suffering may not be all she was cracked up to be is just a sideline.

Has Penn talked about her, since that one episode of Bullshit!? If so, I’m not aware of it. Maybe Bill is still butthurt 11 years after that show aired?

Besides bashing Christians, the speakers will discuss “climate change, LGBT rights, sex education, and social justice issues.” Exactly what the atheist perspective is on these issues is a mystery (if I may use that word).

Wait, seriously? Bill thinks there’s something provocative, edgy, or even clever about using the word “mystery” in a secular context? Does he think atheists don’t read murder mysteries?

What is really striking, however, is that the rally is showcasing how important the atheist vote is, thus suggesting that their group-think community is anything but a home for “freethinkers.”

So he just told us that he doesn’t know what atheists think about climate change, LGBT rights, etc, but he knows we all believe the same thing? Is that anything like saying, “I don’t understand the doctrine of the Trinity, but I believe it to be true”?

The Freedom From Religion Foundation is cashing in on the event by spending hundreds of millions on newspaper ads telling readers how unfair it is that their leader, Dan Barker, was denied a request to deliver an atheist address to Congress.

“[H]undreds of millions”? Please. A glance at the New York Times’s ad rates shows that a full-page color ad in the International section will set you back $107,075. The FFRF ad is running in three newspapers, so call it something close to half a million bucks. A good chunk of change, but still only half a percent of what Bill is claiming.

But anyway, go on:

David Silverman of American Atheists boasts that there are 40-50 million atheists in the U.S. He makes this figure up.

…says the man who just confused “million” and “thousand”.

Of course, it’s not hard to find other atheists criticizing Silverman for his estimate. But you wouldn’t know it because of all the groupthink.