Friday, December 31, 2010

What We Owe the Poor

I came across the subject article in the December 2010 Christianity Today and was struck by Keller's comment that “...we owe the poor as much of our money as we can possibly give away” (Dec 2010 CT, p.69; emphasis mine). This quote makes me feel uncomfortable; I especially don't like the underlined word "possibly" -- how about "comfortably" or "easily" or "conveniently"??

This brings to mind things I read 30 years ago in William MacDonald's book TRUE DISCIPLESHIP (Kansas City, KS: Walterick, 1975), particularly this excerpt from pp.8-9:

“So likewise, whosoever he be of you that forsaketh not all that he hath, he cannot be my disciple” (Luke 14:33). This is perhaps the most unpopular of all Christ's terms of discipleship, and may well prove to be the most unpopular verse in the Bible. Clever theologians can give you a thousand reasons why it does not mean what it says, but simple disciples drink it down eagerly, assuming that the Lord Jesus knew what he was saying. What is meant by forsaking all? It means an abandonment of all one's material possessions that are not absolutely essential and that could be used in the spread of the gospel. The man who forsakes all does not become a shiftless loafer; he works hard to provide for the current necessities of his family and himself. But since the passion of his life is to advance the cause of Christ, he invests everything above current needs in the work of the Lord and leaves the future with God.
It's easy to say MacDonald wasn't "mainstream" (whatever virtue attaches, or doesn't, to that) but Keller is not in any sense on the fringe of Christianity.

They aren't saying exactly the same thing, but they're pretty close. If we help feed the poor, is that spreading the gospel? Yes, according to Matthew 11:3-5. You may remember this incident; John isn't sure if Jesus is "the one who was to come"; he sends his disciples to ask Jesus. Jesus alludes to Isaiah 61:1 ("the Lord has anointed me to preach good news to the poor") in his answer to John, ending with the words "καὶ πτωχοὶ εὐαγγελίζονται" (and the poor are evangelized) -- yes, the same word is used for "the gospel."

So where does this leave you and me? Well, 30 years on, maybe I have plausible deniability for MacDonald, but then came Keller. And then this modern theologian, Stephen Colbert, who says Jesus is a liberal Democrat; I'll write more about that another day. Seriously though, how do you and I live? Do we give as much as we possibly can to the poor? Or, to lean more toward MacDonald, to spreading the gospel?

True confession: I don't. Here's a thought experiment: suppose my annual income were to suddenly drop 20% -- to what it was some years ago. What would change in my life? Would I have enough to eat, to pay the mortgage, to send my kids to college, to have dinner out occasionally, to enjoy vacations? Yes I would. Some of you would, too.

So "as much as I could possibly give" means that I could give away 20% of my gross income in addition to what we're currently giving to relief and development and evangelism, etc. So why don't I? For those of you who could live on 20% less but aren't giving away that 20%, why don't you?

More on this later.

Tuesday, December 14, 2010

Who Is Jesus? according to Matthew 1

(I'm indebted to pastor Kevin Kim for much of the content here. Any mistakes are mine. This isn't a scholarly paper -- just the opposite! Please see a ministry professional for competent exegetical or hermeneutical advice.)

The very first line of the New Testament, in Matthew 1:1, tells us who Jesus is: "A record of the genealogy of Jesus Christ the son of David, the son of Abraham" -- which says Jesus is the Christ, "Christ" being the Greek word for "Messiah," or "anointed one."

"Anointed" means somebody got oil (or ointment), as a sign of being set apart for some particular purpose. From the two-word phrase, "Jesus Christ," any reader of Matthew would immediately understand what Matthew was saying about Jesus, and the next few words would give them lots of information that most of us would miss.

By calling Jesus "the son of David," Matthew means more than just that Jesus was descended from David; he also means that Jesus is a successor to David, who was king over Israel's golden age. So not only has Jesus been anointed; he's been anointed to ascend David's throne. Since Matthew's earliest readers would have been Jews living under Roman occupation, this reference to David would likely have been provocative.

The reference to Abraham I'm thinking was likely a reminder of the covenant: from the burning bush (Exodus 3) God introduces himself as the God of Abraham, Isaac and Jacob; as Jerusalem is about to be sacked (Jeremiah 33), he refers to the Israelites as the descendants of Abraham, Isaac and Jacob. I'll further guess that for those discouraged by living under occupation, the reference to Abraham would have been an encouragement, because God's covenant with Abraham dates from over a thousand years before Jesus, and over 400 years before Moses delivered them from their Egyptian oppressors.

Then, starting in verse 2, we have an interesting list -- all focused on the question of "Who is this Jesus we're talking about?" A genealogy was like a person's calling card; it still is today in the mideast. Therefore, if you were listing your ancestors, you'd mention the ones you'd want a hearer to remember when they thought about you. The ancestors named were almost always men, so it's unusual that four women are mentioned here:

  1. "Judah the father of Perez and Zerah, whose mother was Tamar" (Matthew 1:3)

    Judah was Tamar's father-in-law, and two of Judah's sons (successive husbands to Tamar) had died. Tamar dressed up as a prostitute, Judah had sex with her, and she bore a pair of twin boys. (Genesis 38).

  2. "Salmon the father of Boaz, whose mother was Rahab" (Matthew 1:5)

    Rahab was a prostitute living in Jericho while the Israelites wandered in the desert (Joshua 2); she sheltered the Israelite spies and was saved along with her household when the city fell.

  3. "Boaz the father of Obed, whose mother was Ruth" (Matthew 1:5)

    Ruth was from Moab, and immigrated to Israel with Naomi her mother-in-law (Ruth 1).

  4. "David the father of Solomon, whose mother had been Uriah's wife" (Matthew 1:6)

    For some reason Matthew does not mention the name "Bathsheba," but that's the person in question (2 Samuel 11). She had been bathing somewhere visible from the palace. David had sex with her, she became pregnant, and David had her husband killed.

    Why doesn't Matthew write "Bathsheba"? Two reasons come to mind: first, mentioning Uriah (Matthew's readers would automatically fill in "...the Hittite") establishes her as a foreigner's wife without naming her husband's background (Matthew doesn't write "Ruth the Moabitess" either); second, Uriah was one of David's Thirty mighty men (2 Samuel 23), which makes David's betrayal that much more despicable.

I find this list astonishing in view of what a genealogy is usually for; Matthew is introducing Jesus, anointed to David's throne, as a descendant of foreigners, prostitutes (well, Tamar only acted like one), a woman who bathed in view of the palace, a man who betrayed his friend with adultery and murder.

But it gets even more interesting: verse 16 has, "...Jacob the father of Joseph, the husband of Mary, of whom was born Jesus, who is called Christ." Wait -- we have "the father of... the father of..." and then at the end Joseph is the husband of Mary, not "the father of Jesus." Wha...? Hold that thought for a moment, because Matthew gives us one more oddity:

In verse 17, Matthew says, "Thus there were fourteen generations from Abraham to David, fourteen from David to the exile...." What's so odd here? To Matthew's first readers, steeped in the history of the kings of Judah, the omissions in David's line (1 Chronicles 1) would stand out: "Jehoram the father of Uzziah, Uzziah the father of Jotham" (Matthew 1:8-9)? No, no, no! 1 Chronicles 1:11-12 reads (note the names highlighted in yellow): "Jehoram his son, Ahaziah his son, Joash his son, Amaziah his son, Azariah his son, Jotham his son" -- Uzziah and Azariah being names for the same person.

What's this about? Matthew wasn't working from some different manuscript that lacked those names; Ahaziah, Joash, and Amaziah reigned a total of 70 years, as described in 2 Kings 8:24-14:18. No, Matthew didn't forget those other kings; he included some people and omitted others in order to present Jesus as the beginning of the 7th set of 7 generations from Abraham. Right? 14 from Abraham to David -- that's two 7s; 14 from David to the exile (the 3rd and 4th 7s), 14 from the exile to the Christ (the 5th and 6th 7s). Programmers and math majors may notice that when counting 14 generations, the beginning and the ending are counted twice. Don't sweat it; the point is, beginning with the migration to the land we call Israel, the first set of 14 generations established the kingdom of Israel, the second set was the duration of the kingdom (of Judah anyway) as a kingdom, the third set was the exile to the start of something new. In other words, Matthew is signaling here that Jesus inaugurates the 7th set of 7 for Jews living in the land of promise.

Back to "Joseph is the husband..." rather than "the father of": Matthew explains it starting in verse 18:
18This is how the birth of Jesus Christ came about: His mother Mary was pledged to be married to Joseph, but before they came together, she was found to be with child through the Holy Spirit. 19Because Joseph her husband was a righteous man and did not want to expose her to public disgrace, he had in mind to divorce her quietly. 20But after he had considered this, an angel of the Lord appeared to him in a dream and said, "Joseph son of David, do not be afraid to take Mary home as your wife, because what is conceived in her is from the Holy Spirit. 21She will give birth to a son, and you are to give him the name Jesus, because he will save his people from their sins." 22All this took place to fulfill what the Lord had said through the prophet: 23"The virgin will be with child and will give birth to a son, and they will call him Immanuel"--which means, "God with us." 24When Joseph woke up, he did what the angel of the Lord had commanded him and took Mary home as his wife. 25But he had no union with her until she gave birth to a son. And he gave him the name Jesus.
Matthew 1:18-21
Let me unpack verse 19 a bit. Joseph hasn't had any union with Mary (cf. verse 25), yet Mary is somehow pregnant. He's within his rights to accuse her of unfaithfulness, but he doesn't want to disgrace her. He doesn't want someone else's child, though, and "divorcing her quietly" seems like a reasonable way out. So he was willing to let everyone think him somewhat of a deserter (i.e., for leaving Mary with their child), rather than accusing her to vindicate himself. I really like this guy.

But he has a dream, and obeying it, does not divorce her. (By the way, "pledged to be married" (verse 18) had more meaning in those days than what we think of as engagement. Dissolving it wasn't a matter of just calling the whole thing off.) I have often thought that we don't pay as much attention to Joseph as he deserves. Anyway, he names the baby boy Jesus.

What does it mean "give him the name Jesus, because he will save his people from their sins." (1:21, emphasis added)? For many of us today, a name is only an identifier, a word to disambiguate "that person" or "you there." But even a casual reading of Israel's history shows that names meant a lot more in the ancient world; consider Moses, so named because "I drew him out of the water" (Exodus 2:10) -- or how God changes Abram's name to Abraham (Genesis 17:5-6) or Jacob's name to Israel (Genesis 32:28).

Joseph was told to name the boy "Y'shua", like "Joshua" in the Old Testament. If these names are pronounced like "Y'shua", then why are they spelled "Joshua" and "Jesus" in English? Probably for the same reason the German word "ja" (meaning "yes", pronounced "ya") is spelled like it is. English is Germanic; it's not a Romance language.

And why do "Joshua" and "Jesus" differ so much? Well, I'm not too sure about that first vowel, but I believe that the Hebrew Bible was written without vowels. How did the NIV editors decide to put "Joshua" for the 6th book of the Bible but "Jeshua" in Ezra and Nehemiah? I don't know. Regarding "sh" vs "s" -- Greek doesn't have an "sh" sound and can't represent it. About the different endings -- as mentioned earlier, the New Testament is written in Greek; names are inflected in Greek, unlike in English. Thus when Matthew writes "the book of the genealogy of Jesus", his name is written as "Ἰησοῦ" (i.e., "Iesou"); in 1:16 "of whom was born Jesus", his name is written as "Ἰησοῦς" (Iesous); in 1:21 "give him the name Jesus", it's rendered "Ἰησοῦν" (Iesoun). Editors of English New Testaments have chosen the spelling "Jesus" for some time now; they had to choose one, and I guess they took the nominative.

So not only is Jesus the anointed successor to David's throne and part of a more-than-millennial covenant and a descendant of foreigners and prostitutes, he's also going to save his people from their sins.

But here's the most astonishing part: Jesus Christ had no human father, in fulfillment of a prophecy from Isaiah 7:14. Exactly how did this happen? I'll tell you: I don't know. But Matthew states it simply, just as he states the other events: they were pledged to be married, she was pregnant by the Holy Spirit, he was going to divorce her, he had a dream and didn't divorce her, they had no sex until after the baby was born.

This isn't the most important part of the good news of Jesus Christ (Mark doesn't mention it at all in his gospel; neither does John), but it is a fact that Matthew and Luke considered important enough to describe in some detail. I suppose that by calling attention to the supernatural beginning of his life, they prepare the reader for what will come later.

So to this occupied nation, the once sovereign nation of Israel, comes someone with a unique and supernatural origin, to save them from their sins. That's Matthew's introduction to the question, "Who is Jesus?" I'll say that's good news for a troubled world -- in that age or this.

Tuesday, December 07, 2010

Love is...

True or false? "Love is the will to extend one's self for the purpose of nurturing one's own or another's spiritual growth." (M. Scott Peck, The Road Less Traveled)

I hate to disagree with the late Dr. Peck -- a brilliant writer by the way -- but his definition doesn't really suffice. Two decades earlier, Merton had this correction: "...love implies an efficacious will not only to do good to others exteriorly but also to find some good in them to which we can respond." (No Man Is an Island, p.170) You probably guessed this, but I believe Merton was really on to something here.

I mean, think of it. Boy meets girl, and after some time has passed, he declares his love for her. Candlelight, roses, wine, and then this: "Sweetheart, I'm willing to extend myself to further your spiritual growth."

She takes his hand, gazes into his eyes, and replies: "I love you too, dearest."

Yeah, right. Even outside the realm of romance, "I love you" usually means more than "I'm committed to your growth." We mean more than that when we say it, and we want it to mean more than that when we hear it. I mean really, how affirming is it to hear "I'm committed to your growth"? When I tell the lovely Carol, "I love you," I mean a number of things:

  • Yes, I'm willing to extend myself to further her growth, but also that:
  • I want the best for her and
  • I want to be with her, because
  • there's a lot I admire and respect about her and also because
  • she is, as one speaker put it, so cute and fine.
I think I'll stop there.


Postscript

One benefit of an imperfect memory is the frequent joy of re-discovery. I wrote the above in August—i.e., about 16 months ago. Last night, I picked up Merton's No Man Is an Island and found that passage on page 170. I thought it brilliant and wanted to write about it this morning—having forgotten that I'd already referred to the exact same page in this post. The passage begins on p.169 with this brilliant observation:

6. We are obliged to love one another. We are not strictly bound to “like” one another. Love governs the will: “liking” is a matter of sense and sensibility. Nevertheless, if we really love others it will not be too hard to like them also.

Monday, December 06, 2010

Computing is fun again...

Before I start on the article, I need to tell you that from time to time I'm astonished by how fortunate I am to be born in the US in the latter half of the 20th century to the parents I have, to have benefited from terrific opportunities in life, to have found Jesus (or be found by him), to be married to a woman with a heart for ministry and spiritual growth, to see my kids turning into awesome young women, to be gainfully employed with great colleagues and a terrific supervisor. I'm aware of all that, but sometimes I whine anyway, as you're about to find out....

Long-time readers may have noted my frustration in the past with printing or with firefox not starting, not to mention unpredictable crashes (and sometimes getting REALLY annoying messages when firefox does eventually come back up).

Well, as I mentioned earlier, we bought a Mac Mini®, which now serves the lovely Carol, and I took her IBM lease return. This is an Intel Pentium4, 3.2 GHz with hyperthreading -- I guess it's a few years old. I loaded it up with openSUSE 11.3, which I like for a number of reasons:

  • SuSE Linux was my second Linux distribution; I started with Red Hat on a Toshiba Satellite 460? in 1998 but switched to "office 99" which had the SuSE Linux 5.3 distribution plus Applix Office. The Toshiba had a whopping 32MB RAM and the Pentium II processor ran at a blazing 133 MHz or thereabouts. I subsequently ran 6.0, 7.0, 8.0, 9.1, 9.3, and 10.2 at least on a half-dozen boxen, at home and work. In other words, I'm accustomed to it.
  • fvwm2 (at one time Linus's favourite -- whoa, Donald Knuth's too!) is on it, and I don't have to do a lot of tweaking in .fvwm2rc &c;
  • This was more important when I bought boxed sets, but Novell were the good guys in the whole SCO boondoggle.
Happily it works great on this old IBM lease return. It's stable, it boots and shuts down quickly, it has "cnf" (for "command not found") -- package management really has gotten better over the years! And on that last I'm happy to report yast2 is just as easy to use as I remember it, but it does more.

I'll add a screen shot and make a few comments; you can click on the image for more detail. You can see Thunderbird email and Emacs windows, an xterm window with some Python code, etc.

The background is a photo I took of the Yosemite Valley; xosview is in the upper right corner, and the fvwm2 pager in the upper left. As the documentation says, "many shy away from it due to the lack of GUI configuration tools." To each his own, I guess, but to me this is like saying people shy away from vi because it doesn't have GUI configuration tools; could I recommend Neal Stephenson's masterful essay, In the Beginning Was the Command Line to you?

Sunday, December 05, 2010

Is the Gospel About the Kingdom, or About Justification?

In a provocatively titled piece, “Jesus vs. Paul”, Scot McKnight notes that Jesus talked a lot about the Kingdom of God and not much about justification by faith. The Apostle Paul, on the other hand, talked a lot about justification and very little about the Kingdom.

So: What is the gospel really about? Is Jesus's gospel different from Paul's? Can they be harmonized? You really should read the whole article for yourself, but the impatient may mouse over the blue words below:

What the gospel is really all about

Brilliant!

Saturday, December 04, 2010

How Christianity (Judaism too) Is Like a Bad Marriage

I've been thinking on and off about this since we heard Kevin Kim's great sermon (download mp3) last weekend.

The straightforward answer comes from the experience of Hosea (found in Protestant Bibles in the sequence Ezekiel Daniel Hosea Joel Amos Obadiah toward the end of the Old Testament; in Hebrew Bibles he's one of The Twelve) marries a promiscuous woman, Gomer daughter of Diblaim (no connection to the medical slang). As Gomer is unfaithful to Hosea, so the land of Israel in Hosea's day (and the Church of Jesus Christ in ours) is unfaithful to God.

We find in Hosea's case that Gomer has left him, and like lost son Jesus described, hit bottom. The son, you may recall, squandered his share of the inheritance in wild living and took on a degrading and humiliating job -- a nice Jewish boy feeding swine!

But unlike the lost son of the parable, Gomer wasn't free to return to her husband to ask forgiveness. We read in Hosea 3 that Hosea redeemed her at the then-current price for a slave, which suggests that she had fallen into the hands of slave-traders. Perhaps her debt was too large to pay off? In any case, it was humiliating to say the least -- apparently slaves at market were presented naked, so that bruises and cuts could not be hidden. There she stood, and her husband bought her back.

This is how God loves the Israelites and this is how he loves you and me.

And another thing

A bad marriage is still a marriage. Though Gomer deserted him, and she was "loved by another man," Hosea still wanted her. I cannot imagine the heartbreak this must have been for Hosea, and I cannot imagine the heartbreak I am to God.

But I actually wanted to make one more point: nothing worthwhile is easy. Rilke wrote that in his Letters to a Young Poet -- I can't remember the exact reference, as it's been over 30 years.

In particular, any community will have struggles, whether due to external events (e.g., illness, accident, natural disaster, unemployment) or sin or growth (when for example a group grows to twenty and becomes two smaller groups). These things are difficult to say the least, but a community of faith is worthwhile -- no, I'll say community is essential to faith, and I say that as an introvert. But since nothing worthwhile is easy, we shouldn't be surprised when these things hit us. Come to think of it, didn't Peter tell us not to... yes he did.

So I guess my point is, we're to be Hosea to one another, and as the writer to the Hebrews told us, "Let us not forsake our own assembling together" (from Hebrews 10:24-25). And that this won't be easy.

I'm glad Hosea didn't give up on Gomer, and I'm glad God doesn't give up on us, and I'm glad that my brothers and sisters haven't given up on me. So I suppose it's also incumbent upon me not to give up... h'm...

Sunday, November 28, 2010

C++ is like...

trying to build an octopus by nailing legs onto a dog.

This put me in mind of Dijkstra (I wasn't sure if it was actually Wirth but the 'net assures me it was EWD) -- as we can see here:

  • FORTRAN's tragic fate has been its wide acceptance, mentally chaining thousands and thousands of programmers to our past mistakes.
  • LISP has been jokingly described as "the most intelligent way to misuse a computer". I think that description a great compliment because it transmits the full flavor of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts.
  • When FORTRAN has been called an infantile disorder, full PL/1, with its growth characteristics of a dangerous tumor, could turn out to be a fatal disease.
That 2nd one isn't about FORTRAN but I enjoyed it so much I left it in. and then for some reason I stumbled across this brief incomplete and mostly wrong history of computer languages which I thought hilarious.

Thursday, November 18, 2010

Workplace humor US-Japan

Back in the previous millennium, during our six-year stint in Japan, Mizuno-san and Kamei-san had accompanied me on a business trip to the US. As we sat in the company cafeteria, my old buddy Paul, who I worked with back in the 1980s, stopped by to say hi.

We shook hands, and I introduced him to my Japanese colleagues. "You work with Collin?" he asked them.

When they replied in the affirmative, he said, "And you're willing to admit it??" The Americans guffawed, but my colleagues were mystified.

Back in Japan some time later, I described this interchange to some other colleagues. Kubo-san, one of the best English speakers in our department, was surprised at this sort of joke. "It is an honor," he said. He meant an honor to work with me. He was completely serious.

Fast forward to the 21st century...

My current boss asked the other day what I was working on, "besides beating on Chris two or three times a day."

I replied in mock exasperation, "You said two or three times a week!"

The reply was immediate: "That was before you moved right across the hall from him! Slacker."

Thursday, November 11, 2010

Two financial articles from The Atlantic

  1. Why Wall Street Always Blows It
    The magnitude of the current bust seems almost unfathomable—and it was unfathomable, to even the most sophisticated financial professionals, until the moment the bubble popped. How could this happen? And what's to stop it from happening again? A former Wall Street insider explains how the financial industry got it so badly wrong, why it always will—and why all of us are to blame.
    by Henry Blodget (December 2008 ATLANTIC MAGAZINE) link
  2. The Great Stock Myth
    Why the market’s rate of return—and your nest egg—may never recover
    By Megan McArdle
    Business September 2010 ATLANTIC MAGAZINE link

Saturday, November 06, 2010

A few films I want to remember

Before I head off to the market (gonna smoke some turkey before the rains start) I wanted to tell you about Date Night; while I'm here, I also want to find the title of that film about the young painter...

Based on the advice of a Blockbuster (MP) clerk, we watched Steve Carell and Tina Fey in "Date Night" (2010), an action farce billed as a romantic comedy. I'll have to say that overall I liked the film (Hey, I like all the corny jokes in "Live Free or Die Hard" and "Car Talk") because in spite of the somewhat, ah, raunchy stuff they get into, this husband and wife really want to make their marriage work.

Guys, I wouldn't recommend this film as a date night movie unless your wife/gf likes "Live Free or Die Hard."

Local Color (2009)

Really enjoyed this one, though I had a hard time remembering the title. Yes, as the above review says, it's got "formulaic structure, treacly score and earnest voice-over narration" but great acting. The basic idea is that a young would-be painter spends a summer in the country with a curmudgeonly old master. There's some "Karate Kid" stuff about mentoring, but more prominent is the writer-director's agenda related to art (real art, vs some of the stuff that passes for art today).

Our daughter is a painter, and especially after watching My Kid Could Paint That earlier this year, we found Local Color a winner.

Deja Vu (2006)

I don't know why we rented this one, but it was quite entertaining. It's got time travel (with the usual paradoxes -- finessed with a plot device at the end), terrific effects (the fire/explosion were real, not CGI), interesting reversal of racial stereotypes, and a little romance with Denzel Washington and Paula Patton.

Sunday, October 31, 2010

Taking every thought captive

Some decades ago I memorized 2 Corinthians 10:4-5 with only a vague idea of what it meant. I now have a slightly less vague idea.

The lovely Carol was reading an article to me from conversations journal volume 8.2 (Fall-Winter 2010) -- "How Not to Be a Hero" by Scott C. Sabin. This is a great article, and it resonated with something I heard at the Wright Lecture Series. It was fashionable a while back to talk about being the "hands and feet of Jesus." This is not all that bad a picture; if the Church is Christ's body, then some members might be hands and feet. But this "hands and feet of Jesus" thing has a pitfall: we might start thinking it's all up to us. Better to think of ourselves as John the Baptist, pointing people toward Jesus.

Back to the article, though: the author was having an Elijah-under-the-broom-tree moment (1 Kings 19:4), as he was bombarded by thoughts like "you don't really have what it takes" and "you didn't accomplish anything" and "you won't make a difference."

This reminds me of (I'll get back to this soon, I promise) something I heard maybe 20 years ago about some guys heading to a Promise Keepers event. Someone accused them of being shallow, and a spokesman for the group said, "You don't know the half of it! We're an inch deep and a mile wide!" His point, of course, is that we are nothing without Jesus; we really are in deep trouble without him.

OK, really back to the article now -- actually a sidebar titled "How to Stand" by Mindy Caliguire, on page 35. She listed a few sample thoughts that might come your way, approximately this:

  • You don't have what it takes.
  • You can't provide what this project (people, congregation, etc.) needs
  • You barely understand the problems, you don't have a good grasp of your resources, blah blah blah
  • You're no hero.
When I heard this list, those old Promise Keepers came to mind. You're right! I don't have what it takes! But I know someone who does! I really can't provide what this project or whatever needs. I barely understand the problems. I'm no hero. But that's OK, because I don't have to be; my Dad has what it takes, he can provide as he has so many times in the past, he understands the problems and the resources and all the rest. And he's always the hero.

And in a flash it came to me: this is taking every thought captive to the obedience of Christ. This is what it means to destroy speculation. "Gee, can I really do this?" has a very simple answer: "Without me you can do nothing" but "with God all things are possible." If God could deliver his message through a donkey (Numbers 22), then I'm going to go out on a limb and say he can use me for whatever task he wants me to do.

Put differently, we destroy speculation and take every thought captive to Christ by remembering that it's all about Him -- God in Christ is the hero -- and it's not about me.

Moses ran into this when God was telling him to go set the Israelites free from the king of Egypt. There's a part of this that would really be funny -- well, actually it is funny, to us. God says, "I am sending you to Pharoah" (Exodus 3:10) and Moses says, "Who am I, that I should go to Pharoah...?" (3.11) and God says, "I will be with you" (3:12). This goes on for a while, and then Moses says, "I have never been eloquent" (etc.) and God says, "I will help you."

Notice all those "I"s in there? Of course you know who wins. Moses learned what we all must remember: it's not about me; I'm never the hero. It's all about God; he is always the hero, because he's the only one who has what it takes for this sorry dark world.

And if whenever a thought like "You don't have what it takes" comes to you or me, we turn it into "Definitely I don't have what it takes, but the Lord Jesus Christ does; he is the only hope of the world. And he has sent me..." then I think that's taking those thoughts captive unto the obedience of Christ. To him be the glory!

Saturday, October 23, 2010

postfix, mac os X. also fetchmailrc

Continuing the Linux→Mac migration story started here... I had to get something set up to fetch mail automatically. What do you use to fetch mail?
$ type fetchmail
fetchmail is /usr/bin/fetchmail
$ 
Yeah. But I'm getting ahead of myself.

To fetch mail from my ISP, I need to authenticate across the wire. But this is a LAN; I don't want to authenticate with plaintext, and I'm not so sure about pop3s or whatever. How do you spell relief? S-S-H-T-U-N-N-E-L. What I'm gonna do is this:

$ ssh -f shell.my.isp.com -L 60110:popserver.my.isp.com:110 sleep 1200 
Every couple of minutes, I see if the port is still open locally and restart the tunnel if needed. I'll use fetchmail from port 60110 periodically.

How do you fetchmail from an alternate port? Here's what my .fetchmailrc looks like.
poll see.postman.fetchmailrc.invalid proto pop3 port 60110 user ISPUSERNAME pass ISPPASSWORD is postman here mda "/usr/sbin/sendmail -i -f %F %T"
What does all that stuff mean?

  • poll see.postman.fetchmailrc.invalid
    That "see.postnam.fetchmailrc.invalid" thing is an alias for 127.0.0.1 (i.e., localhost). The ".invalid" suffix means sendmail wouldn't try to send anything on it. (I'm not sure this is actually needed any more, but some time in the previous millennium I think, I hit upon this ".invalid" thing as a way to stop some Bad Thing from happening.)
  • proto pop3 port 60110
    This is how I tell fetchmail to use a different port. Since I'm just grabbing the email off my ISP's server (and deleting it as soon as I can deliver locally), there's no need for anything more sophisticated than POP.
  • user ISPUSERNAME pass ISPPASSWORD
    remote username/password
  • is postman here
    deliver remote email to user "postman" on the local host. The "postman" (not "postmaster") has a .procmailrc that figures out who the email is probably for (the lovely Carol, or one of the kids, or me -- actually the ex-teen no longer gets email here) and sends it accordingly. By the way, postman has this in ".forward":
    "|/usr/bin/procmail"
  • mda "/usr/sbin/sendmail -i -f %F %T"
    By default fetchmail will try to deliver to port 25. But the postfix daemon seems to want to stay alive for just a minute. This "mda" incantation says to send mail using this program, rather than trying to connect to port 25.
By the way, I also had to tweak postfix a bit. I messed with the plist file in /System/Library/LaunchDaemons/org.postfix.master.plist, but after learning about the 60-second timeout, I'm not sure that was needed. The below certainly is, though, for outbound mail -- I mean mail sent with mail(1) -- to go anywhere:
$ diff /etc/postfix/main.cf{.install,}
70a71
> myhostname = MYDOMAINNAME
76,77c77,78
< #
< #mydomain = domain.tld
---
> 
> mydomain = MYDOMAINNAME
307a309,310
> # collin 2010-10-23
> relayhost = [MY_ISP.MAILSERVER.HOST]

Getting it all to start on boot

Those details were fascinating (at least they were to me), but how about getting the ssh tunnel kicked off when the box boots?

On a Linux distro with sysV-based startup, you'd put something into /etc/init.d or something; Mac OS X doesn't do that sort of thing. Instead there are files in /System/Library/LaunchDaemons/ . Following some web advice, I created this file:

$ cat /System/Library/LaunchDaemons/collin.postman.tunnel.plist 
## NOTE: owned by root and perms no greater than 0644 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>collin.postman.tunnel</string> <key>Program</key> <string>/Users/postman/tunnel.sh</string> <key>RunAtLoad</key> <true/> </dict> </plist> $
(where /Users/postman/tunnel.sh is the shell script that creates the tunnel if needed, runs fetchmail, etc.)

Then to make the system aware of this...

$ launchctl load /System/Library/LaunchDaemons/collin.postman.tunnel.plist 
$ launchctl start collin.postman.tunnel
And basically, it should work.

UPDATE! 2010-11-07

A few gotchas that threw me off... discovered somewhat (!) later. Easy one first. To determine whether the tunnel was active, tunnel.sh said
 if netstat -an -finet|grep LISTEN | grep 60110 > /dev/null; then
Trouble is, the default path doesn't have a "netstat" in it. Solved by adding this to the script:
PATH=$PATH:/usr/sbin

The next one was a bit harder. As I mentioned before, I followed somebody's plist instructions. Which mostly worked, except for two things:

  1. On startup I'd get this message about how dovecot might use 640 FDs and we have a limit of 256. Ick. I tweaked the parameters it said to, and got the 640 down to something like 528 -- still too high. I may actually fix this someday, but in the meanwhile I'm just becoming root, saying "ulimit -n 1024" , and then spawning dovecot in the same root shell. Ick.
  2. Every 10 seconds or so, syslog got a "dovecot already running" spam. Every 10 seconds! This I addressed by rtfm and changing the plist file to look like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" 
       "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
            <key>Label</key>
            <string>com.diymacserver.dovecot</string>
            <key>ProgramArguments</key>
            <array>
                    <string>/opt/local/sbin/dovecot</string>
                    <string>-F</string>
            </array>
            <key>RunAtLoad</key>
            <true/>
            <key>KeepAlive</key>
            <true/>
    </dict>
    </plist>
    See that "-F" added to ProgramArguments? The manual says that daemons spawned this way must not daemonize but stay in the foreground. "-F" is how we tell dovecot not to say "if (fork()) exit(0);"

Migrating mail: kmail on SuSE Linux to maildir on mac os X Snow Leopard; also dovecot

Updated! See also part deux.
I'm not running Snow Leopard server edition (or whatever they call it) so I had to download dovecot, then configure it. Here's my journey....

Ports

First, I found the install media and installed Xcode. I like having compilers; it makes me feel like I'm on a real system.

Then, as I wrote earlier, it's not darwinports any more; instead, I downloaded macports. This creates a hierarchy under /opt/local, and also does nice things to the system-wide profile files. So once I had ports installed, every terminal session I started had these directories prepended to $PATH, like this:

$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/carol/bin

Install dovecot

Short version: click here. Even shorter:
sudo port install dovecot

Configure dovecot

Following instructions at http://wiki.dovecot.org/BasicConfiguration:
  • Where's the config file?
    $ dovecot -n
    # 1.2.14: /opt/local/etc/dovecot/dovecot.conf
  • Simple authentication
    $ echo "$USER:{PLAIN}password" > passwd.dovecot
    $ sudo mv passwd.dovecot /opt/local/etc/dovecot/
  • Modify dovecot.conf to use plaintext -- no longer disable plaintext login
  • mail location: "echo hi | mail -s dovecot.test carol" yields /var/mail/carol. but it's more than that; we have this sort of arrangement:
    $ ls ~/Mail
    ACFW                            MailLists
    AShland                         MailisWork
    ASthma research                 Mariko
    AWP                             Marketing
    Addresses                       Meet Up
    Affirmations                    Menlo Atherton HS
    ...
    JapanLifeInfo                   inbox
    ...
    $ ls ~/Mail/inbox
    cur     new     tmp
    $ 
    Therefore I'm thinking to create Maildir with directories cur,new,tmp, and the rest of the directories can be subdirectories under it. Like this:
    $ ls -o Maildir
    total 24
    lrwxr-xr-x  1 carol  27 Oct 23 10:58 cur -> /Users/carol/Mail/inbox/cur
    lrwxr-xr-x  1 carol  27 Oct 23 10:58 new -> /Users/carol/Mail/inbox/new
    lrwxr-xr-x  1 carol  27 Oct 23 10:58 tmp -> /Users/carol/Mail/inbox/tmp
    $ ls -F ~/Mail | grep / | cut -d/ -f1 | while read D; do ln -s "~/Mail/$D" Maildir; done
                # OOPS! The above doesn't work; see below
    $ rm Maildir/inbox
    $ 
  • But as noted above, mail isn't currently being delivered there. the dovecot page doesn't tell me about combining /var/mail/USERNAME mbox with ~/Maildir maildir format, so does procmail work? What if I set DEFAULT=$HOME/Maildir/ and put this into .forward?
    $ cat .forward
    "|/usr/bin/procmail"
    Yes! A test produced this:
    $ ls Maildir/new
    1287857872.59228_2.mini1.local
  • Turn off SSL TEMPORARY ONLY! -- otherwise I keep getting
    $ dovecot -n
    # 1.2.14: /opt/local/etc/dovecot/dovecot.conf
    Error: ssl_cert_file: Can't use /opt/local/etc/ssl/certs/dovecot.pem: No such file or directory
    Fatal: Invalid configuration in /opt/local/etc/dovecot/dovecot.conf
  • Putting the above together, we have:
    $ diff -u /opt/local/etc/dovecot/dovecot{-example,}.conf 
    --- /opt/local/etc/dovecot/dovecot-example.conf 2010-10-16 17:26:05.000000000 -0700
    +++ /opt/local/etc/dovecot/dovecot.conf 2010-10-23 11:36:26.000000000 -0700
    @@ -1,4 +1,5 @@
     ## Dovecot configuration file
    +# from dovecot-example.conf 2010-10-22 collin
     
     # If you're in a hurry, see http://wiki.dovecot.org/QuickConfiguration
     
    @@ -45,7 +46,7 @@
     # SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
     # matches the local IP (ie. you're connecting from the same computer), the
     # connection is considered secure and plaintext authentication is allowed.
    -#disable_plaintext_auth = yes
    +disable_plaintext_auth = no
     
     # Should all IMAP and POP3 processes be killed when Dovecot master process
     # shuts down. Setting this to "no" means that Dovecot can be upgraded without
    @@ -86,7 +87,7 @@
     #ssl_listen =
     
     # SSL/TLS support: yes, no, required. 
    -#ssl = yes
    +ssl = no
     
     # PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
     # dropping root privileges, so keep the key file unreadable by anyone but
    @@ -215,7 +216,7 @@
     #
     # See  for full list. Some examples:
     #
    -#   mail_location = maildir:~/Maildir
    +mail_location = maildir:~/Maildir
     #   mail_location = mbox:~/mail:INBOX=/var/mail/%u
     #   mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
     #
    @@ -860,11 +861,11 @@
       # The deny passdb should always be specified before others, so it gets
       # checked first. Here's an example:
     
    -  #passdb passwd-file {
    +  passdb passwd-file {
         # File contains a list of usernames, one per line
    -    #args = /etc/dovecot.deny
    +    args = /opt/local/etc/dovecot/passwd.dovecot
         #deny = yes
    -  #}
    +  }
     
       # PAM authentication. Preferred nowadays by most systems. 
       # Note that PAM can only be used to verify if user's password is correct,
    @@ -872,7 +873,7 @@
       # database (passwd usually), you can use static userdb.
       # REMEMBER: You'll need /etc/pam.d/dovecot file created for PAM
       # authentication to actually work. 
    -  passdb pam {
    +  #passdb pam {
         # [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=]
         # [cache_key=] []
         #
    @@ -905,7 +906,7 @@
         #   args = session=yes %Ls
         #   args = cache_key=%u dovecot
         #args = dovecot
    -  }
    +  #}
     
       # System users (NSS, /etc/passwd, or similiar)
       # In many systems nowadays this uses Name Service Switch, which is
    $ dovecot -n
    # 1.2.14: /opt/local/etc/dovecot/dovecot.conf
    # OS: Darwin 10.3.3 i386  
    ssl: no
    disable_plaintext_auth: no
    login_dir: /opt/local/var/run/dovecot/login
    login_executable: /opt/local/libexec/dovecot/imap-login
    mail_location: maildir:~/Maildir
    auth default:
      passdb:
        driver: passwd-file
        args: /opt/local/etc/dovecot/passwd.dovecot
      userdb:
        driver: passwd
    $ 

Correct folder names

Fired up mail.app and it found the inbox: 382 unread of 4951 items, something like this. But! None of the folders were there. H'm... I obviously don't grok Maildir format.

[a few minutes later] Gaaaa! Need to modify the above (wrong) format! Folder names must begin with a dot! http://wiki.dovecot.org/MailboxFormat/Maildir#Directory_Structure says so. Remedy is here:

$ ls -F ~/Mail | grep / | cut -d/ -f1 | while read D; do 
     rm "Maildir/$D"; ln -s "~/Mail/$D" "Maildir/.$D"; done
rm: Maildir/inbox: No such file or directory
$ rm Maildir/.inbox 
$ 

With the correct directory names, I quit mail.app, then stopped dovecot -- like http://wiki.dovecot.org/RunningDovecot#Stopping says:

$ sudo cat /opt/local/var/run/dovecot/master.pid 
59267
$ sudo kill -s TERM 59267  # and wait a few seconds, then: 
$ sudo dovecot 
Brought mail.app back up... And that worked!

Oops, forgot nested folders. And more

If I have a folder Trips with subfolders Alaska and Hawaii, kmail apparently creates Mail/Trips, Mail/.Trips.directory/Alaska, Mail/.Trips.directory/Hawaii; those directories each have cur,new,tmp; therefore we'll do this:
$ cd Mail
$ find . -type d | grep directory | grep -ve '/cur$' -e '/new$' -e '/tmp$' | 
  grep '/[^.]' | sed -e 's:^./::' | while read F1; do 
      DEST=$(echo "$F1" | sed 's:.directory/:.:g'); 
      ln -s ~/Mail/"$F1" ~/Maildir/"$DEST"; done
$ 
Ah, almost! “sed 's:.directory/:.:g'” should probably instead be:
sed 's:\.directory/\.:.:g' | sed 's:\.directory/:.:g'

Here's something else!

$ ls -Ao Maildir
total 13008
lrwxr-xr-x  1 carol       11 Oct 23 11:57 .ACFW -> ~/Mail/ACFW
lrwxr-xr-x  1 carol       14 Oct 23 11:57 .AShland -> ~/Mail/AShland
...
Oops! Somehow I have a literal “~/” instead of /Users/carol/. Sigh... OK then...
$ cd Maildir
$ find . -type l | while read X; do 
      Y=$(readlink "$X"); 
      if [[ $Y == ~* ]] ; then ln -sf "${HOME}${Y#?}" "$X"; fi; 
   done
$ 

Real authentication

First up is creating SSL certificates; I'll start at http://wiki.dovecot.org/SSL.

No; we'll use IMAP and not disable plaintext. It's just home; I'm not running a business with secret information. And we don't put sensitive stuff in email anyway. This works:

$ diff dovecot-example.conf dovecot.conf 
1a2
> # from dovecot-example.conf 2010-10-22 collin
48c49
< #disable_plaintext_auth = yes
---
> disable_plaintext_auth = no
56c57
< #shutdown_clients = yes
---
> shutdown_clients = yes
89c90
< #ssl = yes
---
> ssl = no
218c219
< #   mail_location = maildir:~/Maildir
---
> mail_location = maildir:~/Maildir
907c908
<     #args = dovecot
---
>     args = login

Multiple addresses, outbound mail, address book

Fortunately I remembered this issue before the lovely Carol hit it while I was at the office. Sometimes I want to send email as myself, sometimes as an identity that results in replies coming back to both of us. So does the lovely Carol. Kmail allows multiple identities; mail.app does too. You can configure this by editing account preferences -- multiple email addresses, as shown in this nice article at hints.macworld.com .

Outbound mail works great too; I set the outbound mail server to be our ISP's server and everything Just Worked. Basically mail.app connects to the ISP (never mind postfix) and... yeah.

The address book turned out to be pretty easy. From kde's address book, export as CSV; copy file to Mac; from address book (the tan book with the big @ ) File→Import, select the file, validate how columns are imported, and bob's yer uncle.

Make dovecot run on boot

Followed these directions. Looks reasonable, but the test will be when she reboots the box. (I shut down the Linux box, then had to restart it for some reason; some filesystems hadn't been checked in 446 days...)

Friday, October 22, 2010

Migrating firefox bookmarks, and other Linux→Mac transition tales

Yes, a Linux® → Apple® transition is happening here. Why? Well, it's a bit of a long story. My desktop machine has been dying slowly and recently it decided to accelerate that process. The lovely Carol has been putting up with an aging IBM lease return running an old Linux distro and in particular firefox2.x. An annoying problem with this old firefox is that when she tries to print from certain websites, its javascript is sufficiently creaky that the printer doesn't.

Therefore the plan is: a mac mini for her. HDMI→DVI adapter and connect to this ViewSonic display (1440x900); I'll take the lease-return IBM and try to upgrade its OS; wish me luck. Meanwhile, she'll be using the mac mini, which first of all has the software on it already (well, I did download firefox and NeoOffice, but that was a piece of cake); it also can give her an experience similar to what she already has on her (2006) iBook.

But there is data migration. "rsync -av -e ssh" for her mi¢ro$oft word (well, mostly openoffice-generated) documents. Most of her mail is already in Maildir format; I figure she can run a local dovecot and use mail.app; more on this later.

Besides mail, the thing I wanted to tell you about was bringing the bookmarks from the Linux box to her browser on the mac. You can find bookmarks.html by typing something like this on your Linux box:

$ cd .mozilla/firefox/*default
$ pwd
/home/carol/.mozilla/firefox/bjvya9an.default
$ ls *ookmark*html
bookmarks.html
$ 
You should change "default" to whatever the profile name is that you have for ffox on your Linux box. Copy that file to $HOME/Desktop on your mac (this will make the next step easier).
Now start firefox up. From the menu at the top of the screen, select Bookmarks→Organize Bookmarks... and you should see a window like that on the left (click for a slightly larger image).

Near the top of that pop-up window you'll see a button with a 5-pointed star. Click it and the little menu (the one with Backup, Restore, Import HTML... and Export HTML...) will appear. Select "Import HTML..." and it'll let you select a file to import. This is why I said to copy bookmarks.html under $HOME/Desktop/. I'm sure you'll know what to do from here on in.

More on mail setup later.

You're smarter than people say you are!

So my buddy "Horace" asked me how to do something in PERL.

OK, well, it's not like he asked how to do something in mi¢ro$oft Offic€. He was calling a database library that returned a hash reference, which he was using like this:

$foo = blahblah::hashref($what,$ever);
print OUTFILE "DATE:", $foo->{DATE}, "TYPE:", $foo->{TYPE} ...; 
The question was, rather than hard-coding the keys, wasn't there an easy way to find all the keys and dump the value corresponding to each key?

It seems like the sort of thing Larry would provide -- and because of the TMTOWTDI principle, probably provide more than one way to do it. I'm not a big fan of the TMTOWTDI principle because if you have to read other people's code, you eventually have to learn all the cockamamie ways people might have coded something.

It's this way in C, too; one can code ++a; or a++; or a+=1; or a=a+1; -- they all do the same thing. Similarly i[x] and x[i] mean the same thing: *(x+i). And strptr->fld is the same as (*strptr).fld

Back to Horace's problem. If we had an actual hash, rather than a hash reference -- e.g., if we had %bar rather than $foo -- then we'd simply code

foreach my $fld (keys %bar) { print "$fld $bar{$fld} "; }
Then I remembered an incantation I saw in a musty old volume...

I suggested trying it: using (keys %$foo) in the statement above. Horace typed it in and gave it a cockeyed look. "I'm not sure that'll even compile," he said. Just being supportive I guess. But much to his surprise...

$ perl -cw thescript.pl
thescript.pl syntax OK
$ 
Then he ran it; out came the keys and their values.

It was gratifying to see that my guess worked. Then came the best part. "You know, you're way smarter than people say you are."

It's nice to feel validated. I guess.

Tuesday, October 19, 2010

Whoa, darwinports is now macports!

It's been nearly five years since I installed darwin ports on my powerbook, and upon recently acquiring a current Mac I looked for "what was that port thing? oh yeah, darwin ports..."

I found a link to download darwin ports, but the link didn't work. Good thing, too, since a few searches later I discovered this darwinports fraud page. The Real Thing, according to this page, is now macports.

Feeling somewhat dizzy, I did a little more searching and became convinced that what I sought was indeed macports, not darwinports. Further proof came in a working download and a smooth installation of the desired software -- dovecot in case you were interested.

More about that later, but for now I wanted to tell you about this name change. That is, in case I'm not absolutely the last person to find out.

Sunday, October 17, 2010

In which your blogger removes any doubt that he's a wacko

Since I'm never gonna run for political office and will never be considered for supreme court justice or anything, I figure that how I vote isn't going to have an adverse effect on my career. So....
  • Governor: Meg couldn't be bothered to vote. I don't buy the smear campaign related to the housekeeper, but I can't bring myself to vote for Brown. Voting for anyone else is pretty much useless. So I'm abstaining.
  • Lt Governor: Maldonado. Can't stand Newsom because he doesn't seem to care what the law says. I don't want my house fire-bombed so I won't say any more.
  • Att'y General: Cooley. Heard his debate on the radio v. Harris and he sounds a lot more reasonable to me.
  • US Senate: Dear Barbara, you have done the impossible and caused me to vote for Carly. I never thought I'd ever do that, but you've done it. Congratulations.
  • US Rep 14th: Dave Chapman. Anyone but Eshoo. Again, respect for the law is important to me.
  • Sequoia Healthcare District. As I understand it, the district exists to run Sequoia Hospital. But CHW owns and runs Sequoia Hospital. So the district, and the funding, for the district makes no sense. Hickey, Graham, and Stogner say they'll dissolve the district. Why should we pay staff to run this purposeless entity in San Mateo County?
  • Prop. 19: YES. Holder says the feds will continue to enforce marijuana laws. Fine, let them pay for the hours to find, arrest, prosecute, convict... and also for the prisons where these people will be housed. Why should the taxpayers of California pay for all that "enforcement" -- which in case you haven't noticed isn't working? Better to tax it -- like tobacco and alcohol.
  • Prop 20: YES. Got to get the politicians out of the gerrymandering business.
  • Prop 21: YES. $18 per year per vehicle, to undo some of the damage that the Governator did.
  • Prop 22: YES. Have you noticed that roads have gotten worse over the past decades? Caltrain, and other public transit districts, not to mention other local programs, have had enough taken from them by Sac.
  • Prop 23: NO. As in Say NO to Texas Oilmen.
  • Prop 24: YES. Why would we reduce business taxes? I don't get that.
  • Prop 25: YES. Stop budget gridlock in Sac.
  • Prop 26: NO. Otherwise 34% of voters can block anything. (And if you're curious I did vote NO on 13 back in the 70s)
  • Prop 27: NO. Not just NO but "We threw you guys out of the gerrymandering business on purpose, and now you're clamoring to get back in? NO NO NO!"
  • Measure M, City/County Ass'n of Gov'ts: YES. $10/year per vehicle for infrastructure maintenance and improvements. As in yes on 21/22.
What about the other races? I've given enough effort to be well informed on them.

Tuesday, October 12, 2010

Overcoming NETMA (Nobody Ever Tells Me Anything)

I attended a great seminar by this title, probably around 1990. Unsurprisingly, I couldn't find my notes in 2004 (a six-year stay in Japan came between those dates). So I'm going to give you what I remember, jumbled and incomplete though it may be. Here's a story:
My mother mentioned in a letter that "by the way, our house burned down, so we're moving..."

Back when I was in college, long distance cost like dollars a minute, but I called them anyway. "Why didn't you tell me sooner?!" I said.

"We didn't want you to worry," they said. Oh, and "you couldn't do anything about it."

"Upset" wasn't an adequate word. A lot of the time, our instructor said, we don't give people a lot of information for the same two reasons.

They hate that.

First, they do worry. They often know something's going on, but when we don't tell them... well, nature abhors an information vacuum, so people make stuff up, and often it's worse than reality. This is true in families, and it's true in organizations.

Then, sometimes they can do something about it, even if it's just asking a question. To cite a fictional example, in Tom Clancy's Debt of Honor, a certain aircraft carrier sustained damage to two of its four propellor shafts. It'll be months before they can be fixed, and everybody assumes it'll therefore be months in dry-dock. Until someone says, "Sir, I hate to sound stupid, but how fast will she go on two shafts?" It's a lot easier to weld the gearbox shut than it is to restore the two shafts, of course, but somebody had to think of it first.

We aren't trying to keep people in the dark (it doesn't work anyway, contrary to the mushroom theory); we just don't want to weigh them down with too much stuff and distract them from what they need to be focusing on. So what are some practical steps?

Oh, by the way, the objective here isn't information for information's sake, but rather building a healthier, more effective organization.

A periodic meeting

I remember the story; unfortunately I don't remember why this was such a good idea. The story was this: A certain dentist had a staff meeting every morning, before the first patient arrived. They would review the day's schedule, including anything out of the ordinary; I think he brought doughnuts. I suppose that by getting everyone in sync, and telling everybody what everybody else was doing, this guy gave them a sense of being on the same team.

And if memory serves, the meeting wasn't all business, either; people mentioned things like vacation plans, so there was a sense of family. This made the office a more pleasant place to work -- and also to visit! Patients liked the atmosphere and apparently referred their friends, because this guy's business was booming.

A meeting, then a meeting

The boss in this story was in the state government, in Texas. She went to her department-head meeting, and as soon as she got back, gathered her people to tell them what happened. Of course, she only had to do this a few times before they started anticipating these post-meeting meetings.

What benefits came from this practice? I'll leave that as an exercise for the reader.

Give 'em the bad news right away

Suppose the Big Cheese lets fly that there will be layoffs -- 6% of the workforce. Should you tell your people what you know?

If you don't, then, well, see above. So how much do you tell them? Well, you don't want them to make up stuff that's worse! But you may be forbidden to say too much. H'm, sticky situation. But that's why they pay you the big bucks.

What's the worst thing...?

This might have come from some other seminar, but the idea here is to ask people what the most annoying thing is. Go ahead, man up and ask them!

It might be easy to fix, in which case wouldn't you feel silly leaving that opportunity not taken!


That's it for now; I'll update this if I remember more.

So you want to be a VP, Part II

Part I provides some background; in this posting I'll introduce some of my favorite work-related books.
  1. Drucker (the prescient), The Effective Executive
    If another business-focused book has had a greater influence on my thinking about work, I don't know what it is. Know Thy Time, Focus on Contribution, Effective Decisions—brilliant.
    His Managing for Results is also interesting, albeit less applicable for someone in my position.
  2. Cohen and Bradford, Influence Without Authority
    A great book on the "new" (1991) world of the flattened organization, and how to deal with the realities of being on the hook for results, without being given the corresponding organizational authority. Very practical. It includes some success stories as well as some not-quite-s.
  3. Covey's 7 Habits of Highly Effective People
    A broader focus than just business. Worth a trip to the library. Don't take it too seriously, though; he tells you what to do in life, but it feels like legalism to me.
  4. Goldratt, Critical Chain
    Great insights on scheduling, why projects are late, student syndrome, etc. I wrote about this in 2007.
  5. Townsend, Up the Organization
    Entertaining and common-sensical, but more focused on the higher echelons of management.
These books have informed my thinking, more than giving me specific action steps.

Besides thinking differently, of course, one must also change actual behavior, doing things beyond the comfort zone, to grow professionally (or personally for that matter). This needn't be a long slog up the ladder; you really can decide that you don't want another promotion, if for example you'd rather write code than budgets (I resemble this remark).

Saturday, October 02, 2010

Lights out!

Early Thursday morning, the lovely Carol and I drove to the Sequoia "Y" -- taking two cars (boo!) because we had different places to go afterwards. When we arrived, she told me that only my right headlight had been on. "Bad bulb," I thought.

Also this past week, the hall light failed to come on in the morning. Then in the evening, it worked fine. Then it turned off all by itself. "Bad switch," I thought.

So those were on my to-do list for today: find or buy a new switch for the hall light, and visit Kragen or Kohlweiss for a new headlight.

I started with the car: opened the door, turned on the headlights, and popped the hood. Whoa: the bulb wasn't out -- well, it was, sort of. What I mean is: the bulb was lit, and burning brightly. It just wasn't where it was supposed to be! It was illuminating the engine compartment, rather than the outdoors. Hurmpf. Positioned the fixture, and gave the retaining ring a firm twist. Voilà -- the second easiest lighting fix I've ever made!

I should have taken the hint and re-thought my assumption about the hall light, but I wasn't thinking too swiftly. After verifying that the light still wouldn't turn on, I unscrewed the wall-plate and the switch. Undoing the "eye" on the red wire (a formerly white wire from 12-2 Romex, embarrassed by a beet-colored magic marker), I decided on a quick check and touched the black wire to the red. No light!

"Wha...?" I thought, and walked out to the garage for my handy-dandy sniffer. This is a really cool gadget that beeps when it's near an energized wire. Yes, the black wire was "hot". When I reconnected the "red" wire and flipped the switch, the red wire also became hot. I removed the glass from the light fixture and checked the wires leading to the light-bulb sockets. No beep. Curiouser and curiouser! Did I goof up the power connection?

I removed the entire fixture from the ceiling, and found that power was indeed reaching it. Re-checking the sockets, I found that they were indeed energized. Odd that two light bulbs would fail at the same time....

Did you guess it? I didn't have the bulbs in all the way! These are not standard screw-in CFLs; they have bayonet-like mounts, which are apparently too high-tech for me -- at least they were the first time! I pushed a little harder and gave each one a twist, and obediently each bulb lit up. Perfect.

I felt a little sheepish, but it was better than having to go to the store.

And the drip in the washing machine!

Last weekend, I heard an odd sound from the clothes washer. It was off, but there was still a sound -- like a very slow clock ticking. Puzzled, I opened the lid and waited. Sure enough, there was a drip. ... and maybe five seconds later, another.

"Bother!" I thought. I tried draining the water (ran the washer for the last minute of the "spin" cycle); it sprayed some while spinning, and after it was done, there was still the drip. I turned off the water-supply valves and left a note for the lovely Carol.

She washed a couple of loads during the week, and I figured I'd have to look up the model number and the part number for replacement valves (iirc the mixing valve is a single unit). But yesterday or the day before, I listened to the washer, which was... silent. Water supply valves? Open.

I guess the piece of sand -- or whatever was lodged in the valve and caused the drip -- got washed away.

Three electromechanical problems that could have been three headaches became were two easy fixes and a non-problem. Praise God for little blessings!

Monday, September 27, 2010

That happens to me a lot with women

I smiled and her eyes lit up. Roger tried to get her attention, but she only had eyes for me.

"She's really interested in you," he said, sotto voce.

"That happens to me a lot with women," I replied, then burst into manic laughter. Roger didn't join me. Was my humor too subtle?

Her mother produced another ¼ teaspoon of strained carrots -- or maybe it was applesauce. When the spoon reached her mouth, she opened up and took it, to Mom's encouraging words.

Until they turn two, I should have said.

Now that fall is officially here...

... summer has finally come to Redwood City.
That's right, 94°F today. Felt like it, too.

Saturday, September 25, 2010

A visitor

Through the kitchen window, I saw a gray squirrel climb up the birdbath and climb quickly down -- then up onto a post. It stayed there quite a while -- long enough for me to walk to the patio door and take the photo on the right with my camera-phone.

Do you see it? Just about in the middle of the photo. Below is a slightly enlarged version of the squirrel -- hopefully it'll be obvious what part of the overall picture this was from.

Wednesday, September 22, 2010

What was better in Mississippi in the 1950s

The October Atlantic arrived today, and the lovely Carol sat with me as we read a brilliant article about "Donald T," the first child in the United States to be diagnosed with autism. Donald's story has a happy ending; he lives independently (mostly); he drives and plays golf; he is probably the most widely traveled person in town. He is known and liked by many. A few observations, in no particular order:
  • Donald's parents were rich. People who are poor and odd are weird; if you're rich and odd, you're eccentric.
  • But it's not just that they were rich. Donald lives in the house he grew up in (he is now 77). I have the impression (not fact-checked) that a lot of people in Forest have lived there several decades.
  • Donald's parents were married for life.
  • They also took terrific care of him; he was not neglected by any standard. They took him to a Dr. Kanner at Johns Hopkins, who first used the term "autism" in the United States.
  • Since the 1990s, autism has been on a tear; half a million autistic children will enter adulthood over the next decade or so.
A key point the writers make is that we are going to have to adapt to these autistic adults. This will be easier, the authors note, if we consider "them" as being part of "us."

I resemble this remark, actually; I'm sure I had Asperger's as a child and maybe as a young adult. (Obsessed with numbers? Comfort in clothing a higher priority than its appearance? Others' points of view found mysterious?) But I digress.

As I read about Donald's life, it reminded me about something I heard at a recent seminar. Half a century ago, when America was not nearly as mobile a society as it is today, a child might go to the school his/her parents attended, maybe even be taught by the same teacher. Today, with many broken homes, we have a lot more in the way of nuclear families living where no one in their family lived before. Neighbors change more frequently (five owners of the house next door over the past 25 years for example, vs. about three over a half-century for the house next door to where I grew up).

In the 1940s, Dr. Kanner at Johns Hopkins found 11 cases of autism total. Doubtless there were more, but I believe that with stable communities and families, a lot more of them could just sort of get along -- whereas today, with families moving a lot and neighborhoods constantly changing, people need to function at a higher level to make their way in the world. In a small town, the clerk at the grocery store might know who you are and have time to give you a hand with getting your cash out (or your ATM card swiped). But the lines at supermarkets today are filled with hurried and harried people who really don't want to wait for someone to fumble through swiping their debit card through the card-reader.

In other words, it's a lot tougher world out there for people who don't function all that well. This also is something that is hitting Millennials harder than the Silents or Boomers, or even GenXers.

I'm not saying I want to live in the Mississippi of the 1950s, but I wonder if Donald, even with all his parents' money, would do as well if he'd been born in California 50 or 60 years later.

Tuesday, September 21, 2010

Children's Limits

Other notes/reactions from this lecture series ⇐click
Several 11-year-olds were asked to talk about some people in the Bible: Jesus, David, et al (one woman was included). Quite a few of them could tell a coherent story about each one. But can they put these people into historical/chronological order? Not a chance! They all put Jesus first.

For kids to have an idea about sequencing, we have to put things in order for them: talking about Jesus one week and David the next week, then Peter, then Moses -- they cannot get that.

Come to think of it, when I was a child, I wondered how Joseph got from Pharoah's court to Nazareth to find and marry Mary, raise Jesus, etc.

Abstract reasoning ability takes time to develop, so object lessons don't connect to 7-year-olds. They can be cute ("You are a pine cone" for example) but using kids to make a point to adults -- that's bad. We confuse the kids, and when the adults chuckle... well, that's not the kind of memories we want to make for them. They do get that they're being used, and that's never a good feeling.

UGLY pdf files and how to fix them

So I was working on a paper, probably using LaTeX, and wanted to make a PDF version of the postscript output file.

From the trusty ghostscript package, I ran ps2pdf and got a PDF file. Trouble was, the graphics had been JPEG'd -- boy were they ugly! Asking my colleagues (I love this company!) yielded this answer:

ps2pdf -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode x.ps x.pdf
That was it. Other possibilities exist but I recently re-used this one and it works great.

For some reason, if we have just text it seems to be OK. Maybe if it detects grays it tries to JPEG-ify them? Anyway, I wanted to put this incantation where I could find it easily later -- and now you can too :)

Sunday, September 19, 2010

How some 20somethings started attending a church full of 70somethings in Iowa

Other notes/reactions from this lecture series ⇐click

How did a church full of septuagenarians attract a dozen young adults to their congregation? Did they launch an outreach ministry to the postmodern generation? Did they trade the choir and stained glass for a smoke generator and colored stage lights?

Ah, no. They did it with casseroles. In other words, they faithfully did what they knew how to do. God had transformed them over the decades, and Christ had taken up residence in their hearts, and the love and generosity brought these young people into a relationship with them -- and with the Lord. Here's how it happened.

"Henry" and "Kate" grew up Presbyterian in New Jersey; they met at Rutgers and got married, and were headhunted by two firms in Des Moines, Iowa. This is a place where a young couple can afford to buy a nice house in a good neighborhood. When they moved there, they visited one church (a Presbyterian church) a couple of times; they visited another one just once.

Then, like many Millennials, they quit going. Sunday mornings were for reading the paper and drinking coffee at home. So church fell off their radar.

Until the day that Kate found a lump. Nothing to be alarmed about, probably, since there was no history of breast cancer in the family. She talked to her mom about it. Yep, probably nothing to be alarmed about, but she did have it checked out.

Long story short, it was cancer and she needed surgery. When Kate checked in at the hospital, the form asked for a church contact. She wrote the name of the church they had visited twice. The church's pastor visited every day, prayed with all the relatives who flew in from New Jersey, and overall did a terrific job.

After some days, everybody's vacation allotment was gone, and they flew back to New Jersey. Henry's vacation was all gone, too, so he took Kate home and drove off to work. There, lying in bed that afternoon in that big house, Kate thought, "We've got to move back to New Jersey. We don't know anybody here!"

Then it happened: there was a knock at the front door. Kate ignored it at first, but then went downstairs in her robe. There stood a woman (one of these septuagenarians from the church) with a casserole dish in her hands.

After figuring out what was going on (church? what church? "Honey, we've been praying for you every day"), Kate invited her in. "Are you up to it?" she asked.

"Sure; I could use the company," Kate replied. So the church lady came in. Kate put the casserole in the refrigerator.

"Honey, I don't mean to be rude, but you need to dust."

"Yeah, I know. I've been in the hospital and..."

The church lady took charge. "Honey, go back to bed and I'll dust." So Kate did what she was told.

Henry returned in the evening, waking Kate from her nap. "Sweetie, did you buy a casserole?"

"No, the lady from the church brought it."

"Church? What church?" he said. They went through that thing, and Henry got the picture. Then he said, "Sweetie, have you been cleaning the house?"

No, the lady from the church did that too.

You can probably guess what happened the next day, but this time it was a man with a chicken dinner. "You have to follow the instructions very carefully," he told Kate, "or I'm going to be in big trouble." Kate liked him immediately.

"Would you like to come in?"

"Not really. Ah, did you notice that your screen door isn't working quite right?"

"Yes, my husband hasn't gotten around to looking at it. We've been a little busy lately."

"Want me to take care of it?" he asked.

"Do you mind?" Kate was astonished.

"No, I have tools in my car; it'll only take ten minutes."

When Henry came home that night, he asked, "Sweetie, did you fix the screen door?"

This little church, with 125 members, provided dinner for Henry and Kate for six months, besides dusting, fixing the screen door, and who knows what else. Henry reports that they have casseroles to last for years. Kate said (to her mother I think) something like "Whether I live for six more months or six more decades, we're going to die in this church." They are never going back to New Jersey.

But that's not a dozen

Henry and Kate invite their friends over for dinner and defrost a casserole.

"Wow, this is good stuff!" their friends say

"You should see our pot-lucks," they reply.

"When is the next one?"

And that's how a dozen emerging adults happened to come to this church of 70somethings. Of course there's more to the story than that; the septuagenarians were full of generosity and love and acceptance and grace. But life in this little church is changing with these young people.

So now you know

No, this plan won't necessarily work everywhere. But it tends to reinforce the idea that outreach to young people doesn't necessarily require that drastic changes be made. It does require love, acceptance, forgiveness, faithfulness, generosity, grace. A given congregation might need to make some changes, but no magic new formula seems necessary in all cases (it surely wasn't needed in this Iowa story).

Which teens grow up and stick with their faith?

Other notes/reactions from this lecture series ⇐click

What is the fastest-growing religious preference among Americans? According to the American Religious Identification Survey (ARIS), it's "None" or "No religion", which went from about 7% in 1980 to about 15% in 2008. This year, the Southern Baptists are probably smaller than the "None"s.

Of the "None"s, about half had no religious initiation in childhood. Of the married "None"s, 65% (nearly two-thirds) had no religious ceremony. 86% of "None"s don't anticipate a religious funeral.

What about young people?

Souls in Transition described six religious types among young people:
  1. Committed traditionalists: 15%. These had consistent practice, focused on inner piety, etc.
  2. Selective adherents: 30%. These folks don't consistently practice what they say they believe, and feel some guilt.
  3. Spiritually open: 15%. They feel there's probably something more out there, and religion is something for "recovery and comfort"
  4. Religiously indifferent: 25%
  5. Apathetic (not even opposed): 5%
  6. Irreligious/rejecting: 10%. These are skeptical; some are angry and some mystified. Religion "makes no sense" to them.

How can I get my teenager to be a committed traditionalist, or at least a selective adherent?

That's the question burning in many parents' minds.

Of course no parent can make their teen-ager do anything; that said, there are several factors that seem to correlate with teens growing up into #1 or #2:

  1. High parental religious service attendance and importance of faith.
    In other words, Dad and Mom go to church consistently; faith is very important to them.
  2. High teen importance of faith
    If it's not important to them as teenagers, it may not be important to them as adults.
  3. Teen had many personal religious experiences.
    Camp, for example, or mission experiences
  4. Teen had few doubts about religious beliefs.
    Surprise: If we nurture doubt, they may drift away. We like to think we should celebrate it, etc., but abstract thought probably isn't developed until the later teen years; don't celebrate doubt at 14. Teens may think "I don't know if there is a God, but I believe this community will help me find out, and I want to be part of it." We should not tell them, "Here's one option of many" or "Here's this but...." They need to hear what we believe, and that we believe it firmly.
  5. Teen frequently prayed and read scripture
  6. Teen had many adults in congregation to turn to for support and help
If a teen had four or more of these (A-F), they were more likely to end up as a 1-2 (committed traditionalist or selective adherent).

These factors (A-F) matter a lot! But is this causative or just correlated? We don't really know, and of course parents have little influence on some (like B); parents do influence A and F, and they have input into D. They can encourage C and E.

Bottom line: if you want your teens to be committed traditionalists or at least selective adherents, you need to show them that your faith is important to you! Consistent prayer, worship, fellowship, service would be ways of showing that. Talk about tithing; what is your family giving up in order to give to the church, to relief and development, to missions? Encourage Christian experiences -- mission trips, conferences/camps. Express your faith firmly -- not jam-it-down-their-throats firmly, but this-is-what-I-believe firmly. Talk about your faith, and how it plays out in real life, with your kids and other kids -- and listen to them too! Be that adult that another teen can ask about things.

The Problem of Quantity

In the state of Georgia, it takes 1100 classroom hours to make a school year. Suppose a child goes to church three hours a week every week, and suppose that you can count all of those hours as classroom hours. From kindergarten through 12th grade, if we include summers, that's about 2000 hours.

A graduating high school senior therefore has, in the best case, not quite a 2nd grade education in faith matters, if that instruction comes only from church attendance. I don't write this to discourage parents, but rather to show the need for us to be involved in our kids' faith journeys. There just aren't enough hours in the year(s) for the "professionals" to do it all.