Saturday, March 31, 2007

21st Century Camping

Last week we pulled the Aliner out of storage. It sat in my driveway this week as I went through it inspecting and setting up for use. This provided me an extra reading room that I used for programming. Worked quite nicely as such, too.

Grand Haven State Park advertises that they have WIFI, so I decided on a little expedition to test this. Last winter the website for the park allowed reservations on 30 March, and that's what I put in.

The first challenge was sneaking out of work. Since I work at home Fridays, that should be easy. But there's a release that occasioned a lot of hand-wringing that resulted in a clutch of phone calls from QA and one big conference call with the product manager and the big boss. The conference call wasn't too long and I got on the road an hour and a half later than hoped. Traffic slowed me and I didn't get to Grand Haven as quickly, either.

The Wifi works (i'm using it now). I was pleased to note not one, but two wireless service providers within range of my laptop. I signed up for a one-day plan, but I could have gotten an hour's access for free.

And I was able to get on IM. I told my colleague in QA that I had to move my trailer, and asked if all was well. I didn't say how far I'd moved it. Later I chatted with my boss noting that it was cold and windy and raining, but that I was warm and snug and had Wifi. He was impressed with the geek factor.

Grand Haven State Park is perfect this time of year. It's cold and windy. And there's almost nobody here. I don't think I'd like it in July with no shade and crowds of noisy teenagers.

I have a friend who writes articles for outdoors magazines. I mentioned my purchase of my trailer and asked about some good camping destinations. In the course of the conversation he sniffed, "if you're using propane, it isn't camping." I suppose you'd say he's old-school. When I tell him about this expedition, I expect to see his head spin around three times or something like that.

Monday, March 26, 2007

How To Get Anna Nicole Smith Off The News

I just heard a guy on the radio profess that he lacked the power to get Anna Nicole Smith off the news. Happily, I have the solution. It's trivially easy to do this. Follow these steps:

1) you'll need guns, lots of guns. (A Matrix-style black leather coat is optional.) and ammo.

2) show up at the nearest TV network.

3) shoot up the place.

At this point, you have two options.
a) save the last bullet for yourself.
b) give yourself up so that you can have this month's "trial of the century." This will keep Anna Nicole Smith off the news for a few more weeks.

Sadly, you can only do this once. If you want to keep Anna Nicole Smith off the news for more than a few weeks, you'll have to recruit help. This shouldn't be hard. On the Internet, you can hook up with anybody about anything.

Sunday, March 25, 2007

Thespians Have Invaded My Church!

I'm no great fan of church drama and dramatic productions. So, this is an uncomfortable time of year for me. Leading up to Easter each year my church goes through a transformation.

This morning, we got to church relatively early. In the foyer outside the auditorium I noticed a lot of people milling about in costumes, apparently from the 1920s or '30s.

When we got into the auditorium, I was instantly consumed with lust. There on the platform gleamed a vintage Packard roadster. (It's odd that when you tell a man you covet his car, he'll smile. How many of the 10 commandments can you violate with that response.)

Around the Packard was a number of set decorations with that '20s or '30s theme. Old Coca Cola signage and so on. It was a remarkable piece of work. I remarked to my wife, "where are the TVs?" Blythefield has three huge projection screens on which videos, the words to songs and sermon notes are projected. None were visible, just the stage props.

When the service started, the thespians invaded the auditorium all in their costumes. Over a hundred of them surged onto the platform. They do this each year, except they wear different costumes each year. They sang and then segued into a song-and-dance routine that was as good as any musical production I've seen in Grand Rapids. I joke about the dancing girls at church, but today both men and women were kicking their legs up.

I appreciated the skill and work that went into the show. That's one of Blythefield's strengths, the show before the sermon. I realized that my opinions notwithstanding, this could be what reaches some people who'd otherwise be consumed with ennui or absent.

One of the thespians is a tall fellow with a beard, you know the kind of beard you've seen in every picture of Jesus you've ever seen. Jesus goes to my church. I see him every Easter season. This year, Jesus was easy to spot because whereas all the other thespians were wearing costumes from the early 20th century, Jesus wore the bathrobe costume we imagine the ancients clothed themselves with.

Then someone flipped a switch and a projection screen unfurled to allow projection of the words to the songs we were to sing. (It wouldn't be church without video, would it?) And after some peppy songs with a solid back-beat, they showed a video on that big screen.

But I found the video confusing. I told you that Jesus goes to our church. But the video showed a different guy in a beard who wore the bathrobe costume. He didn't look like the Jesus who goes to our church. Perhaps Jesus is like Santa Claus: the guy in my church and the guy in the video are just his helpers. (Someday, I'll ask some hard questions about the 2nd commandment.)

Last year, two movies came out, "The Illusionist" and "The Prestige" that each featured magicians. I rather liked the latter, but haven't seen the former. They seem to have set a cultural theme. As Evangelicals are wont, my church has (six months late) latched onto the fad and the Easter show this year has some kind of magical theme or story-line where some kind of magician comes to town in the early 20th century (thus the costuming indicated above). Perhaps next year all the guys with great pectorals will be recruited for a "300" rip-off.

30 years ago, Francis Schaeffer challenged Evangelicals to engage contemporary culture and I suppose that what I just described is what this entails. I think our failure is that we're six months late, and that we're not setting the pace for others to follow.

Wednesday, March 21, 2007

Theorem and Non-sequitir

I recently had occasion to ask myself what exactly constitutes thinking. Since I was trained as a mathematician, I generally regard thinking as something akin to the process of stepping through a sequence of formal steps: starting with premises, then stepping logically to intermediate results and finally arriving at a conclusion.

If reason is reasonable, the conclusion will be as true as the premises and the validity of the steps to the conclusion.

There's a similar process in forensic procedures where cases are made tallying up the arguments in favor of and counter to the point of dispute. When making cases, facts are marshaled to serve as the premises of a reasoned process leading to the advocate's position.

In the forensic setting, we can't count on the neat set-piece logic of the mathematical proof. So, the arguments tend to be more inductive and the logical steps of the argument somewhat less rigorous.

Now, what has this to do with thinking? There's a cartoon that came out when I was in college. I'm wearing it on a t-shirt as I write this. That was the constant temptation when I was getting my Masters' in Mathematics: I'd be in the middle of a proof and realize the next step I needed to take, but I didn't know how to do it. I dearly wished I could say, "then a miracle occurs," to make the missing step. They don't let you do that in Mathematics.

In Law, I think it's a matter of getting away with it. If you try it in law school, it depends on how closely the prof is watching, or in court, how closely the judge is watching. If they catch you, you'll be handed your head.

There's a term-of-art for the unsubstantiated step in an argument: the non sequitir. The step does not follow. It should be cut and dried, but that's not necessarily so.

When I was taking Calculus, the prof would write up proofs on the board and I would not understand the step that he took. My dullness of mind could not perceive how one step followed from another. The ultimate math-prof cop-out is to say, "this is left as an exercise for the student."

So then, it requires some subtlety to distinguish between the theorem one does not understand and the non sequitir. Charity demands that when someone throws something that appears to be a mismash of non sequitir and gratuitous assertions, that it not be dismissed out of hand. But how hard must one work before throwing up one's hands and saying, "I'm not this stupid," and decide that whatever you're looking at is no theorem, but non-sequitir. Is this from a deep thinker or from a braggart dilettante?

One strategy suggests itself. If your interlocutor has demonstrated mastery of a broad spectrum of difficult subjects and familiarity therewith, it suggests the former. Conversely, if he clutches a small handful of facts that he has difficulty integrating with other ideas, it suggests the latter.

Which am I? I suppose it's safest for me to regard myself a dilettante until proven otherwise.

Tuesday, March 20, 2007

The Spinning Sound That You Hear

In the Golden Age of Science Fiction, a Grandmaster named Isaac Asimov decided to write some stories that ran counter to the tired, stale stereotype. You see, ever since the Czech movie RUR, robots had been depicted as sinister things. Man would make machines, the machines would be slaves and the slaves would revolt.

This pattern dominated SF writing from that point forward and became a tired, stale stereotype. Everybody wrote robot stories that cast robots in this same negative light.

Then Isaac Asimov thought that perhaps it might be interesting and novel to break the stereotype. He wrote stories about these two engineer-scientist-troubleshooters who had the job of going around diagnosing and fixing interesting robot problems. And the engine of these stories, the plot device that powered them all was the Laws of Robotics: Robots can't harm humans, etc. The structure of the "positronic brain" was such that it was impossible for the Laws to be broken. These short stories were collected in book form and published as I Robot. It was one of my favorite books when I was a kid.

This same riff persisted in the Caves Of Steel novel and the other stories involving the robot detective R. Daneel Olivaw. Also favorites of my youth.

Times wounds all heels, and in 2004, I Robot made its way to the silver screen. I saw the hypes and thought they showed a movie that it wasn't true to Asimov's central idea. So, I made a point to not see this movie.

Eventually, it made it to cable TV and I told Tivo to record it. What a horrid film. The spinning sound you hear is that of Isaac Asimov in his grave.

It seems that computers are truly a sinister, corrupting force, and you can see it in I Robot, the movie. But not the way you think. Pervasive CGI rendering allows the filmmaker to set up scenes where hundreds or thousands of robots can fill the screen and crawl around the screen like ants. Too many movies just sort of omit things like character and story and fill the screen with CGI. This is the sinister corrupting force of computers in cinematography.

That's bad, but what makes I Robot worse is that the nature of CGI in this film. Filling the screen with a hundred bug-like robots all moving around is just wrong. And when they did use the CGI for things like cars or traffic scenes, it looked obviously fake.

Oh, but wait, after the movie's been going on and on and on, the robots take over. Wow, imagine that. Sure, they say that it's to protect us from ourselves. But you know, robots always take over and kill their masters. If the robots don't think of it themselves, they can get the idea from old Star Trek reruns. And then Will Smith has to get the "plot device" and shoot it into the MCP. oops, that was Tron. Well, you can predict any movie's last minutes once they realize they need to push the Big Red Button and you know everything bad will happen to provide obstacles for the hero en route to said button. And when he stands/hangs/lies next to the Big Red Button, he'll have some Witty Remark that he'll say when he plunges the Plot Device into the MCP or whatever, killing it.

I pine for the Old Days when there were writers who could do better than parody the old tired stereotypes, but come up with novel treatments of something. Like Isaac Asimov did in I Robot, the BOOK not the movie.

Sunday, March 18, 2007

Twelves Gates To The Printer

I have an apartment for rent. My wife wanted some mini-fliers to hand out/put up. That's fine because I did the design in MS Publish last year or so. Since my wife is getting more computer-literate, I put her to work finding the files. Ultimately, we found them on a seldom-used machine named Forrest. Most recent work has been on my main desktop machine named Grant.

OK, we need fliers, but they're on Forrest, not Grant. Mary made the fixes on Forrest. Then it was time to print the fliers. I have three color printers: HP990, HP8400 and HP7400 that we use for fliers, for photos, and for correspondence, respectively. Since Forrest is seldom used, printing has become problematic. First I tried the HP990, and the network flaked out resulting in wasted paper half-printed with the fliers. And the HP990 ink jet printer was out of black ink. I went to Meijer's and bought a replacement. But the network problem persisted.

Then I tried the HP8400 and MS Publish said "there was a problem". Nothing more useful than that. I went to the internet and downloaded the HP7400 drivers and installed them. On the second try it said the install was OK. Then I printed MS Publish and got the same unhelpful message. OK, Forrest had a network problem I wasn't going to fix.

I was able to copy the MS Publish files to Grant. Tried to open and print from there. NO joy. Grant's copy of MS Publish was '97 and Forrest's copy was '02. What to do? I could not find the Publish 2002 install disk, so I couldn't just update Grant and print from there.

I went back to Forrest and checked "print to file" using each of the printer drivers. Then I copied the resulting PRN files to Grant. Now all I had to do was copy each PRN file directly to its printer.

Interesting. Back in the old DOS days it was simple. Just do this:

Copy/b file.prn LPT1:

But none of the printers are hooked directly to Grant. The HP990 is hooked to a wireless printer server with an odd name of LK96c9ea. It has two queues, p1 and p2. A couple years ago, I figured out how to print directly to it like this:

Copy/b file.prn \\LK96c9ea\p1

But the HP8400 printer has an Ethernet port and the HP7400 printer connects via wireless. It took some doing to figure out how to send bytes directly to these printers. I suppose there's probably a way using the DOS Copy/b command, but I couldn't immediately find it. But after a bit of googling I found I could use netcat or nc to send things directly to the printer's TCP/IP address port 9100. What I found worked for me is this:

nc HPM210QY047Z 9100 < file.prn

The first part "nc" is the program netcat, easily downloaded from the net from a number of places. The second and third parts is the printer/port name and port number, respectively. You can get the port name from the printer properties' Ports tab, scroll down the list until you see one port "checked" and click on configure port. The dialog will appear on which you will find the port name (in my case HPM210QY047Z), a protocol (raw) and a port number (9100).

If you ever find a way to get DOS Copy/b to accept a TCP/IP address and port as a destination, let me know.

Friday, March 16, 2007

Writing Generic / Minimalist Code

Whenever I start on any new project, I have this uber-abstract mindset that spins off all manner of what-if things it could do. It's a matter of combinatorics: you know it has to read, will it have to write? you know it has to add, will it have to subtract? And so on. Most such ideas are not practical. This drives my boss nuts.

But this what-if thinking occasionally pulls my chestnuts out of the fire when someone breaks the promise that they'll never ever need so-and-so (but they do).

Thus, I set my course between Scylla and Charybdis. On one hand, I build something inadequate that must be carefully rewritten to be extended. On the other hand, I build something over-engineered and/or bloated. The principles of Object Oriented offer a path between them. One principle is "program to interfaces."

For the last couple years, I've been doing a lot of Test-Driven development. This week, I put Test-Driven to work in conjunction with "programming to interfaces." I created the interfaces for my current project, and before I had anything more than method signatures and parameter lists, I immediately wrote unit tests to thrash out the interfaces.

My intent was to code up just enough to get Visual Studio reverse-engineer it and thereby get UML class diagrams to use. However, it came together so very well, that the next steps were trivial. Before the day was out, I had gotten much further, much faster than I could have possibly dared to think.

There's one thing to understand OO and what it can do for you. It's another thing to take it to the next level. I'm quite pleased with what I've applied today.

reverse engineered from

These unit tests served to give me an immediate feel for how the software would work and this let me tweak the design so as to get the maximum functionality out of the minimum code.


There is in the principals of Object Oriented software development, a Now, when you have a righteous OO design, it'll manifest open-closed characteristics. The design will be closed to modification and open to extension.

Monday, March 12, 2007

For Mature Audiences Only

I just flipped on the telly and saw the disclaimer "For Mature Audiences Only" and it showed a couple cartoon monkeys whacking each other with paddles. Then one came this british television show where these science boffins in white lab coats do strange things like zap women with electricity and inflate hot water bottles with liquid nitrogen.

All good fun. Strange, but I always thought that "mature audiences" were more like the Masterpiece Theatre crowd. Perhaps an incisive discussion of Hegel or Kant? Nope.

Or maybe it's code: The phrase "for mature audiences only" is code for "immature tomfoolery ahead." Now, don't get me wrong, I like this immature tomfoolery. I just dislike the language being distorted.

Perhaps the disclaimer should be "for juvenile audiences, but not children."

Sunday, March 11, 2007

Consubstantiation

This morning during the communion service, a thought occurred.

Let's back up a bit. If you have any sort of Christian identity, you know about this business called "The Gospel." You may also know that Christianity denies "salvation by works," and this Gospel is the way God vindicates his justice while offering mercy to all and granting mercy to some. Some. I don't believe I'll see Hitler in heaven. So, if you have any interest in getting to heaven, you've got to concern yourself with this Gospel business.

The ancients worked all this out and there are Latin phrases that say all that I'll paraphrase here. The gospel requires 3 things of a person:

1) You have to know the story that Jesus Christ died on the cross to pay for our sins and that he rose again on the third day.

OK. I also know the story of the three bears and the Goldilocks girl who ate their porridge, etc. But there's a difference between knowing the Jesus story and knowing the Goldilocks story: Christians think the events of the Jesus story actually happened in space-and-time. This leads us to the 2nd thing.

2) You have to believe the Jesus story referred to above is actually true.

One distinction between orthodox Bible-believing Christians and many who claim a Christian identity is our view of history. A hundred years ago folks claimed that it doesn't matter what happened millenia ago, but it is important to follow the ethical standard of Jesus, and dispense with all that mythological stuff of snakes talking, etc. Today you may hear of those who'd "demythologize" Jesus by denying the space-and-time historicity of things like Christ's death on the Cross and his Resurrection. Christianity has a millenia-old insistence that if you are to be a Christian, you must also believe that the story of Jesus' death on the Cross and Resurrection is more than a useful metaphor containing no more than mythic significance.

The above serve as necessary, but not sufficient, conditions for being a Christian. However, Christian teaching has always insisted upon a third element.

3) You have to believe Jesus died on the cross for you, personally and individually. You have to add something more to knowing the Jesus story's details and to believing them to be true. A Christian needs to make a personal claim that those things count for himself or herself.

This always bothered me growing up. I knew the first two parts quite well, but had difficulty understanding that third part. Baptists like to refer to this third step as "accepting" or "receiving" something. I could never understand this. When I got older, I heard an analogy of trusting a chair: that uncertain moment when your knees are bent, you lower yourself and you find out whether the chair will collapse beneath you or not, and this isn't far from Kierkegaard's notion of the leap of faith.

My own spiritual journey took a good turn one time when I was struggling with these things I didn't understand. And I became quite angry with God and told him that I didn't care if he tossed me into Hell, but I told him what I believed his Word promised and that I was going to hold him to keep the promises of his Word and I was here-and-now claiming them for myself.

Now, looking back at that moment, I can see that I came to the end of myself and that I took a sort of Kierkegaardian leap of faith. It wasn't a blind leap: I had been reading Romans 1-5 and had those facts clearly in view.

All this sounds like I did something to unlock grace, but I believe that grace was driving these events, and led me through this process. It only looked like I was taking charge and actively working out my salvation. Instead, grace was working in me and bringing me along that third bit of transforming a "head knowledge" into a "heart knowledge."

So, this business of becoming a Christian is more than just knowing or believing something. There's this added bit that defies concise explanation and formula. I'm sure you can get a better explanation than the one I gave from any of several Christian resources. And depending upon who you read, it'll differ in the details: "letting go," "accepting," "asking Jesus into your heart," and so on. But there's some kind of extra, supernatural bit that isn't magic or ghostly, that gets added to the facts and belief of them.

And that brings us to this morning as I'm looking at the bread and wine. (Because I'm in a Baptist church, I was looking at a cracker and grape juice.) The communion elements remind me of Christ's body and blood.

I really like the Aristotelian idea of substances, and how a substance's essens and its accidens must be distinguished. Aquinas and the Schoolmen were geniuses to apply Aristotle's essens/accidens distinction to the bread and wine becoming the body and blood of Christ. It makes a sort of sense that the "hoc est corpus" should transmute the former into the latter. And since the elements still taste like bread and wine, the Arisotelian essens/accidens business makes it work. Turn this paragraph into a single word and you have "transubstantiation."

But I do not believe in that hocus pocus stuff. (Baptists have an inconsistency, insisting on maximum literalness in interpreting the Bible, but then spiritualizing wine into grape juice. I've never gotten a decent answer, even when I asked in a Deacon's meeting.)

A second way of regarding the elements of communion is called "consubstantiation." I once asked a Lutheran pastor what this means and I didn't get a satisfactory answer. He claimed "consubstantiation" was a strawman made by Calvinists. So, what follows should be ignored if you find a better Lutheran source. As I understand it now, consubstantiation teaches a mingling of the substances: the substance of the bread and wine becomes invested or haunted or charged or infused with the divine substance of Christ's body and blood. My Lutheran friend is now an Orthodox priest, so what I just said may be biased by the Orthodox notion of Incarnation. I am quite enamored with Orthodox thinking about Incarnation, so my perception is further biased at this point.

Officially, what I believe is stated here, but what occurred to me this morning is that something more than mere symbolism is in play during the Lord's Supper.

The ancients' notion of substances have limited applicability given contemporary atomic theory. The bread and wine are made of atoms made of quarks and gluons, etc. instead of "bread" and "wine" substances or mixtures of earth, wind, fire, and water essences.

This morning, I drew an analogy between the Jesus story and the elements of Communion. Could it be that this something more added to the symbolism and symbols? What I have in mind is not quite consubstantiation, but it is close. There's something extra added to the symbols, something that goes past mere matter to Christ's body and blood.

This isn't something changing the substance of the elements through the priest's hocus pocus, but by the individual celebrant of the Lord's supper recognizing Christ's body and blood in them. My Lutheran friend would hold up a photo and ask, "What is this?" and the answer would be a photo. Then he'd ask, "Who is this?" and the answer would be the person I recognized. Partaking in the body and blood so recognized, I promise to myself and to God that Christ's goodness shall be incorporated and lived out in my life.

This last bit is hard to say and as I reflect upon it, I know I've got some bits wrong. The London Confession of 1689 is much more reliable than my ramblings, and even then you should double-check what it says against the Bible verses shown.