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.

Let’s Keep the “X” in “Xmas”

From time to time, PocketBible users will complain about our use of XMAS in a promotional priority code in one of our marketing emails — hence this article.

Christians and Christian values are under attack in America today. It’s nothing like what’s happening elsewhere in the world, of course, but given that this country was founded on biblical principles by people who held Christian beliefs, it is especially troubling to see those principles and beliefs under direct attack.

Because of the constant bullying we all face from people who claim to be “open minded” and “tolerant of differences”, we are sometimes quick to see offense where none really exists. The concern that some Christians have over the use of the abbreviation Xmas for Christmas is one such situation.

The X in Xmas is actually the Greek letter chi, which is the first letter in the Greek word Χριστος (christos), from which we get “Christ”. Its counterpart “X” has been used as an abbreviation for Christ for as many as 1000 years — maybe more. The abbreviations X, Xt, and Xr can be found in Early Modern English texts written by Christians from the 1700’s. In no case was it used to “remove Christ” from the text, but rather as a simple shorthand. It may also have been a recognition of the sacred nature of the name — in the same way that speaking the name of God was prohibited among the Jews, resulting in the unpronounceable 4-letter name (יהוה) that we sometimes see as YHWH in English. The substitution of chi for “Christ” was never meant as an insult but was used by Christians as a way of writing Jesus’ name.

Christianity is full of symbols. The cross in its various forms (the simple ✞ and many variations, including ⳩ and ⳨) is one. The dove that we use in our PocketBible icon is another. Then there’s the “fish” symbol. None of these are intended to denigrate the name of Jesus nor are they some kind of blasphemy. Instead, they are just easily recognized shorthand for the concepts they represent.

To the Christian, the X or chi in Xmas honors Jesus, while at the same time connecting us across time to our ancient brothers and sisters in Christ. It is the “secret handshake” that communicates deep spiritual truths that are evident to the believer but hidden from the world. So well hidden, in fact, that some well-meaning believers actually resist its use, arguing that it removes “Christ” from “Christmas”. But they are ignorant of the long history of Christian symbolism. “Xmas” is a Christian term, invented by Christians, with a long history of use in Christian literature, based on the ancient practice of abbreviating the title “Christ” with the Greek letter ​chi​. It is not the invention of modern political progressives to remove Jesus from the name of the holiday that celebrates his birth.

Ironically, when a modern-day enemy of Christianity tries to remove Christ from Christmas by replacing it with an X, they are actually acknowledging him. 🙂

There are plenty of reasons to be concerned about the animosity that exists in our society between Christians and non-Christians. But the use of Xmas as shorthand for Christmas is not one of them.

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.

“I heard that the author of that book eats babies. Are you going to drop their titles?”

From time to time, some controversy will arise over something an author publishes with which some faction of Christianity disagrees. We’ll get emails from users requesting that we drop that author’s work from our product line. Often they point out that this author has previously been associated with some other Christian leader, whose work we also publish, and that we should drop that person’s work, too. Our response has always been the same.

We are a book store, not your pastor or spiritual mentor. We stock a wide variety of doctrinal perspectives. We base our publishing decisions a lot on what our customers request. We don’t want to waste our time creating a book nobody wants.

We trust you to choose material based on your own research. We don’t select books for you; we merely provide them for you to select from. If you don’t like the doctrinal positions of a particular author, don’t buy their books. There are plenty of others.

No author is perfect. No reader is perfect. We’re not perfect. If we refused to distribute books from authors with whom we disagreed on a minor point of interpretation, and if we refused to sell to people who have ever sinned, we would have to shut down and go live in the woods. We’re not going to do that. We’re not going to compel everyone around us to comply with our standard of belief and behavior; we have trouble enough following it ourselves.

So thanks for thinking of us, but we don’t participate in this type of debate and character assassination. Never have.

Photo by Fred Kearney on Unsplash

Trying Not to Panic Over Updates to the Bible

Recent updates to the New American Standard Bible, Christian Standard Bible, and, less recently, the New Internatlional Version, English Standard Version, and Amplified Bible have awakened discussion about the possibility of introducing error or succumbing to pressure to conform with the world when updating the English Bible.

There is a lot of misinformation out there about new translations. Christians are put in a very awkward position and most don’t realize the nature of it. On the one hand, we have language, which is continuously evolving. This evolution is relatively slow, but not so slow that you can’t see it if you’re looking for it. Those of us with more than a couple decades under our belts can definitely see changes between how the language was spoken in our youth vs. how it is spoken now. On the other hand you have the Bible, which we hold in high esteem and which we believe to be (or contain) the very Word (or words) of God. We can’t imagine God not expressing himself perfectly the first time, and just assume that our English Bibles should be just as unchanging.

When looked at in the big picture, we understand that we need a Bible written in our native language, and that by that we mean not just English but Modern English. We can probably understand the Great Bible (1540) and King James Bible (1611) but not in their original blackletter font and Early Modern English orthography. Even the vaunted 1769 and early 1900’s editions of the KJV that many Christians cling to as the Bible have been significantly modernized in order to be readable. Despite this innate understanding, we are at least slightly repulsed by the idea of “updating the Bible”.

It’s when we start to act this general understanding (that is, that we need a Bible written in our native language) that we get into trouble. One of the big problems is gender language. Because it’s a politically sensitive issue, there’s a feeling like the Bible should be above it. But setting aside where our personal politics lie, we have to admit that we want an accurate translation of the Bible. The fact is that the biblical languages do not convey gender in the same way English does, and the way English conveys gender has been changing. We try not to say men when we mean people. And we are trying to figure out if we like using they to refer to a single person of unspecified gender.

Personally, I’ve avoided these issues by not picking a favorite. I have a lot of experience with the RSV (predecessor of the ESV and descendant of the ASV) and the KJV (the most successful of the Early Modern English translations). For years I carried a side-by-side KJV/NIV. I was reading from the 1977 NASB when the 1995 edition came out. I’ve read through the Christian Standard Bible (CSB), World English Bible (WEB; modernized ASV), NIV (1984), and KJV; some of these more than once. I’m about 30% through the 2020 NASB. I don’t consider any of these to be the Bible; they are all just translations of the Bible into my language. By adopting this position, I completely avoid any emotional response to any new edition of any of the versions of the Bible I read.

I like to think this is an enlightened, mature perspective. Let others get hung up in arguments over which imperfect translation of one of several imperfect collations of imperfect copies of imperfect copies of the original manuscripts is somehow “best”. I choose to focus on the fact that Jesus summed up 3/4 of the Bible (the Old Testament) in two commandments (love God; love others) and his own ministry in one sentence (the Son of Man came to seek and save that which was lost). Paul summed up his ministry (and thus the bulk of the New Testament) in 2 Cor 5:14-21. Those fragments are enough to occupy one’s life; precisely how they are worded doesn’t change their implications or importance. And much of the rest is just exposition.

Photo by Andrik Langfield on Unsplash

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.

Reading Through the Bible in 2021

Every year, our church encourages members to start a program of Bible reading with the goal of reading the entire Bible by the end of the year. Each month we all exchange emails with progress reports and are encouraged to keep going. Despite the planning, the encouragement, and the reminders, about half of those who start don’t finish.

The NIV Bible contains 753,429 words. Divided into 365 equal readings, that would be 2064 words per day. The average person reads at a rate of 200-300 words per minute. If you’re a college graduate, you probably read around 450 words per minute. So reading through the entire Bible can be easily done by most people in 4-1/2 to 8-1/2 minutes per day. Certainly less than 10 minutes.

So why do so many people fail at keeping this goal? The time itself is not the problem; we all have 5-10 minutes sometime in our day to read the Bible. Here are some suggestions on how to get through the Bible this year.

Make it a part of your morning ritual.

We all have a list of things we do like clockwork every day. Wake up. Shower. Shave. Brush teeth. Get dressed. Have breakfast or at least a cup of coffee. Check email and social media. Go to work. The next day it repeats. Maybe on the weekend it happens later in the morning, but it happens.

Put your Bible reading on that list. In my case, I make a cup of coffee and sit down to make my first pass through email, Facebook, and moderation of my church’s email prayer/announcements list. It was easy to add 5 minutes of Bible reading to that schedule.

For you it might be 5 minutes before you even get out of bed. Or while you eat breakfast. The important thing is to find it a place in your morning ritual so that it becomes habitual.

Use PocketBible on your phone or tablet.

You might think this goes without saying, since it’s coming from Laridian, but it’s a valuable point to make. Laridian offers a number of free and low-cost Bible reading plans and devotionals for PocketBible and makes it easy to access each day’s reading and keep track of your progress. Simply tracking your progress by marking each reading as complete will motivate you to keep going and help you catch up if you get behind.

In addition, for most of us, our phone or tablet is with us all day. This makes it easier to take advantage of break-time, commute-time, standing-in-line-time, and other moments in our day to do our Bible reading. Instead of Candy Crush or Facebook, spend those minutes getting your Bible reading done.

Be realistic.

Figure out how much time you want to devote to the Bible and schedule your reading appropriately. 5-10 minutes will get you through the Bible in a year. 10-15 minutes will get you there in 6 months. Don’t set out to get through the whole thing in a month unless you have an hour each day to set aside for Bible reading.

Try a different translation of the Bible.

Because PocketBible reading plans are not tied to any one translation of the Bible, you’re free to experiment with something different. My previous reads through the Bible have always been in the KJV or NIV. So last year I tried the Christian Standard Bible (CSB). This year I’m using the World English Bible (WEB). (Note that neither the CSB nor WEB are compatible with the Windows versions of PocketBible, but work fine in the Android, iOS and Mac OS versions.)

I think the unfamiliar wording of familiar verses helps me comprehend the passage better. For example, the WEB uses “Yahweh” where the KJV, NASB, and NIV all use LORD. Encountering “Yahweh” in the text seems to make God more personal to me – as if he’s more of a character in the story with his own plans, motivations, and ways of interacting with the people I’m reading about. When I just see LORD in the text, he seems to just blend in and is more of a nameless force or entity in the background. It’s a subtle but important difference in the way I’m perceiving the text.

Last year I ran into the phrase “half the tribe of Mannaseh” (vs. the more familiar – to me – “half-tribe of Mannaseh”). I found this confusing, since I had always assumed the “half tribe” title was because Mannaseh and his brother Ephraim shared the inheritance of their father Joseph (each was half the tribe of Joseph). Running into this wording in verses such as Deuteronomy 3:13 caused me to realize the title is based on the fact Moses gave land on the east side of the Jordan to half the tribe of Manasseh and land on the west side to the other half. The important point here being that running into an unfamiliar phrase caused me to stop, ask the question, and go looking for an answer.

Don’t tell anyone, but it’s OK to skim some passages.

I had a person tell me that they were doing fine reading through the Bible until they got to “the part with all the ‘begots'”. To be honest there aren’t that many of these, but they are mind-numbing. Come back some time and look at the names in those lists and try to learn more about them, but if those lists are what’s keeping you from getting through the rest of the text, just scan ahead to where the story picks up and keep reading from there.

You may run into other places you just can’t get through. I get bogged down in the various sacrifices, dimensions of buildings, descriptions of furniture and draperies, and quantities of items plundered in battles. It’s ok to skip ahead a few verses. None of these are that long. Don’t let a verbal description of an architectural diagram keep you from finishing your reading.

Read it in a different order.

The order in which the books of the Bible appear isn’t ideal for reading through from start to finish. The Old Testament is ordered by genre – first the books of Moses (the Pentateuch), then history, wisdom/poetry, major prophets, and minor prophets. The New Testament follows a similar model, but more by author – first are the gospels; then history; letters from Paul (kind of in order by length, longest to shortest); the letter to the Hebrews (which some argue was written by Paul, but the author is generally considered to be unknown); letters by the apostles James, Peter, John, and Jude; and finally the New Testament’s only book of prophecy.

This year I’m reading through the Bible in chronological order using The Harmony Bible. The author of The Harmony Bible has rearranged the text so that you read about events in the order they occurred, not the somewhat random order that they appear in the Bible. So Job is inserted into the Genesis narrative. David’s psalms are inserted into the stories of his life. The prophets are inserted into the historical narratives, primarily in the books of Kings and Chronicles. In the New Testament, letters to the churches are intermingled in the book of Acts.

Other alternatives include reading a little from the Old and New Testament each day, which is what I did last year.

Some of the devotional books for PocketBible include short commentary or homiletic passages for each day. These can provide context for the passage and help you find application for what you’re reading in your daily life.

Be accountable.

I have really benefited from my email group that is made up of people who are all reading through the Bible at the same time. Find some other people in your church who want to read through the Bible. Meet together or at least exchange emails throughout the year to discuss what you’re reading. Encourage each other to keep reading. Ask your partner what was in those passages you only skimmed. 🙂

Don’t stop.

If you miss a day, keep reading the next day. PocketBible lets you adjust your reading schedule to account for missed days. If it ends up taking you an extra couple of days or weeks to get through the whole thing, that’s fine. Nobody’s keeping score. Don’t let a missed day derail your entire year. Just keep going.

Photo by Rohit Tandon on Unsplash