Sunday, June 27, 2010

Work, Labor, Endurance are Hallmarks of true Christianity

In the Christian Bible, faith, love, and hope aren't weak greeting-card concepts. They're not about light streaming through cottage windows in a painting.


We continually remember before our God and Father
your work produced by faith,
your laborprompted by love, and
your endurance inspired by hope in our Lord Jesus Christ.

For we know, brothers loved by God, that he has chosen you, because our gospel came to you not simply with words, but also with power, with the Holy Spirit and with deep conviction.[1]


This text is from the first letter to Thessalonica written by the early Christian teacher Sha'ul, also known as Paul. He is especially glad for the followers of Yeshua in that region because of their hard work and their persistence.

Do I work hard or persist in any way that demonstrates my trust in God? This note is simply words. Is the Spirit of God visible in my life in a way that could serve as evidence that I've been chosen?

But a good followup question is this: what exactly was the work, labor, and endurance of the ancient people of Thessalonica? Was it just work at their jobs? Work in their yards and gardens? Maybe later sections of the letter will tell us.

[1] 1 Thessalonians 1

Thursday, June 24, 2010

Software Requirements Specification Considered Harmful

I'm reading Fred Brooks's new book, "The Design of Design". He makes a great point about the errors of traditional product development:
In software engineering practice, another kind of harm can readily be spotted—the Rational Model, in any of its forms, leads us to demand up-front statements of design requirements. It leads us to believe that such can be formulated. It leads us to make contracts with one another on the basis of this enshrined ignorance. A more realistic process model would make design work more efficient, obviating many arguments with clients and much rework.


Amen! Successful projects are always iterative projects, where the users figure out what they need over time -- not all up front.

Sunday, June 20, 2010

Engineer vs Scientist


Fred Brooks in his new book, "The Design of Design":
Moreover, in high-technology design, few designers can know enough to draw the basic decision tree for their domains. Design projects often last two years or more. And designers get promoted out of design. Consequently, few designers will work in any depth on as many as 100 projects over a working life. This means the individual designer has not begun to explore all the branches of the basic design tree for his discipline. For it is characteristic of engineering designers, as opposed to scientists, that they rarely explore alternatives that are not clearly on the way to a solution.

The engineer needs a satisficing solution; the scientist needs a discovery, and wider exploration often yields one.


I once heard Leslie Lamport, the distributed-algorithms pioneer, say "Engineers make things that work most of the time, while scientists design things that work ALL if the time." (This is an approximate quotation based on my memory of a talk he gave in 2002.)

I'm always interested in comparisons and contrasts between scientists and engineers.

Saturday, June 19, 2010

Video On the Internet -- Keeping it available for the long term

My old college friend, Dan Griffin, recently mentioned he was reading
a book by Dan Ariely, "Predictably Irrational". I got to hear Dr
Ariely speak at a marketing event back in 2006, and I knew the videos
were online back then.

So I found the October 2006 Email from the event's producer,
BroadSoft, where they gave us the link to the Ariely speech. It was
good that the URL was in an email. I was concerned that the URL would
be hidden in the password-protected event web site. Unfortunately,
that event web site was gone.

But the video link actually worked! Sort of: the web site is still
there, so the streaming-hosting company is still in business.

The Flash-based player still was there; it popped up in my browser
window with play, pause, rewind and fast-forward buttons.

But, alas, the video wasn't there. No Dan Ariely to tell us about
tricks they played on students in college campus experiments.

So what went wrong?

-- Broadsoft reorganized their web site so the old URL died. They
didn't recognize that a published URL should be a permanent thing,
like the title of a book.

-- The video died because the video hosting company reorganized or
Broadsoft canceled their service.

But what if you did want video to be available for the long term?

-- Logins break things: Make the video as free as possible. Username/
password schemes make the resource even more fragile.

-- Hosting providers die and lose all their content: Don't bind the
video to a streaming player. Yes, the web-browser players are handy,
but H.264 and other formats can be played back while they download.
(This is the HTML5 approach.)

-- Get it hosted and replicated as much as possible by releasing the
video file itself. Use FILE hosting Consider, for example, releasing
it through Apple iTunes.

-- Do post the video on a streaming provider like Youtube or Vimeo,
but only for convenience, and not for archiving.

Monday, June 14, 2010

Childbirth is no miracle: it's something much greater.

My second son, Simeon, was born just last week. He's doing great. And a few times already, someone has described the new baby as a miracle. I think they mean that every new baby reminds them of the hand of God; and indeed it should, for God's hand is clearly at work in all creation.

But I doubt that it's really a miracle; I think it's something even better.

First, what is a miracle anyway?

I understand a miracle to be an intervention by a benevolent higher power. And that the only benevolent Higher Power is the God of Jesus, who was also the God of the Jewish prophets, and of Abraham, Isaac, and Jacob. For example, when the Red Sea was split to let the Jewish nation escape the Egyptian army, that was God intervening in the normal laws of nature.

I, too, intervene in the laws of nature. When my son might otherwise fall, he is held off the floor by my will exercised by my hands, and arms, and strength. I hold him up, and so I prevent the falling that would occur otherwise. So intervening in nature isn't an extraordinary thing, in itself.

Second, why do I believe God was involved in the creation of my sons, Oren and Simeon?

I trust that the Bible of Christianity is substantially similar to the text that was penned, and that the text was trusted and copied in its day because others people beside the writers also trusted it. By copying it, and distributing it, they functioned as witnesses of its truth. Further, the Bible documents many things that are objectively true; including documentation of geography, ancient history, and cultural practices that have been confirmed by archeology. Finally, in addition to those normal evidences that I would use to trust any book, the Bible also has a message that gives life.

That Bible teaches us that God made all people, and that he made people to make more people.

Finally: if God is involved in their creation, then how is it something better than a miracle?

My education and work background is in computing. I've learned there are two ways to get a task done: (a) Do it manually; (b) Automate it.

Consider the task of rolling a toy car to the other side of the room. You can either push it across the room, holding the car the entire time. Or, you can plan the trajectory (direction) and force required to push it across the room, then give it a shove in just the right direction. In the first case, you're doing it manually. In the second case, you're automating it.

When I do something manually, I can use all of my intelligence to get it done right. If something goes wrong in the middle of the process, I can adapt to fix it. The best thing about doing something manually is that I don't have to completely understand it before I do it. I can learn and figure it out as I go along.

But when I want to automate something, I want the machine (the computer) to do the task without my presence. For example, I may want a process to run at midnight to transfer some files and perform some calculations. I have to anticipate everything that could possibly happen in advance, so that I don't have to be personally involved when the process occurs.

Doing something manually requires only basic understanding, but automating a thing requires much MORE understanding in advance.

I have no actual evidence that a child's development and birth is a miracle. It is something to marvel at, and to be in wonder of. It is something that points us to God's creative acts. And most wonderful, it seems to be something God has automated: he has built into us the ability for this to happen without Him intervening in every second of the process.

To automate something is better than intervening in something. So childbirth represents something much more grand than intervention: it represents enormous and immense comprehension to make a system that can reproduce itself.