Sunday, April 27, 2008

Making a CD from MP3 files with Linux

Our church posts sermons online in the form of MP3 files (so do many others, including KBF). The task is to create a CD so that the iPod-challenged generation can listen to it.

So first, we download the file, for which file(1) tells me:
080413_sscruggs.mp3: MPEG ADTS, layer III, v2,  32 kBits, 22.05 kHz, Monaural
That gives us a few clues about what must be done:
  1. We need to "transcode" the file from MP3 to a "wav" file.
  2. We need the data rate to be a CDDA-compatible one (i.e., 44.1 kHz).
  3. I'm not sure, but to be safe I want to make it a stereo file rather than mono. (When I listen to these monaural MP3s on my iPod, I only get sound from one ear.)
Some CD-burning programs like "k3b" will do the data-rate conversion for you, but I don't know about mono/stereo.


This is simplicity itself. I use the excellent mpg321 decoder, like so:
$ mpg321 --wav 080413_sscruggs.wav 080413_sscruggs.mp3 
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2, and 3.
Version 0.59q (2002/03/23). Written and copyrights by Joe Drew.
Uses code from various people. See 'README' for more!

Directory: /home/carol/Desktop/
Playing MPEG stream from 080413_sscruggs.mp3 ...
MPEG 1.0 layer III, 32 kbit/s, 22050 Hz mono

[35:11] Decoding of 080413_sscruggs.mp3 finished.
$ file 080413_sscruggs.wav
080413_sscruggs.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz
There we are -- a WAV file. For the rest...

wav (22050Hz mono) → wav (44100Hz stereo)

I believe we can do this all in one step, using the extremely versatile sox(1) program. I invoked it like this:
$ sox 080413_sscruggs.wav -c 2 -r 44100 cd0413-scotty.wav polyphase
  • "080413_sscruggs.wav" is the input file;
  • "cd0413-scotty.wav" is the output file. Parameters appearing before the output file name are the output file's format options:
    • "-c 2" means I want the output file to have two channels.
    • "-r 44100" means, well, that's the sample rate I want the output file to have.
  • "polyphase" gives a higher-quality rate conversion than the default linear interpolation. (I don't know if "resample" is better or worse for this sort of application.)
This took about two minutes on a 2.6GHz Pentium 4 box. The result is a file like:
$ file cd0413-scotty.wav
cd0413-scotty.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 44100 Hz
Once you have the requisite 44.1kHz "wav" files, use your favorite CD-burning program to make an audio CD.

I use k3b because it's easy and convenient. I used to use cdrecord, but I have gotten old and lazy. Of course the best thing about k3b is that it plays a bugle victory song after a successful burn.

Saturday, April 26, 2008

Remembering a great sermon

You wake up in the morning. You have to wake up anyway; why not do it with Jesus? "Thank you Jesus that I get to have another day to live, to experience the beauty you've put in this world, to bless others" (etc.)

You do your morning routine. You wash your face. You're going to wash your face anyway, why not do it with Jesus? "Jesus, thank you for making me clean."

And so on. A simple concept but powerful -- at least for me, it changes my perspective on my day.

The question, of course, is whether I can keep it up beyond breakfast. It's worth trying, anyway.


This morning, I picked up my jeans. Standing on my right foot, I lifted my left and put it into the appropriate pant-leg without any stabbing pain anywhere. Hooray! Left foot down, inserted right foot. I didn't even feel like "this would be easier sitting down."

Life's little victories. Yet another thing to be thankful for.

It's good to be alive.

Friday, April 25, 2008

Pulmonary edema -- not

I'd been hearing funny sounds from my chest, so yesterday afternoon I faxed a 460-word "summary" of my experience/symptoms. My doctor didn't like the way it all sounded, and she had the nurse call me. "Coughing anything up?" Sometimes.

"Is it foamy?" Come to think of it, yes it is.

From what the nurse said, I gathered that the doctor was pretty unhappy about that. Among other things, she sent an order to the lab for another chest X-Ray (to be taken this morning).

A search on "foamy sputum" suggests that the nurse's question was to determine whether I had a pulmonary edema.

So I was running a mental film full of pulmonary specialists and hospitalization and fatal nosocomial infections (the descriptions of pulmonary edema sound pretty dire), and last night I lay down with, "And if I die before I wake, I pray the Lord my soul to take."

I also took a quick inventory.
  • I have life insurance.
  • My wife knows I love her.
  • My children know I love them.
  • Particularly in the past couple of weeks I've tried to remember to tell people good things (e.g., that I wouldn't want to die not having said)
So I was at peace.

Went to X-Ray this morning, very quick turnaround, and a radiologist (I didn't get his name) said, "It's almost all gone; I wouldn't worry about it." I thought, "You haven't heard the noises I've heard."

Took the film to my doctor's office. My lung function is good, I sound good, there is nothing serious going on here. "Probably your lungs are just 'twitching' after the infection," she said. The infection is all gone, so this is just like some aftershocks. She gave me some medicine to help with that.

"Take it easy," she said. It'll take a month before I'm back to normal. But I guess I'll try going to work at the office on Monday.

Wednesday, April 23, 2008

Longing for heaven

George MacDonald's short story, The Wow O' Rivven, paints a beautiful portrait of heaven in contrast to, well, the shadowlands of this earth. I came across it in The Gray Wolf, which I pulled off the shelf again recently. The story has a young maiden who lives a mostly loveless life, and an old fool (the village idiot, if you like) who is harassed by young people. When they die, MacDonald says, they went home to a far better place -- and his description made me cry briefly. Though my life has a lot of joy, I still long for heaven, where all wounds will be healed and all tears dried.

You can find the full text from one of these references

Sunday, April 20, 2008

Maturity and community, Part 2

In Part 1 I drew a picture of spiritual maturity's absence:
they were really more interested in themselves than in you. They don't listen well: either they don't pay attention at all, or they want to tell you about a similar experience, or, worse, give you advice before they fully understand your situation. And whatever the particulars, you get the feeling that you're not a real person to them; you might be an item on their checklist, or a data point on an assessment program, or the target of an evangelism project -- but you sense they don't really want to know you or understand your situation. And you don't walk away thinking, "I've been with someone who walks with God."
I'm not a big fan of defining terms with a series of "it's not ________", though that paragraph does provide us with a starting point. But rather than starting with Joe Random Christian's impressions of what maturity is, why not see what the New Testament says? Here are some passages that come to mind.
  • Galatians 5: the works of the flesh and the fruit of the Spirit
    Love, joy, peace, patience, kindness, goodness, faithfulness, gentleness and self-control
  • 2 Peter 1: what we should make every effort to acquire
    Faith, goodness, knowledge, self-control, perseverance, godliness, brotherly kindness, love
  • Matthew 5: beatitudes
    poor in spirit, mourn, meek, hunger and thirst for righteousness, mercy, pure in heart, peacemakers, persecuted for righteousness's sake
  • Ephesians 4-5: not infants tossed about
    truth spoken in love; put off falsehood; not sinning in anger; productive work instead of stealing; useful speech; shun bitterness, rage, anger, brawling, slander, malice; kind, tender-hearted, compassionate, forgiveness; no greed or sexual impurity; wise living; no drunkenness; filled with Spirit; thankfulness; being subject to one another
  • Philippians 2: imitating Christ
    unselfishness; attitude of Christ, who didn't exploit equality with God but became a servant and died on a cross
No doubt there are more, but let's stop there for now. If the goal looks like that, how do we get there from here?

I can't believe what I'm about to write

... but the obvious answer is: Spiritual Formation. Spiritual disciplines. How is it possible to train ourselves for godliness (1 Timothy 4:7) -- for perseverance, goodness, mercy and all the rest? It's the disciplines, which I've written about here. It seems to me that for the issue of greed/humility/selfishness, a key activity is serving, which come to think of it probably is considered one of the disciplines, or one of the "streams" of spiritual formation.
True Confession: Some years ago, when I first opened the Renovaré "yellow book" (which doesn't seem yellow any more) and read about the traditions of spiritual formation, I thought, "Why are you quoting historical church figures, rather than the Bible?" So I was an original Spiritual Formation nay-sayer. But as our group worked through the material, as we followed the program, our sharing was deeper than I'd experienced before in typical Bible study groups. Though different from what I'd been accustomed to, I saw the benefit of approaching spiritual growth in this way.

If you look on the web, you'll be able to find "hit pieces" that talk about these disciplines as though they were a way to earn God's favor. Having read a few of these, I'll say that they appear to be based on a misunderstanding of what the spiritual formation movement is about: it's not that "if you do this you'll go to heaven;" rather, "if you want to train yourself for godliness, here are some things you can do to work with the Holy Spirit as he changes you." So I hope that makes sense.
Now does this mean we should abandon all our other church programs in favor of spiritual disciplines, spiritual formation?

“All the wood behind one arrow”—is that in the Bible?

No and no. Let me take just one example from Kimball's They Like Jesus but not the Church. Suppose a young woman becomes a Christian and starts attending your church; someone encourages her to read the Bible, and then she comes upon this passage:
women should remain silent in the churches. They are not allowed to speak, but must be in submission, as the Law says. If they want to inquire about something, they should ask their own husbands at home; for it is disgraceful for a woman to speak in the church.
1 Corinthians 14:34-35
If this young woman is perplexed or annoyed, what would the typical parishioner say to her? Would they know the answer, or know a lay person who could talk to her about it? Or does she need to make an appointment with a pastor (and how hard is that to do -- how hard does it feel to her)?

Kimball says that our church members need to be trained to deal with questions like these. If they haven't done the study themselves to address the issues, they should know someone, preferably a lay person (of whom we wish there would be a lot, scattered throughout the congregation), who has studied the issue and can handle it honestly and intelligently.

So, no, I don't believe in the "all the wood behind one arrow" theory for church programs. But I do believe we need an increased focus on spiritual formation and spiritual disciplines.

How to convince people that they need it? There's another challenge, which I won't address today.

Maturity and community, Part 1

I've been thinking about spiritual maturity and about how we the Church (the "small 'c' catholic" church I mean, not a particular congregation) have failed the current 45+ generation. Now, by "failed" I don't mean "we get an F"; I just mean that we didn't give them sufficient guidance or help to grow to maturity. What we did was give them classes -- content if you will. Many of the current generation know all the books of the Bible and can recite them in order. If you give them part of a Bible passage, they can tell you where it comes from. Maybe they'll remember something about the meaning of some words in the original language. Some of them have taken seminary classes; some hold seminary degrees, even advanced degrees.

But they are neither mature nor connected. By "not mature" I mean if you met them, they might be superficially friendly and cordial, but after talking with them for a few minutes you'd see that they were really more interested in themselves than in you. They don't listen well: either they don't pay attention at all, or they want to tell you about a similar experience, or, worse, give you advice before they fully understand your situation. And whatever the particulars, you get the feeling that you're not a real person to them; you might be an item on their checklist, or a data point on an assessment program, or the target of an evangelism project -- but you sense they don't really want to know you or understand your situation. And you don't walk away thinking, "I've been with someone who walks with God."

By "not connected" I mean that they are not really part of a community. Many in our current generation have been coming to church for decades, but do not have any close friends. Sometimes it's because of the issues above; sometimes it's because they simply haven't taken the effort to make and to be a friend: they arrive at 9:25, attend (would "watch" be too harsh?) the 9:30 service, file out at 10:35, and drive home. They might attend a class on the Bible or church history or something, but their interactions with others in the class are superficial at most.

I'll comment on community first. It may be putting the cart before the horse, but not exactly; whereas maturity facilitates community, it's hard to grow spiritually without community.


When my children were under about 10, they attended various programs in "Children's Ministries" at our church, where the teacher or small-group leader knew every child's name. The agenda in Children's Ministries came from "the top"; it was about introducing the kids to Jesus and helping them learn to trust him and walk with him.

When they got to junior high, the program involved cramming dozens of kids into a darkened room with loud music. If you came to this group, or didn't, who would notice? The agenda, or the message, was less clearly focused on introducing you to Jesus and walking with him; another big part of it was about welcoming kids from different backgrounds, about acceptance, about having fun. Kids were encouraged to take part in single-sex small groups to build community. Because the kids were older, the dynamics tended to be more complex, and the leaders were not always adequately prepared to channel the energies in these groups in the direction of spiritual transformation. The high school program was similar -- large group (I think in the hundreds) with adult-supervised small groups. The agenda for any given group depends on the leader.

I'm not sure what happens at our church for post-high-school young people, but the "adult" program involves some 4000-5000 on the average weekend, spread among 4 large-group services. There are other classes available, but some 80-90% of our attendees come for the one-hour worship service and leave soon thereafter. There is enthusiastic encouragement from the pulpit to get into small groups, but "adult supervision" is given over to volunteers, who may have participated in zero up to a half-dozen leader's training programs. The agenda is driven by the group; a skillful leader might be able to influence the group in some direction, but it's not driven top-down by any stretch of imagination.

So at one end we have staff-led small groups with a top-down agenda (for the kids); if a kid doesn't show up, or does show up, someone notices. At the other end (for the adults) there is much less structure, a less-clear agenda, and a lot more people falling through the proverbial cracks.

A small-church experience

My older daughter worships with a smaller congregation (of maybe 300?) on the east coast, which has a much different feeling from that of ours. Many students (undergraduate and graduate) attend, but not so many that they can't know each other. A meal is served, and some study or discussion happens. A pastor typically attends. If someone doesn't show up one week, people notice; they notice when you do come, too.

During the meal, there is opportunity to discuss personal issues, for people to encourage each other toward love and good deeds.

Societal changes and one difference

In previous decades, not much attention was required to build community because the culture already had the concept of community. But changes in the surrounding society (described, for example in Putnam's Bowling Alone) require us to take countermeasures if we want to see our church develop into more of a community. I believe that my daughter's east coast experience is not just about a smaller congregation, but also because the "Bowling Alone" effects reached us here in California long ago, whereas they have not yet rolled over East Setauket. In particular, I think that the toxic effects of technopoly, which may have been invented here in California, haven't yet spread to Long Island.

What to do?

Trying to overcome these societal changes, particularly here in Silicon Valley, seems like a tough nut to crack. But we have two things:
  1. A command
    And let us consider how we may stimulate one another to love and good deeds, not forsaking our own assembling together, as is the habit of some, but encouraging one another, and all the more as you see the day draw near.

  2. An executive sponsor
    "To whom will you compare me
    Or who is my equal?" says the Holy One
    Lift your eyes and look to the heavens.
    Who created all these?
    He who brings out the starry host one by one
    and calls them each by name.
    Because of his great power and mighty strength
    not one of them is missing


I'm going to write more on this later. Maybe in "Part 2", or maybe I'll update this one.
Update: Part 2 is here.

Saturday, April 19, 2008

Benefits of pneumonia

I hate pneumonia -- hate it! (I caught the flu, and while in a weakened state, got pneumonia.) You feel tired all the time, you can't do much, and once in a while you hear a gurgling sound in your chest when you take a deep breath -- a frightening experience. That said, I have seen some benefits.

Am I talking Romans 8:28?

Yes I am, but I'll tell you something. I have seen this verse (God works things out for our good, where "our" refers to people who love him, etc.) at work in my life, and I'm confident that he will continue to do so. Where I lack faith is: when something hits those I love, I'm not so sure what God is doing to them. I have to believe what this verse says, though I never tell the suffering person, "God is working all things out for good." I believe that my role is to rejoice with those who rejoice, and weep with those who weep (Romans 12:15) -- and to pray with and for them.

Some Benefits

  1. It forces me to slow down and decide.
    You know that I don't much like this "slowing down" business -- as I wrote elsewhere, I've been in a rush since I was a kid. But if I try moving my body around with any speed at all, it complains -- with coughing or an out-of-breath feeling. Fortunately, my brain has not slowed down quite as much, so this means I have more "think time" per unit of physical activity. I have more time to decide what's important.

    And why is that good? Well, the other night I decided to do the dishes. This is not heroic; I do it quite often. But in my current state, I knew that doing the dishes meant I wouldn't be able to do something else -- like read something (I've rediscovered some books on my shelf -- The Mind's I, for example, or Postman's Technopoly), write something, watch (part of) a DVD. So, given that Carol would have done them without complaint (she knows how sick I am), why did I do the dishes?

    Because it was good for me to do them. It's not that I needed to stack up husband-points (though that never hurts), but it was, and is, good for me to intentionally set aside something I want to do, in order to serve her. (NOT that the dishes were her job and I'm doing her a favor -- rather, if I hadn't do them, she would have done 'em. Dishwashing is not her favorite activity.)

  2. It reminds me that I'm going to die someday.
    Yalom writes quite a bit about death anxiety, denial of death, and denial of death anxiety in his 1980 book Existential Psychotherapy, pointing out that when we forget about death (or deny it), weird stuff happens. It's good to reflect occasionally on the limitations of our time on this earth, and possibly to make adjustments.

  3. It limits my activities.
    I can't go shopping or do home repairs or maintenance that involve any level of physical exertion (and it doesn't take much to qualify as "exertion" in my present state), so I'm limited to what I can do in the house. Together with #1 & #2 above, it means I might take time to write to an old friend, to encourage someone by email or something, whereas before I might have gone off to do some other thing.
Well, much as I would enjoy continuing this, I am going to stop here to do some dishes.

Friday, April 18, 2008

Open source software: winners and losers

A few days ago, I wrote about the shift of wealth in the face of labor migration. Today I happened upon a couple of stories in linuxtoday that talked about the shift of wealth in the face of "Open Source Software". OSS -- such as OpenOffice (a free alternative to microsoft Word), MySQL (which you can purchase support for or use free, as an alternative to proprietary databases), Apache (which powers most of the web), and Linux -- is usually cheaper to purchase (e.g., free) and run, particularly since the user has the right and ability to modify the software (you have the source).

Anyway, the point of one of these stories was that OSS was costing proprietary software companies something like $60 billion dollars a year, but as several observed, this means that industry, government, education, nonprofits, and consumers saved $60 billion in software costs. All this assumes that the figure of $60 billions is accurate, but let's just stipulate that and consider what this means.

First, the US government spends a lot of money on IT, on both hardware and software. The GSA looks favorably on OSS, but according to this story it isn't particularly to save money; it's to get a better software user experience. "Vendors are competing on the quality of their support, and they'll take responsibility alongside your agency, for the maintenance of your application." How can this work? Let me describe briefly the proprietary model, using the vendor I love to hate, Mi¢ro$oft, and then I'll describe how the open software model works using, say, Apache.

So the stated objective of M$ from the beginning was: a computer in every home and on every desktop, all running mi¢ro$oft software, or something very close. To achieve this, they used a set of illegal practices
Let me interject here that neither Judge Jackson's conclusions of fact nor his conclusions of law were overturned by the appellate court. M$ were, and are, guilty of the charges. Then "W" got elected and decided to drop the government's case. This is why M$ still operate pretty much as they did before the trial.
to leverage their monopoly in operating systems in order to achieve and hold a monopoly in applications.

Once upon a time, when there was a real market for word processing programs (and data formats), Mi¢ro$oft Word™ had to interoperate with them. If you had a wordperfect document, for example, M$ Word could read that document, and maybe write it back (I'm not sure about that part). If they could write in other formats then, they certainly don't do that now. They don't need to; they're the 800-pound gorilla. As a picture of their market power now, they recently changed Office 2003 (via SP3) so that it couldn't even open old Mi¢ro$oft office documents. (An uproar ensued, and mi¢ro$oft released a subsequent service pack that re-enabled the old formats. If these guys weren't just testing the waters, then they are even more evil than I'd thought.) You see, the point is to achieve vendor lock-in -- get the customer's entire workforce to "upgrade" from an old version to a new version of MS-Office. Then, when that customer starts sending around documents with the new formats, that tends to force everybody else to "upgrade" to the new MS-Office, and keep the cash flowing.

What happens when there's a software defect (or "bug") in some microsoft product? Can you file a problem report and get it fixed? Ha! If thousands of people report the problem, and columnists write nasty things about how awful it is, then M$ might fix it.

How can they get away with this sort of thing? By controlling the source code to their software. If there is a problem with microsoft word, who can fix it? Only microsoft! What's their incentive to fix any problem? Well, think of it from the customer's point of view. If you've got thousands upon thousands of microsoft word documents in your archives, then things have got to be pretty bad to get you to switch to some other program; Mi¢ro$oft have achieved "vendor lock-in" with your organization. Therefore, the incentive for micro$oft to fix any problem is quite low -- they can't let the product rot so badly that customers will take the trouble to switch, but can invest just enough to keep the existing customers from switching. Meanwhile, the network effect (e.g., many microsoft word documents in emails) will help them preserve their monopoly.

Open source model

Now consider a different model, where the source code is "open" or "free". Say you want to host a web site with some custom capabilities. One natural choice is the Apache web server. How much does it cost to get this software? Zero; you go to their website and click "download." What if there's a bug with this software? You have several ways to go. There are user forums, you can buy support from some company or consultant, you can diagnose and fix it yourself.

That's right, you can have your staff read the code (remember, it's just code!) and make changes to help diagnose the problem, and fix it. Same thing for enhancements -- you want to add some capability, you can ask others how they've done it, you can hire somebody to create the needed module (and to support that module if you like), you can have your staff do it.

Where is the competition here? Well, if you have several support vendors and all of them know Apache, you can pick and choose from among them. (in the case of mi¢ro$oft office, you have ONLY mi¢ro$oft)

What you do not have in this model is the apache foundation saying, "Ah, I have a new data format, resistance is futile, you will be assimilated." Because if they did, anybody else could say, "Ja, shure, enjoy your new format, I'll stick with the old version." Notice: Microsoft introduces a new version and takes the old version off the shelf. This way they can introduce incompatibilities and force "upgrades". By comparison, Apache is now on rev 2.x, but the 1.x versions work just fine and you can still get them -- if not from directly, you can find sources on old Linux distros.

Winners and Losers

So software like Apache, Linux, MySQL, OpenOffice, FreeBSD, Mozilla/Firefox... it's out there in the world today, and saving governments, industry, education, nonprofits, and consumers quite a lot of money.

Relating this back to my earlier posting on labor migrations, how does this affect either labor migration (or job migration (outsourcing)?

Well, there are big losers, no doubt about that. Big losers would include the vendor I love to hate. Now if Linux,, etc. are successful beyond Mi¢ro$oft's worst nightmares, what would happen? Well, their sales would drop, and there would probably be layoffs. Unlike Gilder, I don't believe layoffs are intrinsically good, but a bunch of the work that goes on at M$ is stuff nobody wants anyway. How many features of microsoft word do you (or most others) actually use? And if 90% of the users don't use 90% of the features, why is all that crap in there? (If you have any further doubts, read Moody's I Sing the Body Electronic.) So profits would shrink for M$ -- they extort too much money from the populace anyway so I have no tears for them.

For their layoff victims, though: I believe that the software support area will grow. Remember the GSA story above? They don't necessarily save money by using open source software, but they get more of what they want. They get better service because vendors are working with them and are partners in the application's success. (Much better service than you'll ever from microsoft, as long as M$ believe they can't be fired.)

So if at least some parts of government and industry are spending the same amount of money as on proprietary software, what does that mean? That more of the money is going to people actually doing work people want done! If the people working today at microsoft are developing stuff that almost nobody uses, wouldn't they be happier doing something that will actually help a customer achieve their mission?

By the way, this also means less money going to mi¢ro$oft to be spent on lawyers and lobbyists perpetuating their monopoly.

So I find myself agreeing with Stallman on many points of his GNU Manifesto....

That's what I think tonight, anyway

Thursday, April 17, 2008

“I found you.”

I woke up this morning, knowing that the younger teen had arrived during the night. I had been missing her smile and the sound of her cheerful voice. I went and found her, and when she woke up, I told her, "I missed you so much!" She put her glasses on (h'm, she doesn't usually wear glasses), and as she opened her arms and turned toward me I realized she didn't look the same.

And behold, it had been a dream.

Do you know what the worst part is? It made me realize how much I do miss her. (I'm crying now, just a little, as I type this.) It didn't help that the last night or two I was reading from Ortberg's When the Game Is Over, It All Goes Back in the Box, pp. 102-103
You have this day. Mary Jean Irion wrote "Gift from a Hair Dryer," a mother's reflection as she combed her 7-year-old daughter's hair after a bath.
Comb and dry, comb and dry. Soon I won't be able to do this any more, you say to yourself ...

[She thinks about the future, when the girl is 14, 18, an adult, a grandmother, elderly....]

All the tears of the world swim for a second in your eyes as you snatch the plug out of the socket suddenly and gather her into your arms, burying your face in the warm hairs as if you could seal this moment against all time.
But of course, you can't. Moments race by, and the years fly past -- and we can't control them at all.
Don't I know it! It really was just the other day when our first baby came home on that day in 1989, and just a little while later our younger daughter was born.

Well, in a few weeks she really will be home. Then one last year of high school. And next fall both girls will be away at college.

And if you were wondering...

I miss the elder teen, too--very much so. But she's been gone before, and she's a "big girl" now. Whereas the younger girl -- well, she's still our baby and in the past she's still been here when her sister was gone.

“...make every effort to enter that rest” — wha...?

Isn't that an interesting verse? It's from Hebrews, which might be my favorite book of the Bible because the author is so fond of talking about how great Jesus is. He's supreme, he's God made flesh, he's the great high priest, his ministry is better than that of the law.

Anyway, the title is in Hebrews 4:11. Early this morning, I thought I had a profound insight into the meaning of this passage, but now it doesn't seem quite so profound. I'll take a whack at it anyway.

Near the end of chapter 3 is this:
18And to whom did God swear that they would never enter his rest if not to those who disobeyed? 19So we see that they were not able to enter, because of their unbelief.
Now there is a problem in this text. You saw it, didn't you?
  • Who couldn't enter?
    • Those who disobeyed
  • Why couldn't they enter?
    • Because of their disobedience, no, because of their unbelief.
What? I believe the writer is giving us an equation:
those_who_disobey ≡ those_who_don't_believe
Then comes the explanation of "rest." There are three:
  1. God rested on the 7th day of creation (Hebrews 4:4);
  2. some rest still in the future when "Today, if you hear his voice" (Psalm 95) was written;
  3. entry into the Promised land (the Joshua reference, Hebrews 4:8)
The rest of the passage is about rest #2, still in our future as well.

So what does it take to enter that rest? The answer is from chapter 3, quoting Psalm 95:
Today, if you hear his voice,
do not harden your hearts
as you did in the rebellion,
during the time of testing in the desert...
Hebrews 3:7-8
I think the answer to entering the rest -- what we must do when we "make every effort" -- is exactly this: "Do not harden your hearts." Keep the faith, in other words. And as we do that, we won't "fall by following their example of disobedience" (4:11).

How does this work? When I sense the Lord calling me to prayer, to do something to serve someone, to give my time and resources to something that doesn't directly benefit me... then I can obey that sense, talk to him about what's happening, and by doing what he says, come to think more often the way he does.

Alternately, I can harden my heart: Instead of praying, I can decide to pull myself up by the bootstraps, practice "self-reliance" and other pillars of pioneer "wisdom". Instead of serving or giving, I can refuse to believe that helping the poor is like lending to the Lord. I can follow the "get all you can and can all you get" philosophy and ignore the exhortation to "do good to all" because I don't believe that "in due time we shall reap" (from Galatians 6).

Or, more pointedly, I recently read about a couple; the wife supported the husband through medical school. Success followed, but then he deserted his wife and children to take up with a 26-year-old radiology technician. How does something like that happen? I'm going to speculate that it went something like this.

He saw this pretty young tech at the office and they flirted with each other. At that time, he had a prompting -- he "heard" God's voice, reminding him of the benefits of remaining faithful. But he hardened his heart.
There's a scene in Mr. Holland's Opus where Richard Dreyfus's character thinks about leaving his family to pursue glory in New York with a young woman -- a girl -- and as he reflects upon his life, he decides to stay. He says good-bye to the girl at the bus station, which is the right decision for all kinds of reasons.
This unfaithful doctor guy, in contrast to "Mr. Holland", hardened his heart against the truth and the way of life. Instead he chose to believe that doing this, deserting his family, was really OK for him to do.

And how do we keep that softness of heart? As I wrote earlier, it's the disciplines. How can I hear God's voice if I'm not reading or meditating on his word (the Bible) regularly, if I'm not praying or giving thanks to God or celebrating his goodness? Pretty tough.

As it says later in Hebrews, "make straight paths for your feet, so that the lame may not be disabled, but rather healed" (Hebrews 12:13) -- make it easy to last a long time by softening your heart. Make it easy to soften your heart by doing the disciplines.

And by the way, help is available

Back to chapter 4, where we have this incredible sequence: Verses 12-13 talk about how the word of God is living and active, and how God can see everything -- all our motivations, our attitudes. Then come verses 14-16, which talk about Jesus our great high priest. This is a great passage:
Therefore, since we have a great high priest who has gone through the heavens, Jesus the Son of God, let us hold firmly to the faith we profess. For we do not have a high priest who is unable to sympathize with our weaknesses, but we have one who has been tempted in every way, just as we are--yet was without sin. Let us then approach the throne of grace with confidence, so that we may receive mercy and find grace to help us in our time of need.
Do you see why I love this part? God can see everything about me, it says in 12-13. Right afterwards in 14-16 it says he loves me anyway, he knows my weaknesses, he is eager to give mercy and grace and help. Indeed, I can approach the throne with confidence and receive that mercy and grace and help.

If that doesn't do anything for you, then — hey, are you alive?

Wednesday, April 16, 2008

Immigration: winners and losers

The May issue of First Things arrived the other day, and in an article titled The Ethics of Immigration: An Exchange (Chip/Scaperlanda) -- I don't think you can find this on the website yet -- I saw this sentence that summarizes some of the complexities of the issue. It comes from Chip's part, on p.42, where he describes some of the "winners" and "losers" when less-expensive labor migrates into the United States:
A 1997 study by the National Research Council confirmed statistically that labor migration reduces the wages of the Americans who compete for the same jobs while benefiting more privileged Americans who buy the products and services they produce.
Let me unpack that statement and consider who gains and who loses.

[A] immigrant laborer gain: a job with (e.g.) 4× as much income as might be available "back home"
[B] Americans competing for jobs against [A] lower wages; fewer benefits
[C] More privileged Americans who purchase goods/services produced by [A] and [B] lower prices

There is something fundamentally unfair about all this. In the current situation, the rich (including, I daresay, most of you reading this) gain by having lower prices for services -- if you hire anyone for yardwork or housework, or a crew for rough construction work (like demolition) for example. Working up the table, we have less privileged Americans who are faced with lower wages and less (or nonexistent) benefits. Finally, there are the immigrants (documented or not) who also benefit by much higher wages than they'd get on "their side" of the border -- I seem to remember a disparity of about 4:1 -- and for how many people?

If we focus only on Americans -- those who are here legally -- then labor migration's effects are clearly anti-laborer and pro-rich.

But that 4:1 income disparity functions as an irresistible magnet, pulling people across the border.

What is the right way to deal with this, or to think about this -- not just from the perspective of "what's right for America and Americans?" but also "what's God's perspective on this?"

Sunday, April 13, 2008

The Emperor's Club

This Kevin Kline movie came in the mail the other day. We are watching a few more films now, what with the girls being gone and especially with my being sick.

Something I really like about this film: there's a Big Idea -- that who you are is more important than what position you hold or how much money you make. Kline's character Hundert understands this, but Joel Gretch's character (the older Sedgwick Bell) doesn't even want to know.

Bell tearfully recounts his father's life and death, which led me (and maybe Hundert) to think that he'd changed over the years. Unfortunately, he's a cheat and a fraud, and as Hundert says at the end, "Stupid is forever." Unimpressed, Bell says nobody cares about that, and then ... well, you can read the wikipedia article.

Apparently the film lost about 9 million$, which strikes me as an appropriate commentary on the American film audience. (In contrast, the 2005 "Mr. & Mrs. Smith" made some 400 million$)

"Read me the part again where..."

Not very long ago -- well, actually it was, but it seems like only yesterday -- when I regularly read stories to the kids at bedtime, they would sometimes ask for particular favorites. I think there is something universal about stories, how there are some stories we just like hearing over and over again.

What is it that appeals about these stories? I think the particulars vary from one person to another (otherwise we'd all have the same ones) but I also think there's something about an obstacle overcome, or an exciting surprise, that appeals.

One of my favorites is a passage from Clancy's Red Storm Rising, around page 448. The Soviets have taken over a NATO air base in Iceland, and now it's payback time. NATO B-52s approached Iceland from the west in a cloud of jamming, and Soviet MiGs charged out into empty sky. Suddenly there was jamming from the south, and then from the east... and then the soviet fighters found themselves facing a line of twelve Tomcats strung out on a line at 30,000 feet -- directly up-sun. A dozen Sparrow radar-guided missiles flew at them out of the sun and ruined their morning, then the remainder chased the Americans eastward. Twenty thousand feet below them, another dozen Tomcats rocketed toward them on afterburner, hidden from ground-based radar by a pair of mountains. Their radars were shut down, and they fired Sidewinder heat-seeking missiles, hitting another eight Soviet aircraft. The north Atlantic was never the same after that battle.

Another one is the passage from Matthew 14, where Jesus feeds the five thousand. They were going on a retreat, or so they thought, except the multitudes followed them out to this remote place. After a while, the disciples wanted Jesus to send the crowds away, but he tells them to feed the crowd. You know the rest -- five rolls, two small fish (trout? smelt?), maybe 7000-12000 people fed? Then Jesus sends the disciples ahead of him to the other side, while dismisses the crowd and goes off to pray. He then walks upon the sea, terrifying the disciples. Peter says, "If it's you, Lord, command me to come to you on the water."

Jesus commands him to come, and Peter starts walking on the water. But then he starts to sink and Jesus pulls him out of the water. "O you of little faith, why did you doubt?" he asks. I love it that the other eleven are just sitting there, like "maybe Peter had little faith, but I had zero, zip, nothing." I love how Jesus didn't rebuke the others -- how gracious he is!

Another favorite is MacDonald's The Golden Key -- though I must confess I don't understand all of it, I love the passage where Tangle and Mossy meet each other and Mossy is immediately infatuated with Tangle. After (it seems) a few moments, Tangle is OK going off into the wide world with him, too. It is so charming and sweet. And when they find each other at the end (this is no spoiler -- you knew they would, didn't you?) and go on to the place from which the shadows fall... well, that's a happy ending too.

There are great moments in Perry's crime fiction, Card's Enchantment as well as his Ender and Hegemon series, Gaiman's Stardust...

What is it about all these things that fascinate me? I think it's the overcoming of obstacles, an element of surprise, the good guys getting their turn.

Then there is Haruf's Plainsong, where two bachelor farmers take in a pregnant teenager, who doesn't always make wise decisions. There's beauty and tragedy, and I also love the part where they take her in again. There's mercy and grace and gruff generosity, and a sense that what's truly most important is being recognized as such.

And I guess of the favorite stories, I hope the story of my life is one where I pursue what's really important.

Monday, April 07, 2008

HTML formatting of indented lines

To format a poem on blogger, one need not put tons of "&nbsp;" entities at the head of each indented line; rather, "pre" can be your friend. That is, type <pre>, and everything thereafter is treated as preformatted text, until the corresponding </pre>. For example, if you type :
I nunc,
O Baili, Parnassum et desere rupem,
Dic sacra
Peridium deteriora quadris!

the result will look like this:
                       I nunc,
O Baili, Parnassum et desere rupem,
Dic sacra
Peridium deteriora quadris!
Now if you hate that typeface, you can provide an alternative -- for example <pre style="font-family:sans-serif"> followed by the same text yields this:
                       I nunc,
O Baili, Parnassum et desere rupem,
Dic sacra
Peridium deteriora quadris!

Friday, April 04, 2008

audiocassette → mp3

So we have an audiocassette of a 2000? (Nope; it was November 1999) Veritas Forum presentation on "The Bitterness of Truth" by Dallas Willard. As the subject suggests, I wanted to make MP3 files of this.

So I fortunately have an ancient "digital entertainment center", which is great for doing "wavrec" to create ".wav" files. So I said
$ wavrec -S -s 48000 -t 3000 willard1.wav
Why "-S" (stereo) and 48KHz ("-s 48000")? Probably due to some bug in the chip or in my driver (ouch!) it's not possible to set it for mono, or for any rate other than 48KHz. Therefore I have to give it these options to tell wavrec how many samples to look for.

I use a time of 3000 seconds, assuming that the tape might be a little longer than 45 minutes on a side.

So for both sides of a tape, I have two files of about 576Mbytes (oooh). Of course there was quite a lot of empty space in the beginning and end (the tape really was under 45 minutes per side). I used "snd" to trim off the beginning and end.

That gives us two files about 512Mbytes. But I don't want 48KHz stereo; I want maybe 24K mono. Therefore:
$ sox w1.wav -r 24000 -c 1 w1x.wav polyphase
$ lame w2x.wav w2x.mp3

The first command turns 48K stereo into 24K mono. The second creates an MP3 file, 32Kbits/second, which has adequate quality for speech.

The other question is... Is 10 Mbytes too large a file?

But at least we have two files of 10Mbytes each rather than 576Mbytes each. I can at least imagine trying to email the 10Mbyte file.

Splitting into smaller files

OK, I decided to try to make these into smaller files (the better for listening to on primitive mp3 players like your ipod shuffle, where you can't move within a track). Using the excellent snd program, I split the two long WAV files into 10 files of about 9 minutes each, with a few seconds' overlap. I was surprised that although I named the files w1a.wav, w1b.wav (etc.) the generated files were not wav files; they were
$ file ../w1a.wav
../w1a.wav: Sun/NeXT audio data: 16-bit linear PCM, mono, 24000 Hz

This was probably explained in The Fine Manual, which I did not read (When all else fails...). Anyway, I linked these to a set of friendlier filenames:
and then had to feed some parameters to lame, like this:
for f in *.wav; do m=${f%wav}mp3; lame -r -m m -s24 $f $m; done;
which left me with this nice set of mp3 files:
$ ls -lG *mp3
-rw-r--r-- 1 collin 2174784 2008-04-06 10:42 will-truth01.mp3
-rw-r--r-- 1 collin 2197248 2008-04-06 10:52 will-truth02.mp3
-rw-r--r-- 1 collin 2148576 2008-04-06 10:52 will-truth03.mp3
-rw-r--r-- 1 collin 2164992 2008-04-06 10:52 will-truth04.mp3
-rw-r--r-- 1 collin 2017824 2008-04-06 10:52 will-truth05.mp3
-rw-r--r-- 1 collin 2161632 2008-04-06 10:53 will-truth06.mp3
-rw-r--r-- 1 collin 2221344 2008-04-06 10:53 will-truth07.mp3
-rw-r--r-- 1 collin 2160480 2008-04-06 10:53 will-truth08.mp3
-rw-r--r-- 1 collin 2164320 2008-04-06 10:53 will-truth09.mp3
-rw-r--r-- 1 collin 1734624 2008-04-06 10:53 will-truth10.mp3
Finally, for devices with display capability (hint: the ipod shuffle does NOT have this), I thought I'd add some info to the files via "id3v2", like this:
$ for f in will*mp3; do 
P=${f%.mp3}; P=${P#*truth}; P=${P#0};
id3v2 -a "Dallas Willard" -A "Veritas Forum November'99" \
-t "Bitterness of Truth ($P/10)" -y 1999 $f;

Thursday, April 03, 2008

What are pointers and why should I learn about them? -- Part 2

OK, I was wrong about java -- probably because I'm rather a C/assembly dinosaur3 and I think in terms of nouns (e.g., pointers) rather than verbs (e.g., a method that sets the appropriate member of the structure).

So someone at work showed me the light -- you can do it with interfaces. Something like this:
public interface Selector {
Node getFromSide(Node t);
Node getToSide(Node t);
void setFromSide(Node parent, Node newFromSide);
void setToSide(Node parent, Node newToSide);

static class L2R implements Selector {
public Node getFromSide(Node t) {
return t.left;
public Node getToSide(Node t) {
return t.right;
public void setFromSide(Node parent, Node newFromSide) {
parent.left = newFromSide;
public void setToSide(Node parent, Node newToSide) {
parent.right = newToSide;

static class R2L implements Selector {
public Node getFromSide(Node t) {
return t.right;
public Node getToSide(Node t) {
return t.left;
public void setFromSide(Node parent, Node newFromSide) {
parent.right = newFromSide;
public void setToSide(Node parent, Node newToSide) {
parent.left = newToSide;

private final static L2R Left2Right = new L2R();
private final static R2L Right2Left = new R2L();

Node move1(Selector dir) {
Node newRoot;
Node oldParent;

oldParent = this;
newRoot = dir.getFromSide(this);
while(dir.getToSide(newRoot) != null) {
oldParent = newRoot;
newRoot = dir.getToSide(newRoot);

dir.setToSide(newRoot, this);
if(oldParent != this) {
dir.setToSide(oldParent, dir.getFromSide(newRoot));
dir.setFromSide(newRoot, dir.getFromSide(this));
dir.setFromSide(this, null);
return newRoot;

The key insight I was missing -- probably because of my programming-weltanshauung -- was that I was thinking too low-level. I can probably make the Python implementation more Pythonic, too, by using something like the above rather than a reference to an array written up at

"print myself"

Some years ago, a friend told me about a C program he wrote that printed itself. That is, when you run the program, it prints its source. Pretty cool, huh?

For the über-geeks out there, what I mean is this:

$ cc print_me.c -o print_me
$ ./print_me > print_me2.c
$ diff print_me.c print_me2.c
$ echo $?

I was waiting (for/on?) a train or something a few months ago and decided to try to reconstruct the program. I won't put it here; you can try it for a while and then take a look at print_me.c

Well, that's not the prettiest thing I've ever seen; there is probably a much more elegant solution too, but I don't recall what it was.

Wednesday, April 02, 2008


this morning I was mostly OK, just dragging slightly, a little cough.

This afternoon... chills, headache, the whole thing. I told my boss, "I feel like cr*p," and she urged me to go home immediately. Not that I needed the encouragement.

So I'm home now. Shaking from the chills. This is not a fun way to be. Hot water helps. Maybe drugs will too.

Who is master(ed)?

In the April'08 issue of First Things (#182) is an essay by R.R. Reno titled The Bible Inside and Out (pp. 13-15), which describes a great chasm in Biblical interpretation.
Modern scholars want to master the Bible.... In contrast, religious readers want to be mastered.
(also quoted here).

Humpty Dumpty says (according to Carroll), "The question is who's to be master" -- as indeed it is. As the old Campus Crusade pictures asked, who is going to be on the throne in your life or mine?

May we choose wisely today.