The Ends Seldom Justify the Means

The ends seldom justify the means. You need to decide if it is morally and legally right or wrong for the government to capture information about every phone call you make and every email you send without considering *why* they’re doing it. For example, the government can’t force you to worship (or not worship) a particular deity for the purpose of preventing you from committing a crime. It’s wrong for the government to deprive you of rights guaranteed by our Constitution and laws, period. So giving examples of how the collection of what some might consider private information protected the country from terrorist attacks is irrelevant.

Similarly and by extension, good intentions do not make an otherwise wrong action right. You need to decide if it’s morally and legally right or wrong for an employee of a government contractor to reveal details about otherwise secret operations of the government without considering why they’re doing it. Edward Snowden claims he was protecting the rights of Americans when he violated his contractual obligation to keep certain secrets related to his work for the government. Arguing that he’s a “good kid” with “good intentions” is irrelevant.

Now, it may be the case that the collection of this data by the NSA is completely legal and constitutional. And it may be the case that Snowden did not reveal any information that wasn’t already public knowledge. But it is not because they are protecting us from terrorism or looking out for our liberty.

If we accept the argument that the government is justified in collecting this data because they’re protecting us from terrorism, then we must also accept the argument that the government can and should make it a crime to worship Allah in the United States. If we accept the argument that Snowden is a good kid with good intentions and his goal was to preserve our privacy and civil liberties, and therefore his actions were not wrong, then we must also accept the argument that pedophiles are acting in love when they “molest” children, that bank robbers are just trying to feed their families, and that burglars are simply “redistributing wealth”. Therefore none of these criminals are really guilty of any crime.

Both the NSA and Snowden may be innocent of all crime. But it won’t be because of their motives. Unfortunately, virtually every argument being given in these cases is related to motive, not legal facts.

QuickVerse/Parsons Technology History

I wrote this article back in 2002 to tell the history of my writing of QuickVerse and my time at Parsons Technology. I always intended to keep it up-to-date but never got beyond what you see here. Some people read this and accuse me of living in the past. Those people can go sit on a nail. This is here because people ask me about it. And because it’s kind of interesting especially now that Bob Parsons and GoDaddy have become more widely known.

In the Beginning…
After graduating from the University of Iowa in 1981, I went to work for Rockwell International working on test equipment software for Air Force avionics projects. In 1986 I got involved in a custom programming project with two of my coworkers. We wrote an image processing application that analyzed particle shapes from pictures taken from scanning electron microscopes. It was quite cool. That project allowed me to buy my first PC-compatible, a Compaq Portable II (8MHz 80286, 640K RAM, 20MB HD). A screamer.

My prior computer was an Atari 400 which I modified significantly to make it useful for development work. The average Atari 400 had 16KB RAM and a “chiclet” keyboard. Mine had 52KB RAM and a real keyboard. Plus a 140KB floppy disk to replace the normal Atari cassette tape storage device. I wrote a home budget program in BASIC that, in my opinion, was tons better than anything currently available from Intuit or Microsoft. (It had two critical features: fund-based accounting and deposit templates.)

MoneyCounts and Trash Collectors
When I got the Compaq, I started re-writing my budget program in MS-BASIC. While discussing this with my friend Howard at Rockwell he said, “You really ought to try this MoneyCounts program the guy across the street from me wrote. I think it’s shareware.”

Turns out that Bob Parsons was the guy who lived across the street from Howard. MoneyCounts wasn’t shareware, but sold for only $12. I gave “Parsons Technology” a call and followed Howard home from work that night to pick up my first copy of MoneyCounts 3.0. Martha Parsons met me at the door and said something about “the programmers taking off early” that day. (I later figured out that Bob was the only programmer and he just wasn’t home from work yet.) She handed me a copy of MoneyCounts for $12, and didn’t bother me for sales tax.

With that transaction I became Parsons customer number 6553. A four-digit customer number of which I’m quite proud. (When I joined Parsons a year later I watched Bob write the code that would allow the customer database to accomodate six-digit account numbers.)

Over the next year, Howard and I followed the growth of Parsons Technology. From time to time Howard would say, “Well, Bob got a new laser printer” or “Bob got another computer yesterday.” For a while I thought Howard and Bob must be close friends. After asking a few questions I figured out that Howard was just checking out Bob’s garbage at the curb as he left for work!

When Howard got home from work the UPS truck would be backed up at Bob’s driveway loading up hundreds of copies of MoneyCounts.

In the Fall of 1987 we heard a rumor that Bob was leaving his day job and going full time into the software business.

I Meet Bob Parsons
Sometime in October of 1987 I gave Bob a call. I told him I was a little fed up with Rockwell and was looking for new opportunities. I had learned Pascal (Bob’s language of choice) in college, where I earned a 3.9/4.0 GPA, and I’d had a semester of accounting (more than any human should be subjected to). I figured I was a good match for any programming job he might want to throw at me.

Bob and I met one evening to go over my resume. We talked about lots of topics. I don’t think Bob had spent a lot of time talking to any “professional” programmers. He seemed somewhat embarrassed about his amateur coding efforts. I thought his results were extraordinary, and I told him so.

We met in Bob’s basement / office / warehouse. During the course of the evening the phone rang several times. Bob would pick up the phone and take an order for MoneyCounts, then we’d continue our conversation. At one of these interruptions, Bob picked up the phone, answering “Parsons Technology.” Then after a pause, “One moment please.”

Bob punched “hold” and sat their looking at me. He had a twinkle in his eye like he had just told me a joke and was waiting for me to get the punch-line. I smiled, wondering what he was up to. I could hardly contain my laughter when he hit another button on the phone, taking his caller off hold, and said, “Technical Support, may I help you?”

Low Cost, High Performance Software
Bob and I discussed his business model in depth. He had been impressed with Borland’s recent introduction of Turbo Pascal. At a time when other companies were charging $500 or more for programming language tools, Borland introduced Turbo Pascal at $49. By pricing the product so low, it became an impules buy for anyone connected in any way with personal computing. Whereas one might have thought that you could only sell a Pascal compiler to a programmer, all of a sudden it was like everyone was a programmer! Everybody with a computer had to have a copy of Turbo Pascal. Borland had stumbled onto a pricing model that (as much as we take it for granted today) was revolutionary at the time: Produce high quality software and sell tons of it at a low price.

Bob started out trying to sell MoneyCounts for well over $100. He sold a few copies, but still lost $15,000 in his first year of operation and $25,000 in his second. The third year he upgraded the program and, taking a clue from Borland, dropped the price to $12 — well under the $49 to $99 being charged by his competitors. That year he grossed over $100,000.

As we talked, Bob’s philosophy became clear: Produce high quality software and sell it in volume – direct to the consumer – at an impulse-buy price. To ensure no obstacles to closing the sale, he’d spend the extra money it took to create top-quality, four-color, full-page ads to run in national computer magazines. Furthermore, the ads prominently featured a no-questions-asked, 30-day, money-back guarantee and a toll-free number for placing the order. (Parsons’ toll-free order number still contains Bob’s street address from those days.)

As a direct-to-consumer company advertising primarily through computer magazines, Parsons Technology appeared to the public to be a substantial, dependable company with high quality products. Nobody would have guessed from those early ads that the whole thing worked out of Bob’s basement – with hundreds of packages being shipped each afternoon from his garage… and Howard eyeing his garbage for signs of new toys.

Some Men Drink; I Write Code
Bob left me that night with the comment “I just hired the best programmer I can afford: Myself.” Having left full-time employment, Bob was stepping out on his own and offered little or no security for a young programmer with a growing family. It was pretty clear that if I expected to get a paycheck every week, Parsons Technology was not a good place for me.

I returned home, still reeling with the excitement of the conversation with Bob. He was so excited about what he was doing it was hard to just go to work at Rockwell the next morning for another day of the status quo.

I was growing increasingly depressed working at Rockwell. Working for a giant corporation has a way of sucking all the motivation out of a person. It’s too easy to “coast” and not get noticed. The work was interesting and challenging, but I could see it wasn’t going anywhere.

In the meantime I had finished the image processing application, and was looking for another programming project to fill my free time at home.

While browsing a catalog from Public Brand Software (one of the many shareware distribution companies that sprang to life during the mid-1980’s) I saw two items that caught my attention. One was a program containing the KJV New Testament, and the other was a set of eight disks containing the entire KJV text. I ordered both.

The KJV NT program was OK, but nothing to get too excited about. Searches were kind of slow. It was written by a guy who was a member of an end-of-the-world, gun-hoarding cult. A portion of the registration fee went to the organization, so needless to say I never registered my copy.

The real gem was having the entire text of the KJV Bible available on my computer. At the time, you could pay $50 to $100 for a set of disks like this that was just the Bible in sixty-six text files with a simple “grep”-type program that scanned the text for words and phrases. After trying to search for verses using my word processor for a couple days, I decided I could write a simple program that would make it a whole lot easier to search the Bible than loading it into a word processor.

QuickVerse is Born
My idea was to do some simple compression and indexing. First, I’d scan the whole Bible and make a list of all the different words I saw. After alphabetizing the list, I could assign a number to every word corresponding to its position in the alphabetic list. Then, making another pass through the Bible, I could replace each word with its number. I found there were about 12,783 words in my edition of the KJV.

Since, on average, a word takes about five or six bytes and any number up to 32767 can be stored in only two bytes, I instantly reduced the size of the Bible by about 60% by replacing words with numbers. Plus, since each word takes less space on the disk, I could read more words in less time – thus increasing the speed of access.

The next step was to be able to quickly find every occurrence of every word. I had recently used a really cool (at the time I thought so, anyway) storage technique which allowed me to store two values in one memory location. As long as you know one of the two numbers, you can easily extract the second. The idea is this: You have two numbers, A and B. You want to calculate a value, C, that embodies both numbers. Represented in binary, these numbers occupy 16 “bits” each, where each bit has a value of 1 or 0. Going from left to right (or right to left, it doesn’t matter) compare each of the corresponding bits of A and B. If both bits are 0 or both are 1, the corresponding bit in C is set to zero. If the bits from A and B have different values (0 and 1 or 1 and 0), set the bit in C to 1. The mathematical formula is C = A XOR B.

Now, given A, the value of B can be determined in the same was as C was calculated. That is, B = A XOR C. Similarly, given B, A can be found (A = B XOR C).

I numbered all the verses in the KJV (Genesis 1:1 was 1 and Revelation 22:21 was 31,102). For each word I stored the verse number of the first occurrence of the word in a word list along with the spelling of the word. Then, immediately after the first occurrence of that word in each verse in which the word occurs, I stored both the verse number for the next occurrence of the word and the verse number for the previous occurrence in one, two-byte, location on the disk. Given that you always know where you came from (either from the previous or the next occurrence), you could apply the XOR formula and find the next (or previous) place to go.

So on the whole, it took me four bytes to store a word. About 20% less than the size of the straight ASCII text of the Bible. Plus while I was saving storage space I was adding another piece of information: The location of the adjacent occurrences of the word.

It Sounded Good on Paper!
The beauty of this approach was that for any word, I could take you instantly to the first place that word occurs in the Bible. If you wanted to see the next occurrence, I could also get there instantly. The only problem was that if you wanted to see every place a word occurred in the Bible, I had to walk through the whole Bible finding each occurrence! While this was slow, it was still faster than a lot of other programs available at the time.

Where this approach really broke down was in phrase searches. With a phrase search, you have to find all the verses where all the words in the phrase occur together, then verify that the words occur exactly in the sequence in the phrase. With my approach I had to pick the word that occurred the fewest number of times and look at each verse that word was in for an occurrence of the phrase. For phrases like “John the Baptist” that works fine, because neither John nor Baptist occur very many times.

“Day of the Lord,” however, is a different story.

QuickVerse Takes Over My Life
I started falling into a habit of coming home from work, having dinner and waiting for everyone to go to bed, then programming until three or four in the morning. Start time at Rockwell was 7:30, so I wasn’t getting much sleep. I remember noticing at one point that on many days I was putting in eight hours at Rockwell, then working ten hours at home!

I also found that I was really enjoying working on my Bible program and really dreading going into work. In my performance review in January 1988, my boss pointed out that my night-time programming (at that time on the shape analysis program) was affecting the quality of my work. Not to mention the fact that I had met a couple of guys at work who were equally under-challenged by their work. We tended to take some pretty long breaks.

I applied for some different positions within Rockwell. At the time I was writing code in C and Ada (what a combination!). I applied for a position maintaining the system software that compiled our Ada programs, but the job went to someone less qualified but better “connected.” (She was also a little cuter than me.)

Meanwhile Bob’s comments from our conversation in the fall of 1987 were bouncing around in my head. I began to think, “Is there anyway that I could do with Bible software what Bob has done with financial management software?”

A Hole in the Market
As I looked for other Bible software all I saw were very high-priced, under-marketed products. GodSpeed was fast but incapable. $100 got you a copy of the KJV, and another $150 would buy Strongs numbers to go with the KJV. The program didn’t do much at all. It found words and phrases very quickly, but it was virtually impossible to print or save the results. The company had contracted with a fast-talking salesman who took over production of the product and eventually drove it into the ground – refusing to pay royalties to publishers or split revenues with the owners of the program because “God told him not to.”

WordSearch was idiosyncratic but fairly powerful at $179 for the KJV or NIV. WordSearch had a history similar to the beginnings of QuickVerse, being developed by Dr. Jim Sneeringer out of his home while he worked another job. Sneeringer faced the same problems I would face – that of effectively marketing the program. He would later market the program through NavPress, then buy the software portion of the company back from NavPress and run it fairly effectively on his own.

CompuBible had a well-engineered product with features that rivaled some of its competitors for several years. It was owned by a father and son team out of Texas who had contracted with a long-haired, hippy-type programmer to write the code, and a conservative Bible publisher to market the resulting product. However, at $249 it was just too expensive for most people and the Bible publisher just didn’t know how to effectively market it.

Bible Research Systems offered perhaps the most comprehensive product, but at $299 for a basic package and extra charges to add the most simple add-ons, people weren’t flocking to their door. Their marketing wasn’t bad; advertising in several of the major computer magazines with an ad showing a “ribbon cable” coming out of a Bible – an image they continue to use to this day.

It seemed obvious to me that there was an opening for a Bible software product under $100. My plan was to follow Bob’s model and try to make up in volume what I lost on per-unit margin. Furthermore, I’d spend some money and create some good-looking ads that would convey the idea that “Creative Computer Systems” was more than just my spare bedroom. (I hijacked the company name from the partnership that we had formed to do the image processing system. This made taxes simpler. By this time my partners and I were done with the image processing system and the partnership was just holding together until the end of 1988 when we’d do our final tax return and shut it down. Since I already had the letterhead and the bank account, I thought I’d just market my Bible software under that name.)

My Wife, the Software Sales Rep
QuickVerse began to come together fairly well in the Spring of 1988. I had formulated a plan to begin advertising in the September issue of Pulpit Helps magazine, which came out in late August. That meant I had to have camera-ready art by the first of July and pay the $400 for the ad shortly thereafter. By August 1, I’d have to decide if I wanted to run the ad in the October issue, long before the first ad had appeared. And of course I’d owe another $400. Within a week after the first ad actually appeared, I’d have to decide if I wanted to be in the November issue. It was pretty clear that I’d have to commit the money without knowing how sales were going to go. And I had to have the program done by September.

The summer went pretty fast. I was coding all night and “working” at Rockwell all day. My wife was wonderful about the whole thing. She could see that I was not happy with Rockwell and was deriving most of my job satisfaction from the work I was doing after-hours. We had an agreement that I could work late three or four nights a week, as long as she knew my schedule in advance and as long as we could set aside one night a week plus Saturday for family activities. This was a philosophy I would stick with through the years when work began to interfere with family; I always let her know ahead of time what my schedule was going to be, and I always set aside time as needed, without complaining. I think that did much to keep us both sane during those hectic days.

Late in the summer I went out and spent what little I could afford to have a little two-by-two inch ad done at a local graphic arts shop. I couldn’t afford a four-color ad, but I applied Bob’s philosophy of trying to look like a more substantial company than I really was. I lined up an 800-number that rang into our kitchen. I put a bulletin board up by the phone with a clipboard of order forms, a UPS map depicting delivery times to anywhere in the country, and a price list so my wife could take orders.

Sometime early in September I finished version 1.0 and we waited for the phone to ring. It seemed like an eternity, but finally the first orders came in. I couldn’t accept credit cards, so I sent the packages out on invoice. Getting that first check for $60 was a real kick!

My wife would answer the phone and take orders. Callers wanting technical support were told we’d call them back after 5PM. I paid my 5-year old twenty-five cents per set of disks to duplicate disks for me. I still remember her standing on my office chair, shoving disks into the drive and pressing “Enter” to copy the files from my massive 60MB hard drive to the 5.25″ low-density floppies.

I remember a conversation with my wife in which I commented, “Wouldn’t it be cool if we could make just enough doing this that I could leave Rockwell and do this full time?” I would have been shocked to know that within seven years QuickVerse would support 70-80 full-time-equivalent Parsons employees in various capacities.

“Hello, Bob?”
In October 1988, with things now going fairly well, I had an idea. If I could get a list of churches that owned computers I could do some direct mail and hopefully sell some programs. I started by calling churches in Cedar Rapids and asking if they had time to complete a survey. This gave me an opportunity to find out how big the church was, if they owned a computer, and if the pastor used the computer – among other things. If they sounded like a good prospect I’d send them a letter and offer them a discount on the program. But that was a pretty small list of names and it was very labor-intensive. I needed a better source of names.

I decided it ought to be fairly straightforward to go through Parsons Technology’s customer list and pull out anything that looked like a church. By then they had less than 100,000 customers, but many were churches who were using MoneyCounts (like my church did). I called Bob, who by now had moved out of his house into an office building and somehow had managed to create several layers of secretaries to insulate him from people like me trying to leach onto his success. Bob invited me to visit the office and bring my program along. He asked that I also bring any documentation I had. That seemed weird, but not a problem. I fired up the dot matrix printer and printed off the 25-page QuickVerse user’s guide.

I showed up at Bob’s office at the appointed hour. Parsons Technology occupied a couple thousand square feet in a two-story office building. The front of the office housed about ten order-takers. A small room in the back contained a disk duplicator machine, which clanked out a couple copies of MoneyCounts every minute. A young lady sat on the floor surrounded by invoices and credit card slips.

The programmers occupied a small room in the back. There were two of them, answering Tech Support calls and squeezing in some programming between calls. All told it looked like about 20 people scurrying about.

Bob greeted me and took me to his office. We were joined by someone named Claudia who grabbed my “documentation” and ran off, probably to make an illegal copy. Boy, were these guys cheap!

We installed the program on Bob’s machine and he looked up a few verses. Having been in the corporate leasing business, he did a word search for “leasing.” We all chuckled to see Psalm 5:6:

Thou shalt destroy them that speak leasing: the LORD will abhor the bloody and deceitful man.

The more Bob played with the program, the more he got excited about it. He asked me what my intentions were and I told him my idea of scanning his customer list for anything that looked like a church. He asked me about the competition for the product and what I was selling it for. He seemed intrigued by the fact that all the other Bible software products available at that time were significantly higher than my $60 price. He asked how they were being marketed. I asked for a copy of PC Magazine and showed him the Bible Research Systems ad. It seems like WordSearch might have also been in there. (Both companies had ads in the “business card” section in the back of the magazine where a small 1″ x 2″ ad could be had for a few hundred dollars. The BRS ad featured, of course, the flying Bible with the ribbon cable.)

About then Claudia stepped back in. “How’s it look?” Bob asked. “Looks fine,” she replied. Bob explained that Claudia was his technical writer and director of public relations (I later found out that about everyone wore multiple hats — programmer/tech support, accounting/tech support/human resources, manufacturing/shipping/credit card processing, etc. Bob even once said that his best critic of new ideas was the kid who came in at night to clean the building.)

Bob and Claudia exchanged a few comments that were thinly-disguised efforts to evaluate the marketability of my program without me really catching on to what they were talking about. Finally Bob dismissed Claudia and turned to me. “What would you think of letting us market this product for you? We’d take the product pretty much as-is — we’d write the manual, manufacture the product, sell it, support it, and pay you a royalty.”

This caught me off guard. I wasn’t expecting anything like this at all. I had to quickly search my thoughts and feelings in order to put together some reasonable questions.

“Why would you be interested in Bible software?” I asked.

“Churches represent the largest group of small businesses in the country.” Where he came up with that statistic (an accurate one, no less) was beyond me. “If we can reach churches with Bible software, perhaps we can sell them a copy of MoneyCounts.”

How much input would I have in the marketing and direction of the product? What were the financial terms? The more I questioned, the more I realized that I wasn’t excited about just letting the product go. On the other hand, this looked like an opportunity of another kind, so I threw another twist into the conversation.

Escape from Rockwell
“Would you consider hiring me to continue development on the product and to direct the marketing? This is, after all, a very specialized niche. You’re going to need someone who knows the nuances of the various denominations and sects that make up the audience for this product.”

Now it was Bob’s turn to sit back and think. He didn’t pause for very long before he said, “We’d be willing to consider that. What did you have in mind?” I’d later learn by observing Bob’s negotiating skills that he was putting the ball in my court to make the initial offer in order to gain position in our subsequent discussions — one of many negotiating tips I’d learn from him over the next six years.

I was ready to leave Rockwell, but I wasn’t ready to give up the job security that working for a major corporation affords. I figured I’d be willing to give up a little security for a major increase in income, so I threw out a number that was about 25% higher than my current position, plus a percentage of the sales of my product. I must have been well under Bob’s strike price, because that seemed to light him up. He ended up countering with even more generous terms.

I told him I’d have to discuss it with my wife. Bob suggested I give him a call the next day to let him know what I decided. I reminded him that as it was Friday, the next day would be a weekend and I assumed the office would be closed. “I’ll be here. Give me a call tomorrow.”

Needless to say, my wife and I had a long talk that night. We recalled our conversation in which I had wondered if we’d ever get to the point where I could support myself from sales of QuickVerse. We talked about the security of working for a multi-billion dollar defense contractor versus working for some CPA with a copy of Turbo Pascal. We prayed for God to lead us into the right decision.

I’m Outta Here!
The decision finally came down to one thing: I could sit at Rockwell and wonder what life might have been like to have struck out with Bob, or I could take the challenge and see what I could do to change the face of computerized Bible study. In that light, there was no decision to make. I drafted a letter of resignation.

Monday morning I set up an appointment with my boss for right after lunch. Over the noon hour I drove over to Parsons Technology (which, coincidentally, was located right across the street), and Bob and I hammered out an employment agreement. With that in hand, I knew it was safe to go back and submit my resignation.

At 1:00 I went to see Neil Ennis, my supervisor. I brought along a copy of my ad from Pulpit Helps magazine and a brochure I’d had printed up. I told him how I’d been working nights to write this Bible software, and that’s why my heart had not been in my work. I told him the story of taking the program to Bob for the purpose of renting a mailing list, and how Bob had offered to hire me. Neil of course knew that I’d been applying for various positions within Rockwell, and suspected that I wasn’t challenged any longer by the work we were doing.

In what was to become a trend of bucking the system, I gave Rockwell only one week’s notice – I planned to start at Parsons the following Monday (technically, 6.5 days later). Neil wasn’t sure if Human Resources could process the paperwork that fast. I told him it didn’t really matter to me, I could come back a week later and sign some papers if that what they wanted, but I was definitely going to be at Parsons Technology on Monday.

Ironically, the manager who had hired the cuter programmer a few months before called me later that week and said, “I heard you’re leaving the company. Is there anything we can do to get you to stay? Maybe we could open something up for you.” I threw out a salary figure that was about twice what Parsons would be paying me. “If we can talk about numbers like that, I’ll give Rockwell a second chance,” I said. Needless to say, they weren’t interested. Idiots. They should have jumped on me when they had the chance.

A Rose by any Other Name?
One of the first orders of business upon arriving at Parsons was to name the program. The name I’d been using for the program was not one that Bob thought was very good, so we started working on ideas. At the time, search speed was about the only criteria that was used to compare Bible software. We wanted to convey the idea that the program was fast. Part of the name had to be something like “Fast” or “Quick.” This got me thinking about the verse that says that the word of God is “quick and powerful; sharper than any two-edged sword.” I sketched out a thumbnail of an ad with the name “Sword’s Edge” with the headline “Quick and Powerful.” I thought it was a pretty cool name.

Bob wasn’t as impressed. He thought it sounded to “churchy.” He wanted something cleaner; something that would extend the reach of the product beyond the well-churched crowd. I brought him a list of dozens of more names constructed from words implying speed combined with words related to the Bible (“word,” “verse,” “Bible”). I don’t recall that he liked any of them.

After I got home it really burned me that he hadn’t liked “Sword’s Edge.” I called him at home and we had a long heart-to-heart about how much of a role I was going to have in the company. It seemed like I should be able to pick the name. Bob assured me that he wanted me to be happy with it, but that he’d like to come up with something that we’d both be happy with. He managed to calm me down, and in the course of the conversation I threw out two or three of the best new names from the list. “QuickVerse” caught our attention.

After sleeping on it, QuickVerse was chosen as the name for the product. In retrospect, Sword’s Edge was even dumber than the original name of the program…

“Logos.”

A New Product is Born
Bob had a few suggestions to make the program better. He wanted enhanced printer support, so I wrote a reconfigurable printer driver. These were the DOS days, remember? Everybody had to memorize the binary code that turned an Epson printer into condensed mode. QuickVerse would remember those codes so you wouldn’t have to.

I worked on updates to the program through Christmas. In the meantime we wrote the manual and prepared the initial ads. “Instant Bible Access – Only $49” was the headline. A picture of about a dozen floppies scattered around a big Bible led the reader into copy that boasted of QuickVerse’s fast access to the entire text of the Bible and wildcard searches. (One customer returned the product because he didn’t get “the big book in the ad.” Another, upon seeing a different ad with a picture of QuickVerse running on a computer, bought QuickVerse thinking he was going to get the computer too. Once he figured out his mistake he called to say “I bought your program, but I don’t have a computer to run it on. What do I need to buy?”)

A friend of mine wrote the manual. It featured a summary at the beginning of each chapter that let experienced users get everything in about a paragraph that we were going to spend the next ten pages explaining. I think it was one of the best manuals we ever did. But then the program was so simple the manual really wasn’t even necessary.

QuickVerse was the first Parsons product to have enough disks that it needed a box. Previously, copies of MoneyCounts sold through software stores had just been two disks shoved inside a manual, then shrink-wrapped by Bob’s twelve-year-old daughter. QuickVerse had a smaller manual and about five times as many disks. The box featured a stylized dove. While it was a little more “charismatic” than I would have normally gone for, it did have a unique look.

QuickVerse was also the first Parsons product that really taxed the capacity of the little disk duplicator sitting in the shipping room. I went shopping for a system that could duplicate disks at about 150 disks per hour. It was driven by a PC. We quickly outgrew that system and within about three months had upgraded to a Unix-based system with three duplicators, bringing our capacity up to 450 disks per hour and giving us the option of duplicating 3.5″ disks. (Parsons currently operates about 36 such duplicators with a capacity of about 9000 disks per hour. During our tax season we run three shifts, for a total capacity of over 200,000 disks per day. Even at that rate we have to send a large number of disks to outside duplication houses.)

Bob told me once that we’d eventually sell 100 copies of QuickVerse per day. I would’ve been happy with 100 per week. QuickVerse started shipping in mid-January, 1989. By the end of January we had sold 973 copies – about 97 per business day. At the end of March, Zondervan told us we held 33% of the total market for electronic editions of the NIV. Three months later we had doubled our per-quarter sales rate. Zondervan released their own electronic product that quarter. Interestingly enough, they refused to give us market share information after that. But based on our calculations, we figured we were outselling all of our competitors combined (including Zondervan’s).

QuickVerse for the Macintosh
Kurt Hansen was the first programmer Bob hired. Kurt worked for the company that installed Bob’s first network. They got to know each other and Bob ended up hiring Kurt.

Kurt made an early attempt in the summer of 1988 to write a Mac version of MoneyCounts. He didn’t get too far before it became obvious that the project was going to be bigger than the company was willing to commit to. This would be the first of several times that Parsons would start and stop Macintosh development.

One of the assumptions I had been hired under was that I would write a Macintosh version of QuickVerse. The first ads said “for PC or Macintosh.” With the word already out that the Mac version existed, we had to hurry to put something together. Bob offered to have Kurt work with me on the Mac project.

Our plan was to have Kurt create a “framework” with all the “Mac stuff” pre-coded, then I would step in and code all the “QuickVerse stuff” (like the decompression and search engine). Kurt started with the code he had developed for MoneyCounts. Because we were in a hurry, many of the data structures and definitions from MoneyCounts were left in. As a result, QuickVerse for the Mac shipped with date calculation code and the definition for a double-entry accounting data structure still in place.

We shipped the Mac version in April 1989. It did fairly well, but never represented more than 10% of our sales. In a way that was good; the Mac software market was about 10% of the total PC software market. But with the shortage of Bible software for the Mac we thought we should have been able to do better than 10%.

But the real problem was Technical Support. We had a small group of techies, all of whom were hired for the knowledge of DOS and PCs. When the Macintosh came along, we figured we’d just show them where the System Folder was at and teach them to hold down the mouse button when they dragged menus down and that would be the end of it. Besides, the Mac was supposed to be so easy to use, who’d need Tech Support?

We had also heard that Mac users knew their machines better than PC users. The reasoning was that the machines were so much easier to use that they naturally learned everything about them. Plus Mac users bought 2-3 times as much software for their machines than the average PC users. It should be no problem to support these guys!

Boy, were we wrong. One of the problems with the Mac being so easy to use was that our techies could say, “Well, you need to add a mouse driver to CONFIG.SYS. Give that a try, then call me back if it doesn’t work.” These confident Mac users, not knowing that Macs don’t have a CONFIG.SYS file but figuring, “Hey, it’s a Macintosh – it should be easy!” would hang up the phone then sit there and stare at their monochromatic screens searching all over the place for the file. (What did that Tech Support guy call it? ‘Can figs date sis?’ Hmmm… must be here somewhere.)

A year or two later we discontinued the Mac version of QuickVerse. It was too hard to maintain multiple development and support teams on the limited income we were receiving from the program.

Those were the days….
That was back in the days when I was still writing code. Sometime between writing the Mac program and getting Membership Plus off the ground I re-coded the whole way that QuickVerse stored its Bible files. Version 1.21 shipped in May 1989 and had a much more efficient concordance structure, including a technology for doing Boolean searches that we don’t think too many other Bible software companies have figured out, even to this day.

“Oh, and by the way, Craig, we need a church management program!”

One of Bob’s marketing plans was to get churches “hooked” by selling them QuickVerse, then turn around and sell them a copy of MoneyCounts, too. The opposite would also work… churches already using MoneyCounts to track their finances would be very likely to be interested in Bible software.

So Bob tasked me with looking at MoneyCounts and coming up with a list of enhancements that we’d need to make it useful for churches. In examining the program I could find only one major flaw: The lack of fund accounting.

Fund accounting is a cash-based accounting system in which balances are maintained in several designated funds. Income and expenses are written against these funds, so that it’s obvious when you’ve overspent your “budget.” If an expense would cause the balance of a fund to go negative, it’s necessary to steal money from another fund to cover the expense. In a way, it enforces a budget: You can only spend what you’ve got.

I spent quite a bit of time explaining fund accounting to Bob and the other accountants at the company. I didn’t make much progress. (I’m not going to go into the topic of helping CPAs understand basic layman’s accounting principles. I’ll save that for another article.) I settled for writing an article for the customer newsletter (the MoneyCounts Ledger) describing how to set up fund accounting using equity accounts in MoneyCounts.

But my research uncovered another shortcoming in MoneyCounts. There was no way to track contributions – an important task for church treasurers who have to provide reports to their contributors for IRS purposes at the end of the year. In the course of designing a program to handle this task, it grew into a full-fledged database management program for churches that included membership tracking, attendance, pledges, label printing, reporting, and more.

Help!
Needless to say, I needed help. In January 1989 while coding the Mac version of QuickVerse I interviewed and hired Steve Spencer, a recent Computer Science graduate from Bob Jones University in Greenville, SC. Steve was a native of Rockford, IL, so I knew he’d be no stranger to Iowa winters (a significant job hazard for programmers relocating from Southern California). Steve was an expert Pascal programmer. I brought him onboard to work on the program that would become known as Membership Plus.

Simultaneously, work was piling up on QuickVerse. We wanted to do version 2.0 by Christmas 1989. Version 2.0 would be a full “terminate and stay resident” version of the program which would permit the user to use his word processor and QuickVerse at the same time. I was working on both the PC and Mac versions. Kurt and I wrapped up the Mac version in April and I put him to work with Steve on Membership Plus. I felt Kurt’s Pascal expertise and the fact that he had some more programming experience would help Steve wrap up Membership Plus within six to nine months.

I needed help if we were going to keep all this afloat. Back at Rockwell I had worked with an electrical engineer by the name of Jeff Wheeler. I was the only “pure software” guy in our 70-engineer group. As a result, I tended to get involved in a lot of tasks. I needed someone to move things on to once they were well established and everything was working well. We hired Jeff to take my programming tasks on a major Defense Department communication system so that I could move on to the Fun Stuff.

Jeff had proven to be a quick study. He was meticulous and thorough. What was most disturbing is that he actually listened to what I told him about programming and did all the things that most programmers talk about but don’t actually do themselves – things like using named constants, meaningful variable names, abundant comments, data abstraction and more. As a result he had turned into quite a gifted programmer.

Over the course of 1989 I had tried to get Jeff hired into every spot that came open. I think I offered him some real jewels; he remembers differently. I remember offering him a shot at being responsible for bringing third party software products into the company and perhaps also director of IS. He recalls me suggesting a janitorial position and something on the assembly line in manufacturing. One of us could be wrong.

Late in the summer of 1989 I convinced Bob to let me open a programmer position in my department and I hired Jeff. Jeff’s job would be to learn all that was learnable about QuickVerse and eventually take my coding responsibilities on that project. Jeff started in August 1989. Our goal was to ship QuickVerse 2.0 by Christmas, but it became obvious that wasn’t going to happen. Instead, Jeff and I dove into researching how to create a stand-alone TSR program we’d later call the QuickVerse Companion. That program shipped around Christmas of 1989.

The Rush to the Mad Summer of 1990
We had felt for a long time that Christian bookstores offered an excellent channel for church and Bible related software. Bob had very little interest in selling software through stores. Our emphasis was on marketing direct to the consumer through magazine ads and direct mail. Computer software was not yet hot at retail, though some larger cities had dedicated software stores. Most people bought direct from manufacturers and magazines like Computer Shopper were read cover to cover by these early adopters of PC technology.

But we had a niche product that was targeted to the same people who shop in Christian bookstores. (Or so we thought. Turns out most people who buy software are men; most who shop in Christian bookstores are women.) As we researched the market we discovered the Christian Booksellers Association (CBA). Most of the better bookstores were CBA members. We were told that the premier event of the year was the CBA International Convention, held each year in July. Our best shot at getting QuickVerse into Christian bookstores was getting space at the CBA convention.

In the Spring of 1989 we had contacted CBA to find out about exhibiting. It turned out space was limited only to members of CBA, and that the convention was full. To get on the waiting list we had to join the organization to the tune of a couple thousand dollars. It seemed like a waste of money to join the organization in order to get on a waiting list and potentially still not be able to exhibit. But it was our only choice. In September 1989 we joined CBA and got on the waiting list for the convention. Early in 1990 we were notified that we had a booth.

Our plan was to announce QuickVerse 2.0 and Membership Plus at the CBA convention in July, then ship the products as soon as we got home. By this time, development on Membership Plus had been going on for a full year, certainly we’d be done by July. QuickVerse was in pretty good shape, though we were trying to negotiate additional Bibles (since QV 2.0 would support displaying up to four Bibles simultaneously!) and implement Strongs Concordance at the same time. While all this was going on, I was busy learning everything that we’d need to know about exhibiting at the convention. We’d need to buy a display of some kind and we hoped to have some kind of evening activity during which we’d demonstrate and launch our new products in a flurry of trumpets, flags and miscellaneous hoopla.

I’m not sure why in the midst of this chaos I thought I needed something else to do, but events were about to conspire against me to turn 1990 into a nightmare.

Enter Bible Illustrator
Early in 1990 I was contacted by Tony Tooley, author of a program called InfoSeek. InfoSeek was a program containing stories, quotes, jokes, and news items that related to or conveyed biblical principles. He had offered the program to NavPress Software, a division of NavPress publishing, but thought it would be a good idea to get another player interested. Tony wanted to distribute the product through one or the other of us in exchange for a royalty on the sales of the program. Initially, there didn’t seem to be much of a contest, as NavPress was offering way more than Parsons would consider. But I think I convinced Tony that we could sell far more copies of the program due to our larger customer base and active direct marketing efforts. I gave him the sweetest deal Bob would let me put together but in the end he took NavPress’s offer.

The exposure to Tony’s program had convinced me there was a need for something like this. I had seen advertisements for books of sermon illustrations and subscription services that offered illustrations on a monthly basis, but nothing in software. I knew the software itself was no big deal — a simple database with some specialized search capabilities and that’s about it. But the secret to success would be in obtaining access to as much content as possible to put into the program.

Coincidentally about that time I received a “card deck” advertising pack (about 100 postcard-sized ads in a cellophane wrapper) containing an ad for Sermons Illustrated, a bi-monthly subscription service offering 60 new sermon illustrations per issue. I contacted Jeff Carroll, the author, and we began discussions of licensing his material for use in a software program.

Pastor Carroll had purchased Sermons Illustrated from another pastor, who had about 15 years worth of illustrative material and a small database of subscribers to the bi-monthly updates. Pastor Carroll was negotiating with Baker to publish the back issues in book form, but those negotiations had not really worked out. In the end we agreed to acquire the back issues (about 2000-3000 illustrations) and contract with Pastor Carroll to distribute his subscription service electronically. He said he’d box up the back issues and send them to us.

It would be impossible to describe my shock upon receiving this material. I had anticipated receiving a couple thousand index cards that I’d have to have someone type or scan in to my program. Instead, we received two large boxes full of what were literally scraps of paper containing handwritten notes, newspaper clippings, and typed illustrations. The task of converting all this into electronic form fell to a couple of the secretaries at Parsons, who began taking this work home to work on after hours.

In the meantime, it was my job to come up with a program to contain all this information. I was on the road a lot at the time, so Bible Illustrator began its life beside a swimming pool (somewhere in North Carolina as I recall). With my laptop in hand I donned shorts and a t-shirt and sat back to begin coding. Ahh, this was the life… not a cloud in the sky, my laptop computer on my lap, iced tea beside me, and… rain! Suddenly from out of nowhere, I was getting soaked! I knew my Toshiba 3100SX was rugged, but in that split second I didn’t have time to think about whether or not they’d tested it under water. I jumped up and ran for cover. Immediately the rain stopped. Only then did I realize that the sprinkler system was the source of the water. Seems they water their plants and guests at the same time here.

Undaunted, I relocated my makeshift programming workstation to another part of the patio and after checking carefully for hidden plumbing systems, went to work. Now I realize that programming is a lot tougher now, what with Windows and all. But back in those days we were expected to implement mouse-driven, windowed applications in a DOS environment. There were no “class libraries” to ease the implementation of fancy user interfaces. If you wanted a drop shadowed window you drew every pixel of the border and the shadow and restored the former screen contents under the window when you were done. Anyway, Bible Illustrator was born late in April and shipped on July 31. Hey, I couldn’t waste all my time on BI, I still had coding responsibilities on QuickVerse!

1990 CBA Convention
There’s a waiting list to get into the CBA convention. Lots of companies are vying for a small number of openings each year. The show is big enough that it only fits at some of the largest venues in the country. New exhibitors are allowed one 10′ x 10′ booth the first year, so we were faced with trying to make a big impression from a very small space. In typical Parsons Technology style, we did this by buying more ad space than we had floor space in the booth.

One of the unique advertising opportunities at this convention was a TV show that was produced on-site each day, then broadcast to all the convention hotels. Each day a different 30-minute show was produced, featuring news from exhibiting companies.

Little did the viewers realize, of course, that the companies featured in the news stories were actually paying for the time. We bought the biggest package we could and got a couple minutes of commercials each day and one news story during the week.

One of the main problems with being a new exhibitor among 450 companies was getting people to find your tiny booth. We played off that with a series of commercials in which a couple of bookstore managers sought to find our booth. We found a couple who owned a bookstore who volunteered to play the part of our frantic buyers. We shot the commercial on the show floor the day before it opened to the public. The harried attendees struggled to find our booth on the huge convention floor, often running into each other heading in opposite directions, until they finally found us. The commercial was great fun and produced a lot of traffic.

To launch our three new programs we planned a 2-hour event after one of the first days of the show. At the event we’d demonstrate each product, and of course there’d be food and drink. We sent invitations to all registered attendees in advance of the show, and received a surprising number of RSVPs. We booked a small ballroom at the Hyatt in Denver and ordered up some cookies, coffee and punch.

As we talked to buyers during the show we mentioned the event and were surprised at how many said they’d come. We handed out hundreds of tickets and began to wonder if we’d planned enough food and space. I got nervous and called the hotel. Yes, the Grand Ballroom was available, and yes, we could get more cookies and punch. I doubled or tripled our order and had the room set up for 700 guests.

About 50 people showed up. Had we thought about it we could have figured it out. The show starts at 9 AM and runs until 6 PM. Most people are on their feet the whole time, going from booth to booth placing orders for products for their stores. Our event started at 7 PM, so there wouldn’t be time for people to eat. We were offering cookies and drinks — hardly a meal — and two hours of boring product announcements.

Somewhere in Denver a homeless shelter received dozens of “monster cookies” the next morning, and each of our staff members took a pile of cookies back to their room. I didn’t want to see another M&M monster cookie for months.


Remember, this article is copied and pasted from an old version of my site. At this point, the old article said “I’ll be back to tell more,” and I used the space below to take some notes on what happened in the years that followed. As you can see I stopped updating the list in 2002. The ownership changes became too frequent and confusing and I couldn’t keep up with them. In the meantime I had started Laridian and my interest in what was going on with QuickVerse was rapidly fading. So here are my notes through 2002…

1990: The rest of the story of Bible Illustrator, Membership Plus, and QuickVerse 2.0. Christian Computing Magazine and conventions.

1991: GreekTools, HebrewTools and the inimitable Larry Twitty

1992: QuickVerse for Windows

1993: PC Bible Atlas, Holman Bible Dictionary (Sometime in 1989 I had the idea to write a Bible geography program which would feature a database of every place in the Bible, with the ability to create maps by selecting places from the database and dropping them onto blank map backgrounds. (Bob will claim that this was his idea. I’ve learned not to question Bob, so if it comes up, I’ll admit that it was his idea.) It wasn’t until August 1993 that the program became a reality with PC Bible Atlas for Windows.)

1994: The ill-fated “QuickVerse” for the Newton MessagePad, QuickVerse 3.0, Membership Plus 2.0, The Geography Division, Intuit

1995: STEP is born, Membership Plus 3.0, HebrewTutor

1996: STEP books, GreekTutor, QuickVerse 4.0, Walk in the Footsteps of Jesus

1997: STEP books, Membership Plus 4.0, Ministry Notebook, Bible Illustrator 2.0, QuickVerse Multimedia Life Application Bible, Broderbund, loss of PTE, RIF.

1998: Membership Plus 5.0, QuickVerse 5.0. Purchase by The Learning Company, PalmBible and Laridian, my departure from Parsons.

1999: PalmBible continued; working from home. Laridian acquires MyBible. TLC bought by Mattel, Mattel sells Church Software Division to Findex.com. Only 3 of 30 original employees remain by the end of the year.

2000: Laridian participates with Microsoft in the launch of Pocket PC with PocketBible; MyBible CD-ROM product introduced to Christian bookstores; Laridian hires its first non-founding employee. Mattel sells what’s left of The Learning Company to Gores Technology; Findex falters on QV7. Findex fires the guy who replaced me (Bill Terrill).

2001: Findex fires its CEO. Laridian acquires PrayerPartner for Palm OS.

2002: Findex re-hires Bill Terrill. Memorize! for Palm OS and Pocket PC. More reference books. PocketBible retail product. Laridian hires former Parsons employees Michelle Stramel and Jim VanDuzer. Four bucks will get you a cup of Starbucks coffee and 100 shares of Findex stock.

What the Law Can’t Do

The purpose of the law is not to make people good, but to define what is wrong. Without law, nothing is “wrong” no matter how much it offends your sensibilities or deprives you of life or property.

Law does not make bad people good. Law does not change who people are, nor does it, by itself, change behavior. Law is not the solution — it merely defines the problem.

When Adam Lanza mowed down a couple dozen children and teachers in an elementary school, he was violating dozens of laws. If there had been ten more laws related to the type or source of the weapons and ammunition he used, or if the person from whom he stole the weapons had been forced to go through a more thorough background check, the same children would still be dead.

The existing laws didn’t heal Adam Lanza’s sickness, nor will more laws heal other people like him. The existing laws didn’t stop him from doing what he did. Laws don’t make people into better people.

Laws come into play after the fact. Laws don’t stop crazy people from doing crazy things. Laws don’t stop bullets in flight. Laws don’t cauterize wounds. Laws just tell us what happened after it is over. After the bodies are counted, laws tell us that what happened was illegal. If the perpetrators are still standing, we can punish them according to our laws. If not, then, well, we can’t.

We don’t need more law in the wake of Sandy Hook. We already have laws that define everything Adam Lanza did as wrong. We need to move on to defining the actual cause of this event, and recognizing that we may not be able to avoid such events in the future even if we accurately determine what caused them. We certainly can’t fix them with more law. And since Lanza and people like him plan to kill themselves in the process, we can’t fix them with more punishment. They call it “tragic” for a reason. We can’t bring back the dead, nor can we prevent it from happening again. We certainly can’t fix it by applying more of what we already have — laws.

Handy SQL Server Snippets

There are a few SQL Server tasks I do infrequently and always forget the syntax. I’m going to start collecting them here.

ALTER TABLE ExistingTable ADD NewColumn INT NOT NULL DEFAULT(0) WITH VALUES

This adds a new column with a default value of 0, and populates existing rows with 0 in the new column.

ALTER TABLE ExistingTable ADD NewColumn INT IDENTITY

This adds a new “auto increment” (identity) column and populates existing rows with values for the new column. The values are somewhat random but start at 1 and increment by 1.

INSERT INTO ExistingTable (Col1, Col2, Col3) SELECT Col1, Something AS Col2, Col3 FROM ExistingTable WHERE Conditions

This statement inserts rows into an existing table based on rows returned from the SELECT. If the SELECT clause specifies every necessary column in the same order as they appear in the CREATE statement that created the table, there’s no need to list them in the INSERT clause. In other words, it’s best to include the column names in the INSERT clause.

Fixing Mac OS X 10.7 “Lion”

Apple has a bad habit of hiring kids who have no concept of what came before them. This article helps you undo some of the changes they inflicted on Mac OS X in their attempt to make it “better”.

Reversing the Scrolling Direction

In 10.7, using the MacBook trackpad or the scroll wheel on your mouse will cause you to scroll in the opposite direction than you did previously. Instead of conceptually moving a view port over the document, you are now moving the document. This change was made to accommodate tablets and touch screens, where it seems more natural to use your finger to drag the document. However, rather than making the change apply only to touch screens, they changed all input devices. The result was that the screen appears to scroll backwards if you use a trackpad or scroll wheel.

To fix this, go to the Trackpad pane in System Preferences and uncheck the box for “When using gestures to scroll or navigate, move content in the direction of finger movement”.

Stop Apps from Reopening Previously Open Documents

One of the principles we use in iOS development is that the program should save its state so that when you re-launch it, it will appear as if you never left it. The reason this is essential on mobile devices is that historically they have managed memory themselves rather than depending on the user to close apps they are done with. Since the user never knows if an app has been removed from memory, it would be disconcerting if sometimes the app returned to a default state and sometimes it picks up where you left off.

With both Apple and Microsoft moving toward using their full desktop operating systems on mobile devices, they have begun to take principles that previously applied to small devices with limited resources and applying them to their desktop operating systems even if that doesn’t make sense. On the desktop, the user is the king of memory management. The user opens and closes documents and programs as his task requires. As a partial step toward the integration of mobile and desktop operating systems, the latest version of Mac OS X does two things: First, it saves the state of every app when the app is removed from memory, then restores it when it is re-launched. Second, it remembers what was running when you rebooted your computer, and resumes those programs when it boots up.

The problems introduced by this are myriad, but we can’t expect the little kids at Apple to know that, since for them new is always better and the past is for dead presidents and dinosaurs. For example, if I’m privately reviewing a spreadsheet containing everyone’s salary, then exit Excel, then the next day an employee brings me a spreadsheet for us to review together, when I open Excel the first thing the employee will see is my spreadsheet containing everyone’s confidential salary information.

Disabling this behavior is difficult but not impossible. First, go to System Preferences, select the General pane, and un-check the box for “Restore windows when quitting and re-opening apps”. You’d think this would be enough, but it’s not.

Next, you need to find the folder where Mac OS X saves application state and delete any existing state information. Otherwise, your programs will always restore whatever state was current when you unchecked the box on the Preferences pane. Unfortunately, this folder, which was visible in previous versions of the OS, has been hidden in 10.7. To make it visible, run the Terminal app (Applications > Utilities > Terminal) and enter the following:

chflags nohidden ~/Library/

Now select your Home folder in Finder and you’ll see Library. Open the Library folder, and scroll down to “Saved Application State”. Open that folder and delete everything it contains.

Just to make sure your apps don’t ignore the system preference and save their state anyway, go back to the Library folder, right-click on Saved Application State, select “Get Info”, and set the Sharing & Permissions for your user name to “Read Only”.

Final Thoughts Before the 2012 Iowa Caucuses

In a couple days, we Iowa Republicans will gather in churches, schools, and living rooms to elect representatives to our county conventions and county Republican Central Committees, propose planks for the Republican platform, and write a candidate’s name on a scrap of paper and drop it in a hat to select our candidate for President of the United States.

Iowa takes a lot of crap for being wholly unsuitable for the task of being first-in-the-nation to express its preference for candidates. We’re viewed as overall-wearing hayseeds, toothless meth-heads, and Bible-thumping religious nuts. In reality, only about 3% of our households are involved in farming. 70% of us live in urban areas, compared to 80% nationwide. Yes, we have three times more meth labs per 100,000 population than average, but the proportion of us who claim to be evangelical Christians (30%) is not much different than the national average (26%).

We’re whiter than the nation as a whole, but in 2008 Iowa white folks voted en masse for Obama, the nation’s first (half) black President. It might have helped that Obama’s color is only skin-deep. He had a whiter upbringing than I did — raised by his white mother and grandmother, he attended to the best private schools and graduated from Harvard. But here in the educated northern states, we don’t continue to hold the racial stereotypes our neighbors to the south cling to. We judge a man by the contents of his character, not the color of his skin. That’s why I had no problem voting against Obama in 2008, and to quote Ann Coulter, “I’d vote for Jeffrey Dahmer over Barack Obama” in 2012.

The winner of the straw poll held at the Iowa caucuses does not always go on to win the nomination. We gave Mike Huckabee the nod in 2008, and he went on to do little more than play bass in the Fox News Channel house band. But in five of the eight straw polls that have been held in Republican caucuses over the years, the winner in Iowa ended up being the nominee.

Despite doing better than the monkey score in predicting the nominee, I would argue that making the right guess at the final outcome is not our purpose. The reason for spreading the Republican primaries out over several months is to allow more candidates to affordably enter the race. Few of you have heard of Buddy Roemer, but he’s on the list of candidates being considered in Iowa. Guys like Buddy couldn’t run if they had to run a national campaign. By spreading the nominating process over a period of months, we allow underfunded candidates like Buddy (and Rick Santorum) to get a shot at the nomination.

Our job in Iowa is to thin the herd. After Iowa and New Hampshire, one or more candidates will drop out due to poorer than expected results. The remaining candidates will be able to focus their efforts and monetary contributions will be channeled to a smaller field.

You might think that having more candidates to choose from is a good thing, and that it’s unfair that residents of other states don’t have the same choice. But I’m not so sure. Sometimes more choice just means you throw up your hands and stay home on caucus night. Only 20% of registered Republicans in Iowa will show up Tuesday night for the caucus. When you consider that the ability to attend the caucus and vote in Republican primaries is the only reason to bother to register as a Republican, that number is startlingly low.

I could argue that going first is what isn’t fair. We spend a lot of time listening to candidates, taking their phone calls, and reading their flyers. We have to choose from a large number of (often similar) candidates. After carefully considering the options, we make a selection only to have our votes rendered moot when our winner fails to garner support in New Hampshire and beyond. You could argue that all our effort in 2008 was wasted when Huckabee dropped out. Going first isn’t everything it’s argued to be.

In the end, somebody has to go first. It doesn’t really matter if it’s Iowa or some other state. No state is “representative” of the entire country. Here in Iowa we take this responsibility (fairly) seriously (at least 20% of us do) and we set aside a cold winter night to gather with our neighbors at a poorly run party meeting to do party business.


All that having been said, here’s my take on the candidates.

Mitt Romney. Mitt is the de facto nominee. This is frankly disappointing. In 2008 we failed the country by nominating a Democrat-wannabe (McCain), giving voters very little on which to differentiate between the candidates. This year if all goes as predicted, we’re going to do it again. Romney can’t take Obama to task over healthcare, because he invented it. Romneycare in Massachusetts was, by everyone’s admission, the inspiration for Obamacare. Mitt’s been all over the map on abortion, immigration, and climate change, so he takes those issues off the table. Mitt’s been hanging out with another Republican-in-name-only, Chris Christie, and there are rumors of Christie being on the short list of VP possibilities for Romney. If Republicans put Romney/Christie on the ballot in November, there’s no reason for anyone to do anything but flip a coin in the voting booth. What a waste of an opportunity.

Newt Gingrich. I’d love to be able to vote for Newt. I’m not sure I can, though. He’s about 50 IQ points above Obama, but this causes him to say stuff that people don’t understand. It’s not that they’re incapable of understanding what he’s saying, but rather why he’s saying it. You have to listen to Newt for a whole paragraph, but the media expects short phrases. But even if you listen to him long enough to get his point, you’re left wondering about some really dumb choices he’s made over the years. In the end I think Newt had his run in the 90’s and he brings too much baggage to the campaign to be an effective option to Obama.

Ron Paul. I love what I know about Ron Paul, but I worry about what I don’t know. I’m with him 100% on domestic issues (again, at least to the extent that I know where he stands) and I’m willing to give him the benefit of the doubt on some of his foreign policy, but I’m concerned that I’m experiencing some cognitive dissonance. That is, I think I’m giving him some leeway on foreign policy because I like his domestic policy so much. Sometimes I hear him say things about Iran and I think, “What the…?” Given the options, though, there’s a good chance I’ll vote for Ron Paul and let New Hampshire do the hard work of knocking him out of the race.

Rick Santorum. Rick is benefiting from being the last of the conservative candidates to “surge”. The pattern to date has been for one candidate (generally the latest to announce) to surge in the polls, then fall out of favor once the media and the other candidates have a chance to bring their past foibles into the light of public scrutiny. As a result, Rick is going into caucus night on the rise. We won’t find out anything negative about him until next week. But as I look at his history I see a lot of disturbing news there. Rick has vulnerabilities in the area of earmarks and has some shady dealings with respect to where he was living vs. where he claimed to live when it came to getting a tuition deal for his kids in a private school. One of the things that is really odd is that he is a favorite of evangelical Christians, but he’s Catholic. As an evangelical Christian myself, I can tell you we don’t believe what Catholics believe on most days of the year. It’s odd that we set that aside on Caucus Tuesday. And religion wouldn’t matter at all (note that I didn’t point out that Romney is a Mormon) except that the reason we say we like Rick is because he holds to our positions on social issues, which are motivated by our religious beliefs. That having been said, Rick is either #1 or #2 on my list for Tuesday. He’s more conservative than Romney or Gingrich, and less scary than Paul.

Rick Perry. I bet Rick Perry is a great guy. I’d like to hang out with him at a Texas BBQ. But his deer-in-the-headlights reactions in the debates so far will kill him against Obama. I don’t care if he’s God’s Gift to America, if he folds under pressure in a debate, Obama will eat him alive. On top of that I don’t think he understands how strongly conservatives feel about illegal immigration.

Michelle Bachman. Michelle spews campaign slogans in a debate context. Of all the candidates, she comes across as more of a politician than I want to send to Washington this year.

Jon Huntsman. Jon didn’t campaign in Iowa. Any candidate who says they don’t care enough about my vote to make any effort to obtain it is not worth my consideration. He didn’t even run a TV ad here. I feel the same way about Jon as I did Rudy Giuliani in 2008: If you want my vote you have to ask for it. You didn’t ask. You don’t get it.


It is disappointing that we had the opportunity this year to really change things in Washington DC and take back our country. Our failure to nominate a truly conservative alternative to Marxist Barack Obama seals our fate. The United States is on its way to European socialism and the economic and political bankruptcy that goes with it. America as envisioned by the Founders is gone and there’s no way back to it. Even the America that I grew up in, as flawed as it was, is gone. When 50% of my fellow Americans can vote for a Marxist with a clear conscience, and when the other 50% are on the verge of nominating a good-looking socialist to run against him, I don’t see any possibility of a silver lining.

That having been said, we’ll give it a shot on Tuesday night and try to send you in the Other Forty Nine some options other than Mitt Romney.

Parcelable

General Description

An object that implements the Parcelable interface can be “flattened” for inter-process communication or, as is the case most of the time when I use it, for placing in a Bundle (which is a Java associative array or dictionary).

The documentation makes this seem a lot harder than it is. The sample code from the documentation pretty much covers it.

Implementation

1. Implement the Parcelable interface

public class MyClass implements Parcelable
    ...
    @Override
    public int describeContents()
        {
        // From what I've read on the Web, this function should always 
        // return this value. The documentation is very, very vague. I 
        // think this value is actually used only when the parcel really 
        // is a file descriptor.

        // return CONTENTS_FILE_DESCRIPTOR;

        // The sample in the documentation for a general object like mine
        // just returns 0 here.

        return 0;
        }

    @Override
    public void writeToParcel(Parcel dest, int flags)
        {
        // Order is important. The order here should be the same as the
        // is expected in the constructor

	// It sometimes comes in handy to write arrays of values. The 
        // syntax looks like this:

        dest.writeIntArray(new int[] {publisherID, bookID, section});
        dest.writeStringArray(new String[] {verseReference, anchor, TOCPath});
        dest.writeBooleanArray(new boolean[] {wasHyperlink, noHistory});
        }

2. Implement the CREATOR field

Again, the documentation is weirdly vague, but here’s what it looks like. Yours can look identical to this with the exception of “MyClass”, which is the name of your class:

    public static final Parcelable.Creator CREATOR = 
        new Parcelable.Creator() 
        {
        public MyClass createFromParcel(Parcel in) 
            {
            // Calls our constructor that takes a Parcel

            return new MyClass(in); 
            }

        public MyClass[] newArray(int size) 
            {
            return new MyClass[size];
            }
        };

3. Implement a constructor that takes a Parcel

The parcel will have been created with your writeToParcel() method, so it should read values back from the parcel in the same order that you wrote them out:

    public MyClass(Parcel in)
        {
        // Since we used some arrays to demonstrate the writeToParcel()
        // method, read them back here in the same order.

        int [] intData = new int[3];
        in.readIntArray(intData);
        publisherID = intData[0];
        bookID = intData[1];
        section = intData[2];

        String [] stringData = new String[3];
        in.readStringArray(stringData);
        verseReference = stringData[0];
        anchor = stringData[1];
        TOCPath = stringData[2];

        boolean [] booleanData = new boolean[2];
        in.readBooleanArray(booleanData);
        wasHyperlink = booleanData[0];
        noHistory = booleanData[1];
        }

Putting a Parcel in a Bundle

I often use Parcelable objects as parameters to an Intent:

    // Create the parameter object

    MyClass param = new MyClass();

    // Load it up

    param.publisherID = 3;
    param.bookID = 4;
    param.verseReference = "John 3:16";
    // etc.

    // Create the intent

    Intent intent = new Intent("com.laridian.pocketbible.DOSOMETHING");

    // Put the flattened parameter in the Intent and broadcast it

    intent.putExtra(getString(R.string.someparam), (Parcelable) param);
    sendBroadcast(intent);

Retrieving a Parcel from a Bundle

Retrieving the flattened object is no different than retrieving any other object from the Bundle. It will be un-parceled by the cast:

    MyClass reconstructedObject =
        (MyClass) intent.getExtras().getParcelable(context.getString(R.string.someparam));

Don’t store Parcels!

Parcels are not meant to be persistent. They are meant to have short lives, since the format could change between releases of the API/SDK/JRE. Don’t store them anywhere.

Externalizable

Introduction

Java supports two techniques for object permanence: Serializable and Externalizable. These two are related but different. Serializable is more automatic and less flexible. Externalizable is less automatic but more flexible. Serializable is rumored to be slower in some implementations than Externalizable. Because Externalizable gives me a lot more flexibility, I choose to use it exclusively.

Making a class Externalizable is relatively easy. It amounts to implementing two methods: One for writing the state of your object and one for reading it. It also requires that you provide a no-parameter constructor so the system can automatically instantiate your object prior to asking you to read its fields from the file.

By default, any change you make to your class (such as adding a field) will cause any previously serialized data to be incompatible with the class. To resolve this, I take over responsibility for all versioning, as detailed below.

Details

1. Implement Externalizable

Your class needs to implement Externalizable, which requires two functions:

    @Override
    public void writeExternal(ObjectOutput output) throws IOException
        {
        // Write the version number to output using writeInt().
        // Write the fields from your object to output.
        }

    @Override
    public void readExternal(
        ObjectInput input) 
        throws IOException, ClassNotFoundException
        {
        // Read and test the version number.
        // Read the fields of this object in the same order that you wrote them.
        }

2. Add a public constructor with no parameters

You need to add a no-parameter constructor to your class if there isn’t one already. It must be declared “public”. When reading your serialized objects, your object will be constructed using this constructor, then readExternal() will be called.

3. Define serialVersionUID

Add the following field to your class. This identifies the class so the serialization code knows what kind of object to instantiate in its readObject() method:

    private static final long serialVersionUID = 91089626578087866L;

The value of this UID is irrelevant, but it should be unique among the other serialized classes in your document. I use random.org to generate a couple random numbers less than or equal to a million, then concatenate them to create a random long. If you omit this step, the compiler will generate a UID for you, but since it’s based on the class signature it will change if you change just about anything in the class. This will cause an exception to be thrown when you try to deserialize a previously created file. So it’s best to define your own.

4. Manage changes to your class fields

Since you’re defining your own serialVersionUID, you need to completely manage version changes in your serialized file. I create another constant for this purpose:

    private static final int serializationVersion = 1;

In writeExternal() this is the first value I write to the file. When reading, I read this value and test it to make sure I understand the version of the file being read, then make decisions based on the version of the file I’m reading. I may have to supply default values for new fields added to the class since the file was written.

If I don’t recognize the version, I throw a new IOException with a description of the problem:

    throw new IOException("Unrecognized archive version");

5. Notes on writeExternal()

In writeExternal(), use writeInt(), writeBoolean(), etc. to write field values. For enums, use writeObject(). For Strings, use writeUTF(). For your own classes, use writeObject(), then implement Externalizable in those classes.

So You’ve Landed in a Cow Pasture…

I woke up early on Monday morning. The previous Friday afternoon I had been forced to land my Jabiru J250-SP light sport airplane in a Texas cow pasture when the engine quit. My friend Bill and I had flown to Tyler, TX, to visit childhood friends John and Becky. I tried to focus on having an enjoyable visit all weekend but the time had come to do the hard work of doing something with the airplane.

It was 5:00AM. I got thinking about how to move the airplane. Local rancher and fellow pilot Joyce Wilson, who was one of the first on the scene on Friday afternoon, had told me about a mechanic who might be able to fly right into the field and do the repairs on-site. I suspected, however, that the engine had seized up and couldn’t imagine replacing cylinders or the crankshaft while the cows looked on. And even if it could be fixed, I wasn’t real crazy about taking off from the cow pasture with an untested engine and having my only recourse for another failure be yet another risky off-field landing.

The more I thought about it, the more things I realized that I had forgotten to do. I hadn’t tried to pull the prop to see if it would even move (I suspected it would not). I hadn’t checked the oil to see if there was even any there (I suspected there was not). I had never tried to restart the engine — neither in the air nor after we had landed.

It was more likely that the plane would have to be trucked out. To do so, the wings would have to be removed. It’s a simple airplane, so I suspect removing the wings isn’t that hard. I had the service manual with me (we light sport owners travel with our service manuals, since we’re rare and it’s unlikely the shop at any airport we land at will have seen airplanes like ours before, let alone have a service manual). Surely the wing-removal procedure is in there somewhere. With the right tools and maybe six or seven helpers, I could probably remove the wings and push the plane up onto one of those flatbed tow trucks — assuming I could find someone with tools I could borrow, find six or seven helpers willing to drive a couple hours to the middle of nowhere, direct the tow truck driver to a place I can’t get to myself, then get him to drive four hours to the service center in Wichita Falls, TX.

I don’t often avail myself of our church’s prayer request email group, even though I run the list myself. But this morning it seemed like a good place to start. I literally had no idea where to begin. So at 5:30 AM I fired off a request for prayer that I’d be able to figure out the best way to get the airplane out of there. Having laid the groundwork for the rest of the day, and wanting to clear my head, I put on my running clothes and set out on a 7-mile run.

Bill was having breakfast when I got back. I had to drop him at the airport sometime before his 11AM flight back to Cedar Rapids. I wanted to call the Jabiru factory as soon as they were open, and I also wanted to call the Aircraft Owners and Pilots Association (AOPA) and ask their advice. And a chance call from Becky’s brother and fellow pilot Dave the night before had resulted in the suggestion to call my insurance agent. He thought they might cover the cost of moving the airplane.

Pool
My office at John and Becky’s house

I grabbed a cup of coffee and my iPad and headed to the back porch to start making calls. AOPA was not as helpful as I thought they’d be. In the past, they have provided a wealth of knowledge anytime I had a question about legal issues, medical certification, buying or selling an airplane, and more. My main question for them was how to deal with the FAA. The sheriff had called the FAA on Friday, and the representative from the local Flight Standards District Office (FSDO) had already been in touch with me, telling me not to move the airplane until they could inspect it. This didn’t seem right. Since there was no property damage on the ground, no significant damage to the airplane, and no injuries, there was no reason they should even have been called in the first place. I wanted AOPA to clarify that for me. Unfortunately, the best they could do was refer me to my insurance agent, who they said would be more familiar with procedures in this situation than AOPA was.

My insurance company wasn’t open yet. So I grabbed a few things I thought I might need when I got to the airplane, and Bill and I headed for the airport. My Navigon GPS program on my iPad sent us on the most bizarre route to the airport I could imagine, but we arrived around 9:30 and I said goodbye to Bill. I hoped his trip home would be less eventful than our trip down here.

By now the insurance agency (AOPA Insurance) was open, so I called and talked to Shelley, our agent. She wasn’t sure why the FAA was involved nor why they wanted to see the airplane. She said she’d send the claim through to our insurance company (USAIG) and they would contact me. I explained I was on my way to the airplane and it would be nice to hear from them soon so I could decide how to proceed.

Joyce had emailed me directions to her “Circle WC Ranch”. I figured I needed to go there first so that she could tell me how to get to my airplane. She had offered to loan me some tools or anything we needed to figure out what was going on. I wasn’t sure yet what was going to happen when I got to the ranch, or when we got to the airplane, but it was a 2-hour trip to the Circle WC so I figured it couldn’t hurt to head that direction.

On the way I called Jabiru to see if they had suggestions for transporting the airplane and to find out if their dealer in Wichita Falls was the right place to have the plane taken. Dad and I had talked about taking the airplane all the way to the Jabiru factory in Shelbyville, TN for repairs. I talked to Ben Krotje who recommended Lone Star Retrieval (LSR) for moving the airplane. I finally had my first hint on how to get the airplane moved. And he suggested calling US Aviation Group in Denton, TX (north of Dallas) for service instead of going all the way to Wichita Falls, TX (northwest of Dallas).

While I was on the phone with Ben, USAIG (my insurance company) called to tell me who would be the adjuster on my claim. It was 10:50 AM, a little over an hour since I had called my agent. I called the adjuster who said I could expect a call from “Richard”. When I asked who Richard was, he said “Richard is with Lone Star Retrieval. They will be retrieving your airplane and trucking it to the shop.” Now we’re making progress.

Twenty minutes later, Richard called and asked where the plane was at. He said he was putting together a team and they would be on-site in three hours. I asked him to have them call me once they’re on the road so I can give them detailed instructions on how to get to the airplane once I figured it out myself.

I love it when a plan comes together.

I called Joyce and told her we had a plan. She was finishing up some work on the ranch but said she was available the rest of the day. I should just come there and she’d have her ranch manager give directions to the LSR crew.

Circle WC Ranch Gate

After stopping for gas and lunch on the way to the Circle WC, I arrived around 2:30. The LSR crew called just as I got there. Ranch manager Jeffrey gave them instructions on how to navigate the farm roads to get to an intersection where Joyce and I would meet them. We figured we had some time before we needed to leave, so Joyce showed me around the ranch.

Horse Barn

The Circle WC looks to me like one of those weekend hobbies that gets out of hand. It started as a place to get away from work on the weekends but had grown into a business of its own. They offer commercial wild boar hunting and would like to expand into deer hunting. In addition, they entertain industry writers and other media reps who come to learn about Wilson Combat’s products. To support all of this they needed a lodge to house people overnight. The lodge has three bedrooms, each with their own bathrooms, a kitchen and bar, a spot reserved for a pool table, and a room to show off the Wilson’s taxidermy collection of animals taken from around the world. (I believe Joyce called it the “Dead Zoo”.)

Circle WC Lodge
Circle WC Lodge

I could’ve spent more time there but the business of the day was moving an airplane. Joyce said she’d go with us. In addition to the fact that she was the only one of us who knew how to get to the airplane, she reminded me that deer season had opened on Saturday, and that the deer hunters “aren’t necessarily the friendliest people in Texas”. Especially when you’re making all kinds of commotion and scaring off their prey. Not only were some of the hunters on her land, but she carries a pistol and knows how to use it.

We headed to the end of the 3-mile “driveway” to meet Steve. It was 3:00. Daylight Savings Time started the day before, so we had one less hour of daylight than the day we landed. I didn’t know how long it took to disassemble an airplane, but I guessed it might be longer than what we had left in the day. And we still had to get to the site.

The LSR truck was pulling up to the intersection just as we arrived. Joyce was leading the way and I followed in Becky’s SUV, which I had borrowed for the day. Steve was driving a tow truck pulling a flat bed trailer. He had just one other person with him, whose name I don’t recall. Both Ben (from Jabiru) and Richard (LSR) were sure that two people was plenty. Didn’t seem right to me, but they were the experts.

It was a 35-minute drive to the airplane, through two locked gates and miles of gravel roads. There was a shorter route, but it apparently involved crossing a rickety bridge, and Joyce didn’t think it was a good idea to drive a truck across it.

Arriving at the Airplane

Steve complained about the loss of daylight and wondered why Richard had thought it was a good idea to send them out on this job so late in the day. But he got to work right away, removing the dozens of screws that hold the various fairings on the airplane. He had a bag of little cloth bags with drawstrings. All the screws for a particular fairing went into a bag, then the bag was tied to the fairing and the fairing placed in the back of the airplane. Very organized.

Meanwhile Joyce had donned a pair of work gloves and leapt onto the back of the truck to retrieve buckets so we could drain fuel. Other Guy removed the sump drain from the left wing and started draining fuel. I felt bad that I wasn’t doing much to help, but I figured these guys knew what they were doing and I’d just be in the way.

To satisfy my curiosity, I tried pulling the prop. It was locked up tight. I checked the oil. It looked like there might be a little bit right on the tip. Hmmm. Maybe the lack of oil wasn’t the problem.

About an hour after arriving on site we were ready to remove the wings. Steve removed the nuts from the two bolts (TWO bolts!) that hold the wings to the fuselage. Other Guy supported the wing tip. Joyce was already supporting the flap. (Once it was disconnected from its shaft at the fuselage it had a tendency to bang into the rear window.) It took some pounding to get the forward bolt out, but within a couple minutes the wing was free. I held the strut while Steve removed the bolt that attached it to the wing, and the three of them carried the wing to the back of the trailer. MUCH easier than I thought it would be.

Removing the Right Wing
Right Wing Removed

The left wing was significantly easier to remove. The bolts came right out and within just a couple minutes it, too, was on the back of the truck.

The crew had placed the wings on the back of the trailer. I had assumed we would tilt the trailer and just push the fuselage up onto it. With the wings in the way, that would be impossible. Before I had time to think about it, Steve had pulled the truck over to the far side of the airplane and backed it up so the hoist was over the airplane. They attached straps to the main spar tabs and simply lifted the entire fuselage with the hoist and backed up until it was over the truck. It was almost as if they had done this before. (LSR is known for their ability to disassemble and move Learjets from wherever you are to their service center in Wichita, KS. I have a feeling they could move my little plane in their sleep.)

Preparing to hoist the fuselage onto the trailer
Hoisting the fuselage
Securing the fuselage onto the trailer

In the process of loading the wings onto the trailer, I noticed the lens was missing from the left wingtip position light and there was some paint scraped from the leading edge of the wing, as if we had struck something when landing. I had no recollection of hitting anything at all during our landing. I thought maybe the damage had actually occurred during our fuel stop, or perhaps one of the many cows who had been hanging out at a safe distance watching us load the airplane had attacked the airplane in the three days it had been sitting there unattended. To rule out the latter, I reviewed some pictures I had taken right after we landed. Sure enough, the lens was missing in those pictures, too. So the cows were off the hook.

Securing the Wings

To satisfy our curiosity, Joyce and I retraced our landing path. A couple hundred feet from the airplane we discovered a rather large thorn bush with a freshly broken branch. Lying on the ground next to the branch was the lens. Mystery solved. Apparently we struck this bush and it was stout enough to peel the lens off the position light and do some damage to the wing tip.

The missing lens

This resolved a feeling I had during the landing that we were skidding sideways to the right. Apparently the impact with the bush was strong enough that it turned us slightly left. Immediately after hitting the bush we went over a small hump and were briefly airborne. From our tracks on the ground, you could see that we were turning left after the hump.

I collected the lens as a souvenir and we returned to the truck, where Steve and Other Guy had finished tying everything down. Exactly twelve hours since I had sat in bed wondering how in the world I was going to move the airplane, and only two hours after arriving on site, we were done.

N57CE loaded on the trailer for the trip to US Aviation in Denton

I headed back to Tyler and the LSR crew took the airplane to their warehouse in Dallas, then to US Aviation in Denton the next morning. I stayed in Tyler the next day to consider my options. At that point I wasn’t sure if I was going to stay in Texas until the plane was done or go home and come back later. After talking to Scott at US Aviation, it was clear it was going to be at least 3 weeks before the airplane would be done. While John and Becky had extended an open invitation to hang out at their place, that would be a little too long. So I arranged a one-way car rental back to Cedar Rapids.

Wednesday I picked up my rental car and drove to Denton. I was able to catch Scott just before he left for the day and we took a look at the plane. He had opened the cowling just to see if there was anything sticking out of the engine, but had found nothing. He was going to have to open up the engine to figure out what was going on.

The wings at the shop in Denton
The fuselage at US Aviation in Denton

The next morning I traded my Tyler-to-Denton rental car for a Denton-to-Cedar Rapids car and made the 839 mile trip home in 12 hours, including two quick stops for gas.


When my engine quit at 4500′ my reaction was “now comes the easy part”. It’s the same now. The plane has been in the shop before with serious engine issues. Getting it there was hard. Getting it fixed is easy.

Flying it again, especially at night or over inhospitable terrain, will be unnerving. But I plan to make some improvements to our checklists and our preflight inspections and to never fly if I suspect anything might be wrong. I had ignored a mystery oil streak in Springfield. Never again.

I want to thank my friends at Cedar Valley Bible Church for their prayers on Monday morning. The retrieval plan just fell together. Whether it was directly the result of divine intervention or just life revealing itself moment by moment, having the the support of the folks at home definitely relieved the stress.

My passenger Bill handled the emergency situation with aplomb. He offered suggestions for where to land, was ready on the flap switch, and served as our designated pray-er while I was occupied with flying the plane. He was calm and didn’t add to the problem by being a distraction or requiring any kind of reassurance. He even paid for the fuel in Springfield. Can’t ask for a better passenger than that.

John and Becky and their daughter Katy put up with me for a couple extra days, loaned me a car which I promptly drove through all kinds of dust and gravel, and made me chocolate mint cookies — all while dealing with John’s health issues which were the reason for my trip in the first place. I love you guys.

And I can’t thank Joyce Wilson enough. She probably thinks she didn’t do anything. But throughout the weekend she was my ace in the hole. She went out on her own and tied down the airplane when we were expecting some wind and adverse weather. If I needed a mechanic, she knew who to call. If I needed tools, hers were at my disposal. When I needed to find the airplane again, she knew how to get there. If a deer hunter gave me crap, she was there to back them down. She had her work gloves on before the LSR guys, and instinctively knew what they needed and was there to hand it to them. If you’re going to glide your plane into a cow pasture in Texas, point the nose at the Circle WC Ranch.

Bill, John, Becky, and me

Forced Landing in the Jabiru

On November 4, 2011 I was flying my Jabiru J250SP light sport airplane to Tyler, TX with my childhood friend Bill Berger to visit our friends John and Becky Davis. I’ve known John since second grade (1967); Bill and Becky since seventh grade. John and I roomed together in college, and I was best man at his wedding. When Bill suggested we fly down to visit, I immediately said yes.

We stopped in Springfield, MO for lunch and fuel. The Jabiru has been using a little more than the normal amount of oil lately, so I was careful to check it. I added about a half quart and we took off for Tyler.

A couple hours later, about 45 minutes from Tyler, the engine started running rough. My first reaction was to simultaneously pull up on the controls to slow to our best glide speed and look outside for a place to land. A quick glance revealed we were over the west end of a rough-looking pasture carved out of heavy woods. Assured that we had options for landing should it be necessary, I turned my attention back to the engine.


View 33.404333, -95.013167 in a larger map

There’s not a lot to do in our little airplane when the engine is running rough. There is only a throttle control, no mixture or prop levers to play with. I pulled the carb heat lever in case the problem was carburetor ice. There was no change in RPM. About then a warning light came on, indicating low oil pressure. I looked at the engine monitor and noted that cylinder 3 was significantly colder than the other five cylinders.

About then the prop came to a sudden stop and the cabin went quiet. I have often heard the stories of the sudden quiet when the engine quits, but frankly it wasn’t that startling. Our Bose noise-canceling headsets minimize engine noise to begin with, and there was still the sound of air rushing past the airplane. And frankly, I wasn’t really thinking about how noisy it was or wasn’t.

The interesting thing about the engine stopping was what it did to my state of mind. I had been somewhat panicked, trying to find a solution to a problem that I couldn’t really identify and for which I had few options even if I did know what was happening under the cowling. Once the engine stopped, the problem of fixing it was solved. I no longer was trying to solve a rough-running engine using only the throttle, carb heat, and mag switch. Instead, I was landing an airplane — something I’ve done thousands of times (successfully, no less).

I said to Bill, “OK, now we’re going to land.”

Now a lot of people are confused about what happens to an airplane when its engine quits. “Did you just dive into the ground?” No. When the engine quits, the plane becomes a glider. It flies just like it did before, but there’s no power so you can’t climb. “So you float to the ground like a parachute?” No. You just keep flying, but you can’t maintain your altitude or go up. You can only go down. It’s like your car when you run out of gas. You can still steer, and if you’re going downhill you might be able to travel quite a while before the car stops on its own. An airplane without power from the engine goes “downhill” until it hits something or you land. You can still steer right and left. You can descend faster or slower by changing the pitch (point the nose up or down) but you can’t fly level or climb (well, you can climb a little but you’ll slow down and quickly lose whatever you gained).

An airplane has an ideal glide speed. You pull back on the stick (pitch up) to slow down or push forward (pitch down) to speed up. If you slow down too much the wings won’t be able to hold the airplane up, the nose will suddenly drop, and you’ll descend quickly until you pick up enough speed for the wings to fly. If you speed up too much by pushing forward on the stick, you’ll descend faster and give up altitude, which reduces your options for a landing site. In our airplane, when you are at the ideal glide speed you’ll go about two nautical miles (2.3 statute miles) for every thousand feet you lose in altitude. This limits how far you can glide. Of course these are ideal numbers; in reality you won’t hit that perfect speed all the time and every time you turn right or left you descend faster.

I had been pressing buttons on the multifunction display to locate the nearest airport. There wasn’t much nearby. I found Mt Pleasant, TX, which was 19.2 nautical miles south. We were at 4500′ MSL over terrain that was probably 500′ MSL. That gave me only about 3-5 minutes of glide time at best, which would be about 5-8 miles (again, at best) of range. I quickly eliminated gliding to an airport as an option, without bothering to do the math. And the field you’re over is better than the one a couple miles away, so this one was going to have to do.

We were over a gravel road. It was not a gravel road like we might think of back home in Iowa, but a private road that was probably used by the ranch to reach their herds. The piece of road we were over ran south then turned east. It was surrounded by open fields covered by some kind of scattered brush and a few small trees. I turned left to go back to the north end of the road as we glided down. I punched “7700” into the transponder to indicate an emergency and made a call on 121.5 MHz, which is an emergency frequency.

“Any station monitoring, this is N57CE, 19.2 miles north northeast of Mt Pleasant, TX, 3800 feet descending, engine is out, declaring an emergency.”

No response. I continue my turn to the north to come back around to line up with the farm road. I repeated my call and heard a response from ATC, who was talking to another aircraft: “… tell that aircraft to contact Center on 130.2 if possible”. Without waiting for the call I tuned to 130.2 and contacted the local Air Traffic Control Center.

Listen to a recording of the ATC audio from Fort Worth Center

I gave the controller our position. He asked the ominous question, “How many souls on board?” I responded, “Two” and tried not to think about the grim “heaven’s census taker” feel that question has. Center offered to find us a nearby airport, but by this time I had eliminated the road and we had turned east to land in the open field. I said something like, “We’re only about 500 feet off the ground. We’re in a single-engine airplane and our only engine is out. We will be landing here very shortly.” He asked if there were any roads or towns nearby. I glanced at ForeFlight running on my iPad. There were three small towns in our vicinity. The biggest of these appeared to be Talco, TX. I estimated we were about five miles east-northeast of Talco. Center asked us to call them from the ground if possible and let them know the outcome.

As we got closer to the ground I noticed a row of trees and brush running perpendicular to our path. It reminded me of how vegetation might grow along a fence row. It was sparse, but it formed a straight line across the field. Even though I couldn’t see a fence there, it was reasonable to believe one might be there. I pulled up to slow us down and to hold us off the ground as long as possible, while at the same time hoping it would be enough to clear the fence. I tried to imagine what hitting a fence might feel like and decided we could probably survive it; in fact it might slow us down and keep us from running into something more solid further along our path.

I aimed for a gap in the fence-line vegetation. As we got closer it was clear there was no fence, and shortly after we cleared that line we touched down.

The sound of the wheels on the rough ground was pretty loud. Shortly after touching down we apparently struck a thorn bush with the left wing tip. It stripped the lens off our position/strobe light. We wouldn’t actually realize we did this until three days later when we noticed the missing lens while disassembling the airplane to load it on a truck. Immediately after hitting the bush, we went over a small rise and all was quiet as we were airborne again for a second or two. Then back on the ground and rolling. I thought about applying the brakes but wasn’t sure how effective they’d be and didn’t want to risk any loss of control. We fairly quickly rolled to a stop.

I looked at Bill and said something like “That was interesting!” We gave each other a high five and expressed thanks to God for a safe landing.

I tried to contact Center but apparently they couldn’t hear me due to our being on the ground. But another aircraft responded and I reported we were safe on the ground, no damage to the airplane, and no injuries. He relayed that information to Center, who asked about our position. I located the GPS coordinates on the multifunction display and reported those to the aircraft to be relayed to ATC.

We secured the airplane and got out. We were in a large pasture surrounded by trees. The ground was uneven with clumps of grass and scattered small mounds like the one we had gone over that lifted us back in the air during our landing. Some 25-30 yards beyond where we stopped, the ground became very uneven. We certainly would’ve collapsed the nose gear had we gotten into that area. We could see cows in the distance. Fortunately none of those were along our path.

We walked around the airplane and found no damage. We wouldn’t discover the missing strobe light lens until three days later. Funny how you can look at something and not see it.

I called my wife and let her know the situation. Bill called John and Becky.

Within a few minutes a Beech King Air flew over at low altitude just west of us. We assumed they were looking for us. I turned the radio back on and made a call to the “aircraft overhead” and let them know they had flown past us. He started a turn to the right and asked me to tell him when to roll out of his turn. I let him know when he was pointing right at us and then called again when he was right overhead. He said he had confirmed our GPS coordinates and was going to relay them to ATC. I gave them my cell phone number to give to authorities so they could call us if needed. ATC asked him to confirm that nobody was hurt, which he did.

John called and asked what our plans were. We discussed having him drive up to pick us up. Since nobody had arrived to “rescue” us yet, we weren’t sure where to have him meet us. Our conversation was interrupted by a call from the sheriff’s department. She asked about the location of the airplane and I tried to describe it on a map by drawing lines between nearby cities. She confirmed that they had the GPS coordinates — the trick was getting the trucks to that location. “We know where you are; we just don’t know how to get there.”

I returned to John and suggested he drive to Talco to meet us. It would take him an hour and a half to get there. We had touched down around 4:20; now it was about 4:45.

For some reason, we thought it might help if we walked to a farm house we had seen during our maneuvering to land. I left a note in the plane and we set out. After walking about 20 minutes we figured out that the house was much further away than we thought. We turned around and headed back to the plane.

During this walk I called my dad to tell him about the situation. He and I own the airplane together. We assumed the plane would have to be trucked out. I couldn’t imagine trying to explain to some guy whose only qualification was that he has a commercial drivers license how to remove the wings and load this thing on his flatbed truck. Especially since I’ve never done it and have no idea how to do it. Dad said he’d call the Jabiru factory in Shelbyville, TN and see if they had any suggestions.

At 5:25 on our way back to the airplane we saw a helicopter circling the site. It had been just over an hour since we landed. They dropped down to a few feet off the ground and apparently determined we weren’t there. I regretted leaving the plane. (Rule #1 of survival: Stay where you are and let help come to you!) He departed to the east but then came back and went west. We later learned he was trying to figure out where the rescue vehicles were and how to direct them to us.

The sheriff’s office called again and asked about our location and if we knew of any roads that would get them close to us. It occurred to me that I had my iPad with me, so I brought up the Maps application, asked it to locate us, then sent a link to that location to the sheriff at his personal email address. I don’t know if that helped any, but it sure was handy to have such devices available — and for once in my life to have an AT&T signal when I needed it.

One of the interesting things we noticed was how easy it was to know if a passing aircraft or vehicle was looking for us. Our location was so remote that anytime you heard a noise that wasn’t a cow mooing you could assume it was someone coming to find us. We heard the helicopter coming back. They landed a hundred feet or so away. It was a medical evac unit sent out to find us. Bill went over and talked to them while I finished my email.

The chopper pilot told us they had been flying back and forth trying to find a way for the fire department and sheriff deputies to find us. They told us to sit tight and wait.

As the chopper was leaving a woman drove up on an ATV. She was Joyce Wilson. Joyce’s husband Bill owns Wilson Combat (www.wilsoncombat.com) and she is the Executive Director of the International Defensive Pistol Association (www.idpa.com). She and her husband operate a ranch just northeast of our landing site. Joyce is an instrument rated pilot and owns a Cessna 182.

Joyce had received a call from someone who had heard the GPS coordinates the sheriffs department was looking for and determined they were near Joyce’s ranch. She and her ranch manager Jeffery had set out on ATVs to look for us. We later learned there was a small army of locals on ATVs scouring the area to find us. After locating us, Joyce made some calls and soon many of them had found their way to us.

At 5:59, about an hour and forty minutes after we landed, I heard a sound on the road. I looked and saw a squad car, then two, then three, then saw the fire department truck leading the way. Trailing those four vehicles were several other pickup trucks and ATVs. We told our story to each of the deputies so they could fill out their paper work. Everyone expressed their amazement that we could survive such a harrowing event.

The lead deputy insisted on calling the FAA, which Joyce and I both felt was unnecessary. This tied them up for quite a while, and nothing else was really happening. I remember saying at one point, “We either need to order up a keg and some pizzas or we need to leave.” Given how hard it was for everyone to find us, we opted for leaving. Bill and I unpacked the airplane and transferred everything to two of the sheriff’s vehicles.

As we were leaving, the FAA called and had some questions, which I answered briefly and factually. I’m still not convinced it was necessary, and was disappointed the deputy had chose to involve the federal government. He told me I couldn’t move the plane until they visited the site and said it was OK.

I told him that the locals had trouble finding us even when they knew the area. There was no way a bureaucrat from Dallas was going to be able to locate the airplane. Furthermore, there was no damage and nobody was hurt. We weren’t obligated to report what was essentially just an off-field landing. We settled on me sending him some pictures, which I said I would do after consulting my attorney. (He never asked again, so I never sent the pictures.)

Bill and I each got into a deputy’s vehicle and we drove to Talco — about five miles as the crow flies but two or three times that on the ranch roads we had to follow to get to the main road. It took 30 minutes to get to the Exxon station that is Talco, TX, where John was waiting to drive us to Tyler.

Lessons Learned

There are two psychological surprises for me. First was the sense of relief and calm that came when the engine died. The rough-running engine was more stressful than the sight of the stopped prop. Once the engine stopped, my options were narrowed to one: Landing.

The second unexpected response was the disappearance of confidence I have in the Jabiru engine. This was actually the second engine failure we’ve had. The first engine lasted about 60 hours before a piston failed. My dad discovered that problem while taking off one day. The engine just didn’t seem right, so he aborted his take-off just before lifting off. The replacement engine they sent us had experienced the same problem during its initial testing after being mounted on a new airplane. They replaced the engine on that airplane, then replaced the failed piston in the bad engine and sent it to us. They assured us the replacement was like new, but then our last “new engine” (which really was new) had failed after only 60 hours. So we’ve owned two Jabiru engines: One that failed catastrophically after 60 hours, and one that failed catastrophically after 2.5 hours and again after 480 hours. That’s an average of 180 hours between catastrophic failures. At that rate we can expect a forced landing in a cow pasture every 18 months. It’s difficult to imagine what they can do to turn what appears to be a problem engine into one in which I can have confidence.

Additionally, I have come to some resolutions with respect to flying. First is to remember to pull the checklist even though it doesn’t seem necessary. While it wouldn’t have helped me restart the engine in this case, it would’ve reminded me to turn off the fuel, mags and maybe open the doors before landing. While neither of these proved necessary (we didn’t catch fire and we didn’t bend any metal causing the doors to become jammed shut), there might have been something on there that would’ve either solved the initial problem or prevented a problem on the ground.

Second, I want to add some suggestions to the engine-out landing checklist, such as looking for civilization and landing somewhere near it. It would’ve been a little easier had I turned toward Talco so we could’ve walked to the Exxon station instead of requiring helicopters, local residents, and deputies from two counties to spend an hour looking for us. (In retrospect, however, landing options were not as plentiful to our west, toward Talco.)

Finally, I want to develop an “after a forced landing” checklist that includes instructions on how to locate your GPS coordinates (not straightforward on our system), a suggestion to do a complete “pre-flight” inspection after landing to check for damage, and a reminder to stay with the airplane no matter what your shell-shocked brain tells you about how close you are to that house you flew over.

Read about the retrieval of the airplane from the field and its trip to the repair shop.

We’ve been mentioned on the interwebz: Listen to the guys at www.uncontrolledairspace.com chat about our off-field landing: MP3 of podcast #263. Fast-forward to around 58 minutes if you’re in a hurry.