Posts Tagged ‘Programming’

Trevor McKendrick is an atheist who wrote one of the top-selling Bible apps for iOS. A former Mormon, McKendrick saw an unserved niche market on the App Store and created a Spanish audio Bible to fill it. Now he’s banking over $100,000 per year selling the app. He compares the Bible to Harry Potter and describes Christians as people who learn the spells in the book and try to use them to heal their children. He compares them to people who teach The Lord of the Rings as real history.

Does it make any difference whether or not the people who create the products you use for Bible study agree with the materials they publish?

When I started writing Bible software in 1988 there were very few other products on the market. I purchased the King James Bible from Public Brand Software, a distributor of freeware and shareware programs for MS-DOS. While browsing their catalog (paper catalog — this was before the Web) I saw a Bible program called WordWorker and picked up a copy of that, too.

WordWorker was pretty impressive compared to other programs available at the time. My problem with it was that the programmer who wrote it was associated with The Way International, which denies key teachings of historic Christianity and adds a few of their own. They encourage severing ties with family and friends and living with other “believers” instead, which many argue qualifies them as a “cult”.

Coincidentally I had been unsuccessfully recruited by a member of The Way while in college. Noticing a strange-looking guy observing me playing pinball at the student union, I struck up a conversation and bought him a couple games (he had never played pinball). He invited me to join his “twig fellowship”. As a brand new Christian with very little foundation in the Bible, I struggled with figuring out if this was God’s direction or not. Fortunately I dodged that bullet, and got involved with a local church that had a strong emphasis on the Bible and Bible study, which is what eventually led me into developing Bible software.

It was difficult to get excited about using WordWorker because I felt like I was supporting a cult. Even if it coincidentally met my needs, it was hard to recommend to others or even use enthusiastically because I knew where it came from. One benefit of using Bible software that comes from a person with whom you share a common faith is that you don’t have to feel guilty about supporting something with which you disagree. You and I may not agree on every fine point of doctrine, and we may not share a common worship style preference, but I bet we’re closer to agreeing with each other on the fundamentals of the faith than you would be with an atheist.

I originally wrote my Bible study software as a tool for myself to use. Its features were designed to meet my needs, which I obviously knew well. I didn’t have to do any research to figure out what people who read the Bible wanted; I wrote what I wanted.

I took my Bible program (QuickVerse) to Parsons Technology in 1988, where, over the next ten years, I employed a couple dozen different programmers. Not all of them were practicing Christians, but they were good programmers. Jeff Wheeler (who would later leave Parsons with me to start Laridian) and I led the development of the program. Both of us were Bible-believing Christians who were not just developers, but users of the program.

Having real Christians write your Bible study app guarantees that it is designed to meet the needs of someone who really studies the Bible.

Parsons Technology was not a “Christian company”. It was a plain-old software company that happened to have a Church Software Division that published church management and Bible study software. Parsons was eventually purchased by Intuit (1994), which sold us to Broderbund (1997), which was purchased by The Learning Company (1998), which was purchased by Mattel (1999), which sold the Church Software Division to a dormant company that was rumored to have previously been a booking agency for Las Vegas acts (2000). During those years we were faced with a number of demands from our pagan overlords that compromised the quality of QuickVerse. They saw “unserved niches” on store shelves and wanted us to create products that were just old versions of QuickVerse with a new cover. They weren’t interested in meeting needs, but in making money.

This was the final straw for me. When it got to where creating Bible software was about duping people into buying old versions of our program at a cheap price because BestBuy or Costco was looking for 25-cent CD-ROMs to fill an end-cap, I bailed out and started Laridian in 1998.

Our goal has always been to focus on our customers and our product, not on creating a company to sell to the highest bidder. The features and reference materials you see in PocketBible come from customer feedback (and from our own needs as our product’s first customers). We bristle at doing things like renaming our product “@Bible” so that it pops up first in alphabetic search results on the App Store, or calling our program “Bible App” to cause it to come up first when you do a generic search for a Bible app, or seeding the store with identical products, all with different names, so it appears more often in your search results. This is what marketeers do to trick people into buying shoddy products. We aim for letting the quality and usability of our apps speak for themselves.

So another benefit of having real Christians write your Bible study app is that they’re not just seeing you as a rube who will spend their hard-earned money on a quickly thrown-together, shallow product, but rather they are committed to creating not just one download but an ecosystem of products that will meet your Bible study needs not only today, but for years to come.

I don’t have a doctrinal test for people with whom I do business, but I expect my Bible study materials to come from people who are as firmly committed to the Bible as I am. It’s not that they’re the only ones who I can trust to create useful products, but it is at least more likely that they’re doing a better job.

Just a couple brief comments on two unrelated security issues. You’ve probably heard about the Heartbleed vulnerability that affected many websites this week. For some reason, the media didn’t mention that the affected servers are running Linux. (There are issues with certain programs running on other servers, but the primary impact was for those sites running Linux-based servers.) They’re quick to jump on Microsoft when it comes to security flaws in Windows, but I guess Linux doesn’t get the same treatment. Weird.

Anyway, we run Windows servers here and don’t appear to be affected by Heartbleed. This blog is on a Linux box, but there’s nothing valuable here except for my rambling a on various topics, and those are only mildly worth stealing.

Coincidentally, we were working on another security-related issue when we heard about Heartbleed. A few of you have given us grief in the past for sending password reminders in email. While your Laridian password doesn’t expose any personal information of import, except perhaps your mailing address — which is widely available elsewhere — it was still disconcerting to see your password show up in clear text.

So we’ve made some changes now so that we don’t send out passwords but instead send a link to a page where you can reset your password. This should provide a little more security, especially if you’re in the habit of using the same password everywhere.

I started a Google+ page all about the latest PocketBible for Android news and development. About every week or so I post what is being worked on now and what is up next.

You might ask: “You already have a blog. Why make another blog on Google, and only for Android stuff?” Two reasons:

1) We don’t have a huge Google+ presence right now, but a lot of our customers use it already. If you are like me, you might not even have a Facebook or Twitter account, so there are not social media outlets for you to connect with Laridian other than coming to this blog.

2) By having a Google+ page, we are able to promote PocketBible in Google Play in a much more organic way. Believe it or not, during a talk at the latest Google I/O conference, it was revealed that the search algorithm Google Play uses actually looks at your +1s, ratings, and even your friend’s +1s and ratings in Google+ to give you customized search results. In other words, the more we promote PocketBible on Google+ the more it will come up in search results in the Google Play.

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.

While 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.