What’s Your Excuse for Not Reading the Bible? #4

Distant Shores Media/Sweet Publishing, CC BY-SA 3.0, via Wikimedia Commons

This is the fourth in a series of articles on common excuses for not reading through the Bible.

I’ve spent the last 40+ years studying the Bible, but not necessarily trying to read each word from cover to cover. Several years ago I began setting aside time each day just to read the Bible, with the goal of getting through the whole thing over the course of a year. Having spent many years coming up with excuses not to read the Bible this way, I thought I’d record them here for you. But take note: I’ll be shooting them down in the end, so don’t get your hopes up.

Excuse #4: I’m not a levitical priest. I don’t need lessons in animal dissection.

Several long passages in Exodus, Leviticus, Numbers, and Ezekiel describe, in minute detail, how to cut up, clean, discard, wave, dip one’s thumb into, and burn a variety of animals. These instructions were extremely important to the priests who ministered in the tabernacle and later, the temple. But beyond knowing that these sacrifices were done and what their purpose was, we don’t really need the details. We won’t be donning our ephods and slitting the throats of sheep during the Sunday morning worship service any time soon.

The passages I’m talking about go beyond “sacrifice a bull to Yahweh”. They explain how it is to be done — in detail. This makes sense in context, since these are literally instruction manuals for Aaron, his sons, and their descendants.

5The anointed priest shall take some of the blood of the bull, and bring it to the Tent of Meeting. 6The priest shall dip his finger in the blood, and sprinkle some of the blood seven times before Yahweh, before the veil of the sanctuary. 7The priest shall put some of the blood on the horns of the altar of sweet incense before Yahweh, which is in the Tent of Meeting; and he shall pour out the rest of the blood of the bull at the base of the altar of burnt offering, which is at the door of the Tent of Meeting. 8He shall take all the fat of the bull of the sin offering from it: the fat that covers the innards, and all the fat that is on the innards, 9and the two kidneys, and the fat that is on them, which is by the loins, and the cover on the liver, with the kidneys, he shall remove, 10as it is removed from the bull of the sacrifice of peace offerings. The priest shall burn them on the altar of burnt offering. 11He shall carry the bull’s skin, all its meat, with its head, and with its legs, its innards, and its dung 12—all the rest of the bull—outside of the camp to a clean place where the ashes are poured out, and burn it on wood with fire. It shall be burned where the ashes are poured out. — Leviticus 4:5-12

Yeah, but there’s not a lot of these verses, right?

I counted 468 verses (12,866 words) on this subject. That’s around 1.7% of the text (counting by words). If you’re reading the Bible in a year, you’ll spend just short of one whole week reading nothing but procedures for wringing the necks of doves and removing the lobes that cover the liver of bulls.

But it wouldn’t be there if it wasn’t important!

These details are absolutely important — if you’re a descendant of Levi ministering in the tabernacle or temple. But a more general understanding of the Old Testament sacrificial system is all that is needed for Christians trying to read and understand the Bible today. We need to know that God required a blood sacrifice for sin. Then we can understand what we read in Hebrews:

1For the law, having a shadow of the good to come, not the very image of the things, can never with the same sacrifices year by year, which they offer continually, make perfect those who draw near. 2Or else wouldn’t they have ceased to be offered, because the worshipers, having been once cleansed, would have had no more consciousness of sins? 3But in those sacrifices there is a yearly reminder of sins. 4For it is impossible that the blood of bulls and goats should take away sins. — Hebrews 10:1-4

11Every priest indeed stands day by day serving and offering often the same sacrifices, which can never take away sins, 12but he, when he had offered one sacrifice for sins forever, sat down on the right hand of God, 13from that time waiting until his enemies are made the footstool of his feet. 14For by one offering he has perfected forever those who are being sanctified. — Hebrews 10:11-14

One of the fascinating things about the Law is that it ostensibly existed as a guide for its followers to make themselves righteous before God, but that in reality its purpose was to teach us the futility of believing that merely following a set of rules can make us right with God. This more subtle and enlightened (i.e. “basic Christian”) understanding of the Law makes the idea of spending a week learning how to dissect a goat in a way that pleases God even less rewarding than it literally is.

Save yourself a week

I skim and skip these passages when I run into them. I give you permission to do likewise. Don’t let a description of the fat around the kidneys keep you from getting all the way through the Bible.

Stay tuned and "I will yet show you a more excellent way"

What’s Your Excuse for Reading Bible the #3 Not?

This is the third in a series of articles on common excuses for not reading through the Bible.

I’ve spent the last 40+ years studying the Bible, but not necessarily trying to read each word from cover to cover. Several years ago I began setting aside time each day just to read the Bible, with the goal of getting through the whole thing over the course of a year. Having spent many years coming up with excuses not to read the Bible this way, I thought I’d record them here for you. But take note: I’ll be shooting them down in the end, so don’t get your hopes up.

Excuse #3: The events in the Old Testament are out-of-order and confusing.

Christianity and the Jewish faith from which it sprang are somewhat unique among the belief systems of the world in that they have a rich connection to human history that is essential to understanding them. Christianity isn’t a philosophical system that suddenly developed in the mind of the Apostle Paul some 2000 years ago. It claims to have started in the very creation of space and time. Its details were revealed in God’s work of creation, in direct revelation to selected humans over thousands of years, and in an historical, first-person manifestation of God to humans in the person of Jesus Christ.

We could choose to ignore the gospels and just read the New Testament epistles to discover Christian doctrine, but our understanding is immensely enhanced when we understand the life and teachings of Jesus from the gospels. We could read just the New Testament, but we won’t understand the work of Jesus on the cross without some knowledge of the job of the Levitical priesthood from the Old Testament. We could try to live lives without sin, but won’t understand the futility of that goal if don’t know about the Mosaic law from the Old Testament. We could simply accept God’s choosing of Abraham, but won’t understand the motivation of this choice unless we have read about antediluvian life and the Noahic flood. We would be bewildered by the expectations of some arbitrary deity that destroyed all life in the flood unless we also understand who that deity is and what he did in the first chapters of Genesis.

How Are the Books of the Bible Arranged?

When we sit down to read the Bible, it appears to begin at the beginning of time in Genesis and end with the eternal state that follows the destruction and recreation of the known universe in Revelation. But once we know the Bible, we realize that everything in between is a jumbled mess.

The books of the Bible are arranged by genre, not by chronology. The Old Testament begins with the Pentateuch, or the books of the Law. Next are books of history, then books of wisdom and poetry, then the prophets. The New Testament starts with the gospels — 4 different accounts of the life of Jesus — then an historical book, Acts, followed by various letters written to churches and individuals, then the record of a revelation given to the Apostle John.

The Messed-Up Chronology of Kings and Chronicles

Constable, Thomas L., Dr.. “Constable’s Bible Study Notes”. Marion, IA: Laridian Inc., 2021.

The Old Testament starts out in chronological order, but fairly quickly gets confusing. The books of Kings and Chronicles cover much of the same material. If you’re reading through the Bible in a year, cover-to-cover, you’ll read 1 Kings in April and 2 Chronicles in May. As a result you’ll be re-reading the same events twice. On top of that, the order of events described within a single book is often not correct. For example, Rehoboam is king in Judah in 1 Kings 12, but isn’t actually crowned king until two chapters later. Then (a month later in your reading plan), he becomes king again in 2 Chronicles 10 before becoming king again two chapters later.

The Messed-Up Chronology of Job

The biblical character Job is among the most ancient persons in the Bible. He is believed to be a contemporary of Abraham (circa 2000 BCE). In the traditional 66-book Bible, the story of Job is found after the book of Esther and before the book of Psalms. The book of Esther describes events in Persia around 480 BCE, around the time that the first remnants of the Jews were returning to Judah after being deported. Most of the Psalms date to the time of King David, 500 years earlier (around 1000 BCE). Based on what you read before and after Job, it would be easy to get the impression that Job was a Jew (he was not), or that he was a contemporary of Saul, David, and Solomon (he was not), or that he lived after the deportation and captivity of Israel and Judah (he did not).

This isn’t just a matter of dating Job correctly. Reading about Job before meeting Abraham helps us better understand God’s relationship with humans at this point in history. Job didn’t have the benefit of God’s direct revelation to Abraham, nor of the Mosaic Law. But he still had an understanding of God’s character and holiness. Like Melchizadek (who may have been a contemporary of Job), he was a worshiper of Yahweh at a time when we traditionally picture humanity in darkness, awaiting the more well-known revelation of Yahweh to Abraham and eventually to Moses. His story challenges us to come to a better understanding of how God’s relationship with his creation morphed over time.

To Whom Did the Prophets Prophecy?

All of the prophets are lumped together at the end of the Old Testament, even though much of their work happened before the captivity of Israel and Judah, and certainly before the return of a remnant of the people to the land.

Conclusion

All of this confusion leads to a paradoxical conclusion: It’s necessary to understand the whole Bible before you can read and understand any of it. You need an historical framework when reading the Bible “out of order” (that is, reading it “in order”) so that you can reorganize it in your head as you read it.

I would strongly recommend finding a chronological reading plan for PocketBible and reading through the Bible in calendar order. You’ll be surprised how much your understanding of God improves when you can put his relationship with his creation in historical order.

Stay tuned and "I will yet show you a more excellent way"

What’s Your Excuse for Not Reading the Bible? #2

This is the second in a series of articles on common excuses for not reading through the Bible.

I’ve spent the last 40+ years studying the Bible, but not necessarily trying to read each word from cover to cover. Several years ago I began setting aside time each day just to read the Bible, with the goal of getting through the whole thing over the course of a year. Having spent many years coming up with excuses not to read the Bible this way, I thought I’d record them here for you. But take note: I’ll be shooting them down in the end, so don’t get your hopes up.

Excuse #2: I get bogged down in the endless genealogies (the dreaded “begats”)

If you’ve tried to read through the Bible you know the frustration of happily reading along, then running into a long list of “so-and-so begat so-and-so”. You want to be faithful and read every word, but come on — there are a lot of random, unpronounceable names here.

Somebody told me once that there are only 25 such genealogies in the Bible — suggesting I should just buckle down and keep reading. I think they severely underestimate the problem. Now, to be fair, when trying to count such lists, it is difficult to define what constitutes a purely “genealogical” passage. Some are lists of names are mostly there to describe where people settled. They just happen to be organized by family. Others are lists of related people along with their responsibilities in the service of the tabernacle, temple, or army. A few are census records, which are naturally organized by family. So the exact number of genealogies could be subject to interpretation

In the end it doesn’t matter. When you run into this passage, you know it’s boring, no matter how you classify it (1 Chronicles 1:1-27)

1Adam, Seth, Enosh, 2Kenan, Mahalalel, Jared, 3Enoch, Methuselah, Lamech, 4Noah, Shem, Ham, and Japheth.

5The sons of Japheth: Gomer, Magog, Madai, Javan, Tubal, Meshech, and Tiras. 6The sons of Gomer: Ashkenaz, Diphath, and Togarmah. 7The sons of Javan: Elishah, Tarshish, Kittim, and Rodanim.

8The sons of Ham: Cush, Mizraim, Put, and Canaan. 9The sons of Cush: Seba, Havilah, Sabta, Raama, Sabteca. The sons of Raamah: Sheba and Dedan. 10Cush became the father of Nimrod. He began to be a mighty one in the earth. 11Mizraim became the father of Ludim, Anamim, Lehabim, Naphtuhim, 12Pathrusim, Casluhim (where the Philistines came from), and Caphtorim. 13Canaan became the father of Sidon his firstborn, Heth, 14the Jebusite, the Amorite, the Girgashite, 15the Hivite, the Arkite, the Sinite, 16the Arvadite, the Zemarite, and the Hamathite.

17The sons of Shem: Elam, Asshur, Arpachshad, Lud, Aram, Uz, Hul, Gether, and Meshech. 18Arpachshad became the father of Shelah, and Shelah became the father of Eber. 19To Eber were born two sons: the name of the one was Peleg, for in his days the earth was divided; and his brother’s name was Joktan. 20Joktan became the father of Almodad, Sheleph, Hazarmaveth, Jerah, 21Hadoram, Uzal, Diklah, 22Ebal, Abimael, Sheba, 23Ophir, Havilah, and Jobab. All these were the sons of Joktan. 24Shem, Arpachshad, Shelah, 25Eber, Peleg, Reu, 26Serug, Nahor, Terah, 27Abram (also called Abraham).

To make matters worse, this is just the first 27 of 397 verses that make up the first 9 chapters of 1 Chronicles, all of which are lists of names.

Out of curiosity, I made a detailed list of all the genealogies, census records, and lists of people I found in the Bible. I found 38 overt genealogies, 53 other lists of (sometimes related) people, and 5 census records (family names and counts). Together, these passages account for 3.5% of the text of the Bible. 3.5% doesn’t sound like much, but it means that in your one-year trip through the Bible, you’ll spend 13 days just reading lists of names.

Let’s put that in perspective: There are only 8 books in the Bible (all in the Old Testament) that are longer than that list of names. You’ll spend more time reading lists of names than you will reading Joshua, Judges, or Daniel. You’ll spend more time reading those names than you will reading any single book in the New Testament. — more time than you’ll spend in Luke, Acts, or Romans. In fact, you could read Romans through 3 times and have time left over to read more names.

How to Finish 13 Days’ Reading Instantly

So here’s the secret of those lists: The important people are going to be mentioned again. The in-betweeners are not. So if you simply skip those passages, you literally aren’t missing anything. And you’ve saved yourself 2 weeks of laboring through long lists of names.

Yeah, But Look at All You’re Missing!

A hardcore Bible scholar is going to complain that if you skip the genealogies, you could end up missing the fact that Ruth, a gentile, is an ancestor of David (and therefore Jesus). And that Jesus is a member of the tribe of Judah. And that Methuselah, the longest-living person in the Bible, died in the year that Noah’s flood began.

But then, you just read those facts here, so there you go. Problem solved. Skip the “begats”.

Stay tuned and "I will yet show you a more excellent way"

What’s Your Excuse for Not Reading the Bible? #1

This is the first in a series of articles on common excuses for not reading through the Bible.

I spent most of my Christian life studying the Bible as needed to teach a class, preach a sermon, or answer a question. I did some whole-book studies on my own or with friends. But other than a couple failed attempts early on, I never made an effort to read through the Bible cover-to-cover. New Testament? No problem. Genesis and Exodus? Sure. But Leviticus, Job, and all those prophets? Yeah, right. Not happening.

Several years ago I was encouraged by a group of people in our church to set aside time each day to read the Bible, with the goal of getting through the whole thing over the course of a year. In our group, you can choose any plan you want, as long as it gets you through the Bible in a year. Every month, we are encouraged to share what we’ve learned and report our progress. That first year was hard, but I repeated the exercise the following year and have done so since.

Having spent many years coming up with excuses, I thought I’d record them here in case you want to use them. Full disclosure: I will be shooting them down in the end, so don’t get your hopes up.

Excuse #1: The Bible is a long book, and I’m a busy person. I don’t have any time to read it.

Have you ever wondered why Bibles are always printed on that tissue-thin paper? Why the text is so small? They have to do those things in order to get it to fit in your hand. It’s a long book.

The Bible contains 1189 chapters and a total of 31,102 verses. Those verses combine to contain over 750,000 words. That’s the equivalent of about 11-12 average-length novels. It’s longer than the first 5 Harry Potter books, and you know how much you hate to read those!

About 25% of us don’t ever read any books. Another quarter of us read fewer than 4 each year. With the Bible equaling 11-12 books (or 5.2 Harry Potters), no wonder reading the Bible seems daunting to most people.

Figuring out how long it takes to read the Bible depends on your reading speed. A quick Web search turned up different estimates for adult reading speed. Depending on the site you visit, you’ll see:

  • 200-250 words per minute
  • 238 words per minute when reading non-fiction; 260 for fiction
  • 200-300 words per minute
  • 100-200 when reading for comprehension

Last year, we at Laridian decided to determine the average reading speed of adults when reading the Bible. We undertook a study of 1000 individuals to measure their reading speed. We used Old and New Testament sample texts and a modern English translation (the World English Bible). Our research suggests that 98% of people read between 229 and 251 words per minute when reading text from a modern translation of the Bible. At that rate, 98% of us should be able to read the Bible in 8-9 minutes per day.

Curious about your Bible reading speed? Take the test here.

That’s 8-9 minutes I don’t have!

Imagine adding 8-9 minutes to your morning routine. Most of us would have to get up 10 minutes earlier, and that’s just not going to happen! We could carve it out of the 3 hours per day we spend watching TV, but then how would we keep up with the Kardashians? One website says we spend 63 minutes each day eating. Maybe we could skip breakfast. Or dessert.

What I did was add it to the tasks I do each morning in front of my computer. Every morning I visit our church’s prayer list site, check for tech support issues that need my attention, visit Facebook and MeWe, and catch up on the news. It wasn’t a problem to launch PocketBible at the start of that session, do my reading, then continue my day. It was very painless.

Reading through the Bible in six months.

I’m a data-oriented person, so after a while I started timing my morning reading sessions. Turns out I was only taking about 7 minutes to read the passage for that day. So I started doing 2 readings each morning. It generally took less than 15 minutes, which wasn’t much more than the original 8-9 I thought I’d need. Next thing I knew, it was mid-July and I was finishing Revelation!

Everybody is different. Some are going to read slower, and some faster. The point is that a lack of time doesn’t need to be a deterrent. We all have 10 minutes we can spare somewhere. For 98% of us, that’s going to be plenty of time to spend each day to get through the Bible in a year.

Stay tuned and “I will yet show you a more excellent way.”

PocketBible for Windows Progress Update #12

Let’s just dive into what’s been done since I last posted an update….

Modal Dialog Component

With this new-to-us technology stack, we continuously discover that a lot of what we expect to be already done for us has to be created ex nihilo. For example, while there is a “context menu” component available to us in Electron, it isn’t very sophisticated and can only handle the simplest tasks. So we had to create context menu functionality for ourselves.

Similarly, there’s a generic “message box” dialog to use for error messages and to ask simple yes/no questions, but we found ourselves frequently needing to get input from the user, such as entering the name of a new bookmark category or choosing whether or not to clear daily reading progress when changing the start date of a devotional book. The built-in message box can’t do that.

We ended up creating a generic modal dialog that could be used to display error messages, ask simple questions, or gather (and validate) input. This is a little harder than you might think, but taking the time to do it allows us to standardize the way input is gathered in the app and gives us control over the appearance of the dialog so it can match the rest of the app. It also makes it very quick and easy to create a fairly complicated data collection dialog when we need it.

This generic dialog can be used for simple messages with OK/Cancel or complex data entry forms.

Once we had that component, we went back and made use of it in several dozen places. Some were easy and some required a little more work. But we’re happy with the results. This is the kind of task that takes a long time in the moment but makes future enhancements to the code significantly easier and faster. And it gives the user a much-better experience.

Bookmarks, Highlights, and other Study Panel Features

Since the last update we rounded out the features of bookmarks in the app by giving you the ability to create new categories and move the bookmarks from one category into another. We added a (somewhat dangerous) feature that allows you to delete all your bookmarks in one operation. We used our new modal dialog component (described above) to ask you 2 or 3 times if you’re sure you want to permanently delete all your carefully created bookmarks.

Reorganized the bookmarks pane and re-implemented the category management functions using the new modal dialog component.

We added the ability to change all the highlights in one color to another color. We changed some existing features to use our new modal dialog, and, like we did in the Bookmarks pane, made sure we were using the user’s global font size preference in the Highlights pane.

With our new modal dialog in-hand, we changed the implementation of some existing features to use it. And we made sure the Study Panel panes were using the global font size we’ve talked about in previous updates.

Accelerator Keys

“Accelerator keys” are the keystrokes displayed next to the application menu items that can be used as shortcuts to that menu item. Many of these you do without thinking about it, like Ctrl+C (Cmd+C on a Mac) to copy and Ctrl+V (Cmd+V) to paste. Others you discover when you realize you’ve been selecting an item from a menu over and over and wish there was an easier way.

Since the last update, we’ve implemented the ability to assign virtually any combination of modifier keys (such as Control and Alt) and a letter or number key to any operation in the program. So if you find it easier to remember Ctrl+S for “search” instead of Ctrl+F for “find”, just reassign Ctrl+S to the “Find” operation in the menu. If you find yourself repeatedly turning verse numbers on and off and get tired of selecting “Hide Verse Numbers” from the “View” menu, just assign Ctrl+Shift+H to that item. Now one key will toggle your verse numbers on and off.

New Accelerator Keys preference page lets you select different keyboard shortcuts for menu items, or assign shortcut keys for menu items that don’t have them.

Part of implementing this feature was making sure that everything you might want to do in PocketBible is present in the menus somewhere so that it can be assigned to a key. We discovered, for example, that we hadn’t yet implemented “Next/Previous Pane” and “Next/Previous Book in Pane”, so we added those to the “View” menu and implemented them in the code.

Not every key can be reassigned. Some are just too well-integrated into the way some of the built-in functionality of the code works to be changed. We manage that for you and warn you if you’re trying to do something that isn’t going to work.

Layouts

We’ve been enduring problems with splitting and resizing panes since the beginning of the project. During this period we attacked these problems.

Let me digress briefly to talk about how programming has changed since I started doing this 40 years ago. Back then we wrote our own code. When we had to, we would purchase a “library” that implemented something hard, like managing a database. These libraries were written by knowledgeable, professional programmers, thoroughly tested, and only updated when necessary to add major new features.

Today, the Internet makes it possible both to distribute and to discover little components that supposedly make programming easier. Yes, there are major components like database managers, but there are also tedious little components that do nothing more than remove leading or trailing spaces from strings. It can be easier to import someone else’s code than write it yourself.

You don’t know the pedigree of the people who write these components. Often they write some complex thing (like the virtual list and context menu components we use in PocketBible) then just vanish into obscurity, leaving you to maintain their code and fix the bugs they left in it (like the virtual list and context menu components we use in PocketBible).

The component we chose very early in the project to manage the splitting and resizing of book panes has been both a blessing and a curse. It definitely saved us some time. At least up until earlier this month.

Example: One of the things it does is notify the app that the user has dragged a splitter between two panes and changed their relative sizes. The sizes are expressed in percentages. So the original size might have been 50/50 and now the new sizes are 30/70. That’s great. PocketBible records the new sizes so that it can restore them the next time you run the app. So far so good.

The problem is that it uses the same notification message to tell you that it has internally changed the size of a pane part-way through an operation. So if you have two panes split 50/50 next to each other, and the left pane is split 30/70 vertically (one above the other), and you close the top left pane, it will notify you that you now have a left pane of size 70 and a right pane of size 50. It doesn’t tell you that the left pane is 70% high and that the right pane is 50% wide. Nor does it tell you that in just a few milliseconds it’s going to reorient and resize the panes, and further, that it’s going to do that incorrectly, leaving your left pane occupying 58.33333% and right pane 41.66667% of the screen where they used to be 50/50 before. (Exercise for the reader: Why those weird sizes?)

One of my tasks recently has been to attack this issue and try to resolve it. I believe it’s mostly conforming to my wishes but it took some doing.

Splitters between panes can be dragged to resize the pane and now have a subtle “handle” to suggest they can be moved.

While messing with the screen layout, I made the splitters between the panes a little thicker to make them easier to find with your mouse (or your finger tip if you’re using a touch screen). I gave them little visual “handles” to make it more obvious that they can be dragged to adjust their size.

Book Panes

Speaking of the screen layout, other changes were made to the book panes.

We discovered that closed panes were still “alive” in some respects and were frantically trying to do things in the background as if they were open. This had no visible impact on the app but made it run terribly slow after a while.

We completely re-implemented the book tabs at the bottom of each book pane. They were trying too hard to look all fancy and clever and as a result they didn’t always work correctly. While we were in there we made sure the tabs adjust their size to your chosen font size so you don’t end up with nice, readable Bible text and tiny, unreadable tabs.

When the text is small (top), the tabs are proportionally smaller. When text is large (bottom), tabs are larger.

The pop-out tooltip that tells you where you are as you drag the scroll bar scroller was getting stuck in the “on” condition. That’s been fixed.

We’ve been ignoring problems with interlinear books like our Greek NT’s and the NIV with Goodrick-Kohlenberger Numbers. Some of the interlinear attributes weren’t being displayed. Now they are.

Interlinear books weren’t working until recently. This is the NIV with Goodrick-Kohlenberger numbers, Strong’s numbers, inflected forms, and lemmas displayed between the lines.

Text Selection

First, the “easy” part: We now automatically calculate a good color to use for text selection (when you drag your mouse to select text). If you think about it, this isn’t straightforward. It needs to be visible against both the background and the text color. Both of those are user-configurable and can be anything. So you can’t just choose a pleasant shade of blue and call it good. The program now finds a color using an appropriate hue from your chosen color scheme that will work for text selection.

The selection color starts with the dominant hue in the color scheme. In this case, this dark color scheme uses a shade of purple for toolbars and buttons, so text selection is indicated by a lighter tint of the same hue that contrasts both with the text color and with the background. This is one of those things that is way more complicated than the average user might think.

The real challenge was handling “select all” in a book pane. It’s simply not realistic to support the ability to hit Ctrl+A (Command+A on a Mac) then Ctrl+C (Command+C) and expect to copy an entire 400 MB commentary to the clipboard (in both plain-text and rich-text HTML). The copyright owners from whom we license texts wouldn’t like it, and it would present some real programming challenges.

On top of this, there’s the fact that PocketBible does not keep the entire book displayed all the time. We just make it look like it is. In fact, it works more like Facebook, where we render additional paragraphs of text as you scroll farther and farther into the book. So when you say “select all”, we actually only select the portion of the text that has already been rendered, which consists of 1 or 2 screen heights above and below what you can see.

A similar problem happens when you start selecting in the middle of the book and drag off to the right of the pane. Selection will extend toward the bottom of the book. (If you drag off to the left, it extends toward the top of the book.) Again, the rest of the book isn’t really there.

The best answer we could come up with was to just make sure we highlight and copy what is rendered. This has the benefit of limiting the amount of text you put on the clipboard, satisfying both our copyright owners and making it so you don’t have to wait while we render an entire Bible into your clipboard.

Miscellaneous New and Updated Features

  • Changed the Journal icon (AFS feature).
  • Adjustments to the way bookmarks are handled in the context menu. It can’t realistically handle the situation where dozens of verses are selected, because it lists options for each selected verse. So if you select 100 verses, you can bookmark them all, but you won’t see each one of the individual verses listed on the context menu.
  • Cloud Library wasn’t showing all owned books. Made changes mostly on the server to deal with this.
  • Fixed user interface misbehavior of icons on buttons when the buttons got smaller.
  • Fixed a database initialization bug that was causing tables to constantly be recreated, which would fail after the first call. This resulted in the database operation also failing.
Bookmarks in the context menu when a large number of verses are selected. In this case 78 verses are selected. Individual controls are provided for the first 15 selected verses.

Schedule

I haven’t talked about this for a while, and a few of you have asked. There’s a very common belief that writing software is like baking a cake. If you break down the tasks and and add the amount of time each takes, you’ll get the total time and can accurately predict when it will be ready to eat.

But it turns out it’s more like writing a college textbook for a subject you know well, but doing it in a language you’ve never learned using publishing tools you may have to create yourself. You can quickly learn bits of the language and maybe write an initial draft that looks pretty good. But as you write, you learn more about the language and have to go back and make corrections to previously written chapters. Then you have to decide on where illustrations are needed, figure out how to create them and how to arrange them in the text. Then there’s choosing paper, fonts, ink colors, cover design, binding style, dust jacket design.

Some parts of our probably ill-considered textbook analogy will be easy; other parts will be hard; and some of the hard parts will have to be re-done 2-3 times until you get them right. You might be able to predict completion dates for portions of it, but it’s pointless to try to predict a completion date for the entire project because you don’t really know what needs to be done until you do it.

People don’t believe me when I say we literally don’t have a planned release date for this product. You’d think after 40 years of writing software for business and pleasure, I’d know how long something is going to take. Instead, what I’ve learned in 40 years is that the “ship date” question is one that has no answer. If you try to answer it along the way, you’ll only disappoint people.

That being said, I felt going into this project that it was going to take 12-18 months. However, the further we got into it, the more we didn’t know.

The good news is that I feel like the to-do list is getting shorter. The bug list grows about as fast as we shrink it by fixing things, but those tend to be small tasks. In the interest of total transparency, I’ve included my list of remaining tasks below.

Interestingly, in the process of capturing screenshots for this article, I had to add items to the to-do list.

As you can see, a lot of these tasks are fairly minor; there’s just a lot of them. Some are harder or more unknown than they look.

Remaining Tasks

Bugs

  • When multiple verses are selected, the reference isn’t formatted correctly in the context menu.
  • When multiple verses are selected, the last verse appears before the first one in the context menu bookmark list.
  • Dragging a book into a new pane results in an infinite render loop.
  • Moving study pane to the right side (or moving it back to left side) causes the resizing controls to be lost.
  • When moving study pane to the right, the book panes are not getting refreshed.
  • Thoroughly test back/forward. May be capturing view state for history too often, like after normal scrolling.
  • Verify that we’re loading the latest book ordering database when we see newer Bibles.
  • Verify scroll by line and scroll by page is working. Not sure of the latter
  • Manage input focus throughout.
  • Implement date-sync for devotionals; save last date sync so we can use it when opening devotionals to the last synced date.
  • Consider an option to make pane splitters narrow for mouse ops or wide for touch ops.
  • If book panes get too small, it’s easy to scroll well past the end and confuse the loader

Go To Pane

  • Consider moving book names to top of Go To pane for all book types.

Note editor/viewer

  • Make it look better when empty.
  • Consider “add note” that adds at current location in active book. There have been serious problems with that on other platforms.
  • Deleting Journal notes doesn’t refresh the list correctly. (AFS)
  • Can sometimes get duplicate Journal notes somehow. (AFS)
  • See if we can honor newlines in plaintext and retain those in the rich editor. Right now they are retained in the viewer but not the editor.

Note search

  • Low priority: Switch to enable/disable enhanced search (even for book searches where it defaults “on”)

Preferences: Color Theme

Settle on color themes for free version and for AFS.

Search

  • Consider moving search back into main process.
  • Verify we’re using global ui styles in the study tab.

User Data

  • Verify we’re tracking the last-synced customer and don’t sync when it changes.
  • Verify we’re always requesting data from the server when we need to and saving when we should.

Preferences

  • Use standard font sizes in preferences.

Accelerator Keys

  • Code review
  • Organize the list of functions

Advanced Feature Set

Consider whether or not to release the base version before finishing AFS features

  • Journal
  • Navigator
  • Autostudy
  • Listen
  • Library Search
  • Saved Desktops
  • Today button
  • Hover Tooltip over Links

Prepare for Release

  • Resolve issues related to doing a release build
    • Search task
    • Locations of pre-installed books and images
    • Locations of image caches; rendering caches
  • Onboarding
  • Website
    • Add platform landing page and catalog page for the app.
    • Add catalog page for AFS subscription.
    • Remove other Windows platforms (consider leaving the desktop version for Win7 die-hards).

PocketBible for Windows Progress Update #11

Surprisingly, we weren’t sure what our Windows app would look like in Windows.

Running the Windows App on a Windows PC

We spent some time this month bringing the program up on a Windows machine to see how it’s working. This may seem odd, since it is a Windows app, after all. But the fact is that we’ve been doing all our development and testing on our Macs. We can do this because even though the app is being developed for a single platform (Windows) it’s being done with tools that support Windows, macOS, and Linux. That works great for us since we’re 100% Mac-based here.

One of the things we wanted to verify was that the application menu was functioning correctly on Windows. As you may know, app menus on macOS are “disconnected” from the application’s window. And every application has a special menu identified by the name of the app. So PocketBible for macOS has a “PocketBible” menu that is where you’ll find “About PocketBible”, “PocketBible Preferences”, “Check for Updates” and other application-level commands. Windows is different. There is no standard place for some of these items. So we spent some time organizing the way the menu appears on Windows.

Windows also handles “keyboard shortcuts” differently. These are the key combinations that are assigned to certain operations of the app, like Ctrl+C to copy and F10 to activate the menu. On the Mac, you define these by associating them with menu items. The operating system allows you to redefine which shortcut keys go with which operations in any of your apps. Not so in Windows. So we spent some time verifying that we could handle keyboard shortcuts correctly and coming up with simple ways to route these commands through the app.

Back-End Server Updates

When we release PocketBible for a new operating system (what we generally refer to as a new “platform”), we have to populate a database on our server with all the books and Bibles that will be available for it. It’s a bit of a milestone to have created those new database records, which has happened since we last met. Prior to this, the new Windows app had been pretending to be the macOS app every time it talked to the server to either shop in the in-app store or view a list of all the books owned by the currently logged-in user. With this database update, the new app can drop the charade and just be itself.

Added the new Windows platform to the back-end database.

Highlights

Basic highlight functionality was already working. We took some time to take a close look at the highlights study panel pane to make sure everything was there that we needed. We added functionality to remove all the highlights of a selected color, and to change highlights in one color to another color. While removing highlights of a selected color, we also added a way to remove all your highlights from the entire Bible. I don’t think we’ve implemented these features on other platforms.

In the right-click or context menu, we added a “most-recently used colors” list to the top of the menu to make it easy to get to the colors you use most often. This is something we implemented first in PocketBible for iOS. Again in keeping with the iOS version of PocketBible, we moved the highlight eraser to the top of the list of colors to make it easier to find and get to.

If you own the Advanced Feature Set, you’ll be able to rename your colors. Even though we’re delaying AFS features to the end of the project, we went ahead and implemented that one while we were working on highlights.

Bookmarks

We also reviewed the status of bookmarks. We implemented “create a bookmark category” from the bookmarks pane in the study panel and will have it implemented from the context menu by the time you read this.

We added a feature to move bookmarks from one category to another. I don’t believe this feature exists in any other version of PocketBible. We also added a feature to remove all your bookmarks. This is something we have had to do for people on the server before; it will be much easier if you can do it yourself.

Menus and Toolbar

While we were looking at menus, we also looked at the toolbar, since toolbar buttons and menu items are handled similarly in the app. We compared the new Windows app to the current macOS app to make sure we had thought of everything and added some menu items and toolbar buttons we hadn’t yet implemented.

Among these were the following. Unless otherwise noted, we added a keyboard shortcut, a toolbar button, and implemented the functionality:

  • About This Book – Shows information about the active book.
  • Toggle Word Attributes (Strong’s Numbers) – Implemented and also added a “toast” — a brief message that is shown to indicate the state of this option (on or off).
  • Sync Bibles/Commentaries to Active Bible – When the global setting is turned off, this menu item/toolbar button will allow you to tell your Bibles and commentaries to sync up to the current verse in the active Bible.
  • Sync Now – Sync your data with the server manually whether automatic sync is on or off at the time. Also added a progress bar on the Account Preferences screen and an indicator on the toolbar to show this activity is happening.
  • About PocketBible — Version, build date, copyright and other info about the app.
  • Help — Show the User’s Guide (either open it or make it active if it’s already open).
  • Help on the Web — Related to opening the User’s Guide, this option takes you to the FAQ on our website.
  • Start Each Verse on New Line
  • Hide Verse Numbers
  • Toggle Sync Bibles/Commentaries
  • Footnote Style — control whether you want to display just asterisks in the place of footnotes, show the entire note, or hide footnotes entirely.
  • Toggle Words of Christ in Color
  • Copy Passage — Added a toolbar button. This was already implemented and connected to the menu and context (right-click) menu.
  • Mark Current Reading as Complete
  • Go To Today’s Reading — This was already implemented as a button on the Go To… pane. In addition to adding the toolbar button and menu item, we implemented the feature that allows you to go to today’s reading in all your open devotionals when you go to today’s reading in the active devotional.

On the subject of the toolbar, we made some adjustments so that right-click on the toolbar allows you to customize it, and turned the Preferences (or Settings) button into a “Close Preferences” button when you are in the Preferences screens.

On the subject of menus, we created a way for menus to be adjusted when your Advanced Feature Set subscription is enabled or disabled. The AFS features themselves haven’t been implemented yet but we need to support the mechanisms you use to activate those features.

Other Miscellaneous Features

  • Implemented a way to choose “preferred books” so that when you select a Bible link with no Bibles visible, we know which Bible to try to use. Similar behavior happens with commentaries and dictionaries.
  • The “expand pane to fullscreen” feature was temporarily removed. I think it’s going to end up being an AFS feature and will be implemented similar to how we do it on the Mac. The way we were planning to do it for Windows just won’t work.
  • Made links to Web pages and email addresses open the appropriate external app.
  • When opening a book in a pane where that book is already open, we just activate the existing tab instead of creating a second one. Similarly, if you drag a tab from one pane to another, if the book is already open in the target pane we remove it and replace it with the dragged tab.

PocketBible 2022 User Survey Results

We just completed a survey of our PocketBible users and I thought I’d share a few results with you. This isn’t everything and it’s not even every important thing. But some of this is interesting and might help you understand who your fellow PocketBible users are, and in some cases, why we might make the choices we do when it comes to the products we create for PocketBible.

Demographics

The majority of you are male, and are 55 or older. To some peoples’ surprise, you are not preachers — though most of you have some kind of teaching ministry.

This is consistent with what we’ve come to know about our PocketBible users. I believe that our age (yes, I’m in that “over 55” group, too) puts us in a generation that trusts the authority of the Bible and therefore wants to know more about it. We also believe there are people smarter than us who have things to say about the Bible from whom we can learn. Younger people tend to value the experience of God. They learn about God through their community experiences with their fellow believers. As a result they have less dependence on the kind of commentary and research tools at which PocketBible excels. Not all of them, of course; we continue to add new users of all ages to the PocketBible family.

Beliefs

Half of you choose the label “Bible-believing” to describe your Christian beliefs. One-third use the term “evangelical”. About a quarter of you are comfortable with “nondenominational” or “Baptist”. These terms aren’t mutually exclusive so the totals add up to more than 100% with a lot of overlap. Terms that mention specific denominations score in the single digits: “Methodist”, “Presbyterian”, “Anglican”, “Lutheran”, and “Catholic”, for example.

This is consistent with what we know from being in the Christian publishing business for over 30 years now. People who purchase Bibles and Bible study materials tend to be on the more theologically “conservative” end of the spectrum and they tend to describe themselves as neither Catholic nor Protestant. That “Bible-believing” term sums up who they are. This has been true the entire time I’ve been in this business.

And it makes sense. These are the kind of people who are encouraged by the churches they attend to study the Bible for themselves and not to depend on a formal member of the clergy to answer their questions. Even the least leadership-oriented person in this group has a small but useful Bible library, which may or may not be entirely digital.

Bible Reading

80% of you spend time reading the Bible every day (or nearly every day). The majority of those are either using PocketBible’s devotional features or following an external plan but using PocketBible to read the Bible. They spend about 12 minutes per day just reading the Bible.

I find that encouraging. I believe it’s important for Christians to read and understand the Bible. It’s our most direct way of getting instruction from God.

Online Habits

Most of you are still using Google for searches even though it puts your privacy at risk. The next most popular choice is arguably the right one: Duck Duck Go.

A few of you, when asked what search engine you use, told us you use Edge or Firefox. Please — Edge and Firefox are browsers. A browser is how you access the Web. A search engine is a website you use to perform searches. Most browsers allow you to choose a default search engine. This allows you to type some search words into the address line in your browser and it will automatically invoke your chosen search engine to perform the search.

More depressing than this is that a few of you reported that Edge and Safari are the websites you most frequently visit. Edge and Safari are browsers. A browser is an app you use to access the Web. You view a website in a browser, but the browser is not the website.

Use of PocketBible

Most of you use PocketBible every day and almost 90% use it more than just in church on Sunday.

Over 80% of you use PocketBible most of the time on either a phone or tablet. This is consistent with how we target our marketing of what we do — we are a mobile app developer and always have been. That less-than-20% who use it primarily on a desktop or laptop will argue with us about that and point out that Windows is the most popular operating system. Until we point out that Windows is the most popular desktop operating system. If you expand your scope to all computing devices, then Android OS is actually installed on more devices than Windows.

Hey, I don’t make these things up. I just write the code. 🙂

Satisfaction

Over 90% of you are somewhat or very satisfied with PocketBible. You are most interested in the same kinds of resources that we are already producing — commentaries, dictionaries, Bibles, and atlases. You have some very specific recommendations in some cases, and we’ve made a note of those.

We also are pouring over your criticisms. We can’t always respond to these but they help us understand where you all are coming from.

This is just a quick overview of the portions of the survey that I thought might be of general interest. There are 37 pages of 8-point text with your comments, suggestions, and complaints. Those are tough to summarize but are arguably the most helpful.

Thanks to those of you who participated and claimed your $10 coupon. The rest of you — we’ll do this again next year. 🙂

PocketBible for Windows Progress Update #10

Since the last update we wrapped up work on managing bookmark categories (add, rename, delete, etc.).

One of the things we’ve been working on are various display-related settings. “Settings” is not something you implement all at one time as a separate task. We have been doing them as we need them. One of the tasks we’ve undertaken in the last month or so is to make sure we’ve remembered all of them and that we’ve saved them so they can be restored the next time you run the app. This task will continue in the next month or so to make sure we have everything on the toolbar and menus that you’ll need.

In-App Store

One of the background tasks that has been going on here for some time is a revamping of our website. I could write a whole series of blog articles on that task, but suffice to say that the new design separates the data (like all the “catalog text”, screen shots, and book previews for each product) from the way it is presented. We’ve been able to use people who know Web design to do the “front end” development that the user sees, and use database developers to write the “back end” that provides all the data to the front end. It does this through an API (application programming interface) running on the server.

The initial plan for the in-app bookstore in this new version of PocketBible was to do it the way it’s done on Android, iOS, and macOS. On those platforms, the app has an embedded website viewer that opens a mini version of our website inside the app. As we contemplated how to do that in the Windows app, we had a different idea. Instead of making a little website and figuring out how to get it to interact with the app, we could use the existing API for the new website. All the code and user interface would be inside the app. It would use the API to get the data it needs.

The problem with doing it this way comes up when considering how to handle payments. Securely handling your credit card and PayPal transactions is hard to get right. (Unlike most other e-commerce sites that use third-party shopping carts, Laridian has a custom solution that interacts directly with the credit card processor and PayPal.) Doing it from inside the app creates security issues that we didn’t want to take the time to solve. So instead, when it comes time to check out, we securely transfer you to our website through your existing browser. You finish the transaction there then come back to the app to download your purchases. It all works pretty smoothly and it drew a nice boundary around what we had to implement in the app, saving us some time.

Accessibility

As our customer base ages we have heard more and more about the necessity to think about being able to control font sizes throughout the app. That means in menus and dialog boxes — elements normally controlled by the operating system, not PocketBible — in addition to book and Bible text. Each operating system on which we run presents us with different challenges. Most handle accessibility very badly. The way it’s done in iOS, for example, makes it virtually impossible to create any kind of data input form. If we adopt iOS’s way of doing things, we don’t really know how big any text is. They just take over and make it as big as you ask them to. It creates a real mess for every app.

Because of the development environment we’re working in, we have significantly more control. But with great power comes great responsibility. We have to be thinking about accessibility — especially text size — constantly. The problem is that there is a lot of text in a lot of places in the app — window/pane titles, button labels, section labels, instructive text, dialog boxes, and more. Rather than giving you control over the size of text in every context, we’ve decided to tie what we think of as “user interface text” to the sizes of your book text. You have one control that sizes the text in your book window and we base the size of other text in the app on that choice.

To demonstrate both the in-app store and accessibility features, I put this little video together. I don’t normally record video in the office because we get a lot of background noise from the restaurant below us and the street in front of our building. And because our offices are in a 19th century building with brick walls, original wood floors and 14-foot ceilings, there are a lot of echos. But I got here before anyone else this morning and thought I’d give it a try. 🙂

PocketBible for Windows accessibility demo.

One of the fun things about the way we develop here is that it is very iterative and nothing is ever final. While making this video I discovered that the range of font sizes I was allowing both for books and for user interface text was not wide enough so I made some adjustments. I also realized that it was hard to tell which switches on the preference page where you set the font size were on and which were off. I made a couple small changes so now switches turn green when they’re on.

PocketBible for Windows Progress Update #9

Search words highlighted in the note viewer.

Note Editor

We reported extensively on the note editor in progress update #8. We spent a little more time on that task, in particular as it relates to when we save the changes you make to a note. First, we wanted to make sure that your edits get saved when you exit the app, so we provided a notification to the note editor that the app is about to exit so that it can save your work. (You probably think that just “happens” — and it does — but somewhere there’s a programmer who wrote the code to detect the fact that the app was closing and made sure that your work got saved.)

In addition we took more control over exactly when we sync an edited note to the server. When the note is open for editing, our other apps periodically sync to the server to make sure your changes get saved. This is potentially important on a mobile device where you might drift out of Internet coverage or the battery might die at any moment.

On the desktop, we can be a little more patient. We wait until you are done editing the note (say you switch to the viewer or the other editor), then we save all your changes to the server at that time. Of course locally we save your work every few seconds so that you don’t lose anything if the power goes out. But by waiting to sync with the server until you’re done editing, we make certain problems easier to solve when you have the note open on more than one device at a time.

Finally, when linking to a note from search results, we now highlight the searched-for word(s) in the note viewer. This may be a first for PocketBible. I don’t recall doing this in previous releases, though some of you with memories that extend back to the last century more clearly than mine do might remember it differently.

Note Search

Note searching is similar to book searching except there are no indexes and of course the text comes from a completely different place. The overall structure of the code is the same except for when you get down to actually looking for the word or words in the text. Book text comes from an LBK file which has a lot of indices to support searching, but notes come from a database with no indexing. We’re able to use exactly the same code until we get to that last step, where it branches depending on the source of the text being searched. As a result, a lot of the logic of searching was already done.

The display of note search results is similar to displaying book search results. What we didn’t realize going into this was that it is so similar that it can actually share the code. So the Note Search, Book Search, and Journal Search panels are just 3 instances of the same chunk of code (we call it an “object” rather than a “chunk-o-code”). So we spent some time throwing away some work we had done on separate panels for Note and Journal searches and adapted the existing book-searching code to account for notes.

Similarly, the Journal is just a collection of notes, so the work we do for regular note searches and note editing automatically applies to the Journal. So even though the Journal is an Advanced Feature Set feature, we’re doing the implementation now as we work through the general notes feature. (Other AFS features will likely be put of until work on the standard feature set is done.)

Note search showing note excerpts in results list and highlighted search words.

On the other platforms, when you do a search for a word in your notes, the search results will show an excerpt of your note, but it’s just the first couple of lines. You don’t see where the thing you’re searching for actually occurs in the note. In the Windows version, we’ve made it so that search words are highlighted in the note viewer and are also highlighted in the search results. And we’ve added a smart “excerpt” function so that if the word you’re searching for occurs later in your note than the first couple of lines, we’ll show you the portion of the note in which your word occurs.

Since the book search, note search, and journal search all turned out to be the same/similar code, when we added excerpts with highlighted search words for notes and Bibles, we were also able to add them for non-Bible books.

Study Panel

As a result of working on the note editor, we learned more about how to better handle layout of other panels. This is particularly related to the re-layout that happens when you resize the Study Panel or the entire PocketBible window. Previously we had been doing a lot of manual calculations to position buttons and text appropriately. It turns out there were some easy ways to allow that to happen more automatically.

Bookmarks

We’re just wrapping up work on managing (add, rename, and deleting) categories. This gets tricky when you’re syncing all that data to other devices, so we’ve had to do a lot of testing of the entire synchronization path from Windows to the server and from the server to other devices.

Book Display

We happened to notice while doing our own devotional reading that the book pane was not getting refreshed when you change the start date of a devotional. So now it gets refreshed to update the dates you see in the text.

PocketBible for Windows Progress Update #8

Quite a bit of progress since the last report. Some of it (note editor) was re-implementing something we thought was already done, but that has to happen every once in a while.

Copy Passage

One of the major accomplishments of the last month has been what we call the “Copy Passage” feature. It allows you to enter a verse or passage reference and select a number of options for how you would like the text to appear, then press a button to copy it all to the clipboard with all your options.

With this feature in place, you can use Ctrl+C to just copy the selected text, Shift+Ctrl+C to go to the Copy Passage dialog to choose options, or, once you have the options configured the way you like them, Shift+Alt+Ctrl+C to immediately copy the selected verses with all the formatting options you’ve chosen.

Both the current Windows versions have some limited implementation of this feature. The implementation in the new Windows version is based on the macOS and iOS implementations, which have more features.

Note Editor

Writing a rich text editor for notes is not easy. Back when we were at Parsons Technology doing something similar for QuickVerse 5, we paid someone $200,000 just to implement this one feature.

A few years ago, the people who define how the Web works created technology that is present now in every browser that does a lot of this work for us. It’s far from perfect, but it’s pretty good. Since we use HTML (the “language” of the Web) throughout PocketBible and render it with built-in HTML functionality that is part of the underlying operating system, it wasn’t hard to integrate this functionality into PocketBible for Android, iOS, and macOS.

When we originally started looking into re-writing PocketBible for Windows, this was one of our concerns — would we be able to use this built-in feature for editing notes? We discovered that Microsoft’s development environment was sadly deficient in this area and it became one of our main reasons for going with the Electron system I talked about in update #3. Electron includes Chromium, the guts of the Chrome browser, to provide HTML rendering in every Electron app.

The HTML editing that is built into Chromium can be difficult to use. So initially, we implemented the note editor using a free component we found called TipTap. TipTap is endlessly reconfigurable and seemed like it would meet all of our needs. We even reported that note editing was complete back in update #4. But after we got digging into this, I realized that there were little things that weren’t working at all. For example, if you copied Bible text with superscripted verse numbers into a note, TipTap would remove the superscript. If you had a note that included a table, the row and column information about the table would be removed and you’d only see the text, all run together in a blob.

Turns out TipTap was “easily reconfigurable” but required custom programming to support every single HTML feature. So there was a custom plug in required to make text bold, another one for italics, one for superscript, and another one for tables. But on closer inspection it turned out that they were sorely lacking. For example, you could create a table, but you couldn’t put borders around the table cells. And TipTap would intercept all our Bible verse links, launch a browser, and try to direct you to a site like “http://John 3:16”, which of course didn’t work. Further, if you were reading a note that you created on another platform, like PocketBible for Android or iOS, anything that TipTap didn’t recognize would be stripped from your note.

At first it looked like we just needed to update TipTap from version 1 to version 2, but that didn’t fix anything. So we bit the bullet, removed TipTap entirely, and wrote our own HTML editor based on what we’d done for other platforms. This ended up working fairly well. It’s done except for wringing out the bugs at this point.

One of the little things we noticed that turns out is a problem no matter what platform you’re on is that if you use the note editor to change the color of your notes then choose a color scheme that causes the note editor to have a dark background instead of the traditional white background with black text, you may not be able to see your notes. So the new version has an easy way to switch to a light or dark background color in case you need it to accurately view your notes.

Registration

In update #6 I said we had implemented the ability to log into your account, which is true. But we didn’t prompt you to register when you first launched the app. So that’s been implemented. You can now log into an existing account or create a new one. And the account screen in PocketBible settings/preferences will show you your Advanced Feature Set subscription status and give you options for synchronizing your notes, highlights, and bookmarks.

Current Tasks

We’re currently working on some polishing of the bookmark feature. We previously had implemented the ability to set and clear bookmarks, but not create new categories, remove categories, or rename categories. We’re well into that now. We need to do similar work with respect to highlights.

We’re also testing and tweaking the features mentioned above. While doing one thing we often discover better ways to do things that affect other parts of the program. For example, over the last couple of days I’ve revisited the “go to” pane and significantly streamlined the way it works based on work we did while implementing the note editor. This has made it more reliable by removing a couple hundred lines of code that just gave it more places it could go wrong.

We’ll soon move from the note editor to implement note searches. We have the basic user interface in place; we just need to implement the actual searching.

One behind-the-scenes task that is happening is getting us positioned to be able to create what we call a “release build”. When we build the app in its current state, it’s really suitable only for development use. It has additional panes and windows that show our developers the internal workings of the code for debugging purposes. The version you get (the “release build”) won’t have those features, of course. I want to be able to create a release build sooner rather than later so that we have time to work the bugs out of that process and get set up for beta testing.

What PocketBible really looks like during development. The large window in the upper left is the main UI thread with developer tools open in the right half. The smaller window in the lower right is a search worker thread that won’t have any user interface in the release build. Behind all this (and usually on its own monitor) is source code and output from the build process. When I screenshot this for public consumption, I maximize the upper left window and close the developer tools so it looks more like what you will see.

Construction Project

I see it’s been over 3 months since I updated you on the view out our front windows. As you recall the city completely shut down and rebuilt the main street through town, which passes in front of our building. At the same time, the strip mall across the street was torn down and a new combination retail/residential building is going up in its place. Our entertainment for the last 9 months has been watching (and listening to) the construction.

The street re-opened around Thanksgiving. Work on the building continues. The exterior appears to be completely framed. Windows are being installed and bricking has begun. Something is happening on the roof but we can’t see it well enough to tell what it is — perhaps an insulation layer that goes down under what I assume will be a rubber membrane style roof. On the inside we can see electrical work being done and also fiberglass tub/shower inserts in each apartment.

A similar build is being behind this one, which will have parking underneath and 2-3 floors of apartments. We won’t be able to see that one being built