Archive for April, 2010

The Whole Truth

[If you like this article on Truth, you might also like: On the Decay of the Art of Lying, by Mark Twain]

April 26, 2010

The Whole Truth

What is truth?  Ah, yes that is an age old question asked by many philosophers.  I can’t promise an earth shattering answer, but this article contains some of my observations.

Truth in General, not in Specific

A truthful statement is always at least partially incorrect.  Take for example the following statement:

“Apples are red.”

Most people will agree that this is a true statement.  But is it really?

The statement is true in that, red apples do exist.  But the truth in this statement becomes quickly limited when one considers the measure of truth from various angles:

  1. Not all apples are of a “red” variety.  Take for instance the case of Granny Smith apples, which are yellow-green in color.
  2. Even so-called “red” apples aren’t red all of the time.  The color of the “red” apple is most often yellow or green before the “red” apple as ripened!
  3. From the point of view of a color-blind person, a “red” apple may not be red at all.  So the observation that apples are red may in fact depend greatly on the capabilities of the observer.
  4. The type of apple in question must also be considered – in French, “pomme de terre” means literally “earth apple”, and it used to refer to the potato – which is often brown, not red.
  5. Speaking of brown apples, one must never forget the ever so fragrant “road apple”, which one might encounter in the company of horses.  These aren’t red either, although they are called “apple” by metaphor.

Using the simple example about red apples, one can see that the amount of truth in a statement might be appreciated best if one considers it to be a generalized statement.  “Apples are red” is by its very nature a vague and general statement about apples.  While it IS true, it does not apply to all apples all of the time, and might also not be true depending on how one defines and measures the color red.

I conjecture here that ANY truthful statement, regardless how specifically it may be stated, must at some level or in some way only be a general statement about the truth.  Put another way, there are always vagaries in any truthful statement. In fact, the only fruitful conclusion to reach is that all truthful statements are lies, or at least partially so.

Human Language and Truth

A reason why all truth statements have at least some untruth about them, is due to limitations of human languages.  All human languages express concepts in relative terminology.  It’s generally impossible to describe something without relating it to something else.  The simile and metaphor take center stage, with all descriptions essentially being a comparison of one object or concept to another.

Since some objects and concepts are similar to others in some ways, but are different from each other in other ways, there must, of necessity, always be a degree of untruth to any statement made.  Politicians and mass marketers are, philosophically, off the hook now:  It’s entirely likely that they really ARE doing the best that they can with the language that they have!  (Please hold your applause.)

Before closing this section on human language, I also would like to note that the Universe as we know it generally operates in patterns.  The pattern can be symbolic, a sequence of events, a shape, or a behavior.  Patterns are general in nature.  A given pattern may recur often in the universe but the details of the recurrence always are slightly different – a different time, a different location, a different set of circumstances, etc. – but the pattern still emerges.

The pattern itself is a lie when compared with any specific occurrence of the pattern.  Thus it is that the Universe lies to itself!  Is it any wonder then that human language MUST contain at least some untruth in every statement?

I note here that this thought of patterns manifesting in the Universe also takes us to the science of fractal geometry where natural patterns are shown to take on measurable geometric shape.  But alas, the subject of fractals is large, and will be saved for a future time…

Lies Are Mandatory at a Job Interview

Why do people dress up nicely for a job interview?  What would happen if someone arrived at a job interview wearing the normal clothing that they wear every day?  Would they get the job?  Absolutely not!

Here it is socially unacceptable to tell the truth about oneself during a job interview!  The interviewer is impressed by dressing up (the lie), not by dressing normally (the truth).  Literally one can make the case that one’s economic survival relies on lying!

But the lie only is accepted as valid up to a certain point.  If the lie can reasonably be couched as “believable fantasy” then it seems excusable, and in fact is encouraged and necessary.  However if the lie becomes too blatant, to a degree that one can no longer suspend one’s disbelief, then the lie becomes a vulgar outright lie and no one appreciates it any longer.  Think about that next time you’re preparing your resume!

Truth Makes Us Vulnerable – A First Date

What kind of image do you project on a first date?

For men, are you projecting yourself as the basically lazy, out of shape, all thumbs, brainless, slightly angry, womanizing character that you really are?  Or are you the witty, charming, cultured, well sculpted sophisticate that just drips with sheer sex appeal?

For women, are you wearing a push-up bra and perfume right next to your charming smile and bright attentive eyes?  Or are you showing off that bitchy, TV-watching she-wolf who relishes the thought of wearing sweats all day on Sundays?

Why do we lie to each other like that?  It’s a moral imperative for survival!

Socially, we humans have geared our environment around the convenient and believable fantasy.  On a first date, we want to see that lie, that fantasy!  Forget the truth – we WANT to be swept away by an inspired vision of an amazing life that is possible with this new person!

Also, to tell the truth, the dirty straight out truth, opens us up to criticism.  And if criticism ensues, it’s the worst kind of criticism because it hurts and there is nothing that can be done to cover it up – we are forced to acknowledge it.  On the contrary, if someone criticizes us about a facet of our personality that is mere fantasy, then it’s no big deal - it’s a just lie anyway, and we can take the criticism impersonally because we are not that person!

Our emotions play a huge part in to what degree we tell the truth.  The truth brings a vulnerability from which we have little or no good protection.  It is just more convenient to lie, or at the very least, to embellish the truth.

We don’t even like to tell ourselves the truth about ourselves!  It’s too painful!  It’s easy to see how people go around telling “the truth” about themselves and feeling good about it, when it’s all a lie.  They’ve literally lied to themselves in such a way that THEY BELIEVE IT.  Their lie now IS their truth.

It’s the person with a fearful emotional makeup that feels vulnerable with the truth.  At the time of this writing, this describes just about everyone on Planet Earth.

To my mind, the only solution to this dilemma is to emotionally mature ourselves.  Fear must be overcome before we can be truthful without feeling vulnerable.  A majority of the whole planet is running on “emotional empty” – a place of extreme vulnerability in the face of raw truthful fact.

In the end, truth becomes our ultimate moral issue.  Our moral imperative as a race is that the believable lie or fantasy promotes our survival the best, where as truth creates a vulnerable opening for criticism and rejection.  How else should we behave in order to survive, but to lie, lie, lie!

Oh what a tangled web we weave!

Lying with The Secret

(a.k.a. Intentionally Lying to Yourself is Morally Imperative)

In 2006, Rhonda Byrne published a documentary style movie called The Secret.  It was a big success among New Age thinkers and motivational speakers everywhere.  For those of you have not yet seen the movie, go see it.  It’s definitely thought provoking.

A core premise in the movie is that the type of thoughts that you have can dramatically affect your result.  Nothing new is here; it’s the concept of using positive thinking to improve your life outcomes, with perhaps a New Age twist.

But let’s dissect that idea bit.  Your thinking affects your outcome – so what kind of stories are you telling yourself?  What kind of fantasy goes through your head on a daily basis to explain and justify what is happening around you?  Are you always telling yourself the truth?  Likely not!

The Secret indicates that telling yourself a “good lie” will actually help you.  It works like this:  When the chips are down, if you mentally keep repeating “the truth” about how bad the situation is and how likely you are to fail, then you significantly improve the odds of bad things happening.  But if you tell yourself a “good lie” and fantasize about it to reinforce positive thinking about the situation, you set yourself up automatically to improve it.

I will for the moment leave any scientific proof of why this works, and to what degree in the capable hands of researchers who study such things.

For philosophy purposes though, one cannot miss the striking impact this phenomenon has on telling the truth.  If it’s possible to believe one’s own lies, and the content of one’s lies have a significant impact on one’s outcomes – then it’s important to survival to tell oneself GOOD lies!  The truth, then, is undesirable with respect to one’s moral imperative for survival!

Deep within in our makeup is a process of intention – a process of creating our future.  Intention works by telling a story about how one would like the future to be.  To the degree that the story diverges from actual reality, it is a lie in the present.  According to The Secret, one has to REALLY BELIEVE the lie in the present in order for it to be effective in the future.  Once the future becomes the present and divergence between the lie and present reality closes, one’s intention has come to be realized.  Thus it is that the process of intention and creating the future involves a great deal of believable lies about the present.

With lies playing such an important part of intention, one might hazard to wonder why it is that humans even bother to think about the truth in the first place!

Leave a Comment

Computer Programming Best Practices

April 11, 2010

This is a collection best practices for computer programming professionals.  I’ve developed these rules gradually through nearly 30 years of software engineering and coding practice, and I continue to refine them.

I am well aware that not everyone will agree with them.  After all, opinion runs strong within the software development community!  I publish them despite this because they truly ARE best practice, even if you happen to disagree, or simply have a different idea of what constitutes “best practice”.  The fact remains that following them has produced some of the most effective, bug free, and efficient software of my career, and this is a substantial accomplishment.

My hope is that you’ll read them, learn from them, use them to improve your skills, and find them to be an invaluable reference for your next programming project.  They’ve certainly been an asset to my work, and I am eager to share them with folks who pursue excellence in their software development work.

Best Regards,

-Andrew B. Bartels

General Rules of Computer Programming:

Bartels’ First Rule of Computer Programming:  Start with a plan.  No code should be written until the programmer has (a) a good idea what the requirements are, and (b) a valid technical plan for how to efficiently implement a solution.

Bartels’ Second Rule of Computer Programming:  Be petite.  Code that isn’t written doesn’t have execution time, nor does it need to be debugged.

 

Rules of Software Architecture:

Bartels’ Rule of 3 for Software Architecture:  A well thought out class hierarchy is mandatory; an overly intellectualized class hierarchy becomes a real mess. Keep class structures simple, in general with no more than 3 layers of inheritance.  If you find yourself having to add a fourth layer, go back and re-think the class hierarchy because chances are there will be an advantage to simplify it.

Bartels’ Rule of 90% Code Reuse:  Only about 10% of your application’s code is actually unique in function to your business rules.  The other 90% should be implemented in a reusable code library that can be used in a different context by many other applications.  Re-examine your software design until at least 90% of it comes from generic code libraries.  If you do, you’ll find that you’re writing amazing software in only a fraction of the time!

 

Rules of Data Processing:

Bartels’ First Rule of Data Processing: Touch the data once and only ONCE.  This rule applies double for multithreaded applications.  This simple application model works best:  read the data, process it clear to the finish, then output the result.  Do not hand data off between various threads or code modules, or you’ll introduce unnecessary performance problems.

Bartels’ Second Rule of Data Processing:  Be I/O efficient.  Access only the data you actually need to get the job done, and only access it once (see First Rule of Data Processing).  If that’s not possible with your current data structure, re-organize the data so that it is possible.

Bartels’ Third Rule of Data Processing:  Be platform efficient:  Use native word and memory page sizes that are efficient for the computing platform your program will run on.  For example, some platforms process 32-bit quantities faster than 8-bit or 16-bit values (take Java, for instance).  As a programmer, be informed enough to know what the efficient sizes are for your platform and programming language of choice.

 

Rules of Data Storage:

Bartels’ First Rule of Data Storage:  Store data in the smallest native data unit available for the platform.  A boolean value should be stored as a bit, a small numeric value should be stored as a byte, etc.   This avoids unnecessary ‘data bloating’ in your database.

Bartels’ First Rule for XML:  Don’t use it.  Nope.  Just don’t do it!  Not even if you’ve been taught that it’s a good idea.  XML is terribly inefficient (see First Rule of Data Storage).  Any benefits that come from its ‘flexibility’ are handily outweighed by the extra unnecessary space it occupies and the unnecessary text parsing effort required to process it.

Bartels’ Second Rule for XML:  If, after reading the First Rule for XML, you still feel that you absolutely must use it, then only do so under duress.  For example, you could be excused for using it when XML is an expected format for a third party interface that you cannot change.  But even then, carefully consider the other alternatives.

 

Rules of Computing Performance:

Bartels’ First Rule for Computing Performance:  When speed is an issue, test and tune performance on the slowest computer you can find.  Doing so magnifies the areas that are causing the bottle neck, allowing you to more readily see and fix the problems.  Once you’re satisfied with performance on a slow computer, load your software on a fast one and watch it fly!

Bartels’ Second Rule for Computing Performance:  Standard code libraries (that come with C, C++, Java, etc) are almost never the most efficient.  When it absolutely HAS to be faster than anything else, it’s possible to increase performance by writing your own code (see Second Rule of Computer Programming and Rule of 90% Code Reuse).

Leave a Comment