How Can He Be Saved?

The chorus of the song “Christmas” from the rock opera Tommy by The Who asks the perceptive question:

    And Tommy doesn’t know what day it is.
    He doesn’t know who Jesus was or what praying is.
    How can he be saved,
    From the eternal grave?

Tommy is a boy who became deaf, dumb, and blind through an early childhood psychological trauma. This question is also asked about infants and those who never had the opportunity to hear the Gospel.

This is certainly a dilemma if man must do something to obtain eternal life. Fortunately, that’s not the case:

For he says to Moses, “I will have mercy on whom I have mercy, and I will have compassion on whom I have compassion.” So it depends not on human will or exertion, but on God who shows mercy. For the scripture says to Pharaoh, “I have raised you up for the very purpose of showing my power in you, so that my name may be proclaimed in all the earth.” So then he has mercy on whomever he chooses, and he hardens the heart of whomever he chooses.
                                                        -- Romans 9:15-18 (NRSV)

Of course, the meaning of this passage is as hotly contested as the 2nd Amendment to the U.S. Constitution. Some see this passage as referring to service and not salvation; some nevertheless hold that God’s sovereign choices in election are based upon His foreknowledge of some intrinsic quality of man. Yet neither of these fit the context of this passage nor the entire chapter.

It’s time to rehost the studies in Romans and Ephesians written by my friend, Mike Baer.

A Boy and His Dog

No, not the novella by Harlan Ellison, or the movie with the same name. The story is one of my favorites; the movie didn’t capture the power of the ending. Anyway, this is a picture of my father and his dog, Pal, taken circa 1935. That would make my dad twelve. Pal’s age is unknown. I assume the picture was taken in Judsonia, Arkansas where dad grew up. Pal was frequently loaned to the Judsonia police department when they were looking for someone. While he had no formal training, he was “as smart as a whip.” Pal died when someone put out a piece of meat with poison in it - Dad thought it was done by someone who Pal helped track down.


The OS Wars

A SlashDot commenter asked, “Why root for Microsoft *or* Apple when both represent proprietary profit-driven entities run by two of the biggest control freaks in the world.” My answer:

Because I've used Linux, Windows, and OS X (among many, many others). Given the choice, I'll take OS X every time. I value my time -- that leaves Linux out. I value my productivity -- that omits Windows. I value my sanity, that leaves OS X.


+5, Insightful

From time to time I may share comments from SlashDot that have been moderated up, usually to +5, Insightful. This doesn’t mean that there is anything particularly worthy about them, just that some moderators found them perceptive. Certainly, I’ve had my share of +5, Insightful comments that have been vehemently opposed by subsequent commenters.

I posted my first comment on 8/10/2002 and #270 on 9/26/2008. 4% were rated +5, 7% were considered “Insightful”. Playing with Numbers, Apple’s spreadsheet program, and Photoshop I graphed my performance to date.

Four posts were considered trolls, which may deserve a separate blog entry. They were not intended to be so, but that’s how they were perceived. It can be argued that trolls probably aren’t aware of their trollish behavior but I suspect it has more to do with the clash of antithetical worldviews than general cluelessness on my part. But I could be wrong.


Social Security Software

No, this isn't about the code the runs the Social Security Administration. Alan Perlis once said,

In the long run every program becomes rococco - then rubble.

Fred Brooks, in The Mythical Man Month, expands on this idea:

All repairs tend to destroy the structure, to increase the entropy and disorder of the system. Less and less effort is spent on fixing original design flaws; more and more is spent of fixing flaws introduced by earlier fixes. As time passes, the system becomes less and less well-ordered. Sooner or later the fixing ceases to gain any ground. Each forward step is matched by a backward one. Although in principle useable forever, the system has worn out as a base for progress. ... Program maintenance is an entropy-decreasing process, and even its most skillful execution only delays the subsidence of the system into unfixable obsolescence. [Anniversary Edition, pg. 123]

While inevitable, one can either struggle against the eventual collapse of the system, or hasten its end by poor engineering and management practices. One can also fail to prepare by not working on the necessary replacement. Social Security Software, then, is participating in the collapse of the system, while hoping it fails after your time.

Computers Make Me Stupid. And Greedy.

In Fundamental Algorithms, exercise 4 in section 1.2.5 asks:

Given the fact that log10 1000! = 2567.60464..., determine exactly how many decimal digits there are in the number 1000!. What is the most significant digit? What is the least significant digit?

It takes less time to write a bit of LISP code to answer this question than it does to actually think about it:

   (let ((s (write-to-string
               for n from 1 to 1000
               for f = 1 then (* n f)
               finally (return f)))))
     (format t "~d digits, most=~d, least=~d~%" (length s)
             (aref s 0) (aref s (1- (length s)))))

The answer is:

   2568 digits, most=4, least=0

Knuth rated this problem as a “13”, where a “10” should take around one minute and “20” should take around 15 minutes, so this problem should take about 5 minutes.

It’s easy to see from the provided information that the number of digits is 2568, since the number of digits in a decimal number is int(log10(n)) + 1. It’s also easy to see that the least significant digit has to be zero, since 1000! = 999! * 1000 and multiplying by a power of 10 adds one or more zeros to the end of a number. But the most significant digit took me a bit more thought. If log10 1000! = 2567.60464, then 1000! = 102567.60464. This means 1000! = 10(2567 + 0.60464) = 102567100.60464. Well, 100.60464=4.0238338... so the leading digit is 4. In fact, the leading digits are 402387.

If all I were interested in was the answer then the computer enabled me to get it without having to think about anything.

As for greed, my LISP says that

     (log (loop for n from 1 to 1000 for f = 1 then (* f n)
             finally (return f))

is 2567.6047482272297d0. But note that this differs from the value given by Knuth.

LISP:   2567.6047482272297
Knuth:  2567.604

Could it be that Knuth was wrong? If so, and this hasn’t been brought to his attention, then I could get a check from him. In the preface to the Second Edition, he wrote:

By now I hope that all errors have disappeared from this book; but I will gladly pay $2.00 reward to the first finder of each remaining error, whether it is technical, typographical, or historical.

These checks are collector’s items; few, if any, recipients cash them. But, alas, it was not to be. Floating-point calculations are notoriously hard to get right. So I fired up Maxima to get a second opinion:

(%i1) bfloat(log(1000!)/log(10));
(%o1)                        2.567604644222133b3

Maxima agrees with Knuth. One final check. Using the identity log(a*b) = log(a) + log(b), let’s have LISP compute log10 1000! this way:

     (loop for n from 1 to 1000 sum (log n 10d0))

Oh, well. Knuth is right and my LISP has trouble computing the log of a bignum. So much for this shot at geek fame.

CDC 6000 Pascal Rev 3.4 Update 10

In this post, I mentioned that for over 30 years I had kept a listing of the Pascal compiler for the CDC 6000 family of computers. I noted being a packrat in the internet age has its downsides: someone somewhere will already have a website devoted to the item in question. True to form, a listing of the compiler as a PDF file is available.

The owner of that site expressed interest in my listing and offered to scan it in for me. It turns out that I have access to a copier that will scan directly to PDF and, as a bonus, can handle line printer paper. Herewith is the CDC 6000 Pascal 3.4 Update 10 compiler, compiler cross reference, and run-time library code. All three were scanned at 400x400 resolution.

  1. CDC 6000 Pascal 3.4 Update 10 Compiler source [PDF, 267 MB]
  2. CDC 6000 Pascal 3.4 Update 10 Compiler Cross Reference [PDF, 82.3 MB]
  3. CDC 6000 Pascal 3.4 Update 10 Runtime Library [PDF, 215 MB]

Note: these files have been removed to save disk space. If you are interested in a copy, send e-mail to wrf3 at this domain. Please put “Pascal” in the title.

Pack Rattery and the Internet

Since November 2, 1975 I have kept in my possession a 14 13/16” x 11” x 1 7/16” listing of the 3.4 release of the Pascal compiler for the CDC 6000 series computers. This listing includes the compiler (128 pages), cross reference (36 pages), and Pascal library source, some of which is written in Pascal and the rest in COMPASS, the CDC assembly language (144 pages).

The listing begins:


 *                                                       *
 *                                                       *
 *            COMPILER FOR PASCAL 6000 - 3.4             *
 *            ******************************             *
 *                                                       *
 *                                                       *
 *                 RELEASE  1  JUNE 1974                 *
 *               UPDATE 1-10 1/7/74- 1/8/75              *
 *                                                       *
 *                                                       *
 *           CDC SCIENTIFIC CHAR SET VERSION             *
 *        (00B AND 63B ARE TREATED IDENTICALLY)          *
 *                                                       *
 *     AUTHOR:   URS AMMANN                              *
 *               INSTITUT FUER INFORMATIK                *
 *               EIDG. TECHNISCHE HOCHSCHULE             *
 *       CH=8006 ZUERICH                                 *
 *                                                       *

Yet I think I have been outdone. Several listings of the Pascal compiler have been scanned in and made available as PDF files here. Perhaps, some day, a software archeologist will want to know the differences between the 1/8/75 Release 1 compiler and the March 1976 Release 2 compiler [PDF file].

A Letter From My Grandfather

My paternal grandfather was born on March 29, 1890 in Cave City, Arkansas. According to his military registration card, he was “tall”, had blue eyes, light color hair and, in the opinion of the examiner, was “stout”.

The first picture was taken in 1914 upon his graduation from the University of Tennessee School of Medicine. The middle one is from 1916, where he served as a 1st lieutenant in the Medical Corps in France during WW I. The last picture was taken circa 1935 in Judsonia, Arkansas, where he served as Mayor and was also long-time president of the school board.

He and I share the same birthday but I never had the opportunity to meet him as he died sometime in November of 1955. On April 4th of that year he wrote a letter to me. It was typed on the letterhead of “Woodyard & Felts, Judsonia, Arkansas” which was the pharmacy he owned until it was destroyed by a tornado in 1952. The letter is reproduced below with spelling and punctuation faithfully followed. The “Shiner” that he mentions refers to the black eye I had at birth.

My Dear and Only Grand Child: I received your letter with Great pleasure and admiration, and mindful of the Genuine Love that Prompted you to Contact me so early. I must tell you how much I love you, every pound and ounce of you, And Say I am going to Let you in on our first Secret, You are larger than your Dady was at your age, Now Son don’t let that Shiner worry you, for sometimes the Stork gets a bit Carless, he has so many little ones to look after. Now if you will be quiet and listen I will tell you a True Story: Once upon a time, Long ago, Our Creator GOD Made His Creation and set it in Motion, and called it Good, and He being Lonesome Spat upon the Ground, made some Clay mud and made a man to be with him, in his Image and likeness, But he had no Sole or Spirit of Immortality, so he put the breath of life into the man, And that Breath became Immortal, kinda like he did you. God saw that the man he had Made, Adam he Called HIM, Was lonesome So he Mad A Woman to become a help Mete for Adam, and to become Mothers for you, me, and All of Us. Our Mother Was good and Precious, but one day a Serpant entered the Garden, and Begiled our Mother, So God Was angry, because She disobeyed him, so he Put a Curse Upon our Parents, and it is that Curse that causes you Dady to Work and your Mother to Labor, so that Explains your Black Eye, but Dont let that Worry you, for one Night GOD Sent His ONLY SON into the World, That through him all our of Our fathers and Mothers, might be Forgiven and Redeemed by His Precious Blood, for our Disobedience to him in the beginning. Of Course we will have to Believe on and Trust him, For Eternal Life, Beyond this one here on the Earth. Of Course I Could tell you the Story, how the Unbelieving Jews Killed This Son, Crucified Him Upon A CROSS, and Buried him, and on the Third Day He Came back to Life in a Spiritual and Ressurrected Body, but you will have a few years, to Listen to Your Father and Mother, Tell and teach you about Him. Now Son your Length and Features isnt too Important. But it is most Important What kind of Spirit Inhabits that Body, Or Temple it Is Called. Grandmother Tells me that you will be home today and I know you are going to be proud of your Home and your Father and Mother, for you together are what makes up what Society Calls the Family. And The one who was Crucified, Commands us to honor Father and Mother, and he also wants them to Love you, so that the Family you are part of will make a happy one. Now after I tell you that I love you will you remember me to Mother and Dad, and Grandmother, and Convey my love to them also. I must say that I deeply regret that I didn’t have the Pleasure of personally greeting you upon your arrival, but am Looking forward with fond anticipation, to meeting you soon, and in the Interim be a sweet little man. I must apologise for burdening you with so long, and random Message but guess it is My awkward way of Telling you that I Love you so very Much. I shall be looking forward to hearing from you often.

Paternally Yours
(signed) Dad
Grand Pa.

I didn’t receive this letter until, perhaps, 2001 or ’02. I suspect that my father was somewhat embarrassed by it. The spelling and grammar weren’t up to Grandfather’s standards, but he was laboring under a prior stroke. Too, Dad related that Granddad had become a “religious fanatic” late in life and religion was something that I think made Dad uncomfortable. But having travelled my own Damascus road this letter is a delight and treasure to me, errors of language and simple theology notwithstanding. I wonder what I’ll write to my grandchildren?

More on the Sum of Powers

This is a continuation of this entry which derives the general solution for the coefficients of:

Computed coefficients for 0 <= k <= 10 were provided here.

It was noted that:

These values were determined by hand. However, it’s easy for LISP code to create the symbolic expression for each coefficient. The prefix expressions used by LISP (e.g. “(+ 3 (* 4 5) 6)” ) were converted to infix form (e.g. “(3 + (4 * 5) + 6)” ) and given to Maxima for simplification. The results are here.

What’s interesting is that the coefficients:

are all zero.

Now I have to figure out why...


Cleaning out the Cell Phone

This has been sitting in my phone since it was received on 8 March 2008. I didn’t want to delete it because it tickled me so. A certain son sent it when visiting potential colleges for his graduate studies.

So i somehow spent the money you gave me for jeans on booze last night...i have two dollars left. The blue collar laws are almost insufferable. You cant buy alcohol after two am on any day, but at least i had an excuse to get four hours of sleep.



In my inaugural post I noted that 5 sites contained the phrase “a drop in the digital ocean” according to Google. Six months later, the site count is now up to 7:

  1. my original blog at blogger, which has now been moved here.
  2. State of the MP3 Address Part 2: posted 31 March 2004 @ 11:22pm
  3. SEO Specialists Give You Access to Targeted Consumers, unknown post date, but copyright 2006.
  4. Sypha Nadon: posted sometime in October 2005, perhaps (based on reviewer comments). The page returned by Google results in a 404 error, but some sleuthing turned up this page.
  5. release: date unknown, possibly sometime in 2007.
  6. Questions About PennDOT Biometrics Contract Persist: dated 24 January 2008.
  7. MoGo bluetooth: dated 21 April 2008.
Unfortunately, I didn’t keep the data on the initial 5 hits, but it seems that items 2 through 6 might be them, since they all predate my first post. Item 7 comes later.

It might be interesting to write software that tracks the date and location of a given phrase over time.

Everything Old Is New Again

My middle child called today. He just started at the University of Illinois at Urbana-Champaign working toward a Master’s and PhD in Mechanical Engineering, specializing in MEMS. He was working on finite element analysis using ANSYS and ANSYS uses a modeling language (APDL) reminiscent of FORTRAN. He was having trouble getting his code to work and since I used to be fluent in FORTRAN he thought I could help. With some trial-and-error, we were able to solve his problem.

My Contribution to the Mathematical Arts

Many, many years ago, sometime in high school, I learned that the formula for computing


I'm pretty sure we were shown the geometrical derivation of this formula. In college, in late 1975 or early '76, in a Math Lab one problem asked to guess the formula for

In my handwritten lab notebook I used induction to show that the solution to (3) is:

Having solved this specific case, I wanted to see if there was a general solution for any positive integer n and any positive integer exponent. Based on equations (2) and (4), I conjectured that the general solution would be a polynomial of this form:

derivation used induction on the general formula and found that the coefficients to the solution are:

Computed coefficients for 0 <= k <= 10 are

Perhaps of interest are these properties of the coefficients: