PocketBible 4.18.0 Uploaded to App Store

Introducing AI Insights in the Autostudy Feature

November 9 Update:
PocketBible 4.18.2 was approved on November 9. Additional bug fixes noted below.
PocketBible 4.18.1 was approved on October 31. Fixes a couple bugs in the earlier 4.18.0 release.

Version 4.18.0 was approved for distribution on the App Store on October 28.

The main motivation for this update was to fix several little problems that had shown up in PocketBible as the result of recent iOS updates.

While we were in the code, we took a look at the bug list and squashed a few of the bigger ones. And while we were doing that, we moved some code back into the iOS/macOS codebase from the new Windows app in order to gain functionality. This turned out to mostly affect the Advanced Feature Set features — Autostudy in particular.

Here’s an annotated list of fixes in version 4.18.0-4.18.02

Autostudy

Most of the work in this version turned out to be related to the Autostudy feature.

  • Letters with accent marks could break word and verse Autostudies. This was a fascinating bug to fix, only because it turned out to be a minor problem with code that has been in our apps for Pocket PC, Palm OS, Windows, macOS, and iOS since 2004. It had just never been invoked in exactly the right way to expose this bug. The fix was simple once we found it.
  • Changes to the verse, word, or date being studied weren’t always recognized. If you changed the verse without closing the Autostudy window and starting again, PocketBIble might not recognize the change. Another easy fix.
  • While the link on the word “Note” at the beginning of verses with notes was not there, the word “Note” was there. One of the advantages of being me (Craig) is that when you’re doing your own Bible reading and spot something annoying, you can fix it. So I did.
  • Word Autostudies now support phrases, not just words. This was added in the Windows code then ported back to the macOS/iOS codebase where it came from.
  • Better algorithm for discovering sources of cross-references. We took some time during the Windows project to come up with a better algorithm for this. We look for commentaries that cover a high percentage of the verses in the Bible, that have a large number of links per entry, and in which links are a high percentage of the total text in the book.
  • Bible verses in date Autostudies can now appear in devotional order instead of date order. As you know, I’m a fan of doing my daily reading in chronological order. I tend to use resources like the One Year Chronological Bible or my own 7-Minute Bible for Bible reading. When using the OYCB, Autostudy would put the verses in biblical order instead of leaving them in chronological order. This defeats the purpose. This feature fixes that.
  • Navigation buttons at the top of Autostudy reports. This feature was borrowed from the work we did on Autostudies for the new Windows app. It puts a row of navigation buttons at the top of your Autostudy reports to make it easier to navigate those long files.

AI Insights in Autostudy

This one deserves its own section. We’ve integrated ChatGPT into PocketBible to generate custom commentary, original language insights, devotional thoughts, and other useful information. This feature requires an active Advanced Feature Set subscription. It is not available to users still relying on the old “permanent subscription to the legacy AFS features” from version 3 of PocketBible.

Before you dismiss this innovative and useful feature, you need to give it a try.

As you may know, ChatGPT is a large language model that is able to give in-depth, human-sounding answers to natural-language questions. The key to using ChatGPT effectively is to craft the appropriate query (or “prompt”). We’ve spent a lot of time over the last year and a half designing prompts and instructions that cause it to give responses that are Bible-based and Bible-first. It avoids dogma and denominational bias and favors what it clearly reads in the Bible. It uses biblical terminology where political correctness would prefer non-biblical alternative language.

ChatGPT is trained on virtually everything that has ever been written about everything. As a result, it brings to your study deep knowledge of biblical languages, of biblical and secular history, and of the geography, politics, and culture of the lands and peoples of the Bible. We call the articles it writes for PocketBible, “AI Insights”.

AI Insights in Verse Autostudies

  • Bible Commentary — Scholarly, accurate Bible commentary that is written at the level of an average Bible reader. Includes historical/cultural context, information about the author and original audience of the passage, the role of the verse in the surrounding passage, and practical application. The article will cite its sources if it refers to other Bible passages.
  • Cross-References — A list of cross-references for the topics in the verse or passage, organized alphabetically by topic.
  • Theological and Doctrinal History — Discusses varying interpretations of the passage or concepts covered by the passage and how they have been debated throughout church history.
  • Hebrew and Greek Insights — Lists key Greek or Hebrew words used in the passage, along with their meanings, usage in other contexts, and nuances that might affect the meaning of the passage. To make these articles more accessible, words are transliterated rather than spelled out in the original languages.
  • Sermon or Lesson Title with Outline — Produces an alliterated outline (or a close approximation thereof) and a suggested sermon title for the passage.

AI Insights in Word Autostudies

  • Bible Dictionary — An article about the word or phrase being studied, including a definition of the word(s), key Bible verses that use the word(s), and insights from the Greek and Hebrew words that are often translated using this word.

AI Insights in Autostudy Today

  • Inspriational Thoughts — An inspirational reflection on today’s Bible passage(s). The attributes, promises, and commands of God are emphasized. The goal is enriched worship and prayer, and a deeper personal connection with God.
  • Commentary — Basic Bible commentary on the passage(s), including background information, historical context, and explanations of key themes. Important Hebrew or Greek words are defined and their implications discussed.
  • Applying Today’s Verses — The focus is on the practical application of today’s passage(s). How do the teachings and principles in the passage(s) guide the reader’s behavior, decisions, and relationships as they live out the commands and promises of God in practical ways?
  • Today in Christian History — This article is different in that it is not about the Bible passage you’re reading but is about what happened on this date throughout Christian history. The emphasis is on known dates, not dates when events are traditionally celebrated, and on people and events, rather than on holidays and commemorations.

Other Features and Fixes

  • Some apps had trouble pasting text from PocketBible. PocketBible has been putting formatted text on the clipboard (actually called the “pasteboard” in macOS and iOS) since the first day it was supported. (You probably have forgotten that the first two major releases of iOS did not even have a clipboard. The clipboard wasn’t introduced until iOS 3.)

    When apps put text on the clipboard, they have to identify the format of the text so that the receiving app knows what it’s looking at. Somewhere around iOS 17 or 18, certain apps stopped recognizing the original identifiers for some of the rich-text clipboard formats, and as a result would misinterpret text placed there by PocketBible. We’ve resolved this in a way that maintains compatibility with the past while adopting the newer identifiers.
  • Punctuation in selected or entered text could confuse search, look-up, and Autostudy features. We do a better job of filtering punctuation than we used to. Note that 4.18.0 was too aggressive about removing punctuation and introduced a problem that has been fixed in 4.18.2.
  • AFS subscription management on the menu was linking to the wrong URL. Apple changed the URL for subscription management and we didn’t notice it until recently.
  • The space after a trailing apostrophe was missing in certain Bibles. Instead of “Jesus’ disciples”, you’d see “Jesus’disciples”. The fix for this in 4.18.0 and 4.18.1 introduced other problems. 4.18.2 fixes it.
  • Searching for non-existent words at the beginning of phrases could fool PocketBible. Searching for “grafted in” in a Bible that does not contain the word “grafted” would give the results for “in” instead of saying that the phrase doesn’t occur.
  • Wildcard searches were broken by changes in 4.18.0. Fixed in 4.18.2.
  • Wildcard searches were inadvertently omitted from the User’s Guide. The User’s Guide was severely lacking in detail when it came to the search features. We updated the User’s Guide for 4.18.2, adding information about certain types of search patterns that have been in our apps for 10 years but have just never been documented.
  • The “toggle play/pause” button on certain headphones didn’t work with the synthesized speech feature. This turned out to be a complete oversight on our part. Sorry about that.
  • Text would scroll some random number of pages up or down when the height of the window changed. This was usually the result of showing or hiding the toolbox on the iPad version of PocketBible. Apple changed the order in which certain things were done when resizing the window, which caused our attempt to keep the text at the same location to be defeated.
  • Link previews in notes might not be able to be dismissed, or, when dismissed, would close the note viewer. Fixed in 4.18.2.

There is a small number of other fixes that aren’t worth mentioning.

Your Power Supply is Smarter than You Think

I recently purchased an Apple Vision Pro. I’ll eventually have some thoughts about this platform and its potential for Bible software, but right now I want to talk about that boring little brick you plug your iOS device into when you charge it.

I’ve owned an iPhone since the day it was introduced, an iPad since its launch date, too, and now a Vision Pro 1.0. Just like many of you, I have drawers and computer bags full of those little USB power supply bricks and a variety of the bigger ones that come with MacBooks. I figured out a long time ago that I can plug any device with a USB charger into any USB power supply even if it’s intended for a different device. So I charge my iPhone and Watch with my MacBook charger and have been known to plug my MacBook into an iPad charger just for grins.

When I got the Vision Pro, I saw someone on YouTube put a meter inline with the charging cable and note that it would draw up to 60 watts when connected to his MacBook power supply, even though it ships with a 30 W power supply.

I have just a little bit of experience with electronics, having learned Ohm’s Law for my ham radio license 50 years ago (!) and having built a number of transceivers and other electronic gizmos. I’ve been assuming that all these devices needed 5V at some number of amps — 1.5 A for iPhones and 2.1 A for iPads and many more amps for my MacBook. They are all interchangeable, so they must all use the same voltage, right? Maybe just limit the current?

Wrong.

Turns out these little power supply bricks are smart. They talk to your device and negotiate a voltage the device can use and the current limit the supply might have at that voltage. Between your device and the power supply, they work out the optimum arrangement for operating your device and charging the battery. Voltage ranges from about 5V to about 20V and current is adjusted so as not to exceed the limits of either the power supply or the device.

I guess they’ve been doing this since about 2012. Who knew? Not me.


Image by ChatGPT/DALL•E, of course.

PocketBible for iOS Updated – Version 4.16.0

On Friday, October 6, 2023 we uploaded version 4.16.0 to the App Store. Apple approved the new version the next day.

This version was released primarily to make PocketBible for iOS compatible with our latest changes to our Bible format. These changes allow us to include data with each Bible that tell PocketBible how Bibles should interact with each other. This data used to be included in PocketBible itself, but that meant that we often had to update PocketBible on all platforms simply to release a new Bible. These changes will help us avoid having to do that.

In addition, several new features, enhancements, and bug fixes were added:

NEW FEATURES

  • Added a “direct keyboard entry” go-to-verse style to better support hardware keyboards on iPad.
  • Added press-and-hold link previews for most types of links in the note viewer.
  • Added ability to link to document fragments in notes. (Use plain text editor to add id= attribute to a tag; link with href=”#id” syntax.)

ENHANCEMENTS

  • Do a better job of managing the toolbox size when using a hardware keyboard attached to an iPad.
  • Support more types of link previews in book and Bible text. Change the way they are displayed to take up no more of the screen than required.
  • Accommodate more types of links being pasted into notes from PocketBible books and Bibles.
  • Added VoiceOver labels and hints to many more buttons.
  • Slight visual changes to the shape and borders of book panes to provide better definition when panes are displayed in tiles.
  • Added the version numbers of the Bible reference data in a Bible to its “About This Book” screen.
  • Users Guide is automatically re-installed on request if accidentally deleted.

BUG FIXES

  • Changes in the way the iOS speech synthesizer handles empty strings passed to it would cause PocketBible to sometimes repeat a verse or paragraph when reading it.
  • Duplicate notes could be created while changing the name of a Journal note. (AFS)
  • Links to websites in notes could fail if the URL contained spaces.
  • Text in alert dialogs was difficult to read when using a light color scheme while the device is in dark mode or a dark color scheme while in light mode.
  • Book, chapter, or verse numbers could get truncated in the “spinner” go-to-verse style.
  • The “spinner” style go-to-verse dialog wasn’t being displayed the first time it was invoked after having been selected in Settings.
  • The app could crash when a shortcut key was used to open the “today” menu on an iPad with a hardware keyboard.
  • Long-press on a toolbar button in landscape mode on an iPhone activated the wrong button.
  • Long press on go-to button to see list of recent verses would not display correctly if the active book was not a Bible.
  • Selecting a recent search caused the search to be performed but the results were immediately dismissed.
  • Login/Create Account screens now have dark background when dark color scheme is active.

Note on Account Deletion

Apple initially rejected this version of the app because it doesn’t provide a way for users to delete their account. This is a new requirement and we knew about it but didn’t realize it had taken effect. Apple was gracious enough to approve the app, but we’ll have to add account deletion in the next update.

The reason we don’t currently have this in any of our apps is because it is “dangerous”. Consider that account deletion will do the following:

  • Your entire account is removed from the server, including your transaction history. As a result, PocketBible is affected on all platforms even though you’re doing the removal from an iOS device. You won’t be able to download books or have access to Advanced Feature Set features on Android, macOS, or Windows when you delete the account. This cannot be undone.
  • All of your notes, highlights, bookmarks, and devotional reading progress are permanently removed from the server and from your device. This cannot be undone.
  • All books, Bibles, and AFS features are removed from your device except those that came bundled with the app.
  • Since your account and transaction history is deleted, no refunds can be issued for products purchased in the last 30 days that would otherwise be eligible for refund.
  • All settings and user preferences are removed from the device. All search and navigation history is removed. The app will restart and will believe you are running it for the first time.

Even though we plan to give you more than one opportunity to cancel the deletion sequence, once you confirm it twice, we will proceed and it can’t be undone.

We’ve always made account deletion something we do by request to tech support. If we see that a user has a lot of books or a not of notes/highlights/bookmarks, we’ll give them the opportunity to change their mind before automatically continuing. We’re sure we’ll have more than one unhappy user as a result of this Apple requirement.

Fun fact: PocketBible allows you to view your Cloud Library download account even if you refuse to log in. That’s because a few years back there was a reviewer at Apple who could not figure out the difference between “shop for Bibles and books” and “access your download account”. He told us the user has to be able to shop without logging in, then he showed us the error message he gets when he select “access your download account”. We pointed out how to get to the built-in store but he wouldn’t budge. So when you go to the Cloud Library screen without logging in, we give you the opportunity to log in, but if you choose not to, we show you an empty list. That made the Apple guy happy and they approved the app. 🙂

PocketBible for Windows Progress Update #15

Sometimes the things we think are obvious to the outside world aren’t.

In our last update, we explained in detail a problem we had encountered in the way that we encode Bibles for use in PocketBible. The TL;DR version is that we found it necessary to update every version of PocketBible, plus update the BookBuilder app, in order to accommodate necessary changes to the way we deliver Bibles.

As you know, PocketBible runs on four platforms: iOS, macOS, Android, and Windows. One of our points of pride is that PocketBible is a native app on each of those platforms. That is, we didn’t use a special tool that might allow us to create one app and run it on all platforms — we created separate apps for each. So when something like this comes up, we have to update PocketBible on all 4 platforms, and in this case, we also had to update our BookBuilder app.

We have a very small team of developers. We don’t have people assigned full time to each platform. So to work on one we pretty much have to stop work on others. That has meant that while we’ve been focusing on Windows, we haven’t been able to do much/anything on other platforms. It also means that if we need to work on iOS, macOS, or Android, we aren’t able to do much on Windows.

We kind of thought you guys all understood that, so we’ve been keeping you updated on our progress on the other platforms with the understanding that we would get back to Windows when these were done. Turns out that wasn’t clear. Hopefully now it is. Here’s where we stand on each of the other platforms with respect to this Bible format update.

BookBuilder and PocketBible for macOS

Because BookBuilder needed to be updated (of course) due to the Bible encoding changes, and because BookBuilder and PocketBible for macOS share so much code, we tackled both of these together. We did all the necessary changes to BookBuilder, then tested the output in PocketBible on the Mac.

While we were in the code, we did some necessary bug fixes and a few enhancements. We released PocketBible 1.4.2 on June 7, 2023 and it’s been pretty stable.

We did not release a new version of BookBuilder to the public because it’s possible we’ll discover problems related to the new format while working on all the PocketBible releases, and we’ll want to go back and make changes.

PocketBible for iOS

Version 4.16.0 went to a small group of beta testers about a month ago. Problems have been minimal and I anticipate we’ll approve it for the App Store soon. It incorporates the new Bible encoding changes and has a small number of improvements and quite a few little bug fixes.

PocketBible for Android

Android has been a challenge for a variety of reasons. Google changed the rules on us and required that we rebuild the app with the latest version of their tools for basically no reason. The app was working fine, but after telling us we had until August to upload a new version to Google Play, they decided to invalidate the app in May. This fell right in the middle of what we were working on for the other platforms. We opted to continue on our original plan of updating the Android app by the end of August. In the meantime, Android users were given instructions to side-load the app from our website and that worked fine.

PocketBible for Android has not been updated since 2018 and the changes required to get it compatible with the latest OS have been challenging. We released a build with minimal new features on August 29th and updates to fix some bugs on September 2 and 7. We anticipate at least one more small release to fix some additional issues; probably two more.

Once we get Android up to speed with Google’s new requirements, we’ll need some time to do the Bible encoding changes. This will involve porting a lot of code from the macOS/iOS apps and making sure it works. The Android app handles Bibles slightly differently from the other apps, so it’s not just a line-for-line translation from one language to the other, but rather it’s a concept-by-concept implementation using methods consistent with the way Android does things.

I’d like to tell you how long I think that’s going to take but I know I’ll just be wrong. Shouldn’t be too long, though.

PocketBible for Windows

Remember PocketBible for Windows? This is an article about PocketBible for Windows.

Once we get back to the Windows app I want to do a couple of things. First, I obviously need to port the Bible encoding changes from macOS/iOS into Windows. The JavaScript code in the Windows version follows the way the C++ code in macOS/iOS works pretty closely, so this should be easier than doing it in Android and Java. Second, while we’ve been working on getting the program finished, new versions of both Electron and VueJS have been released. We should refactor the app to use the new code so we’re not starting out already in need of an update.

We’re actually fairly close to having at least the standard features of the Windows app finished once we’re able to get back to it. There are some Advanced Feature Set features that haven’t been touched yet (Autostudy comes to mind).

Moving Forward with the “Native Apps on All Platforms” Plan in 2024

I want to take advantage of the fact that we’ve had to do recent re-releases of PocketBible on every platform and make it a goal to do some kind of small update to PocketBible on each platform every year. It’s easier to keep up with frequent, small changes than to have to absorb a massive number of changes to how to build and release apps when you do it every 4-5 years.

So that’s the status of PocketBible for Windows, told in terms of everything else that’s going on here. Anytime you see a blog article about any of the other platforms, count it as progress on the Windows app. 🙂


Photo by Arif Riyanto on Unsplash

PocketBible 4.14 for iOS 14

Today Apple approved PocketBible 4.14.1 for distribution through the App Store. This version coincides with the release of iOS 14, and while it doesn’t necessarily take advantage of every new feature of this latest version of iOS, it should work better than the previous version did.

iOS 14 adds a number of new features that may or may not make sense for PocketBible to take advantage of, such as widgets and app clips. Because PocketBible needs to continue to work with older versions of iOS (we go back to iOS 12 with this release), it’s not always practical to implement the very latest new features. And we never know what’s going to survive until iOS 15 and what will be dropped. So don’t expect a PocketBible complication for WatchOS or a PocketBible widget for iPhone.

Here’s what’s new in PocketBible 4.14.1:

FEATURES

Saved/named layouts on iPad. (AFS)

If you subscribe to the Advanced Feature Set, you’ll be able to save the current screen layout, which includes the number and position of open panes/tabs, the list of books open in each pane/tab, the position of each of those books, your navigation (back/forward) history, your recent searches, and your recently visited Bible verses (the latter itself being a new feature; see below).

Keyboard shortcut keys (customizable with AFS)

If you have an iPad Pro with an external keyboard, there are now key combinations that can be used to activate frequently used features like searching and navigating to a Bible verse. A list of these keyboard shortcuts can be viewed by pressing and holding the ⌘ (Command) key (this is true for any iOS app, not just PocketBible).

If you subscribe to the Advanced Feature Set, you can customize these commands. You’ll do that by selecting the function (such as “open a book”) then just press the key combination you want to use for that function.

Trackpad and mouse support in book panes

If you have an iPad Pro with an external mouse or keyboard with trackpad, you’ll find that 2-finger trackpad and scroll-wheel scrolling work better in PocketBible’s book panes than they did before.

New long-press functions of back, forward, search, and go-to toolbar buttons

Pressing and holding on the Back button will display the portion of your navigation history that is “behind” you. You can jump back more than one location by selecting an item from this list. If you have gone back at least one step on this list, a long-press on the Forward button will show you the locations that are “ahead” of you.

You’ve always been able to access a list of recent searches by selecting that option from the Search form. Now you can press and hold on the toolbar Search button to see that list.

A frequently requested feature was a modification of Back that would allow you to see a list of recently visited Bible verses so you could quickly jump back to a passage you had been reading. You can now access this list with a long press on the Go To button while a Bible is active.

Sync to current verse

PocketBible has long had the ability to keep all your Bibles and commentaries sync’ed up to the verse you are viewing in the active pane. That’s not always what you want to do, however. But when that feature is turned off, there wasn’t a way to easily sync your other Bibles and commentaries to the verse you’re reading. Now there are two.

When the automatic sync between Bibles and commentaries is turned off, you can choose Sync All to … from the PocketBible menu to cause all Bibles and commentaries to go to the topmost verse in the active pane (assuming the active pane is displaying a Bible).

You can also select a verse via pressing and holding, and choose the Sync button from the Selection tool bar. In that case, your other Bibles and commentaries will sync to the first selected verse.

ENHANCEMENTS

Customizable sorting of list of open books

When viewing the list of open books in the Library window, you can choose the Edit button to drag the books into the order in which you’d prefer to see them. This is a frequently suggested feature that turned out to be a lot easier to implement than we feared, though it has an important caveat.

That is, the order of the books in each pane is saved as a part of recording your navigation history. So if you change the order of books in a pane, then use Back to go back to a time before you re-ordered the books, the order will revert to its earlier state. Going Forward will restore the new order.

In addition, the order of open books is saved when you save a layout using the new Saved Layouts feature on the iPad. So if you change the order of the books in one layout, it will not affect the order of the books in the same pane in another layout.

And more…

Choosing a range of verses for searching requires fewer button presses. Once you’ve selected a range you’re taken right back to the main Search window.

Autostudy Word and Autostudy Verse will start the study when Enter is pressed in
input field (Advanced Feature Set subscription required for Autostudy).

Long-press link preview now works on the asterisks that mark footnotes in books
and Bibles.

FIXES

The correct background color was not being chosen for certain menus.

After closing the current book using Close this Book on the Library screen, the wrong book was marked as being active.

The program was not checking your AFS subscription expiration date often enough, which kept the subscription active well passed its expiration until you performed a particular action that caused it to be checked. The program now checks the expiration date on launch and at convenient intervals while you’re using the program. There is a grace period to allow you time to renew and activate the renewed subscription.

Make Your Daily Bible Reading More Pleasant with “Autostudy Today”

I have used the devotional features of PocketBible off and on over the last 20 years in my personal Bible reading. This year I’m using our free Old Testament in a Year and New Testament in a Year reading plans simultaneously to create a custom plan that will give me readings from both the Old and New Testaments each day.

One of the challenges of this approach is that I have to open the Old Testament plan, select the link to the passage, read the passage in the Bible (which may or may not default to the version I want to read from, depending on what else I’ve been doing in PocketBible since I last did my reading), then open the New Testament plan, select the link for the day’s reading, then read the New Testament passage from my preferred Bible. That’s a lot of jumping around just to read 3-4 chapters.

I’m going to take a slightly different approach to it to make the viewing of the text more pleasant and to make it easier to simply read the OT and NT passages without any jumping back and forth between the two devotionals and my Bible. I’ll have two-click access to each day’s text in my desired Bible regardless of what Bibles are open or active in PocketBible at the time. To accomplish this, I’m taking advantage of the “Autostudy Today” feature of the Advanced Feature Set.

Autostudy Today lets you collect the Bible passages and devotional passages you want to read for the day in an HTML or PDF file that can be viewed either within PocketBible or externally. It also lets you customize the styles that are used in the Autostudy output according to your preferences. Most people don’t bother with this, but I’m not most people. 🙂

If you don’t already own the Advanced Feature Set, it can be purchased as a subscription for $9.99/year. This particular feature is only available in the iOS, Android, and Mac OS versions of PocketBible. I’ll be using the Mac OS version to read from and to demonstrate these features, but the iOS and Android versions are similar.

To make it easier to do this every day, I right-click on the toolbar, choose Customize Toolbar, then drag the Today Study button onto the toolbar. That will give me one-touch access to my reading each day.

Drag Today Study to the toolbar.

On the Autostudy Today screen I can select which books to include in the Autostudy report each day. Since the particular devotional book I’m using is just a reading plan and doesn’t itself contain any text I need to read, I’m going to un-check the Devotionals checkbox and make sure Bibles is checked.

Deselect Devotionals; select Bibles.

Then I click on Devotionals (not the checkbox, but on the word “Devotionals” so that it is selected. This causes a list of all my installed devotionals to be displayed on the right. I choose the None button under that list to deselect all the devotionals, then find my Old Testament in 1 Year and New Testament in 1 Year reading plans and select their check boxes to include them in the Autostudy output.

Since I want my Old Testament reading to come first each day, I drag the Old Testement in 1 Year plan up above the New Testament in 1 Year plan. It doesn’t matter if there are other books in between, since they won’t be included. I just want to make sure the OT comes before the NT.

Drag the Old Testament devotional to a position above the New Testament devotional.

Now I select Bibles from the list on the left, causing my list of installed Bibles to be displayed on the right. Again I choose None to deselect all Bibles, then find the Bible I want to read from and select its checkbox. I’ll be reading from the Christian Standard Bible this year, so I select that one.

Select the Bible from which you want to read and deselect all others.

At this point I can test my output by selecting View. I’ll get the scheduled readings for whatever day happened to be selected on the calendar. The output looks just as I would expect, but I’m not entirely happy with it. I’m going to make a few changes to enhance the appearance of the text.

Take a look at the output so far: Autostudy January 1, 2019

Back on the Autostudy Today screen, I have an option to edit the “style sheet” for the Autostudy report. Don’t be embarrassed if this looks intimidating. Most people don’t know anything about editing Cascading Style Sheets. At the same time,  don’t be afraid to try this at home. You can always reset it to defaults and start over if you mess something up.

The style sheet controls how every element of the Autostudy report is formatted. I want to make a number of changes to what my text looks like:

  • Change the color of the Bible reference headings above each passage, and put them on a line of their own above the text instead of inline with the text.
  • Add some additional leading between the lines of text.
  • Make adjustments to how poetry is displayed.
  • Suppress verse numbers in the Bible text.

To change the color of the Bible reference headings, I need to locate the line that looks like this:

div.bibleref {margin:0px 1em 0px 0px; padding:0; display:inline; float:left; color:#00c; font-weight:bold; font-size:100%;}

This line controls the Bible reference headings. By default, the text in a div element appears on its own line. PocketBible overrides this behavior by including display:inline in the style definition for Bible references. So I want to delete display:inline and the semicolon that follows it. I also delete float:left and the semicolon that follows that.

I’m not fond of the light shade of blue that PocketBible uses for Bible reference headings, so I change color:00c to color:008. This is a slightly darker shade of blue. I could instead change it to color:000 (or remove the color:00c attribute entirely) to make it black.

Next, I want to add some additional space between the lines (sometimes referred to as line leading). This is done by editing the entry that looks like this:

p {margin:0px 0px 0.5em 0px}

CSS style sheets use the line-height attribute to control line leading. A value of 100% is supposed to be “normal height”, and back in 2003 when I wrote my own HTML rendering engine, I made it work that way. But because the programmers who created the Web are not as smart as I, you actually need to set it to about 120% to get natural spacing for most fonts. I want a little extra space, so I’m going to set it to 150% by changing this line to read as follows:

p {margin:0px 0px 0.5em 0px; line-height:150%}

The p element is used for normal paragraphs in the Bible text. We also have poetry sections, for which PocketBible (arguably incorrectly) uses the blockquote tag to create extra margin on the left and right. There is no style specified for the blockquote tag in the default Autostudy style sheet (don’t ask me why; I don’t have an answer), so we just add the following line anywhere in the style sheet. I added it below the line for the p element, above.

blockquote {margin:0.5em 1em 1em 2em; line-height:120%}

This tightens up the line spacing a little bit in the poetry sections, and indents it a little more than normal paragraphs (about the width of one character).

Finally, we want to suppress verse numbers in the text. I happen to know that PocketBible uses the sup and small tags to superscript the verse numbers. Adding the following line to the CSS file (I added it below blockquote) causes superscripted text to be ignored:

sup {display:none}

That’s it! Once I save my changes to the CSS I’m ready to view the output.

Take a look at the final output: Autostudy January 1, 2019 – Formatted

All I need to do each day is choose the Today Study button from the toolbar, then press View to view my text for the day. I like to choose Print, then PDF, then Open in Preview to get a full-screen, PDF view of the text to read.

When I’m done reading, I mark today’s reading as complete in each of the OT and NT devotional books in PocketBible.

 

Serendipitous Programming

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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