Elegance in Theology – the Underlying Principles of the Christian System

(The following is an introduction to a much larger collection of essays I have been writing off and on for the past few years, and thus leaves much of the meat of what I introduce left unsaid. Keep in mind also that I’m not writing to my blog audience here. The following should be read as though I were speaking to a church congregation. Thanks.)

In the circles I run in, there is a man who is greatly admired by most, and who has achieved a large amount of respect. This man has built his reputation on a credo widely adopted in my industry. His name is Larry Wall, and as far as I know any relation between us is distant. ;) Larry Wall is a programmer and a Christian, and is the inventor of the PERL programming language.

Now, Larry Wall will tell you that the three chief attributes of a great programmer are, are you ready for this, "Impatience", "Laziness", and "Hubris". You are probably thinking I’m a nut, or that he’s a nut, and you might be right, at least on the latter point. ;) But his creed has merit. Bear with me now, because I have a reason for this long and winding introduction.

What I want to communicate to you today is something foundational to the way I myself perceive the world. I consider this truth I want you to understand to be vital to my faith. And in order to communicate this truth, I want you to understand how I came to know it.

Which brings me back to Larry. Now, at the heart of every good hacker, down deep inside every good engineer, Impatience, Laziness, and Hubris reside. Each of these character traits are traits to be avoided in any good man’s heart. But in the context of Larry Wall’s humor and sense of irony, here is what he means. When a person/engineer/developer/troubleshooter is presented with a problem he needs to be impatient enough to be discontent with it, not so much that if the problem is insurmountable he can’t live with it, but a good programmer is not content to live with solvable problems. Secondly, he must be lazy enough to want to avoid having to deal with repetitive tasks and problems, i.e. if possible he will want to avoid inefficiency. And thirdly, a good programmer has to have enough hubris to believe that he is capable of solving the problem.

Its a mindset, a way of looking at the world that constantly questions whether this is the most efficient way of doing things. Incidentally, homeschoolers are a great breeding ground for this kind of hubris. What Larry Wall is trying to say is that a good programmer is confident, efficient, and motivated, and is constantly looking for ways to make things more elegant (this means simpler, easier, and faster).

Keeping this in mind, I look at theology this way. All my life, growing up, it has been my nature to look for the underlying principle of things. I do this because I’m lazy and impatient. I don’t have time to memorize a million rules, nor do I have enough determination to understand all the details of any particular situation I may encounter. I understood from an early age that the best way to survive and learn and grow is to understand the basic principles of things, and that way, when I come across unknown situations, I simply derive the right response from the principles.

This method of understanding allows me to have a huge amount of potential knowledge contained in just a few simple statements. This is a method often used in the sciences. The vast majority of chemistry is based on a set of just a few principles that govern the reactions of basic elements. In math there are a small number, comparatively, of theorems and rules that govern the way everything works.

From discipline to discipline, across all the sciences, this is true. And here is one of the basic principles of life, complex systems are usually composed and created by the interactions of a small set of elements. Computers do everything they do with just 1′s and 0′s. All of Human life and biology are written with an alphabet of only four letters. And the whole of God’s law and the exhortations, rebukes, writings and preaching of the prophets of Israel can be simplified in two concise commandments, to Love God with our whole selves, and to Love our neighbors as ourselves.

Foundations and principles of Christian living. My knowledge of these is small (in my own estimation). But to the degree I can I want to communicate to you the smallest set of concepts that govern the whole of Christianity. This subset is Faith, Love, Humility, Hope, and a Sound Mind. I firmly believe that if a baby christian was given just these concepts and was told to practice, if he did he would grow up into the very model of what a Christian should be.

 

Manipulexity and Whipituptitude

As Adam Turoff explained once, Perl has two subtle advantages: manipulexity and whipituptitude. It’s very important to be able to solve the problem at hand simply and easily without languages and tools and syntax getting in your way. That’s whipituptitude. Manipulexity is the ability to use simple tools and build a sufficiently complex solution to a complex problem.

What is Perl 6? by chromatic 

Perl DBI 1.50 bug in Weaken Support Check

A friends Ikonboard failed recently with an error saying:


Ikonboard has exited with the following error:

Modification of a read-only value attempted

The problem ended up being caused by a change in the DBI.pm module from 1.49 to 1.50.

The offending code is below:


275 # check for weaken support, used by ChildHandles
276 my $HAS_WEAKEN = eval {
277 require Scalar::Util;
278 # this will croak() if this Scalar::Util doesn't
have a working weaken().
279 Scalar::Util::weaken(my $test = "foo");
280 1;
281 };

The error is on line 279. The negates the " and instead of passing a reference to a scalar value to the weaken function, if returns something else, something that I assume can’t be modified by the weaken function, thus the error.

The code can be fixed by replacing the above code block with this one:


275 # check for weaken support, used by ChildHandles
276 my $HAS_WEAKEN = eval {
277 require Scalar::Util;
278 # this will croak() if this Scalar::Util doesn't
have a working weaken().
279 my $foo = "foo";
280 my $test = $foo;
281 Scalar::Util::weaken($test);
282 1;
283 };