Serendipitous Programming

Today I’ve been working on a new feature for PocketBible for iOS and one thing led to another, and, well, I ended up implementing a feature I didn’t know I was working on, and didn’t realize how much of it was already sitting there, waiting to be exposed to the user.

So the new feature I thought I was working on is the ability to “rename” your highlight colors. That is, you’ll be able to assign a topic to each color. Then when you highlight a verse, instead of seeing a list containing “Khaki”, “Cornflower Blue” and “Hot Pink”, you’ll see “Salvation”, “God’s Love” and “Prophecy”. We’ve been wanting to implement this for a long time. While we were upgrading our cloud synchronization protocol over the last few months, I added the ability to sync highlight color names with the server and we took advantage of that in PocketBible for Windows Phone and Windows Store. The plan has always been to roll that into other platforms as we have the opportunity.

While looking through the code that shows you your list of highlight colors (which I’ll have to modify to show you your user-defined names for those colors) I stumbled into a bit of code that Jeff wrote years ago but then “commented out”. (If we have code that we’d like to retain for reference purposes but don’t want to actually have the computer execute, we turn the code into a “comment” so it will be ignored by the compiler but still be there if we want to see it.)

Those of you who have been with us for a while know that Jeff was my programming partner for 27 years before his death from cancer in May 2012. It’s been a bittersweet year as I’ve had to deal with his passing while surrounded and immersed every day in code that he wrote. I keep running into little things that remind me of him, make me want to give him a call to talk about a problem, or give me a chuckle. So it’s always interesting when I run into a piece of code like this.

What this particular piece of code did was add three additional highlighting styles to the list of colors you can highlight with. These are “underline”, “strikeout”, and “underline+strikeout”. Those look like this, this, and this, respectively.

Now, why would you ever want to strike out a verse? That’s a good question and takes me back fifteen years to the days of the Palm operating system when cameras were cameras, phones were phones, and “portable digital assistants” were all the rage. In those days, color displays were luxuries that cost money, size, weight, and battery life. So most of those devices had monochromatic screens.

On color screens, we could highlight a verse with a background color. But what could we do on these black and white screens? Since our text was coded in HTML, and since HTML offered simple styles like bold, italics, underline, and strikeout, we decided to use those. We ended up not using bold and italics because they could cause the text to re-wrap when they were applied, and in those days of wimpy processors, it just took too long and was disturbing to see. That left us with underline and strikeout, so that’s what we used.

As time has gone on, we’ve gotten to where we don’t even include these underline and strikeout highlighting styles in our programs. They’re not in PocketBible for iOS, and we weren’t planning on implementing them in PocketBible for Android. Unfortunately, some of you who were around back then and have sync’ed your highlights from your Palm PDA to PocketBible for Windows to our server and to PocketBible for iPhone expect to see those underlines. So we have to at least be able to display them if they exist, but we don’t let you create them (because we don’t want to proliferate a bad idea).

What I discovered today was Jeff’s original code for being able to create underline, strikeout, and underline+strikeout highlights in PocketBible for iOS. His comment said he had taken them out because the display engine (my code) didn’t support them. Sometime between then and now I implemented those highlight styles but we just never went back into Jeff’s code and turned those choices on.

On a whim, I enabled those lines of code and what do you know — they worked! That put me in the awkward position of trying to decide whether or not to leave them in. I never liked the idea of striking verses from the Bible, and even once you get over that, it makes the text hard to read.

About then it was time for dinner and I set the laptop aside to meet my wife and get something to eat. On the way there it occurred to me that we now have some better styling options that we had back in 1998. New versions of HTML with CSS support dotted and dashed underlines.

When I got home I spent about 30 minutes and implemented the styles you see here. These new styles replace the old styles rather than adding to them. So where you had strikeouts, you’ll have dotted underlines. And where you had strikeout+underline, you’ll have dashed underlines. I think this is a nice way of making your legacy data from your Palm days more usable and it gives you three more highlighting styles to use in PocketBible for iOS. (If you’re having trouble making out the dots and dashes, click on the screen shot to see the original size image.)

One of the cool things about this is that the underlying data storage and cloud synchronization already supports it. We’re not changing the data we save, but rather the interpretation of the data. So nothing changes in any of the other platforms nor on the server.

What I think is special about this — even though it’s not a life-changing feature — is that Jeff left it behind and it only took a little extra work to make it useful. And I like that all the infrastructure both for storing the new highlight styles and displaying them was already there.

Tomorrow I’ll get back to work on naming your highlight colors. But this was a nice little one or two hour detour to give us an unexpected new feature in PocketBible.

PocketBible for Mac OS: Design Principles

PocketBible for Mac OSWhile it may not be evident from the outside, there are certain philosophies, both of Bible study and software design, that strongly influence each of our Bible study apps regardless of platform. While we’re not at a point where we can give a concrete demonstration of PocketBible for Mac OS, we can talk about how those philosophies will influence our work.

In no particular order:

You should spend most of your time in PocketBible wrestling with the Bible text, not with your Bible software. This means that frequently accessed functionality should be immediately available, and that you shouldn’t have to deal with overlapping windows that obscure the text you’re trying to read. You shouldn’t be thinking about how to arrange things on the screen or how to access basic functions like navigating to a verse or creating a note, but instead be thinking about what you’re reading and how it applies to your life.

While we should consider specific use cases and how they are served by our design, we shouldn’t design around the use cases. We think a lot about all the things you might want to do with your Bible software, like search for a word, compare Bible translations, and view a commentary on a passage. This list of ways that you use our software defines a set of “use cases” (or “user stories”).

Informally, a “use case” or “user story” is a combination of a specific goal (“User must be able to search the text for a given word or phrase”) and a description of the steps or interactions with the program necessary to meet that goal. Programmers use these use cases as part of validating that their solution meets the user’s requirements.

Some Bible software companies make the mistake of creating new user interface elements for every use case. In these programs, when you’re in “search mode” the program looks and behaves differently than it does while just browsing through the text. When you want to compare two translations of the Bible, the second one pops up in a window that may obscure a portion of what you’re reading, and which doesn’t have all the functionality you have in your “main” Bible. And the only way to view a commentary might be to split your Bible window to show a commentary beneath it, with no consideration given to how you might open a second commentary or that you might not want to lose space for Bible text when viewing a commentary. And while you might consider “commentaries” and “dictionaries” to be just “reference books” and expect them to work similarly, the program might display dictionaries in the form of pop-up windows when activated for a particular word, covering other text and behaving differently than commentaries, devotionals and other reference books.

We will try to create a flexible user interface where, for example, search results, bookmark lists, lists of notes, and other “lists of verses” share a common user interface component or pattern, and where opening a Bible to compare to the current one is no different than opening a dictionary, commentary, devotional, or any other book. There’s less to learn and there are fewer surprises.

PocketBible for Mac OS should not necessarily look like PocketBible for Windows, PocketBible for Android, or even PocketBible for iOS. While it should share a lot of design, algorithms, and even code with those platforms, it should look and feel like a Mac app, not a Windows app ported to the Mac or even an iOS app ported to the Mac. We like to take the best features of all our previous apps and combine them with fixes to the mistakes we made in previous apps and wrap them in a user interface that is consistent with the other apps on the target platform.

Mac users should not feel like they are being accommodated, but rather that Laridian considers Mac to be a primary platform for its products, and PocketBible for Mac a flagship product. We confess that we treat certain platforms as second-class citizens. For example, both our BlackBerry and webOS apps were “Bible only” apps, and neither shared the LBK file format used by our other apps. BlackBerry was primarily an enterprise (business) platform, and the future of webOS was always doubtful. This made it difficult to commit the time and money to those platforms that would’ve been necessary to really do them right. Mac OS is different. It is our intention to make it difficult to tell if we’re “Mac people” or “Windows people” because of our level of commitment to both platforms.

PocketBible for Mac OS will focus on the needs of the 99% of Christians who are neither “clergy” nor “Bible scholars”. Most of our customers occupy the pews on Sunday morning and work in secular jobs during the week. While many are Sunday School teachers or Bible study leaders and a few are pastors, most are simply everyday Christians with a love of the Bible. Some have some experience with Greek or Hebrew, but most don’t do their daily devotional reading from the Greek New Testament. PocketBible for Mac OS may include resources like the Greek New Testament and meaty, scholarly commentaries, but its focus will be on concise, accessible works that help the average Christian understand and apply the teachings of the Bible in their daily walk. It’s not that we have a disdain for the original languages, but rather that, as Bible software users and everyday Christians ourselves, we understand there are people out there who understand those languages significantly better than we do, and it’s better, faster, and easier for us to read what they’ve written in English about the Bible than to depend on our own spotty and questionable original language knowledge.

Of course, the 1% of you who dream in Greek will want a different Bible study app. PocketBible may not be for you. We understand that; you’re not our target user.

Given a choice, we will take functionality over complexity; usability over displays of our technical prowess, and simplicity over beauty. We’re not trying to solve every problem in the field of computerized Bible study, but instead we’re trying to provide a tool that can help you solve the most common problems you encounter in your everyday study of the BIble. We’re not trying to flex our programming muscles to win your admiration, but instead give you something you can be expected to use and understand with minimal learning time. We feel that beauty is often only skin-deep; that simplicity and elegance are beautiful in their own way. You may find another girl who looks prettier, but PocketBible is the girl you want to take home to meet your parents and be with forever.

We hope this helps you understand more about how we think about Bible software, how we try to focus on the way you study the Bible, and that you can see how that is implemented in PocketBible for Mac OS X.

Jeff Wheeler


Craig and Jeff at Coffee Emporium, May 7, 2010

My friend and Laridian co-founder Jeff Wheeler passed away this morning, the victim of a rare and particularly aggressive form of cancer. He was 49.

Jeff and I worked together for 27 years at three different companies and founded Laridian together. The features that you love in QuickVerse and PocketBible and which you often praise me for were likely Jeff’s ideas and his doing. If I didn’t build on Jeff’s foundation, he would dig me a new foundation while I was paying attention to something else. He was my sounding board and my reference library. While being all this to me, he still managed to deeply impact his family for Christ and touch others through his home school choir, his leadership in his local church, and his service to his denomination’s state board.

Men like this do not pass this way often. Well lived, Jeff.

We’re not virtual anymore!

If you’ve ever visited the About page on our website in the past, you may have read:

This is as close as you’re going to come to visiting our “facilities”. Laridian is a virtual corporation where employees work from their homes. Currently we’re spread out over three states. We rely heavily on electronic means of communication, though those of us working in our hometown of Cedar Rapids, IA frequently meet in person just to keep from going crazy, if nothing else.

Well, times have changed and we’d like to officially announce that we have left our home-based, coffee shop, Skype’ing days behind us for a physical location where we all work together in one office in Cedar Rapids, IA. Yes, there are a few unhappy coffee shop owners in the area but for Laridian it has been a great move. We all loved the perks of working from home (i.e. optional showering, work in your pj’s) but now, having tried the alternative, we have to admit that there are some definite advantages to working together in the same building. We’ve already seen improvements in productivity in every area of the company. And as far as communication goes, we only have to get up and take a short walk to find out what is going on with a co-worker. We’ve replaced our “virtual” reality with a “new” reality that isn’t half bad and might just be worth having to take a daily shower.

Why the change? Until this summer we had used a number of outside contractors and companies to create the books and Bibles that go into PocketBible. When this process was working, it worked well. But recently, two of our best outside contractors had changes in their situations that robbed them of the free time they were devoting to tagging books. As a result it was taking longer and longer to get finished books. So we decided to bring this operation in-house. In addition to having more control over the schedule, we thought it would be easier to manage.

When putting together the budget for the new employees, we decided to include office space, office furniture, computers, internet connections, and everything else we’d need to operate a “real” office. It turned out the cost wasn’t really that bad, and the benefit of having the new people sitting right next to seasoned veterans made training a breeze. So we rented some office space close to Craig and Jeff’s house, then hired the editors. The result is that you saw more new titles from us in the last quarter of 2011 than in some previous entire years.

Just this month, the last of our home-based employees moved into the office with us. Yesterday, we made it official by putting a sign up on the door telling the world (and the FedEx driver) we’re here. So you won’t find us out in the virtual world any longer – we’ve come down to earth and we hope it will be for your benefit.

Laridian and the Better Business Bureau

About a year and a half ago we let our Better Business Bureau (BBB) membership expire. We had been members since 2000, and were some of the earliest members of their “BBBOnline” program that sought to separate the better businesses from the scams that are so much a part of online life. At the time we joined, we paid $310 to join the BBB itself and another $225 for the BBBOnline program.

From the beginning, it was clear that the BBB was just a consumer con-job. From the fact that it has absolutely no power nor willingness to involve itself in resolving disputes, to the minimal requirements it places on its members, to the shoddy paper membership certificate it sends you to “display proudly”, the BBB is little more than an organization that shakes down businesses for $350+/year with vague offers of increased credibility while offering those businesses and the consumers whose interests it claims to represent little in return.

Now, ABC News is reporting here and here that the BBB is little more than a pay-to-play scam, where the terrorist organization Hamas received an A-minus rating, while Wolfgang Puck’s restaurants get F’s. The difference? Hamas (or at least, a blogger claiming to be Hamas) pays their dues. Wolfgang Puck does not.

I went back through my records and found three complaints in the ten years or so we were members. One complaint was from a customer who had purchased from us twice. The second time he claimed to be a new customer and as a result his new purchases ended up in a separate download account from his old purchases. However, when he logged in to download, he logged into the old account rather than following the login instructions in the confirmation email we sent him. This kind of thing happens fairly regularly, of course, and we’re always able to handle it through tech support. This customer, however, contacted the BBB before contacting us. Once he contacted us, of course, we resolved his problem instantly like we always do.

The second complaint was from a customer who had purchased a Bible but not the PocketBible program that was required in order to view the Bible. Again, instead of contacting us when he couldn’t view his Bible, he contacted BBB and filed a complaint. By the time we received notice of the complaint several days later, he had contacted tech support and the problem was solved within hours — all before we even received his BBB complaint.

Complaint number three was similar to the first. Customer orders a Bible but no reader. We tell him to buy the reader, which he does, but now claims the Bible is not on his download page. We log into the customer’s account, and there it is. We write back and tell him “it’s the third one from the top” and he files a complaint with the BBB. Again, problems like this happen from time to time, but we’re always able to solve them without any help from the BBB.

Unfortunately, when you look at our BBB status report, all it will tell you is that we’ve had complaints. It doesn’t say that they were all from customers who technically didn’t have a claim in the first place. It just says they were “resolved”. (Since we haven’t had any complaints in the last three years, our current report will say “no complaints”.)

My one big experience as a consumer using the Better Business Bureau was a complaint against a competitor who was advertising their software as “the only true PDA Bible study software”. I felt this claim was demonstrably false, since there were dozens of PDA Bible study programs available at the time. BBB is very particular about advertising claims. You can’t say things like “discounts up to 50% off” or even “lowest prices in town” (the latter is OK only if you can exhaustively demonstrate that it’s true). So I felt the claim that this company had the “only” Bible software was simply false, and since they were BBB members, the BBB should hold them responsible for their clearly false advertising.

The BBB forwarded my complaint to the company, and the company replied that their software contained Greek and Hebrew lexicons, and therefore was the only true Bible study software for PDAs. I wrote back with a list of six Bible programs that included Greek and Hebrew lexicons for the same mobile platforms as this competitor supported. That was the end of the discussion. The BBB didn’t do anything against the company even after an advertising review. The whole issue was simply dropped.

In 2004 we did a customer survey. We selected several hundred people who had purchased within the last week or two and presented them with a list of certifications like “Better Business Bureau”, “BizRate”, “Verisign”, “Verified by Visa”, “Good Housekeeping”, etc. We asked how important each of these were, and if any of them were instrumental in their decision to purchase from us. Here are the top four, in order from most important to least important:

  1. Verisign
  2. Verified by Visa
  3. TrustE
  4. BBB Online

Ironically, at the time, neither the Verisign nor Verified by Visa logos appeared on our site yet customers told us the appearance of those logos is what changed their mind about ordering products from us. (The exact question was: “I was uncertain about ordering from Laridian until I saw this certification.”) More importantly, these imaginary logos were more important (by a factor of almost 2) than the BBB certification that was actually on the site!

So a year and a half ago it seemed abundantly clear that (1) very few people were actually making use of BBB; (2) those who did make use of it were actually making baseless claims that were solved by tech support without help from BBB; (3) all claims, regardless of how specious, were counted against us regardless of their resolution; and (4) customers weren’t relying nearly as much on the BBB certification logo as they were on certifications which they only imagined seeing on our site. We explained all this to our BBB rep and told them we’d be willing to sign up for another year for $30 instead of $365. (We figured it might result in one or two more sales over the course of a year, so $30 seemed more than fair.) They declined our generous offer so we let our membership expire.

We hesitated to mention publicly that we had dropped our BBB membership because we were afraid of what that might imply. But now that the facts about the BBB have finally come to light, I think it’s safe to let you know that despite our current “A” rating and being complaint-free for the last three years, we are no longer paying protection money to this particular gang.

Laridian’s Jim VanDuzer: First Responder

So we’re at Jim’s place in Pennsylvania this week, having our annual board of directors meeting and doing a little skiing at Blue Mountain. Jim’s on ski patrol there, which requires that he receive training as an Emergency Medical Service: First Responder. We’re on our way to the local Panera Bread to drink some coffee, tap their WiFi, and have our second session of meetings.

As we’re approaching the mall we come across a very fresh accident. The driver of a mini SUV has apparently run a red light and been clipped by a semi, causing the SUV to spin and the driver’s head to break out the driver’s-side window. Jim pulls over, grabs his med kit and heads to the scene to offer assistance. There he finds that the driver is covered with broken glass and is bleeding from a cut on her ear. Pictures after the break…

Continue reading “Laridian’s Jim VanDuzer: First Responder”