Last night we had dinner with some college friends. He teaches at the local Christian college and his son and mine are roommates at our alma mater, Cedarville University, also a Christian college. Turns out that when I wasn't paying attention there was a bit of a flap at Cedarville and some profs were dismissed. These sorts of disputes are amusing only if you are far enough removed to see the irony.
I guess the dispute had something to do with "truth" and the university's position on truth. Truth is of particular interest to the Christian educator, since Christian Theistic interpretive frames are so radically different from secular interpretive frameworks. Adding to the irony, pursuant to a search through my class notes to review Advanced Calculus (in case my son asks me a poser I can't answer), I happened upon a blue book from the final exam in a course I took at Cedarville, "Man & Reliable Knowledge." Hmmm, I got an A on that exam, let's reread that essay, I thought. I hope Cedarville University hasn't forgotten what it taught me about truth in 1978.
If you are to dispute something, you must define your terms. I've used a two-fold definition of truth for several years: Ultimately, truth is what God knows. Proximately, truth is what corresponds to the state of the world. Simplistic I suppose, but it works for me.
Since I'm a Christian Theist, I tend to start with the ultimate: God. Truth is what God knows is a neat answer, but it is not immediately useful to someone who isn't God. Chirstian Theology teaches that God is transcendent and ineffable. No man will reach up into heaven and draw God down. Thus, if I am to have any idea what God knows, he'll have to reveal it to me. I believe there is a God and that this God has spoken. If you have a problem with that, OK, just don't call yourself a Christian. (You can't do Christianity without Christ.)
Not only do I believe God has spoken, but I agree with the consensus of Christian theology that teaches God has disclosed himself in General Revelation to all humanity, and Special Revelation to his people. More particularly, God reveals himself in Nature, Christ and the Bible. Again, if you have a problem with that, OK, just don't call yourself a Bible-believing Christian. Truth is transmitted from its ultimate source in God's mind to humanity through these three channels. If you aren't a Christian, you still have access to Truth (in spite of yourself) through Nature. And if you're not a Christian, you'll probably interpret Truth seen in Nature in a fashion consistent with your non-Christianity.
But if you are a Christian, and a Bible-believing Christian, you have two more channels through which you can tune into Truth: the Bible and Christ. Christians often engage in Bible-thumping, and Christians often claim to have a personal relationship with Christ. (And Christians often exhort non-Christians to establish a personal relationship with Christ, too.)
Now, IF, and I say IF, you buy into the paragraphs above, we can say some things about Truth through the contrapositive. Let's suppose you can't attain certainty. Narrowly speaking, that means you are uncertain of your relationship with Christ, or your understanding of the Bible, or your perception of Nature.
None of those things are bad in and of themselves. We should not take them for granted, and we should diligently question and distrust ourselves. We are fallen, finite beings and redemption is an incremental business.
(Healthy self-doubt is one thing, but denial is another thing. When the skeptic says, "there is no truth" or "noone can know anything for certain" there is little doubt in such a denial.)
There is another dimension of this matter: Exhaustive truth versus effective truth. God, being infinite understands exhaustively. I am not God and I am finite. In the last century Modernism suffered mortal wounds as it was proved that axiomatic systems (math) could not be consistent and complete (Goedel) and philosophy delved into various post-rational expressions. Modernism was naive in its expansive claims of truth and certainty. Post-modernism has rightly debunked this naivety.
However, many Post-moderns conflate debunking exhaustive knowledge with debunking ALL knowledge. A Post-modernist may be fully on board with his debunking of axiomatic systems, but he still uses arithmetic to balance his checkbook.
I like to say that Christian Theism is A-Modernist, neither Modernist nor Post-Modernist. We have to agree with the Post-modernist that we can't know everything, but disagree with him that we CAN KNOW SOMETHING. The Christian knows that the finite cannot encompass the infinite. If God reveals himself to mankind, he does so partially. The Bible says it "makes men wise unto salvation." Thus we should expect it to give us EFFECTIVE knowledge of God, but not EXHAUSTIVE knowledge.
Knowing that we won't have EXHAUSTIVE knowledge of God should motivate humility within us and an openness to those parts we don't yet know. But we can also rest in confident certainty of the bits of himself that God has EFFECTIVELY given us.
Saturday, September 29, 2007
Sunday, September 23, 2007
It is human nature to choose
Nihilism is a philosophy about nothing. Every philosophy has things to say about God, universals, truth, mankind and the purpose of life. For instance, a philosophy of Atheism has a definite opinion about the non-existence of God. But Nihilism neither affirms nor denies any deity.
When a nihilist contemplates life, the universe, and everything he can deny in turn every unifying principle. After a few hours of doing this, a nihilist will likely grow hungry.
"Everybody's got to believe something. I believe I'll have a cookie."
You thought that was just a humorous slogan on a tee-shirt. But it is more than that: a philosophical manifesto flying under the radar. One thesis that Evangelical Christian scholars advance is that everyone has a world-view and often a world-view is adopted unconsciously. I saw the tee-shirt in the Wireless catalog with that quote, but didn't think it anything deeper than the joke. Indeed, treating everything like a joke is a nihilistic reflex.
A second unexpected, nihilistic reflex is consumerism. If nothing is true or meaningful, except for one's appetites which cannot be denied, then satisfying those appetites becomes much more significant. There are different sorts of appetites that a person encounters: sex, power, and fame come to mind.
The existence of appetites says something to the Christian Theist about the nature of creaturely existence: creatures are not self-existent: we lack something and for that we hunger.
Appetites may be cultivated. Many enjoyable foodstuffs require a cultivated palate. Children are generally revolved by the bitterness of coffee, or the painfulness of peppers. But many of them grow into adults who pay top dollar for Starbucks® coffee and splash Tabasco® hot sauce on their meals. Rail-thin fashion super-models who haunt American culture may be far less appealing in cultures who favor a more Rubenesque form.
Appetites also serve to define someone's identity. A person whose sexual appetites are restricted to members of the same sex declares a "sexual identity" of homosexual. And the same goes for whose who identify themselves as heterosexual or bisexual.
The nihilist believes in nothing but himself and his appetites. And when he feels pangs of hunger for human companionship, community is just another consumer good. It objectifies the "other" in a relationship when he or she is a mere consumer good. Making another person an object is a form of murder.
Since appetites may be cultivated, everyone is vulnerable to advertising. Advertising stirs up appetites in us that we don't know we have. Advertising creates the impression that particular goods are more desirable than others. By linking one good to another in the mind, advertising can lead to perverse appetites. "Winston tastes good like a cigarette should." How exactly should a cigarette taste? Sweet and sort of like vanilla after the fashion of the candy cigarettes they sold when I was a child? They don't sell such candy any more.
When the ancient Greeks spoke of virtue, they recognized something and hoped to instill virtue in their children. Christian parents perceive the character of God in the Ten Commandments and hope to do the same. After-school specials depict disadvantaged kids overcoming adversity, conforming to teacher/coach expectations, then going from zeros to heroes, getting the girl and humiliating powerful antagonists.
But this doesn't change human nature. Instead, appetites are cultivated in the child for the desired behaviors and attitudes. And these appetites war with other appetites within the individual. It is human nature to choose between conflicting appetites. Those choices define whether we regard the resulting individual to be virtuous or not.
This demands of us a bit of consciousness and intentionality. We will be exposed to advertising in all its forms. That advertising may be overt in terms of pictures of fashion models with ad copy overlaid. Or less so in the rants on talk-radio. Or in a preacher's exhortations. We have to pick between them and ask whether the goods represented by each are consistent with what we think best and what we want to become.
So, that's why I really don't need to see your new big-screen plasma HDTV.
When a nihilist contemplates life, the universe, and everything he can deny in turn every unifying principle. After a few hours of doing this, a nihilist will likely grow hungry.
"Everybody's got to believe something. I believe I'll have a cookie."
You thought that was just a humorous slogan on a tee-shirt. But it is more than that: a philosophical manifesto flying under the radar. One thesis that Evangelical Christian scholars advance is that everyone has a world-view and often a world-view is adopted unconsciously. I saw the tee-shirt in the Wireless catalog with that quote, but didn't think it anything deeper than the joke. Indeed, treating everything like a joke is a nihilistic reflex.
A second unexpected, nihilistic reflex is consumerism. If nothing is true or meaningful, except for one's appetites which cannot be denied, then satisfying those appetites becomes much more significant. There are different sorts of appetites that a person encounters: sex, power, and fame come to mind.
The existence of appetites says something to the Christian Theist about the nature of creaturely existence: creatures are not self-existent: we lack something and for that we hunger.
Appetites may be cultivated. Many enjoyable foodstuffs require a cultivated palate. Children are generally revolved by the bitterness of coffee, or the painfulness of peppers. But many of them grow into adults who pay top dollar for Starbucks® coffee and splash Tabasco® hot sauce on their meals. Rail-thin fashion super-models who haunt American culture may be far less appealing in cultures who favor a more Rubenesque form.
Appetites also serve to define someone's identity. A person whose sexual appetites are restricted to members of the same sex declares a "sexual identity" of homosexual. And the same goes for whose who identify themselves as heterosexual or bisexual.
The nihilist believes in nothing but himself and his appetites. And when he feels pangs of hunger for human companionship, community is just another consumer good. It objectifies the "other" in a relationship when he or she is a mere consumer good. Making another person an object is a form of murder.
Since appetites may be cultivated, everyone is vulnerable to advertising. Advertising stirs up appetites in us that we don't know we have. Advertising creates the impression that particular goods are more desirable than others. By linking one good to another in the mind, advertising can lead to perverse appetites. "Winston tastes good like a cigarette should." How exactly should a cigarette taste? Sweet and sort of like vanilla after the fashion of the candy cigarettes they sold when I was a child? They don't sell such candy any more.
When the ancient Greeks spoke of virtue, they recognized something and hoped to instill virtue in their children. Christian parents perceive the character of God in the Ten Commandments and hope to do the same. After-school specials depict disadvantaged kids overcoming adversity, conforming to teacher/coach expectations, then going from zeros to heroes, getting the girl and humiliating powerful antagonists.
But this doesn't change human nature. Instead, appetites are cultivated in the child for the desired behaviors and attitudes. And these appetites war with other appetites within the individual. It is human nature to choose between conflicting appetites. Those choices define whether we regard the resulting individual to be virtuous or not.
This demands of us a bit of consciousness and intentionality. We will be exposed to advertising in all its forms. That advertising may be overt in terms of pictures of fashion models with ad copy overlaid. Or less so in the rants on talk-radio. Or in a preacher's exhortations. We have to pick between them and ask whether the goods represented by each are consistent with what we think best and what we want to become.
So, that's why I really don't need to see your new big-screen plasma HDTV.
Saturday, July 28, 2007
On A Snowman...
There's a minor flap about Republican participation in "the YouTube debate." And at least one Republican candidate has stated that he won't answer questions from a talking snowman. This is rather cute, but it reflects something I detest about American Politics of the last couple decades. You see, I felt George Bush Sr's pain during the 1992 presidential debate: the one where he looked at his watch and some pony-tail guy was asking the US Government to be his parents. That was a complete waste of time to WATCH, much less participate in. And it handed an advantage to the more touchy-feely Slick One.
Message to politicians: you don't win playing the game the other guys try to foist upon you.
Now it's wrong to just sulk and say, "I'm not going to play." Or "This is beneath MY dignity." (particularly when true.) But think back to earlier in the political season. Of how Fred Thompson became the "mirror of desire" to every Conservative. He did two things that are Right Moves:
1) Michael Moore challenged Fred Thompson to a debate. What did Mr. Thompson do? He produced a video and posted it on YouTube wherein he responded to the "humorist," asserting that Mr. Castro is a dictator wont to put people into insane asylums and that Mr. Moore should think about insane asylums.
2) Periodically during this campaign season, Mr. Thompson has written short essays describing the way things ought to be. They sound thoughtful and they clearly define the sorts of general-principles-of-conservatism that have gotten lost. While everyone is trying to claim the mantle of Reaganism, Mr. Thompson has used the non-sound-bite medium of the short essay (delivered on radio, or in blogs) to articulate what exactly he has in mind.
I have a friend who recently confessed to me that he doesn't think he's a conservative any more. I asked if he was wavering in his Conservatism or in his Bushism? Look at what Washington Republicans and even Lansing Republicans have been doing for the last few years. They've failed to express any principles that define why they're Republicans, and in the case of Washington, they've proven just as profligate at growing government and spending money as the Democrats ever were. Mr. DeVos lost the governor's race to a fairly inept Democrat because he uh ...why was he running? If the only difference between a Republican and a Democrat is that they'll cut the same pie differently and hand out goodies to different people, it makes little difference to me.
Republicans hereabouts did some finger-pointing about failing to "go negative" in local races after the Democrats handed us our butts in the last election. Yes, the other guy WAS a convicted criminal, but dammit boys, what were you FOR?
Mr. Reagan won elections by "going positive" on what SPECIFICALLY he believed government should do (or better, NOT DO). Where are the principles of Conservatism articulated by Republican politicians? Don't say that you can't get into the nettles of political philosophy in a "sound bite age." Mr. Thompson demonstrated the power of the short essay in drawing support to himself.
We need something better than the politicians we've been getting. Leadership is about ideas as much as it is about political fundraising. I think Republicans have done well when they've articulated Conservative ideas. And we have the means in hand to articulate our ideas on the Internet.
You can talk to your base in codewords like "preserve the sanctity of life" which denote nothing meaningful. (Doesn't sanctity have something to do with church?) Such talk does nothing to move the uncommitted middle and provides nada in terms of post-election mandate.
Incidentally, Mr. Thompson's recent trouble with pro-abortion agitprop stems from the fact that although he has a good voting record on abortion, his essay response was about the attorney-client relationship and not the state's obligation to secure the rights of the unborn.
Politicians have learned to be vague about the specifics of what they think. When the TV coverage allows only 30 second spots, it's impossible to delve into details or be nuanced. But now a lot of people read the Internet and get their news therefrom. The next generation of politicians will be able to communicate with the electorate in a much more detailed and nuanced way.
Last night I was sitting at my dinner table and I heard a knock on the door. Thinking a friend was visiting I waved for him to come in. He didn't. He was a politician going door-to-door seeking votes. I had his opponent's sign in my yard, but I asked him to make his case for my vote and he did a good job. I asked him some "why" questions and he did a better job of selling himself than his opponent had a few weeks ago.
You can't personally go door to door when you're running for a bigger office. BUT NOW, Fred Thompson has repeatedly come into my family room and given me (and everyone else who's read his essays) a thoughtful exposition of how he thinks. Since I've heard him on Law & Order, I can fill in the accent and tone of voice. That's powerful. If you are a politician, make your case, put it in words and blog those words for all to see.
OR you can task focus groups to devise snarky responses to talking snowmen.
Message to politicians: you don't win playing the game the other guys try to foist upon you.
Now it's wrong to just sulk and say, "I'm not going to play." Or "This is beneath MY dignity." (particularly when true.) But think back to earlier in the political season. Of how Fred Thompson became the "mirror of desire" to every Conservative. He did two things that are Right Moves:
1) Michael Moore challenged Fred Thompson to a debate. What did Mr. Thompson do? He produced a video and posted it on YouTube wherein he responded to the "humorist," asserting that Mr. Castro is a dictator wont to put people into insane asylums and that Mr. Moore should think about insane asylums.
2) Periodically during this campaign season, Mr. Thompson has written short essays describing the way things ought to be. They sound thoughtful and they clearly define the sorts of general-principles-of-conservatism that have gotten lost. While everyone is trying to claim the mantle of Reaganism, Mr. Thompson has used the non-sound-bite medium of the short essay (delivered on radio, or in blogs) to articulate what exactly he has in mind.
I have a friend who recently confessed to me that he doesn't think he's a conservative any more. I asked if he was wavering in his Conservatism or in his Bushism? Look at what Washington Republicans and even Lansing Republicans have been doing for the last few years. They've failed to express any principles that define why they're Republicans, and in the case of Washington, they've proven just as profligate at growing government and spending money as the Democrats ever were. Mr. DeVos lost the governor's race to a fairly inept Democrat because he uh ...why was he running? If the only difference between a Republican and a Democrat is that they'll cut the same pie differently and hand out goodies to different people, it makes little difference to me.
Republicans hereabouts did some finger-pointing about failing to "go negative" in local races after the Democrats handed us our butts in the last election. Yes, the other guy WAS a convicted criminal, but dammit boys, what were you FOR?
Mr. Reagan won elections by "going positive" on what SPECIFICALLY he believed government should do (or better, NOT DO). Where are the principles of Conservatism articulated by Republican politicians? Don't say that you can't get into the nettles of political philosophy in a "sound bite age." Mr. Thompson demonstrated the power of the short essay in drawing support to himself.
We need something better than the politicians we've been getting. Leadership is about ideas as much as it is about political fundraising. I think Republicans have done well when they've articulated Conservative ideas. And we have the means in hand to articulate our ideas on the Internet.
You can talk to your base in codewords like "preserve the sanctity of life" which denote nothing meaningful. (Doesn't sanctity have something to do with church?) Such talk does nothing to move the uncommitted middle and provides nada in terms of post-election mandate.
Incidentally, Mr. Thompson's recent trouble with pro-abortion agitprop stems from the fact that although he has a good voting record on abortion, his essay response was about the attorney-client relationship and not the state's obligation to secure the rights of the unborn.
Politicians have learned to be vague about the specifics of what they think. When the TV coverage allows only 30 second spots, it's impossible to delve into details or be nuanced. But now a lot of people read the Internet and get their news therefrom. The next generation of politicians will be able to communicate with the electorate in a much more detailed and nuanced way.
Last night I was sitting at my dinner table and I heard a knock on the door. Thinking a friend was visiting I waved for him to come in. He didn't. He was a politician going door-to-door seeking votes. I had his opponent's sign in my yard, but I asked him to make his case for my vote and he did a good job. I asked him some "why" questions and he did a better job of selling himself than his opponent had a few weeks ago.
You can't personally go door to door when you're running for a bigger office. BUT NOW, Fred Thompson has repeatedly come into my family room and given me (and everyone else who's read his essays) a thoughtful exposition of how he thinks. Since I've heard him on Law & Order, I can fill in the accent and tone of voice. That's powerful. If you are a politician, make your case, put it in words and blog those words for all to see.
OR you can task focus groups to devise snarky responses to talking snowmen.
Saturday, July 21, 2007
Kudos Google
Google sent a couple of their people to BarCamp2 in Grand Rapids, MI this weekend.
THANK YOU.
First, they raffled off a tee-shirt on Friday night. I put my name in and lo and behold, I got a cool Google tee-shirt with the coyote howling at the moon. I'm wearing it now. Google also brought other schwag: pens, notpads, blinkies. My wife already snagged the notepad. Should have scarfed up two of them. The blinkie was cool, LEDs in the letters of the google logo. I figure the nieces and nephews will be fighting over it.
Second, they also gave away a iPod, I didn't win it, but the fellow who did looked awful darned happy.
Third, one of the Google people gave a talk on Linux systems administration and handed out Ubuntu live CDs and talked about Ubuntu. I learned it was a Debian distro of Linux and thought, what the hey, and I booted it on my work laptop that runs Windows XP. It came up smoothly, detected all the networks and stuff and everything "just worked." I was impressed.
So, my daughter's laptop has been sorta sick all summer. It runs for a while, then flakes out. (I took it in but the fellow was completely useless in diagnosing the problem. Couldn't find anything. That was $40 very mis-spent.) After BarCamp I went to my favorite hardware store and bought a 60GB hard disk, brought it home, installed it in my daughter's laptop, then booted Ubuntu. It booted fine. I told it to install on her new hard disk and walla. Everything "just worked" and has been rock-solid all evening. I'm terribly impressed with the Ubuntu CD the Google guy handed out.
Thank you, Google. You've got some great people working for you!
THANK YOU.
First, they raffled off a tee-shirt on Friday night. I put my name in and lo and behold, I got a cool Google tee-shirt with the coyote howling at the moon. I'm wearing it now. Google also brought other schwag: pens, notpads, blinkies. My wife already snagged the notepad. Should have scarfed up two of them. The blinkie was cool, LEDs in the letters of the google logo. I figure the nieces and nephews will be fighting over it.
Second, they also gave away a iPod, I didn't win it, but the fellow who did looked awful darned happy.
Third, one of the Google people gave a talk on Linux systems administration and handed out Ubuntu live CDs and talked about Ubuntu. I learned it was a Debian distro of Linux and thought, what the hey, and I booted it on my work laptop that runs Windows XP. It came up smoothly, detected all the networks and stuff and everything "just worked." I was impressed.
So, my daughter's laptop has been sorta sick all summer. It runs for a while, then flakes out. (I took it in but the fellow was completely useless in diagnosing the problem. Couldn't find anything. That was $40 very mis-spent.) After BarCamp I went to my favorite hardware store and bought a 60GB hard disk, brought it home, installed it in my daughter's laptop, then booted Ubuntu. It booted fine. I told it to install on her new hard disk and walla. Everything "just worked" and has been rock-solid all evening. I'm terribly impressed with the Ubuntu CD the Google guy handed out.
Thank you, Google. You've got some great people working for you!
Sunday, July 15, 2007
Oddball Rites
A couple months ago I read a web page written by someone who was big-O Orthodox and describing what goes on in such a service. It seemed quite strange to me. I thought about how I was raised and thought, no way. But at the same time, I also thought, this is probably as close to whatever it was the apostles did on Sunday as anything I'm ever going to see in this lifetime. It is strange to take the forms and customs of two thousand years ago and look at them through the eyes of a 21st century American.
And I realized that we'd look just as strange with our powerpoint slide shows and our seven-eleven praise songs. But this morning after the first couple songs, they turned down the lights. I knew what was coming. When I was a kid we called them "skits" but in today's worship services they are called "dramas" and there's a drama team and one particular person in our church who is really into that.
My wife is a thespian and I think she sacrifices a lot being married to me. I happen to despise skits in church. I'm not saying they're evil, just that I don't like them. I suspect that if I was merely indifferent about skits in church, she'd really like to be involved. And it's not that there was anything I could pick apart as being unscriptural or untrue about the skits at church. They're just not what I like.
When I look at the "value equation" for church, the repetitive praise songs and the skits don't contribute any lift to the airframe. Same goes for "liturgical dance." What gets my blood pumping are those centuries-old anthems, and content-rich sermons that are sharp enough to cut spirit and soul. I'm OK with the powerpoint slides because they're handy. But it bugs me that the only way I know when the song is done is the copyright notice on the last slide.
This term, "value equation" is one I started using for church when I drank the Rick Warren, "Purpose Driven Church" kool aid. I like it because I am an evangelical. I think I've got the truth and I'd like to make sure everyone else gets a chance to hear it. And if you've got a church service that's chock full of stuff nobody understands, there's not much "worship with understanding" that Luther advocated.
What got me thinking about is that the Pope has decided it's OK to do the "Tridentine Mass" without permission from the local bishop. The first time I heard "tridentine" I thought about chewing gum. I've used the Latin Mass as an example of "what not to do" back when I taught Sunday School. I wasn't ragging on Catholics: I don't think Evangelicals should speak in code that only we understand. We have to translate what we say and do into terms others understand. This is the main reason why I was attracted to a church that does a lot of "dramas" and has "liturgical dance."
Blythefield do a good job of speaking in the language of the people who live nearby and saying things you don't have to be a lifetime Baptist to find important. I think this is more important than whether the church service has the same smells and bells of a 1st century Middle Eastern church service. And I don't think I should stay away because others want to do skits or have dancing girls in church.
I think church liturgy is very important today. Congregations are looking around for ways to use the service to communicate something transcendent to those in attendance. In a more modern era, we saw a greater focus on teaching and the sermon. I'm fine with that. But in these post-modern days, a lot of people are looking for something that communicates transcendence. I think that's why Orthodoxy and the Latin Mass are doing well right now. The trouble with going through motions prescribed a thousand years ago is that it doesn't engage the rational faculties. Yes, there's a feeling of transcendence, but is there any thoughts worthy of it?
And I realized that we'd look just as strange with our powerpoint slide shows and our seven-eleven praise songs. But this morning after the first couple songs, they turned down the lights. I knew what was coming. When I was a kid we called them "skits" but in today's worship services they are called "dramas" and there's a drama team and one particular person in our church who is really into that.
My wife is a thespian and I think she sacrifices a lot being married to me. I happen to despise skits in church. I'm not saying they're evil, just that I don't like them. I suspect that if I was merely indifferent about skits in church, she'd really like to be involved. And it's not that there was anything I could pick apart as being unscriptural or untrue about the skits at church. They're just not what I like.
When I look at the "value equation" for church, the repetitive praise songs and the skits don't contribute any lift to the airframe. Same goes for "liturgical dance." What gets my blood pumping are those centuries-old anthems, and content-rich sermons that are sharp enough to cut spirit and soul. I'm OK with the powerpoint slides because they're handy. But it bugs me that the only way I know when the song is done is the copyright notice on the last slide.
This term, "value equation" is one I started using for church when I drank the Rick Warren, "Purpose Driven Church" kool aid. I like it because I am an evangelical. I think I've got the truth and I'd like to make sure everyone else gets a chance to hear it. And if you've got a church service that's chock full of stuff nobody understands, there's not much "worship with understanding" that Luther advocated.
What got me thinking about is that the Pope has decided it's OK to do the "Tridentine Mass" without permission from the local bishop. The first time I heard "tridentine" I thought about chewing gum. I've used the Latin Mass as an example of "what not to do" back when I taught Sunday School. I wasn't ragging on Catholics: I don't think Evangelicals should speak in code that only we understand. We have to translate what we say and do into terms others understand. This is the main reason why I was attracted to a church that does a lot of "dramas" and has "liturgical dance."
Blythefield do a good job of speaking in the language of the people who live nearby and saying things you don't have to be a lifetime Baptist to find important. I think this is more important than whether the church service has the same smells and bells of a 1st century Middle Eastern church service. And I don't think I should stay away because others want to do skits or have dancing girls in church.
I think church liturgy is very important today. Congregations are looking around for ways to use the service to communicate something transcendent to those in attendance. In a more modern era, we saw a greater focus on teaching and the sermon. I'm fine with that. But in these post-modern days, a lot of people are looking for something that communicates transcendence. I think that's why Orthodoxy and the Latin Mass are doing well right now. The trouble with going through motions prescribed a thousand years ago is that it doesn't engage the rational faculties. Yes, there's a feeling of transcendence, but is there any thoughts worthy of it?
Tuesday, June 26, 2007
An Open Letter To Debbie Stabenow
Dear Senator Stabenow,
I note with gratitude that you voted against cloture in the recent immigration bill. Thank you. I have been a voter since I voted for Gerry Ford back in 1976 and have only on two occasions split my ticket to vote for a Democrat in the years since: the first was a conservative Democrat running against a RINO in Maryland (who subsequently switched parties), and the second was a state-level Representative who happened to be pro-life when his opponent was pro-choice.
I held my nose and voted against you when you took Spencer Abraham's seat in the Senate. Frankly, I thought Mr. Abraham's tone-deafness about immigration policy is the signal reason why you were able to unseat him. Now, I'm pleased that I was wrong and you were elected, because I'm sure Mr. Abraham would have been as much a corporate tool as Mr. Bush and the rest pushing the immigration bill.
Whereas I remain a Conservative, I cannot in good conscience call myself a Republican. Because of your vote on the immigration bill I intend to vote for you the next time you stand for election.
I note with gratitude that you voted against cloture in the recent immigration bill. Thank you. I have been a voter since I voted for Gerry Ford back in 1976 and have only on two occasions split my ticket to vote for a Democrat in the years since: the first was a conservative Democrat running against a RINO in Maryland (who subsequently switched parties), and the second was a state-level Representative who happened to be pro-life when his opponent was pro-choice.
I held my nose and voted against you when you took Spencer Abraham's seat in the Senate. Frankly, I thought Mr. Abraham's tone-deafness about immigration policy is the signal reason why you were able to unseat him. Now, I'm pleased that I was wrong and you were elected, because I'm sure Mr. Abraham would have been as much a corporate tool as Mr. Bush and the rest pushing the immigration bill.
Whereas I remain a Conservative, I cannot in good conscience call myself a Republican. Because of your vote on the immigration bill I intend to vote for you the next time you stand for election.
Sunday, June 24, 2007
Truth In Advertising
Many years ago I was in Baptist History class by one of my least favorite professors at Cedarville. Despite a well-earned reputation as Dr. Sominex, he said something that has stuck with me for thirty years. His words were to the effect that there is no Baptist “pope” to admit someone to or excommunicate someone from the faith. Rather that the term Baptist implies a set of beliefs and if you don’t believe those things you can’t honestly call yourself a Baptist and if you do believe them you can. He likened it to “truth in advertising.”
I recently heard of someone who criticized a Baptist church in the following story. He was asked if he’s a Baptist or not. He replied by asking, "What does it mean to be a Baptist?" I imagine that the answer was a faithful rehearsal of the Baptist distinctives: Believer’s baptism by immersion, Autonomy of the local church, Priesthood of the believer, Two ordinances of baptism and communion, Individual soul-liberty of the believer, Separation of church and state, and Two offices of pastor and deacon. In response to this, the critic said that he hadn’t heard any mention of love. And this is a valid criticism.
However, I believe that this was an unfair criticism. He was not asked if he was a Christian, but if he was a Baptist. You can be a Baptist without being a Christian, as (a century ago) the members of Fountain Street Baptist Church might testify. Moreover, Baptists, particularly Fundamentalists like me, have a reputation for being censorious. If you consider Christ’s summary of God’s law in the double-love command, this censorious attitude argues most articulately for the non-belief, the non-Christianity, of such Baptists.
The categories of “Christian” and “Baptist” are independent. But if you are a Christian, identifying yourself as a Baptist gives a picture of HOW you are a Christian. If I tell you I’m a Baptist, you’ll know my yard won’t have a half-buried bathtub holding a statue of the Blessed Virgin.
Trouble is that you may also draw some other inferences that are not accurate. I think this is why institutions like the Grand Rapids Baptist Bible College first “got rid of the Bible” and then became Cornerstone University. Instead of standing up and saying, “This is what Baptist means,” and living a positive example thereof, they ran from the word Baptist. I still think they erred.
A lot of Christians did likewise and a lot of Reformed, Presbyterian, Church of God, and other churches became “Community Worship Centers.” Each denomination can point to negatives in its reputation. Certainly an irenic spirit is a Good Thing within Christianity and the blurring of denominational partisan identities takes a step in that direction.
I can see why you might not want truth in advertising. If you’re trying to sell your religion to me, and you make some vague spiritual representation, I’ll be naturally inclined to probe what exactly you believe. The premise is that this will get the proselytizing off to a better start than if you identify denominational pigeon-holes up front. I don’t buy it.
First, you can be partisan without being a jerk about it. If you tell me you’re Catholic or Reformed and I tell you I’m a Baptist up front, we’ve got our theological cards on the table and I’ve got a conceptual framework with which I can lovingly relate to you. I’ll know where the sore points are and can handle them tactfully. I’ll know the things I cannot take for granted. The denominational categories are the result of millennia of careful thought about the theological issues in play and ought not be discarded because of some bozo’s bad example.
And then there are the intentional misrepresentations of the enemy. You know, the Father of Lies. Do we act as if the devil’s slanders are true by running? Think of the word “puritanical.” We commonly identify this adjective with a priggish, humorless sort that bears no resemblance to the Puritanism of Milton or Bunyan. I'm sorry, but the most humorless person I know is emphatically not a Puritan.
So, with this in mind let me remind everyone: I am a Christian. What sort of Christian am I? I am a Baptist. What sort of Baptist am I? I’m a Calvinist. What sort of Calvinist am I? I am a Puritan. What do I mean by this? You can find book definitions for all these things that'll give you a good starting point. After that you’ll have to watch me. If you think my life works and want to know its theoretical framework, those labels will tell you where to look.
I recently heard of someone who criticized a Baptist church in the following story. He was asked if he’s a Baptist or not. He replied by asking, "What does it mean to be a Baptist?" I imagine that the answer was a faithful rehearsal of the Baptist distinctives: Believer’s baptism by immersion, Autonomy of the local church, Priesthood of the believer, Two ordinances of baptism and communion, Individual soul-liberty of the believer, Separation of church and state, and Two offices of pastor and deacon. In response to this, the critic said that he hadn’t heard any mention of love. And this is a valid criticism.
However, I believe that this was an unfair criticism. He was not asked if he was a Christian, but if he was a Baptist. You can be a Baptist without being a Christian, as (a century ago) the members of Fountain Street Baptist Church might testify. Moreover, Baptists, particularly Fundamentalists like me, have a reputation for being censorious. If you consider Christ’s summary of God’s law in the double-love command, this censorious attitude argues most articulately for the non-belief, the non-Christianity, of such Baptists.
The categories of “Christian” and “Baptist” are independent. But if you are a Christian, identifying yourself as a Baptist gives a picture of HOW you are a Christian. If I tell you I’m a Baptist, you’ll know my yard won’t have a half-buried bathtub holding a statue of the Blessed Virgin.
Trouble is that you may also draw some other inferences that are not accurate. I think this is why institutions like the Grand Rapids Baptist Bible College first “got rid of the Bible” and then became Cornerstone University. Instead of standing up and saying, “This is what Baptist means,” and living a positive example thereof, they ran from the word Baptist. I still think they erred.
A lot of Christians did likewise and a lot of Reformed, Presbyterian, Church of God, and other churches became “Community Worship Centers.” Each denomination can point to negatives in its reputation. Certainly an irenic spirit is a Good Thing within Christianity and the blurring of denominational partisan identities takes a step in that direction.
I can see why you might not want truth in advertising. If you’re trying to sell your religion to me, and you make some vague spiritual representation, I’ll be naturally inclined to probe what exactly you believe. The premise is that this will get the proselytizing off to a better start than if you identify denominational pigeon-holes up front. I don’t buy it.
First, you can be partisan without being a jerk about it. If you tell me you’re Catholic or Reformed and I tell you I’m a Baptist up front, we’ve got our theological cards on the table and I’ve got a conceptual framework with which I can lovingly relate to you. I’ll know where the sore points are and can handle them tactfully. I’ll know the things I cannot take for granted. The denominational categories are the result of millennia of careful thought about the theological issues in play and ought not be discarded because of some bozo’s bad example.
And then there are the intentional misrepresentations of the enemy. You know, the Father of Lies. Do we act as if the devil’s slanders are true by running? Think of the word “puritanical.” We commonly identify this adjective with a priggish, humorless sort that bears no resemblance to the Puritanism of Milton or Bunyan. I'm sorry, but the most humorless person I know is emphatically not a Puritan.
So, with this in mind let me remind everyone: I am a Christian. What sort of Christian am I? I am a Baptist. What sort of Baptist am I? I’m a Calvinist. What sort of Calvinist am I? I am a Puritan. What do I mean by this? You can find book definitions for all these things that'll give you a good starting point. After that you’ll have to watch me. If you think my life works and want to know its theoretical framework, those labels will tell you where to look.
Thursday, June 14, 2007
I don't even like opera
This is funny. I ran across, I don't know how, a YouTube video clip of this British TV show. It's a British spin-off of American Idol. I've never watched American Idol. I respond politely when others say nice things about it and I have made snarky remarks about Sanjia (though I've never seen him). I figure anything on "reality" TV is going to be contrived and stupid. So, I clicked on the movie and started watching, wondering what was up. Is this some kind of joke? some ironic bit of trash where some bozo makes a fool of himself in front of a TV audience?
The video showed this rather dumpy looking fellow (and I figure that TV makes anyone who's not stunningly attractive look dumpy) in a cheap suit, bad hair, and unfortunate teeth that is too common in Britain. The judges looked bored and skeptical and asked him what he wants to do. He said he'd like to do opera. The judges did not visibly roll their eyes, but I got that vibe.
Then the fellow started singing. But first, I forgot to mention how much I absolutely despise opera. So, the guy starts singing and I'm waiting for a gag.
There's no gag. This guy is incredibly good. The first clue I got was watching the judges, particularly the female judge Amanda Holden. She's struggling to contain her emotions. I did recognize the Puccini tune and I realize this dumpy looking guy is singing this as well as I've ever heard it sung. The judges were utterly impressed. Somehow, and I don't know how, I was moved to tears by the fellow's singing. I don't understand that. I replayed the video a half-dozen times and a stack of soggy kleenexes piled up a dozen deep.
Then I want looking for more info about this guy. I found a half-dozen posts with the video embedded, usually with the introduction, "I don't even like opera, but..." Then it struck me, an utterly incredible degree of talent trumps distaste for reality-tv or opera. The fellow's name is Paul Potts, and I hope we'll be hearing more of him.
The video showed this rather dumpy looking fellow (and I figure that TV makes anyone who's not stunningly attractive look dumpy) in a cheap suit, bad hair, and unfortunate teeth that is too common in Britain. The judges looked bored and skeptical and asked him what he wants to do. He said he'd like to do opera. The judges did not visibly roll their eyes, but I got that vibe.
Then the fellow started singing. But first, I forgot to mention how much I absolutely despise opera. So, the guy starts singing and I'm waiting for a gag.
There's no gag. This guy is incredibly good. The first clue I got was watching the judges, particularly the female judge Amanda Holden. She's struggling to contain her emotions. I did recognize the Puccini tune and I realize this dumpy looking guy is singing this as well as I've ever heard it sung. The judges were utterly impressed. Somehow, and I don't know how, I was moved to tears by the fellow's singing. I don't understand that. I replayed the video a half-dozen times and a stack of soggy kleenexes piled up a dozen deep.
Then I want looking for more info about this guy. I found a half-dozen posts with the video embedded, usually with the introduction, "I don't even like opera, but..." Then it struck me, an utterly incredible degree of talent trumps distaste for reality-tv or opera. The fellow's name is Paul Potts, and I hope we'll be hearing more of him.
Tuesday, June 05, 2007
Men Without Chests
I just read a snippet of a story on one of the milblogs. Seems that some 65 year old former cop and a retired Marine had to get physical with a guy on an airplane and his brother. That a situation that you hear about and hope to God you've got what it takes to do the right thing if you're ever there. The contemporary term is "onions" or "balls," but I prefer C.S. Lewis' term in his essay, "Men Without Chests." There's something about the empty suit that says more about a man than mere gelding.
We read from various places people complaining of how boys are raised to be sissies and that men are no longer manly. Lewis sussed it. When man is the measure of all things, nothing is big enough to be worth risking your life over. This hollows a man out and he's pretty much worthless. I have nothing but scorn for the protester who engages in civil disobedience and then complains that he felt threatened by the authorities. Socrates was man enough to drink the hemlock. He was a man with a chest.
What's most discouraging about this story was when the cop said, "I had looked around the plane for help, and all the younger guys had averted their eyes." Maybe all the young guys with chests must be in Iraq & Afghanistan.
We read from various places people complaining of how boys are raised to be sissies and that men are no longer manly. Lewis sussed it. When man is the measure of all things, nothing is big enough to be worth risking your life over. This hollows a man out and he's pretty much worthless. I have nothing but scorn for the protester who engages in civil disobedience and then complains that he felt threatened by the authorities. Socrates was man enough to drink the hemlock. He was a man with a chest.
What's most discouraging about this story was when the cop said, "I had looked around the plane for help, and all the younger guys had averted their eyes." Maybe all the young guys with chests must be in Iraq & Afghanistan.
Saturday, June 02, 2007
"Homegrown" Terrorist Plots
I just read a news story about a plot by four individuals named, Russell Defreitas, a U.S. citizen native to Guyana, Abdul Kadir of Guyana, Kareem Ibrahim of Trinidad, and a fourth man, Abdel Nur. Mr. Nur is reported to be a former member of the Parliament of Guyana.
Strangely, WNBC in New York said, "The arrests mark the latest in a series of alleged homegrown terrorism plots targeting high-profile American landmarks."
Does this mean that that WNBC considers Guyana and/or Trinidad to be "home."
Strangely, WNBC in New York said, "The arrests mark the latest in a series of alleged homegrown terrorism plots targeting high-profile American landmarks."
Does this mean that that WNBC considers Guyana and/or Trinidad to be "home."
Monday, May 28, 2007
Good Riddance Attention Whore
Mrs. Cindy Sheehan has given the American serviceman a gift this Memorial Day. In a post on the Daily Kos, she has announced that she's not going to be using the corpse of her dead son as a publicity stunt any more.
It is ironic that she should now announce her departure from public life, because her 15 minutes of fame elapsed long ago. Sadly, I doubt she'll have the character to keep her promise. Perhaps, she's hoping enough folks like myself will notice her announcement to grant her another 15 minutes.
When Mrs. Sheehan made this announcement, she entitled her post on the Daily Kos, "Good Riddance Attention Whore." The ancient Greeks had an aphorism that came to mind when I read that she had put that title on her farewell essay, γνῶθι σαυτόν.
It is ironic that she should now announce her departure from public life, because her 15 minutes of fame elapsed long ago. Sadly, I doubt she'll have the character to keep her promise. Perhaps, she's hoping enough folks like myself will notice her announcement to grant her another 15 minutes.
When Mrs. Sheehan made this announcement, she entitled her post on the Daily Kos, "Good Riddance Attention Whore." The ancient Greeks had an aphorism that came to mind when I read that she had put that title on her farewell essay, γνῶθι σαυτόν.
Sunday, April 29, 2007
Stop Watches and Yardsticks
Recently, I've had occasion to reflect upon one of the initiatives at work. Managers would like to measure what the workers do. Its a two-edged sword. On the one hand, there's the Big Brother aspect that we've been assured is not the case. On the other hand, you can't improve if you don't measure.
I build software. If, instead, I were to dig ditches, we could easily measure the volume of dirt displaced. But what metrics does one apply to the construction of software? Lines of code? Bug Reports? Cyclometric complexity statistics?
Last Tuesday, John Cunningham of Band XI spoke at the West Michigan XP group and described some of his frustrations doing XP within IBM. He would faithfully deliver the numbers to his higher ups that they requested and know they were utterly misleading. I knew exactly what he meant, because I've done the same.
You record the time spent doing tasks and what gets lost is the utter non-value spent in some of those tasks and the absolute priceless-ness of chance encounters that come and go in two minutes. The former are reported to management and the latter are not. They serve to push management a step away from reality.
In short, I object to measurements that mislead, or can be gamed. Once I understood this I sought a metaphor that I could use to communicate what I have in mind. Consider a track meet, what measurement tools are used there? Some officials carry around stop watches and other officials carry tape measures.
In particular, consider the high jump competition. You set the bar a measured distance above the ground and the best athlete is the one who doesn't knock it down. You measure this performance with a tape measure.
But suppose an official who's been watching footraces all day comes along with stop watch and no tape measure. He's perplexed until he notes that the guy who jumps highest also stays off the ground longest. He decides to measure the athlete's performance with just a stop watch.
What would happen then? The athletes would jump differently. But would they jump higher? Subtly, the fact that the measurement has changed will change the way the athletes jump. I don't think those changes will result in higher jumps. Performance suffers due to using the wrong measurement.
It seems silly to measure the high jump this way, but suppose you had lots of cheap stop watches and only a few expensive yardsticks. Or suppose you don't understand the field of endeavor well enough to see how yardsticks are better than stop watches.
Conversely, it'd be silly to take a yardstick or tape measure to a footrace.
So, I'm not saying "don't measure." I'm saying that you have to understand what you're doing well enough to select the correct measurement.
And you have to use, and not misuse the correct measurement.
Let's go back to the Big Brother consideration I touched on earlier. In the UK there is now one video surveillance camera for every 14 people. Those cameras are in place to "catch" wrongdoing. Contrast this with a training context where your coach videotapes your jump to analyze your form, a one frame at a time. He's got a purpose that you and he agree upon. He's not out to "catch" anything except those things you want to correct in order to jump higher. He's your Coach, not your Policeman.
Do you see a cop with a radar gun? Slide into something's radar shadow and decelerate. Then look at your speedometer. You change your behavior so he won't "catch" you speeding even when you're doing nothing wrong.
The relationship between Big Brother and those under his thumb is adversarial, whereas the relationship between Coach and athlete is cooperative. The fact that "Big Brother" even comes to mind speaks volumes of the culture of an organization.
Measurement in an adversarial context is a negative-sum game. In this context, everyone is encouraged by the system to replace reality (that might cast me or my political allies in a negative light) with whatever figures we can spin into a Potemkin village filled with smiling happy peasants, each tugging on their forelocks as the Empress sails by.
The cultural question probably hinges upon a question to the measurement taker that John Cunningham raised last Tuesday: "Do I want to know what's going on, or do I want to impose my will upon the situation?"
I build software. If, instead, I were to dig ditches, we could easily measure the volume of dirt displaced. But what metrics does one apply to the construction of software? Lines of code? Bug Reports? Cyclometric complexity statistics?
Last Tuesday, John Cunningham of Band XI spoke at the West Michigan XP group and described some of his frustrations doing XP within IBM. He would faithfully deliver the numbers to his higher ups that they requested and know they were utterly misleading. I knew exactly what he meant, because I've done the same.
You record the time spent doing tasks and what gets lost is the utter non-value spent in some of those tasks and the absolute priceless-ness of chance encounters that come and go in two minutes. The former are reported to management and the latter are not. They serve to push management a step away from reality.
In short, I object to measurements that mislead, or can be gamed. Once I understood this I sought a metaphor that I could use to communicate what I have in mind. Consider a track meet, what measurement tools are used there? Some officials carry around stop watches and other officials carry tape measures.
In particular, consider the high jump competition. You set the bar a measured distance above the ground and the best athlete is the one who doesn't knock it down. You measure this performance with a tape measure.
But suppose an official who's been watching footraces all day comes along with stop watch and no tape measure. He's perplexed until he notes that the guy who jumps highest also stays off the ground longest. He decides to measure the athlete's performance with just a stop watch.
What would happen then? The athletes would jump differently. But would they jump higher? Subtly, the fact that the measurement has changed will change the way the athletes jump. I don't think those changes will result in higher jumps. Performance suffers due to using the wrong measurement.
It seems silly to measure the high jump this way, but suppose you had lots of cheap stop watches and only a few expensive yardsticks. Or suppose you don't understand the field of endeavor well enough to see how yardsticks are better than stop watches.
Conversely, it'd be silly to take a yardstick or tape measure to a footrace.
So, I'm not saying "don't measure." I'm saying that you have to understand what you're doing well enough to select the correct measurement.
And you have to use, and not misuse the correct measurement.
Let's go back to the Big Brother consideration I touched on earlier. In the UK there is now one video surveillance camera for every 14 people. Those cameras are in place to "catch" wrongdoing. Contrast this with a training context where your coach videotapes your jump to analyze your form, a one frame at a time. He's got a purpose that you and he agree upon. He's not out to "catch" anything except those things you want to correct in order to jump higher. He's your Coach, not your Policeman.
Do you see a cop with a radar gun? Slide into something's radar shadow and decelerate. Then look at your speedometer. You change your behavior so he won't "catch" you speeding even when you're doing nothing wrong.
The relationship between Big Brother and those under his thumb is adversarial, whereas the relationship between Coach and athlete is cooperative. The fact that "Big Brother" even comes to mind speaks volumes of the culture of an organization.
Measurement in an adversarial context is a negative-sum game. In this context, everyone is encouraged by the system to replace reality (that might cast me or my political allies in a negative light) with whatever figures we can spin into a Potemkin village filled with smiling happy peasants, each tugging on their forelocks as the Empress sails by.
The cultural question probably hinges upon a question to the measurement taker that John Cunningham raised last Tuesday: "Do I want to know what's going on, or do I want to impose my will upon the situation?"
Wednesday, April 11, 2007
std::min and std::max versus Visual Studio
Recently, months back I wrote a wicked-cool solution using boost to encode binary data as base64. Sadly, it would not compile, b/c Microsoft did something evil in Windows.h when they defined min() and max(). I'd seen this problem and coded around it before. So I modified the boost code that broke:
C:\dev\sdk\boost_1_32_0\boost\archive\iterators>svn diff
Index: transform_width.hpp
===================================================================
--- transform_width.hpp (revision 201)
+++ transform_width.hpp (working copy)
@@ -142,7 +142,7 @@
}
else
bcount = BitsIn - m_displacement;
- unsigned int i = std::min(bcount, missing_bits);
+ unsigned int i = min(bcount, missing_bits);
// shift interesting bits to least significant position
unsigned int j = m_buffer >> (bcount - i);
But was this the most righteous solution?
Just last week I had to code away from a righteous std::numeric_limits::max() to the less righteous INT_MAX for the exact same reason. Today, this problem recurred. I had a choice between committing my change to boost, or powering through the problem. "OK, Microsoft, you've exceeded your kluge allocation."
The real problem isn't in boost, but in Visual Studio. This sent me googling to this link that said:
Therefore, I REVERTED my change to transform_width.hpp. Since I do not #include it doesn't matter where I #define NOMINMAX, so I put it in my project file's manifest of #defines.
It works and I feel more righteous.
C:\dev\sdk\boost_1_32_0\boost\archive\iterators>svn diff
Index: transform_width.hpp
===================================================================
--- transform_width.hpp (revision 201)
+++ transform_width.hpp (working copy)
@@ -142,7 +142,7 @@
}
else
bcount = BitsIn - m_displacement;
- unsigned int i = std::min(bcount, missing_bits);
+ unsigned int i = min(bcount, missing_bits);
// shift interesting bits to least significant position
unsigned int j = m_buffer >> (bcount - i);
But was this the most righteous solution?
Just last week I had to code away from a righteous std::numeric_limits
The real problem isn't in boost, but in Visual Studio. This sent me googling to this link that said:
The Standard Library defines the two template functions std::min() and std::max() in theheader. In general, you should use these template functions for calculating the min and max values of a pair. Unfortunately, Visual C++ does not define these function templates. This is because the names min and max clash with the traditional min and max macros defined in . As a workaround, Visual C++ defines two alternative templates with identical functionality called _cpp_min() and _cpp_max(). You can use them instead of std::min() and std::max().To disable the generation of the min and max macros in Visual C++, #define NOMINMAX before #including .
Therefore, I REVERTED my change to transform_width.hpp. Since I do not #include
It works and I feel more righteous.
Sunday, April 08, 2007
Viewer Discretion Required
I just walked into the family room and the TV was already on. Before the next show came on the warning appeared, "Viewer Discretion Required." The show consisted of videos of people doing stupid things and flamboyantly and visually paying the price for it.
It became obvious that viewer discretion may be required, but for the photographer and the photograph-ee, discretion was pretty much absent.
It became obvious that viewer discretion may be required, but for the photographer and the photograph-ee, discretion was pretty much absent.
Friday, April 06, 2007
C++ Templates Are Wizardry
I had to make a fix to a C++ program, and instead of doing the same old thing I had done before, I decided to effect a righteous STL/Boost standard solution. Here's the problem, I had a bunch of named objects and I needed to store them someplace.
I had a map and it worked until my boss asked, "is it case insensitive? does it ignore suffixes?" "No, should it?" "Yes & yes."
Though you wouldn't normally think of it, map requires a comparator to function. C# calls the same thing a sorted list, b/c they don't hide the fact that in order to work, the data structure has to be sorted on keys, and this comparator keeps the keys in sorted order. This comparator was what I needed to make my map work.
If I have two equivalent keys "Thing" and "thing.subthing" and want them to map to the same value, I can do so with a comparator function. Simply declare my map as map and then define a comparator functor that ignores the things like case and the stuff after the suffix character. The first part was a simple Boost exercise:
class comparator
{
public:
bool operator()(const string& s1, const string& s2) const
{
string t1(s1);
string t2(s2);
transform (t1.begin(),t1.end(),t1.begin(), tolower);
transform (t2.begin(),t2.end(),t2.begin(), tolower);
//(more goes here later)
return t1 < t2;
}
};
The boost string algorithm is the way to go here. You should make it your friend. This handles the string insensitive part. If that's all you need. You're done.
Note: you MUST implement a LESS THAN function or the std::map template won't work.
I had to ignore all the stuff to the right of the decimal point. So, I added the following bit:
size_t dot1 = t1.find(".");
size_t dot2 = t2.find(".");
if (dot1!=string::npos)
{
t1 = t1.substr(0,dot1);
}
if (dot2!=string::npos)
{
t2 = t2.substr(0,dot2);
}
I was a little disappointed with this solution. I had hoped to just adjust the end iterators of the transform() calls above. However, it got gnarlie and harder to understand than this. If you know how can replace the transform() call with something using a back_inserter(), let me know.
After I got this working, I was impressed at how unhelpful the compiler and the language were in diagnosing the errors I'd made. I mentioned to a colleague that templates are the greatest thing ever invented, but they require a wizard to use gracefully. He agreed and suggested that if I did this every day, I'd be more efficient at diagnosis. He's right. When you work with something every day, you grok the philosophy of why things work, and you get a feel for why unhelpful compiler error messages say what they do.
I had a map
Though you wouldn't normally think of it, map requires a comparator to function. C# calls the same thing a sorted list, b/c they don't hide the fact that in order to work, the data structure has to be sorted on keys, and this comparator keeps the keys in sorted order. This comparator was what I needed to make my map work.
If I have two equivalent keys "Thing" and "thing.subthing" and want them to map to the same value, I can do so with a comparator function. Simply declare my map as map
class comparator
{
public:
bool operator()(const string& s1, const string& s2) const
{
string t1(s1);
string t2(s2);
transform (t1.begin(),t1.end(),t1.begin(), tolower);
transform (t2.begin(),t2.end(),t2.begin(), tolower);
//(more goes here later)
return t1 < t2;
}
};
The boost string algorithm is the way to go here. You should make it your friend. This handles the string insensitive part. If that's all you need. You're done.
Note: you MUST implement a LESS THAN function or the std::map template won't work.
I had to ignore all the stuff to the right of the decimal point. So, I added the following bit:
size_t dot1 = t1.find(".");
size_t dot2 = t2.find(".");
if (dot1!=string::npos)
{
t1 = t1.substr(0,dot1);
}
if (dot2!=string::npos)
{
t2 = t2.substr(0,dot2);
}
I was a little disappointed with this solution. I had hoped to just adjust the end iterators of the transform() calls above. However, it got gnarlie and harder to understand than this. If you know how can replace the transform() call with something using a back_inserter(), let me know.
After I got this working, I was impressed at how unhelpful the compiler and the language were in diagnosing the errors I'd made. I mentioned to a colleague that templates are the greatest thing ever invented, but they require a wizard to use gracefully. He agreed and suggested that if I did this every day, I'd be more efficient at diagnosis. He's right. When you work with something every day, you grok the philosophy of why things work, and you get a feel for why unhelpful compiler error messages say what they do.
Tuesday, April 03, 2007
A Righteous Way To Get The Fonts Directory
Some months ago, I had a bit of a problem where I had to write a program that went to the system fonts directory on a Windows machine. This is usually in "C:\Windows\Fonts" but on some machines the Windows directory can move.
Thus, after a bit of googling I came up with this code that worked consistently until this afternoon.
string result = System.Environment.ExpandEnvironmentVariables("%WinDir%");
result += "\\fonts\\";
This works because on Windows systems, you can find the WinDir environment variable set to the system directory. That quit working today when I encountered a weird interface problem with an ancient C++ program (written well over 10 years ago) that invokes a new, cool .NET program that uses the code above. The failure was an interesting one.
The old C++ code looks like this: (Maybe you can see what the problem was.)
loadParms.segEnv = 0;
loadParms.lpszCmdLine = commandLine;
loadParms.lpShow = show;
loadParms.lpReserved = NULL;
HINSTANCE hinst = LoadModule(exeName, &loadParms);
The loadParms struct has a segEnv handle that references the environment of the child process created by the LoadModule(). However, since it is not initialized to anything, the child process has NO environment defined. Thus the reference to %WinDir% gets nada instead of the correct directory. The newer program worked fine from the DOS command line and failed within the LoadModule() call above. This was the only clue to my problem.
I came into my boss's office chuckling about how the old system goofiness had screwed me over and pointed out the use of the %WinDir% environment variable. He countered that what I'd done above to use %WinDir% in the first place was not as righteous as using the various Environment.SpecialFolder methods/properties to get the same thing. I'd tried to do this months back and I'd failed to google up a better solution than the one using %WinDir%.
But I'd forgotten my earlier failure to find a more righteous solution. It took me a couple hours of googling to remember that I'd done this before without success. Happily, this time, I didn't give up and came upon the clues that yielded this snippet of code:
///
/// get system font path
///
///system font path
static public string GetFontPath()
{
string systemPath = Environment.GetFolderPath(Environment.SpecialFolder.System);
string result = Path.GetDirectoryName(systemPath)
+ Path.DirectorySeparatorChar
+ "FONTS"
+ Path.DirectorySeparatorChar;
return result;
}//GetFontPath()
This works in two parts, the Environment.SpecialFolder.System gets me to C:\Windows\System32, which is too deep in the directory tree for me. But the 2nd step, invoking Path.GetDirectoryName(systemPath), strips off the "\System32" that is in my way. Then I can add back the FONTS myself.
A righteous hack. I hope this will make the next guy's googling a little easier.
Thus, after a bit of googling I came up with this code that worked consistently until this afternoon.
string result = System.Environment.ExpandEnvironmentVariables("%WinDir%");
result += "\\fonts\\";
This works because on Windows systems, you can find the WinDir environment variable set to the system directory. That quit working today when I encountered a weird interface problem with an ancient C++ program (written well over 10 years ago) that invokes a new, cool .NET program that uses the code above. The failure was an interesting one.
The old C++ code looks like this: (Maybe you can see what the problem was.)
loadParms.segEnv = 0;
loadParms.lpszCmdLine = commandLine;
loadParms.lpShow = show;
loadParms.lpReserved = NULL;
HINSTANCE hinst = LoadModule(exeName, &loadParms);
The loadParms struct has a segEnv handle that references the environment of the child process created by the LoadModule(). However, since it is not initialized to anything, the child process has NO environment defined. Thus the reference to %WinDir% gets nada instead of the correct directory. The newer program worked fine from the DOS command line and failed within the LoadModule() call above. This was the only clue to my problem.
I came into my boss's office chuckling about how the old system goofiness had screwed me over and pointed out the use of the %WinDir% environment variable. He countered that what I'd done above to use %WinDir% in the first place was not as righteous as using the various Environment.SpecialFolder methods/properties to get the same thing. I'd tried to do this months back and I'd failed to google up a better solution than the one using %WinDir%.
But I'd forgotten my earlier failure to find a more righteous solution. It took me a couple hours of googling to remember that I'd done this before without success. Happily, this time, I didn't give up and came upon the clues that yielded this snippet of code:
///
/// get system font path
///
///
static public string GetFontPath()
{
string systemPath = Environment.GetFolderPath(Environment.SpecialFolder.System);
string result = Path.GetDirectoryName(systemPath)
+ Path.DirectorySeparatorChar
+ "FONTS"
+ Path.DirectorySeparatorChar;
return result;
}//GetFontPath()
This works in two parts, the Environment.SpecialFolder.System gets me to C:\Windows\System32, which is too deep in the directory tree for me. But the 2nd step, invoking Path.GetDirectoryName(systemPath), strips off the "\System32" that is in my way. Then I can add back the FONTS myself.
A righteous hack. I hope this will make the next guy's googling a little easier.
Sunday, April 01, 2007
Write It Now: Relationships
The kind folks who wrote WriteItNow recently sent an evaluation copy to a writers' group that I attend. Since I'm the geekiest fellow there, I snarfed it up and promised to write up a review.
This isn't that review. It's more of a first impression. Just one aspect that I have some opinions upon: Relationshps.
WriteItNow lets you define characters in your novel. I'm working through that right now. Each character has a description, relationships, and personality. The description is just plain flat text, with a drop-down box for sex. This could be improved by adding some structure for eye-color, hair color, height and other physical attributes common to everyone. The Date Of Birth would be better replaced, or perhaps augmented, with an age when story takes place. When I am designing a story, I like to think of it in terms of "today" or "five years from now." If you have in mind to use historical figures in your novel, the Date Of Birth feature will serve you well.
Each character can have a collection of relationships. When you define a relationship, you get a dialog that has two drop downs. The first specifies the nature of the relationship: it says "wife of", "husband of", "aunt of", "neice of" and so on for about 27 choices. When I entered the first relationship, this was a problem, because I wanted the character to be the "tutor of" another character. Not in the list. Hmmmmm. No "mentor of" or "protégé of" either.
Only later did I discover the drop-down let me type in anything I wanted if it was missing from the drop-down.
A nice touch is that relationships can have "start" and "end" dates. But my complaint about birth dates applies here, too. Instead of saying that Chaz and Kim were married 3 years before Kim files for divorce, I have to specify some Saturday in June 2004 and some Wednesday in March 2007. Some specificity is good, but I'd like to hang loose on some details before I make other design decisions.
So, I started defining relationships between characters. And I noticed another problem. If I said, that Kim was the wife of Chaz, it didn't automatically say that Chaz was the husband of Kim. I saw this was a potential difficult thing to put into a program. For instance, if I say that Art is a lover of Jennifer, Jenifer may not be a lover of Art: she might just be stringing him along.
But just now a solution occurred to me. In the bowels of the source code for Write It Now, there must reside a software entity, (called a class) named something by the programmer. I'll name it "Relationship" for now. This class would be responsible for holding everything associated with a Relationship between two characters. Right now, I suppose it holds a string that specifies the type of relationship (e.g. "husband of"), two date objects for start & end, and a reference to a Character object. I here propose a refactoring of that object. Replace the string that identifies the type of relationship with a RelationshipType object.
The relationship type object I'm proposing has a boolean attribute: Reciprocal. Some relationships are reciprocal, others are not: e.g. Chaz is a husband of Kim and Kim is a wife of Chaz, but Art is a lover of Jennifer, but Jennifer has no such relationship with Art. With this distinction in mind, the programmer can associate reciprocal relationships automatically. When I add a "husband of" relationship between Chaz and Kim, it creates a reciprocal relationship "wife of" between Kim and Chaz. If I change my mind and want to I delete a reciprocal relationship, the software must goto the other character and delete its reciprocal relationship, too.
If you buy into the notion of a reciprocal relationship, you also have to worry about the polarity of that relationship. When I look at a relationship between Chaz and Kim from the perspective of Chaz, I want to see "husband of" and when I look at Kim's relationships, I should see "wife of". In graph-theoretic terms, reciprocal relationships are "directed" arcs between characters and this notion of polarity or direction, captures this distinction.
This would entail updating the Edit Relationship dialog to add a checkbox for Reciprocal or not. And also a "polarity" flag to select between "husband of" and "wife of" when displaying the relationship.
This also has an impact on the Relationship drop-down. I don't think free text in the combobox works any more. Instead it has to enumerate all the known relationships plus one called "other" selecting other would bring up a dialog where one defines:
While writing this, it occurred to me that the WriteItNow folks would also do well to refactor their Date object. Sometimes dates are important to know exactly, other times exactitude is a disraction or should just be a deferred decision. This argues for "fuzzieness" in the specification of dates. The date specifier dialog in WriteItNow have some checkboxes for Month, Day, Week Day, and BC. I'm not quite sure how these work and should start searching the documentation. (They govern presentation of the date. Bad form to confuse data entry and presentation. There's no Help button on the date specifier dialog. It's unclear how the red X is different from the Cancel button, either.)
Instead, I think every Date object needs to recognize the distinction between absolute and relative times. Absolute times are points like 2:57 pm GMT June 2, 1934. Relative times are points like 5 years ago. Let's suppose I have in mind that Damien is 13 when the story takes place. If I write the story is to take place "now," his birthdate can't be specified absolutely. Similarly, I may want to defer decisions about how old he is exactly. I'd prefer to say Damien is between 12 and 15. When I know more, I'll narrow it down.
Same goes for absolute dates. I may want to say that an event takes place "during WW2" but I'm not sure exactly when. I had a story where my hero lost an arm (and a fiance) during a Nazi bombing attack. When exactly? I didn't know more than between 1939 and 1945. And I didn't need to know until later.
WriteItNow will do a better job if it enables the writer to capture artistic decisions in relative terms with some degree of fuzziness. Thus I think its Date object should be refactored to mind these two distinctions: absolute versus relative, and inexactitude. Relative times are tricky, I'll come back to them momentarily.
Fuzzieness can be handled by adopting intervals. Any fuzzy date is really a range between the earliest and the latest times of an event. My hero's injury starts out at [1 Sep 1939 - 2 Sep 1945]. Since my hero is an American I decide he has to be hurt after Pearl Harbor: [7 Dec 1941 - 2 Sep 1945]. So it goes, as I research and refine dates and narrow the range. Exact dates are simply zero-width intervals. In my example, these are all absolute times, but relative times may prove useful. e.g. Damien's age mentioned above.
Relative times are tricky because they are "relative to what." WriteItNow enables the writer to define events. Events seem to be the best candidate for providing reference points for relative dates. What makes them tricky is that you can have multiple narrative tracks in a story. Neal Stephenson's Cryptonomicon tracked WW2 and contemporary events in parallel, for example.
In my current story, I figure Chaz will be found dead in a locked room. (Someone named Chaz should always be found dead at some time in the story.) I figure he'll be married to Kim about 3 years before that, and she'll file for divorce about a month before that. Meanwhile, Art and Damien are establishing a love-hate relationship as tutor and student. I don't know exactly how those two narrative threads will merge. I don't want to decide that yet. I'll want to specify all Kim and Chaz events relative to each other. And i'll want to specify all Damien, Art and Jennifer events relative to themselves.
Where it gets tricky is when I try to harmonize multiple the narrative flows. I'll need to float all the dates in one narrative to let me slide it forward and back to match up with the other. And I need to check for contradictions. Like Chaz getting killed before he can insult Art at a dinner party. Thus the Date object must be made fuzzy to some extent, and must be either absolute or relative. Similarly, when events are "linked" (I haven't gotten to that part of WriteItNow yet), some kind of consistency check between them will be needed.
More on that later.
This isn't that review. It's more of a first impression. Just one aspect that I have some opinions upon: Relationshps.
WriteItNow lets you define characters in your novel. I'm working through that right now. Each character has a description, relationships, and personality. The description is just plain flat text, with a drop-down box for sex. This could be improved by adding some structure for eye-color, hair color, height and other physical attributes common to everyone. The Date Of Birth would be better replaced, or perhaps augmented, with an age when story takes place. When I am designing a story, I like to think of it in terms of "today" or "five years from now." If you have in mind to use historical figures in your novel, the Date Of Birth feature will serve you well.
Each character can have a collection of relationships. When you define a relationship, you get a dialog that has two drop downs. The first specifies the nature of the relationship: it says "wife of", "husband of", "aunt of", "neice of" and so on for about 27 choices. When I entered the first relationship, this was a problem, because I wanted the character to be the "tutor of" another character. Not in the list. Hmmmmm. No "mentor of" or "protégé of" either.
Only later did I discover the drop-down let me type in anything I wanted if it was missing from the drop-down.
A nice touch is that relationships can have "start" and "end" dates. But my complaint about birth dates applies here, too. Instead of saying that Chaz and Kim were married 3 years before Kim files for divorce, I have to specify some Saturday in June 2004 and some Wednesday in March 2007. Some specificity is good, but I'd like to hang loose on some details before I make other design decisions.
So, I started defining relationships between characters. And I noticed another problem. If I said, that Kim was the wife of Chaz, it didn't automatically say that Chaz was the husband of Kim. I saw this was a potential difficult thing to put into a program. For instance, if I say that Art is a lover of Jennifer, Jenifer may not be a lover of Art: she might just be stringing him along.
But just now a solution occurred to me. In the bowels of the source code for Write It Now, there must reside a software entity, (called a class) named something by the programmer. I'll name it "Relationship" for now. This class would be responsible for holding everything associated with a Relationship between two characters. Right now, I suppose it holds a string that specifies the type of relationship (e.g. "husband of"), two date objects for start & end, and a reference to a Character object. I here propose a refactoring of that object. Replace the string that identifies the type of relationship with a RelationshipType object.
The relationship type object I'm proposing has a boolean attribute: Reciprocal. Some relationships are reciprocal, others are not: e.g. Chaz is a husband of Kim and Kim is a wife of Chaz, but Art is a lover of Jennifer, but Jennifer has no such relationship with Art. With this distinction in mind, the programmer can associate reciprocal relationships automatically. When I add a "husband of" relationship between Chaz and Kim, it creates a reciprocal relationship "wife of" between Kim and Chaz. If I change my mind and want to I delete a reciprocal relationship, the software must goto the other character and delete its reciprocal relationship, too.
If you buy into the notion of a reciprocal relationship, you also have to worry about the polarity of that relationship. When I look at a relationship between Chaz and Kim from the perspective of Chaz, I want to see "husband of" and when I look at Kim's relationships, I should see "wife of". In graph-theoretic terms, reciprocal relationships are "directed" arcs between characters and this notion of polarity or direction, captures this distinction.
This would entail updating the Edit Relationship dialog to add a checkbox for Reciprocal or not. And also a "polarity" flag to select between "husband of" and "wife of" when displaying the relationship.
This also has an impact on the Relationship drop-down. I don't think free text in the combobox works any more. Instead it has to enumerate all the known relationships plus one called "other" selecting other would bring up a dialog where one defines:
- reciprocal or not,
- relationship description (e.g. husband of)
- reciprocal description (e.g. wife of).
While writing this, it occurred to me that the WriteItNow folks would also do well to refactor their Date object. Sometimes dates are important to know exactly, other times exactitude is a disraction or should just be a deferred decision. This argues for "fuzzieness" in the specification of dates. The date specifier dialog in WriteItNow have some checkboxes for Month, Day, Week Day, and BC. I'm not quite sure how these work and should start searching the documentation. (They govern presentation of the date. Bad form to confuse data entry and presentation. There's no Help button on the date specifier dialog. It's unclear how the red X is different from the Cancel button, either.)
Instead, I think every Date object needs to recognize the distinction between absolute and relative times. Absolute times are points like 2:57 pm GMT June 2, 1934. Relative times are points like 5 years ago. Let's suppose I have in mind that Damien is 13 when the story takes place. If I write the story is to take place "now," his birthdate can't be specified absolutely. Similarly, I may want to defer decisions about how old he is exactly. I'd prefer to say Damien is between 12 and 15. When I know more, I'll narrow it down.
Same goes for absolute dates. I may want to say that an event takes place "during WW2" but I'm not sure exactly when. I had a story where my hero lost an arm (and a fiance) during a Nazi bombing attack. When exactly? I didn't know more than between 1939 and 1945. And I didn't need to know until later.
WriteItNow will do a better job if it enables the writer to capture artistic decisions in relative terms with some degree of fuzziness. Thus I think its Date object should be refactored to mind these two distinctions: absolute versus relative, and inexactitude. Relative times are tricky, I'll come back to them momentarily.
Fuzzieness can be handled by adopting intervals. Any fuzzy date is really a range between the earliest and the latest times of an event. My hero's injury starts out at [1 Sep 1939 - 2 Sep 1945]. Since my hero is an American I decide he has to be hurt after Pearl Harbor: [7 Dec 1941 - 2 Sep 1945]. So it goes, as I research and refine dates and narrow the range. Exact dates are simply zero-width intervals. In my example, these are all absolute times, but relative times may prove useful. e.g. Damien's age mentioned above.
Relative times are tricky because they are "relative to what." WriteItNow enables the writer to define events. Events seem to be the best candidate for providing reference points for relative dates. What makes them tricky is that you can have multiple narrative tracks in a story. Neal Stephenson's Cryptonomicon tracked WW2 and contemporary events in parallel, for example.
In my current story, I figure Chaz will be found dead in a locked room. (Someone named Chaz should always be found dead at some time in the story.) I figure he'll be married to Kim about 3 years before that, and she'll file for divorce about a month before that. Meanwhile, Art and Damien are establishing a love-hate relationship as tutor and student. I don't know exactly how those two narrative threads will merge. I don't want to decide that yet. I'll want to specify all Kim and Chaz events relative to each other. And i'll want to specify all Damien, Art and Jennifer events relative to themselves.
Where it gets tricky is when I try to harmonize multiple the narrative flows. I'll need to float all the dates in one narrative to let me slide it forward and back to match up with the other. And I need to check for contradictions. Like Chaz getting killed before he can insult Art at a dinner party. Thus the Date object must be made fuzzy to some extent, and must be either absolute or relative. Similarly, when events are "linked" (I haven't gotten to that part of WriteItNow yet), some kind of consistency check between them will be needed.
More on that later.
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.
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.
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.
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.
Subscribe to:
Posts (Atom)