PocketBible for Windows Progress Update #7

Christmas break and some changes in the availability of team members have taken a toll on productivity, but work continues on the app.

A lot of time has been spent implementing what we call the Go To Tab in the Study Panel. It’s where you go to navigate through a Bible or reference book. There are 3 different configurations of this pane. For Bibles, you have the ability to enter a Bible reference or choose book, chapter, and verse from drop-down lists. In addition, a list of your most recently visited verses is displayed.

For devotional books, the main interface is the ability to navigate to the first unread reading, previous and next readings, and to the reading for a specific date. A list of readings that are highlighted to indicate whether or not you have read them is displayed. Functionality is provided to “start over” on a devotional by setting the start date and clearing your existing reading progress data. Related to the implementation of the Go To Tab for devotionals is the ability to click on a heading over the reading for a given date to mark that readings as “read” or “not read”.

For all other books, a hierarchical table of contents is displayed, and your current position in the book is highlighted.

Study Panel and Toolbar Position and Size

While we were working on the Study Panel, we made it so you could have it positioned on either the left or right side of the screen. (You’ve seen it on the left side in every screenshot to date.) We also save the width of the Study Panel and allow you to double-click on its border to rotate between its minimum width, the width you’ve set it to, and its maximum width. This is in addition to being able to either show or hide the panel.

Related to the position of the Study Panel, we also made it so you can display the toolbar either at the top or at the bottom of the screen. We think this might be handy when using PocketBible on a Windows tablet. While doing that, we made both the toolbar position and contents persistent (saved in your user preferences).

Showing the Study Panel on the right and the toolbar on the bottom

We spent some time on a rough implementation of what we call “navigation history”. This is the data that lies behind the “back” and “forward” buttons on the toolbar. This is significantly more difficult in PocketBible than in something like a browser. In a browser, your back/forward buttons take you through the history of the current browser pane or window. PocketBible can have multiple panes and multiple books open in each pane. The history database needs to keep track of all of that.

We call this a “rough” implementation because there are a lot of places in the code where we need to “capture” history because the position is about to change. Further, there are a lot of places where we don’t need to actually capture history but we need to somehow mark the book or pane as “dirty” and in need of being saved. We believe we have identified most if not all of these places. Further testing is required.

A Few Smaller Things…

The ability to highlight a word and right-click to look up its definition is implemented.

The search field now displays a list of recent searches.

You can specify a range of verses to search when searching a Bible.

The range of font sizes you can select has been expanded.

We spent a lot of time (and continue to spend a lot of time) working on internal, non-user-facing elements of the code. Some of these are to accommodate updates to third-party libraries used by the app. Others are to flesh out implementations that were started with the idea we’d finish when we knew more about what they needed to do. Some are tweaks to the user interface that we’re getting around to as we pay attention to different aspects of the program.

Schedule

I have a hard time coming up with different ways of saying “we’ll be done when we’re done”. We go through periods where we make a lot of progress and others where we have a problem we just can’t figure out and get past. As I’ve said before, we don’t work with a specific release date in mind. We just keep working our way through the list.

A few of you have offered suggestions. We appreciate but can’t always implement those. That being said, the reason the toolbar can be moved to the bottom of the screen is because a PocketBible user asked us if we could do it. We had one false start that led us to believe we couldn’t, but then we backed up and took another run at it and the result is what you see above. So if you have suggestions, feel free to pass them along either here in the comments or to tech support. We are locked into some decisions but will always think and talk about good ideas, regardless of the implications.

PocketBible for Windows Progress Update #6

I was hoping to post a video update this time but if you’ve been following these updates over the last few months you know they’re doing construction right outside our windows. Today it’s especially noisy. So this is going to be a text-based update.

In the last couple of months we’ve made significant progress in several areas. I’ll go over each of these.

Searching

I demonstrated searching last time. Since then we have made it so search words/phrases are highlighted in the text and in the search results themselves.

Search results are highlighted in the text and categorized in the search results pane on the left.

If you’ve used PocketBible for Android, iOS, or macOS, you’ve seen how we organize search results into categories like “exact match”, “sounds like”, “same root word”, etc. We’ve implemented all those searches now in the Windows version. You can tap on the heading of each section of results to collapse or expand it to make it easier to navigate through the results.

Search results are displayed as they become available and a progress bar shows you how far along you are in the search.

The “did you mean ‘go to’?” result category is implemented, so you can “search” for John 3:16 in a Bible and the app will realize that you just want to go to that verse and will take you there.

In addition, there are three different “sizes” of the search results excerpts. You can display just the Bible reference, just a one-line excerpt, or three lines of the full verse.

Text Display

The program allowed you to change the font and font size before; those settings are now saved between sessions. Changing the font size affects the size of text in search results, lists of highlights/bookmarks, notes, etc.

Highlights are shown in the text. The “words of Christ” color (red here) is adjusted to maintain contrast against each highlight background color.

Note links and highlights are now shown in the text. Before you could highlight a verse and it would show up in your list of highlights, but was not shown in the text. The app automatically adjusts colored text (links, search hit, and words of Christ) so that the text has adequate contrast against each of the highlight colors. If we didn’t do this, you wouldn’t be able to see “words of Christ in red” against a red highlight background.

Note links in the text are active. Clicking on a note link shows you the note in the Notes pane.

Color Schemes

While working on highlight colors, and especially while adjusting the various text colors to make sure they’re visible against all the highlight colors, we did some work on color schemes, especially to make sure that text colors were visible against all the different backgrounds.

Color schemes are now persistent between sessions.

Create a custom color scheme. Start by copying an existing scheme.

We’ve added a custom color scheme so that you can choose your own background and text colors for various parts of the user interface. You can copy an existing color scheme then modify it. If you don’t like your changes, you can revert to your previous custom scheme.

In the process of tweaking the color schemes, we’ve defined some additional built-in schemes. We may or may not keep these.

Go To…

The Go To Verse pane works for Bibles. You can type a reference like “John 3:16” to go directly there. As you type, a list of all matching Bible book names and abbreviations is displayed to help you get the spelling right.

Go To Verse pane with list of recently visited verses.

Instead of typing a reference, you can choose a book from a list of all the books of the Bible, then choose a chapter from a list of all the chapters in that book, then choose a verse from all the verses in that chapter. PocketBible will correctly display weird chapter schemes, like the “Prologue” in the apocryphal/deuterocanonical book of Sirach and the lettered chapters that appear in Esther in some Bibles.

Any time you go to a verse or click on a link to a verse, the verse is added to a list of recently visited verses that appears in the Go To Verse pane. This allows you to quickly navigate to a passage you were previously reading. A button at the bottom of this list allows you to clear it, though it’s not necessary to every do that.

For dictionaries, commentaries, and “other” books, you will navigate via the table of contents. As of today, the table of contents navigation hasn’t been implemented, but you can type a word into a field at the top of the Go To pane to go to the dictionary entry for that word, or type a verse reference to go to the commentary article for that reference. In both cases, a drop-down list of all possible words (dictionaries) or Bible references (commentaries) helps you navigate these books.

Account

We’ve implemented the ability to log into your account. We use that to determine if you own the Advanced Feature Set and will enable/disable features as a result. Previously we had been using a hard-wired test account.

Schedule

We were really aiming for the end of the year but it’s looking like it’s going to be a little longer than that. A few unexpected and some arguably predictable factors have affected the schedule. One of our key programmers was in a car accident and suffered a concussion that manifests as an inability to focus and think clearly. This has impacted our productivity substantially. In addition, one of our outside contract programmers has had very limited availability. We’re expecting that to improve over the next couple of months.

The biggest issue is that we severely underestimated the amount of time it would take to re-write the entire program in a new language and deal with issues that would arise as a result. There are still major pieces of code (especially Advanced Feature Set features) that have not even been touched.

We’re not going to predict a new date at this point. Suffice to say it won’t be in 2021. Sorry about that. Stick with us, though — the program is really going to be good when we get it done. And as soon as we feel like we can be 80% sure of a ship date (or a beta date) we’ll let you know.

Construction

As I mentioned above, our office sits right above a major construction site. The street in front of our office has been closed for complete replacement for a block and a half in each direction. At the same time, a one-block wide, three-story tall retail/apartment building is going up across the street. This has been going on since June or July. They hope to open the street by the end of the month, then close it back down next spring.

180° panorama of the street below.

The construction project has been a source of endless surprises, such as showing up one morning a couple weeks ago to discover that there was literally no access to our building. The sidewalks were closed from both directions. Yellow caution tape was taped across our door. We discovered the secret was to walk boldly through the construction site as if you belong there, and remove the caution tape as if the danger is past. The downside, however, is that then they pour a new sidewalk right outside your door and you can’t leave until it’s dry enough to walk on.

On another day, the electricians were digging a hole for a street light foundation and augured right through the new water main in front of the neighboring building. We didn’t anticipate a problem, since one of the features of the new system is that they can shut off water to one building without affecting the others. Despite that grand promise, we were still without water for most of the day for some reason.

On a positive note, we were able to get a bike rack installed, so no more locking our bikes to whatever stationary object is convenient. Just in time for winter. 🙂

PocketBible for Windows Progress Update #5

If screen shots and videos of this Windows app appear to have been captured on a Mac, that’s because they were. We are able to do development and testing on macOS even though we’ll eventually deploy on PC.

I’ve heard from a couple of you asking for an update. That usually means I haven’t taken the time to look up from my work and look at a calendar for a while.

Since the last update, PocketBible can perform searches and show results. If you use any of the non-Windows versions of PocketBible, you know that it performs about a dozen different searches in parallel to accomplish one search. So you’ll see results that match exactly; results that have all the words you’re looking for, but in a different order; words that sound the same; words that have the same root word; etc. I mentioned before that it is a challenge to launch these searches in parallel in the new Windows version, but we’ve figured out a way to do that and we think it’s going to work reasonably well. Right now, we’re testing these one at a time to make it easier.

The video below demonstrates searching as compared to the current Mac version (on the left). The videos are synchronized so that the searches start at the same time on each platform so you can compare the times. As you can see, the time it takes to return exact matches is pretty close to the same in both apps. This is pretty impressive given that the Mac version is a native, compiled app and the Windows version is something less than native and something more than interpreted. If that makes no sense to you, suffice to say that we’re seeing good results when it comes to search speed.

Note that in one of the searches, the Mac version returns some results right away because they’re easy to calculate, but takes about the same amount of time to display “exact matches” as the Windows version does.

Early look at searches in PocketBible for Windows

Last time I mentioned that while we were displaying lists of bookmarks and highlights, those lists were not yet fully optimized. Trying to display a list of 30,000 verses would bring the program to its knees (not to mention what it would do to a user or to Allen in Tech Support). We spent quite a bit of time since the last progress update downloading the source code for the third-party component we’re using and modifying it to do what we need it to do in order to display lists of things (search results, notes, highlights, and bookmarks, primarily). In the demo above you’ll see that we’re able to quickly display a list of over 20,000 search results. That was the goal.

We subsequently have had to do similar customizations with context menus (the little pop-up menu you get when you right-click). Our development tools have a very basic one built-in, but it doesn’t allow for sub-menus. The third-party one we found has sub-menus but they don’t have the same functionality as the main context menu. And it doesn’t handle the correct placement of sub-menus on the screen — they will happily display themselves off the right edge of your screen. So again, we’ve had to download the source code for this component, learn completely how it works, then modify it for our usage.

One of the interesting things to me as a programmer is having the opportunity to go through this body of code that I’ve lived with for 23 years now and translate it line-by-line into another programming language. In the course of doing that, you learn a lot of things. For example, there are at least 4 different reasons you need to extract Bible text from the compressed LBK file: displaying it on the screen (of course), copying a passage to the clipboard, extracting text during an Autostudy, and displaying a little excerpt in search results.

While working on search results I discovered these 4 scenarios make use of 3 entirely separate paths through the code to do a very similar thing: (1) One path is used for displaying text on the screen. (2) The second is used for either copying a passage or doing an Autostudy. (3) The third is used to display excerpts in search results. It turns out that the last two methods (2 and 3) were completely duplicating the code that gets text to be displayed on the screen (1), then filtering out what wasn’t needed before using it.

As a result, part of what I’ve been working on is eliminating this duplication of code. Now there’s just one way to get text out of the LBK file. Anyone who wants to use it for something other than displaying it on the screen will filter out the tags and features they don’t need. It sounds complicated but it’s much simpler and significantly reduced the amount of code that needed to be translated and tested.

We’re still aiming for being done by the end of the year. One thing working in our favor is it looks like PocketBible for iOS is going to require very little, if any, updating for iOS 15. That normally consumes all my time in August and September.


Last time I told you about our new office space. After moving in, we realized we hadn’t thought about the fact that the city was about to start a major street construction project that has our main street and several side-streets completely torn up. The construction area is 3 blocks long and our office sits right in the center.

At the same time, the strip mall across the street is being demolished to make way for a combined retail/residential building complex. The view out our office windows has been fascinating as dozens of excavators, dump trucks. bobcats, drills, cement mixers, and more work right below us.

We still have access to the building from the back, but the activity right outside the window is a little distracting. And this will be going on for the next 2 years. So that should be fun. 🙂

Replacing the decades-old sanitary sewer on the main street through town, right in front of our office.
In the foreground, storm sewer work begins on our main street. In the background, footings are being poured for a 3-story commercial/residential building.
An old steam line wrapped with asbestos was unexpectedly found under the street in front of our office and had to be dealt with. Specially trained workers in hazmat suits and respirators filled dozens of large bags with asbestos insulation while surrounding dirt and clay tile was carefully removed.

PocketBible for Windows Progress Update #4

I apologize for the delay getting an update out. We get busy and we are always thinking that after we implement the next big thing would be a good time for an update. Next thing you know several big things have been implemented and no update.

Since the last time you heard from us:

Notes can be edited, saved, and sync’ed to the server. The note links in the text open the note in the editor.

Bookmarks can be created and lists of bookmarks in a given category displayed. You can select a bookmark to go to it in the text.

Highlights can be created but they’re not yet visible in the text. You can see a list of them and select from the list to go to the verse.

The option to sync Bibles and commentaries has been implemented, so commentaries and other Bibles will follow along as you scroll through the Bible text. There’s a separate option to sync dictionaries so that any request for one dictionary to go to an article for a word will result in all dictionaries responding, and another option for all devotionals to go to today’s reading when any one devotional goes to today’s reading. Here’s a little demonstration:

The scrollbar is implemented. As you drag the scroller up and down, there’s a tooltip that tells you where you’re at in the book. When you release the mouse button, the text goes to that location. There’s an option to scroll by pages or scroll by chapters in the Bible. Other types of books have similar options.

The program saves its display state, window size, and position between sessions. If  you have more than one monitor, it remembers which monitor it was on. If you unplug a monitor or switch to one with different resolution, it adjusts its size and position accordingly.

There are other little things that get done along the way, of which I may not have made a note.

We’re currently working on implementing searches. There are interesting technical challenges porting that code from Mac/iOS/Android to our environment in Windows. On the other platforms we launch a dozen parallel activities to perform a single search. The Electron environment is single-threaded. There is a way to create multiple processes but the communication between them is rudimentary. We’ve settled for trying to make it so the user interface (mainly mouse movement and interaction) doesn’t stutter during a search, but searching may be more of a serial, rather than a parallel, operation. I’m guessing nobody will notice. Searches will still be fast.

An interesting complication that arose during implementation of searching was being able to support finding words with the same root word as the one you are looking for. The algorithm that reduces words to their root words is written in an esoteric programming language that was created specifically for this one purpose. In order to translate that language into what we need (Java for Android, C for iOS and macOS), we have to use a custom transpiler that converts from the weird root-word language into Java or C. The new version of PocketBible is being written in JavaScript, which would require that we write a custom back-end for the transpiler. This was disappointing as we figured it would take several days, if not more, to implement. Fortunately, the next day we found that someone had already converted the code by hand to JavaScript. We added our modifications to support Early Modern English (KJV language) and we were back on schedule.

One of the things that happens during development is that you sometimes get to do things twice. We were using a very basic method of displaying lists like your list of bookmarks, notes, and highlights. This method worked fine (and is working now) but in those rare cases where you have 20,000 search results, it will get bogged down. So we’re replacing the already-working list mechanism with a new one. It’s one of those things that, once it’s done, you won’t notice the difference. But it requires careful surgery to remove one method and replace it with another. This is being done to support search results but other areas of the program will benefit. Most people don’t have 20,000 bookmarks, but for those who do, this will be a noticeable improvement (at least it would be noticeable if they had seen it before and after, which they won’t.)

As some of you know, last August our city was hit by a rare wind storm known as a derecho. Sometimes called a “land hurricane”, a derecho has straight-line winds that exceed 100 MPH. Our city experienced winds as strong as 140 MPH. And while a tornado has stronger winds, it generally only affects a narrow path, maybe a couple hundred yards wide. This derecho caused wind damage over an area 100 miles wide and 700 miles long.

The office build we were in took significant damage. The roof had to be replaced along with all the flooring, all the ceiling, and a good portion of the walls. We were able to continue working there while roof repairs were made and most of the interior was removed, but in mid-February we had to move out. We spent 3+ months working from home with some negative impact on productivity. Then in mid-May, a new office suite became available just 2 blocks from our old location. By the end of the month we’ll be in a beautifully restored 19th century building with exposed brick walls, original wood floors, and 12′ ceilings.

That’s where things stand as of today. Thank you again for your interest and support of this project.

PocketBible for Windows Progress Update #3

Today we want to talk about our progress so far on PocketBible for Windows. At this point in the project, it’s difficult to show everything we’ve been working on because a lot of it is “under the hood” or “behind the scenes”. It’s related to how PocketBible accesses its files, or the server, or the database where your user data is stored. These are all hard to demonstrate.

But we’re at the point where there are a few things we can demonstrate, and you can see them in the video above. I’ll also briefly describe them here for those of you who, like me, don’t like to watch videos.

We’re trying to make PocketBible more tablet and touch friendly. We’ve taken ideas from our iOS and Android apps. You’ll notice in PocketBible for Windows that the toolbar buttons are a little bigger than they might be in a typical app. This is to accommodate the touch/tablet environment.

The toolbar at the top of the screen is reconfigurable. You can drag buttons onto and off the toolbar from the Preferences screen.

The toolbar on the left side controls the features of the Study Panel. This is where we display your bookmarks, highlights, notes, search results, etc. In particular today, we demo the note editor. We can style text and paragraphs as you might expect, though your edits are not yet saved to the database. You can edit your notes in a plain-text editor if you’re comfortable working around the HTML tags that control the appearance of your notes.

We have a lot of the features related to display books implemented. There’s no “navigation” features yet, but you can scroll through them and see both text and images.

We’ve been doing a lot of work on the Library functions. This is how you download and open books. You can view a list of books installed on the device or books that you own (your Cloud Library account). You can view the lists in a “gallery” format or in a “list” format.

Clicking on a book in the Cloud Library causes it to be downloaded. Clicking on books in your Device Library opens them. You’ll see a progress indicator as you download books, and you can select multiple books to download them all at the same time.

You can choose to see only Bibles, only dictionaries, only commentaries, etc. You can also search for a book by typing a portion of its name in the search field.

There are a limited number of display format preferences implemented. You can currently choose a font, font size, line spacing, and some other options. You can choose from one of several color schemes, including a “dark mode” scheme, and you can create a custom color scheme by choosing colors for each of a couple dozen different elements of the display.

There’s more going on behind the scenes that are hard to demonstrate, and there a lot of things visible on the screen that are really just placeholders. Anything you see on the screen currently could change at any point before release.

About Our Development Tool Set — Electron

I’ve been talking about our innovative, new development environment since before we started coding on the project. I want to explain that in more detail at this point. If you’re not interested in the technical side of what we do, you can probably just jump to the end at this point. 🙂

We’re using a tool called Electron to develop the Windows version of PocketBible. Electron is a framework for creating native applications using Web technologies like JavaScript, HTML, and CSS. It combines node.js (a JavaScript run-time environment) and the Chromium engine (the guts of the Chrome browser built into the app). This allows us to write our code in JavaScript and create our user interface using HTML and CSS just like we would on a website. It wouldn’t be incorrect to describe this as a website running on an embedded Web server inside a Windows executable.

A lot of programs you are already familiar with are implemented using Electron, like VS Code, Facebook Messenger, WhatsApp, Twitch, and Microsoft Teams. We’re encouraged by the fact that Microsoft seems to be committed to this tool set.

This lets us leverage what we know about website design as we design the user interface and write the app.

We can actually use the Chrome developer tools just like you would in your browser to debug the app. We can explore the user interface, set breakpoints in our code, and examine the values of variables — all using tools we’re familiar with from Web development.

Using Electron allows us to use our Macs for Windows development. The video above was shot on a Mac. That’s why you don’t see a menu bar in the app — on a Mac the menu for the active app is displayed at the top of the screen, not in the app’s window. Being able to run the app on a Mac is a real benefit to us since we’re 100% Mac OS here. We use it for Android, iOS, and Mac development. When necessary, we have Windows running on our Macs under Parallels so that we can use Windows apps. But we try to avoid it as much as we can. 🙂

So that’s where things stand as of early February. You can post questions below or send them to [email protected] and they’ll make sure I see them and can respond.


Brief demo of multiple panes. See comments below.

PocketBible for Windows Progress Update #2

More Rewards Distributed

The 2021 editions of the PocketBible Library Collections are being released coincident with this status update. If your reward package included the Bronze, Silver, Gold or Platinum Library, you’ll find those books are now in your account. The special Diamond Edition for those at the higher contribution levels has also been distributed, though of course it’s not available to the public. You can download any new books from these collections using the Cloud Library feature in PocketBible.

Note that the 2021 editions contain some Bibles that are not compatible with the current Windows versions of PocketBible, particularly The Passion Translation, World English Bible with Strong’s Numbers, and the Spanish Nueva Biblia de las Américas. These will work in PocketBible on other platforms.

Note further that the collections include the very recently released 2020 edition of the New American Standard Bible. The publisher has said we can continue to offer the 1995 edition, but we need to refer to it as “NASB1995” and call the new version “NASB”. Since the Windows versions can’t be updated to use the new abbreviation for the 1995 edition of the NASB, you will end up with two Bibles both called NASB. In the Windows Desktop version you could potentially have 4 tabs labelled NASB, NASB, NASEC, and NASEC (the latter two being the NASB with Strong’s Numbers). You’ll find if you hover over the tab you’ll be able to see which one it is. In other places where you’re choosing from two versions with the same abbreviation, you’ll see that “1995” or “2020” has been added to the title so you can tell which one each is.

Diamond Edition Contents

Because the 2021 Diamond Edition is not available to the public, there’s not an easy way to see what it contains. This collection, which was offered as a reward for those who contributed $720 or more to the project, contains everything in the 2021 Platinum Edition plus:

A Hebrew Word for the Day
Ancient Christian Commentary Series
Bible Reader’s Companion
Bible Teacher’s Commentary
Dake Study Bible Notes
Ephesians: Reformed Expository Commentary
Gospel Transformation Bible Notes
Greek New Testament Collection
Knowing the Bible Series
Maclaren’s Expositions of Holy Scriptures
Preaching the Word Series
Systematic Theology Study Bible Notes
The Good and Beautiful Community
The Good and Beautiful God
The Good and Beautiful Life
The Sermon Notebook
Understanding the Bible Series

The total value of all these books sold separately is over $4000. Thank you again for your support!

Progress Update

Work continues on two fronts: Implementing features related to what we call “user data management” (notes, highlights, bookmarks, and daily reading progress), and translating the code at the core of PocketBible that reads and acts on PocketBible books and Bibles.

We’ve completed much of the nuts and bolts of user data management and have begun to work on user interface issues related to those features. For example, neither the Windows Store nor the Windows Desktop version of PocketBible allows you to set bookmarks on more than one verse at a time. (To be fair, neither does the Mac OS version.) But the iOS version recognizes that you have multiple verses selected and assumes you want to set or clear bookmarks on all (or at least some) of those verses. We prefer this behavior and want to introduce it in the new Windows version.

This is what we meant when we said that we would draw on our experience with the Mac OS and iOS versions when writing the new Windows version. Not that we were going to duplicate either one, but that we would allow what we’ve learned while experimenting with different ideas on those platforms to influence how we re-imagine the Windows version.

I’ve said before that we’d be building the new version using a different programming language, application framework, and toolset. So porting the shared portions of the code — functionality like being able to read and operate on our Laridian book (LBK) files — is mostly a “translation” task. This is not entirely true, as certain concepts are very different between the two languages, as are the syntax, idioms, and data types.

To give you an idea of the size of this task, I counted this morning (automatically, not by hand) the number of lines in the shared C++ code and it came to 457,326 lines. That’s about 8000 pages if you were to print it out. All of that code has to be read line-by-line, translated (taking into account changes made to other parts of the code during translation), and tested.

We continue to make progress in this area, though I believe we’re only about 10% to 20% through it. For example, the program is now able to detect the books you have installed and allow you to select from among them — though once you open a book, you’re not able to read text from it. The text we see on the screen is simulated — biblical lorem ipsum so to speak. I’m working on that portion of the code right now.

PocketBible for Windows Progress Update #1

As you know, our crowd-funding campaign for PocketBible for Windows ended on September 15 so we’re about one month into the project. While I can’t demonstrate much for you at this point, I do want to fill you in on our progress and answer a few questions.

Over the last couple of years we’ve experimented with a number of programming languages, frameworks, and development tools to try to discover the best way forward for PocketBible for Windows. In the process, we’ve explored some proof-of-concept ideas, some of which will find their way into the finished product.

For example, we needed to be able to display and interact with books with complex layouts, like The NIV with Goodrick-Kohlenberger Numbers and our parsed interlinear Greek New Testaments. You would think that displaying formatted text would be trivial these days, given that it’s 2020 and even Web browser technology from the last century can do it fairly well. PocketBible for Android, iOS, and Mac OS uses HTML rendering built into those platforms that does a very good job. Unfortunately, the similar functionality built into Windows is significantly less capable. So as we explored alternative tool sets for implementing PocketBible for Windows, this is one of the areas we focused on. Our ability to successfully render these complex layouts during our experiments in the summer of 2019 is what led us to settle on our current solution. (We’ll have more to say about that in a future update).

Now that we’ve demonstrated that we can display and interact with the text, we need to be able to extract the text of a book or Bible from our Laridian Book (LBK) file format. The code that does that is fairly extensive and complicated and needs to be translated from its current implementation and thoroughly tested. We’re currently working on that task.

A major area of progress is what we call “user data management”, which is keeping track of your notes, highlights, bookmarks, and daily reading progress. In particular, we wanted to tackle synchronization of that data with Laridian Cloud. This would force us to fully implement the ability to read and write the data from and to the database, and would also require us to solve communication with our cloud-based sync provider — both of which are complex tasks that introduce risk into the schedule. Overcoming those challenges and dealing with that risk during the early part of the project avoids the possibility of unexpected delays right before our ship date, when it is least-practical and most-expensive to deal with it.

As of today, even though the PocketBible app for Windows doesn’t allow you to view or edit notes, it can sync its local notes database with the server. You can’t even see any verses, let alone select one to highlight, but you can correctly sync highlights to and from the cloud. This means we’re able to populate the local database from a customer account, make manual changes using a database editor tool, then request that the program sync again. The app accurately identifies what has changed and syncs those changes to the server. At the same time, it receives and records any modifications or new records sent to it from the server. That means that, at least internally, everything is working. There’s just no user interface to it yet. Sounds weird, but it’s very normal for a software project to be completely working but with no way to see that it’s doing so. That will come later.

It’s also worth noting that even though neither of the current versions of PocketBible for Windows (Windows Desktop or Windows Store versions) support Journal notes or renaming highlight colors (features of the Advanced Feature Set in PocketBible for iOS, Android, and Mac OS), the new version already supports those features. Or rather, the underlying support is there; there’s just no user interface to invoke it.

Until next time, thank you so much for your financial support, prayers, and words of encouragement for this project. We welcome your feedback and suggestions.

Frequently Asked Questions

What will be the effect of the Windows project on work being done on other platforms?

According to comments on a recent customer survey we did, some of you have expressed concern that our attention to the Windows project will take away from work on other platforms. I want to reassure you this is not the case. In fact, the very purpose of the crowd-funding campaign was to allow us to add staff for the Windows project in order to minimize the impact on other platforms. You may not realize it, but you’ve already seen the results — we shipped a new version of PocketBible for iOS coincident with the release of iOS 14, which introduced a number of major new features for PocketBible on that platform, all while work on PocketBible for Windows continued unabated.

When will I get my rewards?

When you get your rewards depends on what type of rewards you are entitled to.

Physical Rewards: Three contributors were entitled to some special rewards (a 1903 KJV New Testament and two framed, first-edition KJV pages from 1611). These were mailed within a week of the end of the fund-raising campaign.

2021 PocketBible Library Collections: Contributors at the $60, $120, $240, and $360 levels will get the 2021 Bronze, Silver, Gold, and Platinum Edition PocketBible Library collections, respectively, when those products are released near the end of the year.

Special Diamond-Level Library Collections: Contributors at levels $720 and above will get the special collection we’re putting together just for those contributors. It will be released either at the same time as the regular 2021 Bronze, Silver, Gold, and Platinum collections are released, or shortly thereafter. We’re aiming for having all of the collections distributed by the end of the year.

Advanced Feature Set Subscriptions: Some contribution levels included multiple years of either the AFS for the new Windows app or for all platforms. Those will be distributed when the new app ships. We haven’t announced a specific ship date but are aiming for late summer, 2021. Obviously, those who are entitled to a mention in the in-app credits will see that when the app ships.

Wait… Isn’t that a Mac in the picture?

Yup.

We Reached Our Goal!

Thanks to the kindness of 492 of our closest friends, we were able to reach our goal of raising $50,000 for the development of an all-new version of PocketBible for Windows! The final total came to exactly $53,000.

If you contributed to the project, you’ll get an email from us letting you know how we’re going to keep you updated on our progress. We’ll publish updates here on the blog. Some will be public like this one; others will be for supporters only.

To get things started, I met yesterday with the outside developer responsible mainly for user experience to bring him up to speed. And since the beginning of the crowd-funding campaign I’ve been working with another in-house developer to bring her up to speed on the development tools and the initial tasks we need to work on.

Even though we already have two different Windows versions of PocketBible, this version is going to be implemented a whole new way (more about that later). So we have to treat it as if we’re doing it for a whole new platform. When we launch into PocketBible for a new platform, I like to tackle the hard things first. That is, I try to identify what is going to be a challenge for us and do some prototyping or proof-of-concept tests to make sure we’re going to be able to solve those problems before they become hinderances to the schedule.

What that means is that we’re going to start kind of in the middle of the project, focusing on the note editor and user data synchronization, because those seem to always present problems on every platform. We’ve already done some experimenting with simply displaying and scrolling through text, as that’s another problem area. We’ve actually written and thrown away a few different attempts at some of those problems already.

This approach creates interesting paradoxes. We’ll be able to sync your notes, highlights, bookmarks, and daily reading progress to and from the server before the program can create or display a note, highlight a verse, or set or go to a bookmark. We’ll be able to scroll through Bible text before we can choose and open a Bible to read. But such is the world of software development, especially with a mature product like PocketBible. Even though the new version of PocketBible for Windows doesn’t exist, PocketBible itself exists both as an abstract concept and in several concrete implementations — not just the existing Android, iOS, and Mac OS apps, but our soon-to-be extinct Windows apps and our already-extinct Windows Mobile Smartphone, Pocket PC, Handheld PC, Palm-size PC, webOS, Blackberry, Palm OS, and browser-based versions. So this new Windows version already exists in our heads. Starting in the middle or at the end or the beginning is all the same to us. 🙂

Photo by Danielle MacInnes on Unsplash

Original Crowd-Source Funding Campaign for PocketBible 3 for Windows

This is the original campaign description that we did for the next version of PocketBible for Windows. Since the crowd-source funding campaign only lasted about 6 weeks, we’ve removed or edited the call for contributions, but the story about the motivations behind rewriting PocketBible for Windows is useful for understanding how we got here and what our goals are.

The PocketBible Story

We are working on a new version of PocketBible for Windows. The new version of PocketBible will replace both the older Windows Desktop and newer Windows Store versions of PocketBible. Books and Bibles you bought for those apps will work with the new app, and books that you previously could only use on Android, iOS, and macOS will be available for this new Windows version.

You can learn more about the motivation for the campaign by watching the short video above, or by reading further…

PocketBible for Windows

PocketBible is primarily a mobile Bible app. But we also make versions of PocketBible for macOS and Windows.

We actually have two versions of PocketBible that run on Windows. There’s an older one that was designed for Windows XP, and a newer one that isn’t an upgrade to the older one. It was designed for Windows 8 and is an entirely separate program. Both versions run just fine under Windows 11.

Laridian originally released PocketBible for Windows in 2007.

The Original PocketBible for Windows

It was a great little Bible app, based a lot on what we had learned writing QuickVerse back in the 1990’s at Parsons Technology. Like many apps of its day, it was rather complicated. There were a lot of tiny buttons around the book window, and dozens of configuration options. This version, while designed for Windows XP, ran great under the next two versions of Windows (Windows Vista and Windows 7).

But then came Windows 8.

PocketBible for Windows Store

With Windows 8, Microsoft completely changed the way you interact with Windows and its apps. They were attempting to merge the user experience on the desktop with the emerging market for tablets with touch screens.

FAQ from parallels.com explaining how to find apps in Windows 8

Windows 8 apps with what Microsoft called its “Modern User Interface” filled the screen with information (in our case, the text of your Bibles and reference books) and hid the menus, toolbars, and buttons that we had all grown accustomed to. Swipes and other gestures were required to reveal the hidden controls.

Apps that implemented this user interface were distributed exclusively through the new Windows Store. Older apps like PocketBible were now called “Windows Desktop” apps and were relegated to their own area of the Windows Start menu — that is, if you could find the Start menu at all.

PocketBible for Windows Store with “Modern User Interface”

This was a confusing time to be a Windows developer. It wasn’t clear in which direction the user experience for Windows was going. While we released a new version of PocketBible designed for the Modern User Interface, we hedged our bets by keeping the old version of PocketBible available and renaming it, “PocketBible for Windows Desktop”.

The Challenge

PocketBible itself has been evolving on other platforms while remaining static on Windows. We haven’t been able to update the older Windows Desktop version just because of its age and incompatibility with the newer development tools. The Windows Store version was actually written by a volunteer PocketBible user whose full-time job is as a contract Windows developer. His other work has kept him from spending as much time on PocketBible as we both would like, and as a result it hasn’t kept up with the changes.

This is further complicated by the fact that there are features we’ve implemented on the other platforms that simply can’t be done in the Windows environment.

One of the things we haven’t been able to implement is support for our newest Bibles, especially interlinear Bibles. It’s getting to the point where there are enough issues — the interlinear Bibles, the absence of a good WYSIWYG note editor, and the absence of a number of Advanced Feature Set features — that we really need to update PocketBible for Windows. And we don’t have a good way to do that.

It has become clear that we need to start over.

The Next Version of PocketBible for Windows

The plan is to build a brand new version of PocketBible for Windows. Because we’re more familiar with the code in the Windows Desktop version, and because it makes use of the shared “book reader engine” we also use in PocketBible for iOS and macOS (and thus has been kept up-to-date), we’ll start with that version of the code.

We’ll take what we’ve learned in the last 20 years about how you use our apps for Bible study, both on the desktop and on your mobile device, and apply it to a fresh, new user interface that draws from our iOS and macOS apps.

We’ll build this new version of PocketBible on a unique new technology stack that supports the innovative things that Microsoft makes it hard to do with the standard tool set, and gives us more options for the future than we’re ready to talk about at this point.

We’ll be able to implement the full range of features you see in the Advanced Feature Sets in PocketBible for Android, iOS, and macOS.

The PocketBible Jump-Start Campaign

We’re a mobile Bible software company. Because Windows is not a significant revenue source for us, it’s hard to justify investing in that platform. But we’re going to have costs that are a little out of the ordinary to get this done. In particular, we need to hire some temporary and contract developers to supplement what we can do in-house, and of course that costs money.

PocketBible Platform Distribution (March 2020)

[In 2020, we asked] that you consider participating financially in this project. Reaching the funding goal that we’ve set will allow us to hire the additional people we need. Any additional funds we receive will allow us to add resources to the project to enhance the feature list and ensure that we make our schedule.

Questions or Comments?

We invite your feedback during this campaign. You can contact Craig directly at [email protected] with any questions, comments, or suggestions you might have about PocketBible for Windows.

Risks and Challenges

Every software project presents challenges that can’t be predicted in advance. Laridian is a small company with only a few employees, so it’s possible that development on one project might slow down or be halted for a time while we put out a fire on another project. Part of the purpose of this “jump-start” fund-raising campaign, though, is to help us fund the additional staff we will need to keep this project on track.

The technology we work with is constantly changing. New versions of tools and of Windows itself constantly introduce new challenges. But we’ve been doing this for a long time — over 20 years now — and feel we have a track record of being able to work through and around challenges like that.

In short, we feel confident that we have the skills, tools, people, plan, and expertise to complete the project. Delays should be minimal. We’ve used crowd-funding to fund development projects in the past. Regardless of the problems we encounter along the way, we’ll be keeping you up-to-date with regular progress reports so you won’t be left wondering what ever happened to PocketBible for Windows.

Terms and Conditions

All contributions made to the PocketBible for Windows Jump-Start Campaign [were] made subject to the following conditions:

  • Laridian is not a religious or 501(c)3 organization. Your contribution is not tax-deductible as a charitable donation.
  • While we promise “rewards” in return for contributions, you are not purchasing the reward. We are giving it to you.
  • You may request a refund of your contribution within 30 days of making it. Access to rewards that are downloadable will be revoked upon refund. Physical rewards that have been mailed to you are not returnable. In the event you wish a refund of a contribution that resulted in a physical reward, the retail value of the reward will be deducted from your contribution, and the balance refunded.
  • You are contributing toward a software development project. The results and schedules of such projects are widely known to be variable and unpredictable. While Laridian has every intention of completing the project and doing so according to the schedule that it from time to time will disclose to supporters, it does not guarantee that the project will be completed, or be completed by a certain date.

Does It Matter Where Your Bible App Comes From?

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