Subscribe to Updates

Click here to subscribe to new posts by email. We use Google FeedBurner to send these notifications.

Laridian Website – Server Migration Post-Mortem

Posted on: August 5th, 2015 by Craig Rairdin 10 Comments

Update – Aug 5, 2015 – We discovered that the sync server wasn’t running, so you weren’t able to sync your user data even after the DNS changes propagated. This has been fixed. If you had trouble synchronizing your notes, highlights, and bookmarks, try again.


 

This article will mean very little to most of you but some of you might find it slightly interesting.

I don’t like to get off a perfectly good horse midstream. Windows Server 2003 and SQL Server 2000 have been serving us well for a very long time. But Microsoft discontinued support for  Windows Server 2003 last month and that means no more security updates. As a result, our next PCI security scan was doomed to fail, which doesn’t mean your personal data would be at risk (any more than passing the PCI scan protects the data), but it doesn’t make for good PR.

(PCI is the Payment Card Industry and the scan is required to meet their card security standards. Laridian doesn’t store your card data so the requirements for us are pretty light. You’re at significantly more risk when you hand your card to the clerk at Target, and we all know from experience that even though they passed all the security scans it didn’t do them much good.)

Upgrading to Windows Server 2012 and SQL Server 2012 meant physically moving the contents of our servers to new hardware, and as long as we were doing that, we decided to shop around for better pricing. We found it at SingleHop.com, which offers the type of dedicated server solutions that we need. And they do it for half the price of the company we had previously been with.

Laridian maintains several large databases. These contain your customer account, your transaction history, all the user-created data you’ve sync’ed to the Laridian Cloud, and the downloadable files that make up our books and Bibles. In addition to those we have a couple others for in-house purposes. Because SQL Server 2000 is past end-of-life, those databases could not be imported directly into SQL Server 2012. We had to first import them into a SQL Server 2008 instance, then import that to SQL Server 2012. The good news was that having done that, the databases functioned exactly the same. In fact, we were able to simply point the old website to the new database, and it would work just fine.

Let me pause for a minute to say this: We cannot build PocketBible 1.0.0 for iOS anymore. Not only would the resulting program not even come close to working on iOS 8, it would fail in the compilation and linking process. PocketBible 1.0.0 was released in September 2009, just six years ago.

Contrast that with the code that runs on our website. In 1998, we contracted with Jomax Technologies — Bob Parsons first Internet company, before he founded GoDaddy — to create our e-commerce site. There is a significant amount of code dating from 1998 still running on our site, especially on our back office site, which is where we generate sales reports, create new product pages, and define priority codes. This code is running unaltered seventeen years later, accessing a database that has been in continuous use for all those years.

When you hear me complaining about the unnecessarily rapid pace of development from Apple (and other companies who drive our industry) and how they create problems due to their lack of regression testing and backwards compatibility, this is what I’m talking about. Because Microsoft knows it would be a huge problem to break millions of websites, they go out of their way to continue to support the technologies on which the internet is built.

But I digress…

This move took place over about a four-week period. (I actually thought it would take twice that long.) The first step was to move the system we use for source code archival (SourceGear Vault). This was necessary because we use Vault to maintain the website. We check code out of Vault, make our changes, and check it back in. Vault populates the website folders from the files we check in. It would be most convenient if we could continue to do this the same way on the new website.

Because we were running Windows Server 2003, we couldn’t upgrade to the latest version of Vault, which requires Windows Server 2008. And because we were running such an old version of Vault (version 5) we couldn’t upgrade to the latest (version 8) directly. We had to first upgrade to version 6, which upgraded our database, then upgrade to version 8, which upgraded it again. With Vault working on the new server, we were able to move software development and book production to the new server within about two weeks.

Prior to moving Vault we had captured a snapshot of the websites and databases and were running those on the new server for testing. This allowed us to do a quick test to verify that the Web pages themselves would run under Windows Server 2012 and IIS 8. They worked just fine.

Next, we knew that during the transition to the new site there would be a period of time while DNS changes were propagating during which we would have to access the new database from the old website. We ran some tests that verified this would work.

Last, we had to build the Laridian Sync Server Service code with Visual Studio 2015 and verify it worked. It did.

At this point we spent a couple days locking down the firewall settings. We had a period of just a few hours when we had an open SMTP (email) server that was exposed to the outside world. I was shocked by how quickly the spammers discovered it (by literally rifling through IP addresses and sniffing for servers). We worked with SingleHop to quickly lock that down.

Now we just needed a procedure to follow for getting a final copy of the database moved to the new host. The problem was that we couldn’t be writing to it while it was being moved, which meant shutting down all commerce, account updates, product registration, and user-data synchronization for some unknown period of time. SingleHop estimated two hours to move the database, but suggested we allow three. I allowed four. (It took five.)

Once we knew what needed to be done, we picked a convenient date and time to do it. We were able to configure much of the code to just shut itself down at 8AM CDT the day of the migration. So, for example, the code to do synchronization of user data from PocketBible for Windows would still be there waiting for connections, but starting at 8AM (7:30, actually) it would return an error code to the client saying that the site was down for maintenance. By automating that process, it meant there were fewer manual actions that needed to be taken in the moments before the migration began. In fact, by the night before the move we were down to where it would take only ten check boxes and about 3-4 button clicks to completely bring Laridian to a stop for the two, three, or four (or five) hours it would take to move the database.

The morning of the move, I discovered SingleHop had left themselves logged into a server, which blocked me from getting in to click on two of my ten check boxes. I asked them to do that for me, which was not a problem. Then I discovered that the person who I was told would be doing the migration hadn’t been told about that fact until 30 minutes after the migration was to have begun. He was rousted out of bed or wherever he was, and started moving the databases.

With that small hurdle overcome, and with the website having automatically stopped processing new transactions to the database, I was able to get in and make three lines of code changes that it took to point the old website to the new database server. That was really all I needed to do during the time while the database was being exported from SQL 2000, imported to SQL 2008, exported from SQL 2008, and imported into SQL 2012.

The last step of the move was to make the DNS changes required to point everyone to the new server. It was at this moment that our registrar (GoDaddy) decided to make buggy changes to their website that kept us from changing our zone file. After two or three hours of attempts, we were finally able to get those changes made.

In the end the move turned out to be easier than I thought and was significantly less time-consuming than I had anticipated. I’m sure we’ll discover small things that are broken, but the major functionality of the new servers appears to be working.

Thank you for your patience during the move.

 

 

Laridian Website – Planned Outage

Posted on: August 4th, 2015 by Craig Rairdin 3 Comments

The server migration we did this morning (Tuesday, August 4) is complete as far as we can tell. The last phase of it is changing the various DNS records for our various sites so that they point to the new server. That has been done, but it takes time for the changes to DNS to propagate throughout the Internet.

Until that time, you’ll see a yellow marquee banner across the top of pages at www.laridian.com and you won’t be able to sync your user data. If you see the yellow banner, the site will be slow because it’s talking across the wire to the database server instead of having it located “right next door” on its own subnet in the same building. Once the DNS change finds its way to your machine, you’ll be back up to full speed at the new site.

I’ll write up a little post-mortem article for the techies among you just for fun.

If you have problems with our site that don’t fix themselves by Wednesday, August 5, drop us an email at support@laridian.com.

Reason for the Outage

Laridian operates services on a variety of servers located at more than one hosting company. From time to time we move these services to new locations either to enhance their capability or to save money or both. We are generally able to do this in a way that minimizes or eliminates downtime. In this case, we are moving our database server, which stores almost everything of importance at Laridian including your customer account, transaction history, user-created data (notes, highlights, and bookmarks), and all our books.

It wasn’t possible in this case to make this transition without actually stopping all updates to the database, copying the data to the new server, and restarting it at its new location. During this brief time, we couldn’t do any operations that cause the database to change, or we risked losing those changes (i.e. they would get written to the “old” location after the database has been moved to the “new” location).

Benefits

Once this whole process is complete, we expect enhanced performance of the website, sync service, downloads, and other related services. Security of all of these services will be increased. And despite the more powerful hardware on which this will all be running, our costs will be lower. This will allow us to continue to produce Bibles and reference materials at prices at or below what you’ll find elsewhere.


Updates

2:45PM Remaining DNS changes complete.

1:35PM Laridian Cloud sync services are back up. The IP address for synchronization has changed, so you may continue to get the “maintenance” message (or not be able to connect at all) until DNS changes propagate to your server. This could take up to 48 hours but in our experience most of you will see the change within a couple hours of it happening (which was actually a couple hours ago).

12:00PM Domain registrar is up and down. We have been able to make some DNS changes, but not all.

11:15AM Our domain registrar chose this time to go down. Of course. This isn’t a big deal, it just means that the sites will be slower. Once we can make DNS changes, the websites and the database server will be on the same subnet. Until then, the websites have to talk across the wire to the database, which means they’ll be slower. The worst part of this is that user data synchronization (Laridian Cloud) can’t be brought back up without changing DNS. We don’t anticipate this will take long.

10:45AM Commerce, product registration, account updates, and Apple App Store in-app purchase downloads are back online. The only thing currently offline is the Laridian Cloud (user data synchronization).

PocketBible 1.x.x for iOS users: If you got a message while trying to sync that said “You’re running a very old version of PocketBible“, it’s because you’re still using version 1.x and we’re currently on version 3. To upgrade, first sync (not just backup, but sync) your user data with the server after this maintenance is over. Then search the App Store for PocketBible. The program is free. Download and run it. Register using the same customer ID and password as you have been using, then turn on automatic synchronization under Manage My Data in the menu. The program will pick up your notes, highlights, and bookmarks and you’ll just have to download your Bibles and reference books.

8:30AM Migration officially started.

8:00AM Commerce, account update, PocketBible 2.x/3.x sync service, and other related services disabled.

7:30AM PocketBible for Windows and PocketBible 1.x sync services disabled.

What’s in the Pipeline?

Posted on: July 27th, 2015 by Craig Rairdin 59 Comments

We often get asked about what we are working on. While you can be sure we are always working, and that our work probably involves some version of PocketBible, we understand you may be interested in a more detailed explanation of what is going on behind the scenes. It is in that spirit that we are going to try something new with an occasional post on what’s in the pipeline for apps and books.

You’ll notice we don’t talk about release dates. We’ve been in this business for a long time and have learned that our best-laid plans often go awry. In fact, in the software business, that’s the rule rather than the exception. So we don’t spit into that wind nor tilt at those windmills. We’re pursuing the goals you see below at our best pace and will release new books and updates to our apps as soon as they’re ready.

Apps

  • PocketBible for Android – Version 1.4.4 is current. Includes support for upcoming BookBuilder improvements with respect to user-created Bibles.
  • PocketBible for iOS – Version 3.2.3 was released on June 1, 2015. We are currently working on some enhancements to the user interface and changing the way we do text-to-speech to make it easier to manage and less expensive.
  • PocketBible for Mac OS X – Version 1.1.5 with support for some upcoming BookBuilder improvements and minor new features was released on April 9, 2015.
  • PocketBible for Windows Phone – Send us your suggestions for enhancements.
  • PocketBible for Windows Store – Send us your suggestions for enhancements.
  • BookBuilder for Mac OS X – Version 1.0.0 was released on 3/6/15. Currently working on some in-house features and better support for user-created Bibles.
  • BookBuilder for Windows Desktop – We’re about done refreshing the Windows version to improve the user interface, improve the integration between the various tools that make up the Professional Edition, and bring it into feature parity with the Mac version.

Books

Here’s what our editorial team has in the queue for you (not in any particular order):

  • Additional volumes of the Ancient Christian Commentary Series (IVP)
  • The Applied New Testament and Old Testament Commentary (Cook)
  • Wesley Study Bible (Abingdon)
  • NASB Bible text Updates
  • Tree of Life Version (TLV)
  • More non-English Bibles (?)

Miscellaneous

In addition to the above we’re currently migrating our entire internet presence to a new hosting company. This takes a significant amount of effort and will cause some brief periods of time when the site will be either slow or entirely shut down as we migrate massive amounts of data from the old servers to the new ones. The benefit to you when we’re done will be additional security and speed. It will also cut our monthly internet service bill in half, which will help us keep our prices the lowest in the industry.


 

Disclaimers: All this is subject to change in priority, feasibility, copyright licensing, etc. That means we reserve the right to never release these features or books. We are sharing with you the current plan which is written in sand, not stone. Also, just because something is not on this list doesn’t mean we are not considering it. Finally, we are open to your requests, suggestions and comments!

King James Version: Red Letters and Paragraphs

Posted on: July 23rd, 2015 by Craig Rairdin 5 Comments

Title_PageBack in October, 2014 we updated our King James Version text. We had taken some criticism for publishing a low-quality edition of the text which couldn’t seem to be traced back to any known edition of the KJV.

Red Letters

When we published that version, we intentionally left out the “words of Christ in red” feature, because the whole goal was to get to a pedigreed version of the text and red letters were not a part of the KJV text until relatively recently.

This didn’t go over well with folks who rely on red ink to know when Jesus is speaking. So we did more research to see if we could come up with an “authoritative” red-letter edition of the KJV on which to base our editorial decisions. To our surprise, we found one.

In 1899, Louis Klopsch (1852-1910), editor of The Christian Herald, was writing an editorial for his magazine when he read Luke 22:20: “This cup is the new testament in my blood, which is shed for you.” It struck him that a New Testament with Christ’s words written in “blood” would be both useful and highly symbolic. He approached his mentor, Rev. T DeWitt Talmage with the idea, and the men agreed, “It could do no harm and it most certainly could do much good.”

Klopsch Red Letter BibleRight away they discovered that the KJV contains no quotation marks to delineate those words spoken by Jesus and separate them from those of the narrator or other characters in the story. It also occurred to them that there are instances in the Old Testament where it is believed that Jesus appeared to the Old Testament saints and spoke to them. Should those words be in red? What about the words of Jesus when spoken by others in the book of Acts or the epistles?

Klopsch had to make a few choices (such as in John 3:16ff) about where Jesus’ words end and the narrator’s begin. He opted to omit Old Testament christophanies, but to include New Testament quotes in red. The first red-letter New Testament was published in 1899, and an entire Bible, containing the red-letter New Testament, was published in 1901.

Laridian was able to obtain a 1903 New Testament and a 1913 whole Bible, each with Klopsch’s original red-letter text. The New Testament claims an 1899 copyright and the whole Bible, 1901. From these well-used pages we manually marked up our electronic text to indicate the words of Christ.

Paragraphs

Soon after publishing our updated KJV last year we realized that the text we had worked from did not contain paragraph indicators of any kind. With a little effort we were able to find a source of that information that is consistent with the age and quality of the text itself, and have integrated that information into our text.

The King James Version has historically been printed with each verse starting on a new line, and a pilcrow (¶) marking the start of a new paragraph. We have followed that tradition, which means that in versions of PocketBible that allow you to display the text in paragraph form or one verse per line, you will always see the KJV text presented with each verse starting on a new line.

While some might argue that this format is jarring to the modern reader, we would point out that that KJV itself is “jarring” to the modern reader. We think there is great value in upholding the publishing traditions that add to the unique character of the King James Version of the Bible, and are very happy with the results of this effort to update our version of the text.

Most PocketBible users will see a note on the “Add/Remove Books”, “Cloud Library”, or “Download Books” screen in PocketBible to the effect that the KJV and KJV with Strong’s Numbers texts have been updated. Select the updated product to download it to PocketBible. Windows Desktop users will have to download the setup program for the KJV or KJVEC from the Downloads area of our website.

Don’t Panic! Gay Satanists Are Not Corrupting Your Bible

Posted on: July 15th, 2015 by Craig Rairdin 14 Comments

Recently we’ve heard from a few customers who have seen a post on Facebook suggesting that someone is out to corrupt the New International Version (NIV) and English Standard Version (ESV) Bibles, and that they need to act quickly to make sure they archive a copy of the “real” Bible before gays and satanists ruin it. The post usually looks something like this:

PAY ATTENTION PEOPLE!!

I’m sure you know that NIV was published by Zondervan but is now OWNED by Harper Collins, who also publishes the Satanic Bible and The Joy of Gay Sex.

The NIV has now removed 64,575 words from the Bible including Jehovah, Calvary, Holy Ghost and omnipotent to name but a few… The NIV and ESV and other versions have also now removed 45 complete verses. Most of us have the Bible on our devices and phones.

Try and find these scriptures in NIV or ESV on your computer, phone or device right now if you are in doubt:

Matthew 17:21, 18:11, 23:14; Mark 7:16, 9:44, 9:46; Luke 17:36, 23:17; John 5:4; Acts 8:37

…you will not believe your eyes.

Let’s not forget what the Lord Jesus said in John 10:10 (King James Version)

THE SOLUTION

If you must use the NIV or ESV BUY and KEEP AN EARLIER VERSION OF the BIBLE. A Hard Copy cannot be updated. All these changes occur when they ask you to update the app. On your phone or laptop etc. Buy and KEEP EARLIER VERSIONS AND STORE THEM.

There is a crusade geared towards altering the Bible as we know it; NIV and many more versions are affected.

This is a variation on the claims that newer Bibles remove verses from the “original” (by which they usually mean the King James Version). But in this version of the panic-inducing message, the argument is that the newer versions themselves are being updated, purportedly by the gays and satanists at Harper Collins, to remove verses and change words.

The fact of the matter is that updates have been made to these two Bibles. Ongoing updates are often made by the translators of all modern Bibles to address errors in previous editions, changes in language and usage, and to incorporate a better understanding of the original Hebrew and Greek texts. This is not unusual; even the King James Version was updated for these purposes during the early years of its existence.

With respect to the NIV, Zondervan, and Harper Collins, it’s important to note that the text of the NIV is actually maintained by Biblica, formerly the International Bible Society, a ministry that translates the Bible into dozens of languages and distributes it freely throughout the world. Zondervan is their commercial publishing partner, but Biblica maintains the text, just as they do their other Bibles. So despite the claims of this Facebook post, Harper Collins is not changing the text.

The ESV is an update to the Revised Standard Version (RSV), which itself was a revision of the American Standard Version (ASV). The ASV was an “Americanized” edition of the Revised Version (RV), which was a late-19th-century update to the King James Version. Coincidentally, the ASV was originally published by Thomas Nelson, which today is owned by the same parent company (Harper Collins) that owns Zondervan.

With respect to the complaints about the ESV, given its history one is compelled to question which earlier version the author would have us revert to. This is not made clear. In fact, there is very little clarity in the Facebook post.

We’re frankly disappointed that so many people are sucked in by claims like this. I suppose it could be true that there is a world-wide conspiracy by homosexuals who are in league with satanists to corrupt the Bible. I don’t think the author argues that point very well, if at all, but I suppose it could be possible. I think it’s more likely that an uneducated person who is ignorant of how Bible translation works and of the history of the Bible noticed that both his NIV Bible and his copy of the Joy of Gay Sex were published by Harper Collins and decided everyone on Facebook needed to know about it.

Interested in learning more about the history of the Bible, the original texts and manuscripts from which it is translated, why certain writings are included while others are not, how it is translated, and some information about the various English translations of the Bible over the years? Check out The Origin of the Bible by Dr. Philip Comfort for PocketBible.

This updated volume of the original classic provides a fascinating overview of how the Bible was first inspired, canonized, read as sacred literature, copied in ancient Hebrew and Greek manuscripts, and eventually translated into the languages of the world.
The Origin of the Bible is a comprehensive guide to the origin and development of the Bible text, manuscripts, and canon. This updated edition provides a chapter on recent developments in Bible translation.

An excellent resources for pastors, Bible teachers, seminarians and any student of the Bible (i.e all Christians), this book provides a wealth of information about the historical development of the Bible.

 

PocketBible 3.2.3 for iOS Now Available

Posted on: June 2nd, 2015 by Craig Rairdin 5 Comments

PocketBible iOS IconApple has approved PocketBible 3.2.3 for distribution on the App Store. This version is a minor update intended to fix a few problems mainly on the iPhone 6 and 6 Plus. (We’re just going to pretend that 3.2.0 never happened.)

The new iPhones have larger screens. PocketBible has absolutely no problem with larger screens. In fact, exactly the same code runs on the iPad and iPhone. PocketBible asks iOS how big the screen is, then proceeds to fill it. Apple, however, has to protect you against apps that assume that the only possible size the screen can be is one of the known sizes as of the date of release of the app. So when we ask iOS for the screen size, it lies to us and tells us the size of the iPhone 5 screen. Then it multiplies the pixels by 1 + a small fraction and blows our user interface up to fill the screen.

The result of this “lie and blow up” strategy is a blurry app, as you can see on the left, below (click for full resolution).

PocketBible on iPhone 6

On the left is version 3.1.0. On the right is 3.2.3 (misidentified as 3.1.1 in the picture above). Version 3.2.3 jumps through the magic hoop that tells iOS that we understand the larger screen size. The “hoop” consists of using a different method to display the “splash screen” that appears when you launch PocketBible. When iOS sees we are using this method, it knows that we must know about the iPhone 6, so it stops lying to us about the size of the screen and allows us to use all the pixels on those great new displays. As you can see, the screen shots were taken just two minutes apart. It’s literally the same PocketBible code displaying non-blurry text. (Can you tell that this frustrates me a bit? I’ll post a link in the comments with more ranting about this if you’re interested.)

One nice change in this version is that you can change the password on your account without being forced to delete your books and your user-created data. The previous version believed you were trying to log into a different account, so it forced you to delete your books and answer some hard questions about your notes, highlights, and bookmarks before it would continue. The new version realizes all you have done is change the password, so it doesn’t ask you to do any of that.

If you DO log into a different account, it will still ask you to do something about your user data so that it doesn’t get corrupted by being sync’ed to a different account, but it isn’t as insistent that you do it right away.

This all being said, you shouldn’t be switching user accounts. If you think you need to bounce between user accounts, talk to us so we can figure out what you need and solve it correctly.

Behind the scenes, PocketBible 3.2.3 is now using https: connections to talk to the server for all connections, not just the ones where personal data like passwords are being transmitted. This takes advantage of some security changes we’ve made at the site in the last few months and makes all your data more secure than it needs to be.

The App Store on your device will notify you about the update, or you can just go get it now.

Here’s the full list of new, enhanced, and repaired features in 3.2.3:

New Features

  • Recognize and take advantage of the increased screen size of the iPhone 6 and 6 Plus instead of allowing iOS to scale the screen, which caused text to be blurry.
  • Support “custom Bibles” from BookBuilder which specify custom versification by referencing existing versification schemes. (Reader Engine version 1.073.)

Enhancements

  • Allow the Font / Size / Brightness setting window to rotate to landscape and to fill the full width of the screen.
  • Allow user to change password without forcing them to delete books and user-created data (notes, highlights, bookmarks, etc.).
  • Allow user more affirmative control over disposition of user-created data when logging into a different Laridian customer account.
  • Use https: connections throughout, even though no personal data is being transmitted.
  • Do a better job selecting italic and bold/italic fonts with families that support heavy, bold, demi, semi, medium, etc. variants.

Bug Fixes

  • Fixed a bug that caused text-to-speech reading to stop at an empty verse.
  • Table heading tags were getting filtered out of notes.
  • Opening a devotional with no existing start date would create a start date, overwriting the existing start date that might not have yet been sync’ed from the Laridian Cloud.
  • Fixed a memory leak when displaying lists of bookmark categories.

PocketBible for iOS is Back in the App Store

Posted on: June 2nd, 2015 by Craig Rairdin 25 Comments

PocketBible iOS IconIt appears this story is old news now. 3.2.3 is available on the App Store. A few of you are still upgrading, so I’ll keep the article here for a while.

On May 18 we submitted PocketBible 3.2.0 to Apple for approval. On Thursday, May 28 they approved it and by Friday night it was being downloaded by our users.

When I saw it was available for me to download to my iPad, I updated my personal copy. I got the message I expected, that my data needed to be updated. I went to Manage My Data as instructed but there was no response from the program. I quickly hooked my iPad up to my laptop and ran the program in the debugger. It turned out the Manage My Data screen was being built, but as soon as it was displayed, it was being dismissed by iOS so the user never saw it.

I tried deleting and re-installing to no avail.

During this process, Facebook notified me of some messages from a couple people who I know to be active PocketBible customers. When I visited Facebook I found there were several users having the same experience I was.

I posted a status update to our Facebook followers instructing them not to download the update to their iPads (the program was working fine on my iPhone). After a few more minutes of testing I realized there was no way to work around this and that I was going to have to stop it from being distributed. Unfortunately, Apple does not offer an immediate “off” switch. I pulled the app from the App Store but it would take 24 hours to fully take effect.

I posted a message on the home page of www.laridian.com and wrote a blog article to explain what I knew about the problem. I set up a response on our tech support ticket system that pointed affected users to the blog article for more information. I pulled the update announcement I had made on Thursday from Facebook and our blog. I posted a status update on Facebook pointing to the blog.

Over the next five or six hours I tracked down two related problems in the Apple code. I was able to fix one of them fairly easily because the 15 places in the code that were affected were all in the same file (or, for you programmers, the same class).

Other problems were related to UIAlertView (messages that pop up in the middle of the screen, usually with an “OK” and a “Cancel” button) and UIActionSheet (windows that pop up from the bottom of the screen and contain a simple caption and a column of buttons). I found these to be used in 294 places in the code. Each of these instances had to be reviewed to see how to best work around the problem. In some cases, I changed the implementation to use an alternative method of doing the same thing. But in most cases there was no better alternative.

After doing some research on the Web (programmers use a site called stackoverflow.com to confer, converse, and otherwise hobnob with their fellow wizards) I found a good work-around that required only a simple change to the code in about a dozen places.

By Saturday afternoon I was ready to put the program in the hands of some beta testers. I posted a call for testers on the blog and on Facebook. I knew this would be tough going into Sunday morning, but I got a small number of testers from around the world to run the program through its paces. (I apologize to my fellow church members for taking a few minutes during the announcements to pull out my laptop, add three new beta testers to the provisioning profile, re-sign the program and upload it to the website.)

Interestingly, the only problems they found were bugs that have probably been in PocketBible since version 2.0 or maybe earlier. I made some effort to fix those but under the circumstances didn’t want to take more time than necessary to get the program back up on the App Store.

By Sunday evening, about 48 hours after discovering these debilitating bugs, I was ready to upload the program to the App Store. At the same time, I filed a request for expedited review with Apple. It took them 10 days to review the last version; they’ve taken as little as 2-3 days in the past. I was hoping they’d agree to expedite it, because even after it was approved it would take 24 hours to propagate to all of Apple’s servers. Apple approved the expedited review on Monday morning and an hour later the app itself was approved.

By Tuesday morning everyone was seeing the update (version 3.2.3) and reporting that it was working.

I apologize for the inconvenience. Here are a few FAQs:

What are the symptoms? “Manage My Data”, “Shop for Bibles and Books” and many other menu items don’t do anything. This is especially problematic, since the program tells you that you need to go to “Manage My Data” to update your data due to the program itself being updated. But Manage My Data doesn’t work. Other selections, such as “Copy Passage” and “Register Now” cause the program to crash.

Version 3.2.0 seems to be working on my iPhone. Should I be worried? The problem seems to be limited to the iPad.

Should I remove the program from my iPad? No. When you download the fixed version (3.2.3), it will overwrite the bad version and everything will still be there (books and user data). It is OK to leave it installed and even run it. It’s just that certain functions are disabled. You might also have it crash if you interact with any pop-up choice boxes like the registration prompt. Just leave it installed for now.

Why does PocketBible require you to go to Manage My Data anyway? Previous versions of PocketBible tried to maintain the integrity of your user data (notes, highlights, bookmarks, etc.) by detecting when you have logged into a different account, then asking you to say how you wanted to handle your existing data with respect to the new account (i.e. replace your local data with the data on the server or merge your local data with the data on the server). Unfortunately, it assumed that simply changing your password meant you were logging into a new account. This new version of PocketBible uses the same technique as PocketBible for OS X, which records the customer ID you use when you sync your data, then compares that customer ID to the one you are logged into. That way you can change your password or even log out and log back in, and PocketBible won’t get confused. Since the old version did not keep track of your customer ID, and since you may have logged in with your email address instead of your customer ID, PocketBible has to log into your account and ask the server for your customer ID. This is quick and painless — unless you can’t get to Manage My Data to do it!

I’m a programmer. What’s really going on? Apple changed the way that UIPopoverController, UIAlertView, and UIActionSheet dismiss their views. In each case, we previously could assume that after dismissing those views we could display another modal view or otherwise act as if the view was gone (whether it was actually gone from the display at this point is irrelevant — I know that takes another cycle through the run loop). But some recent update to the SDK made it so that dismissing UIPopoverController resulted in any modal view displayed after that to be dismissed along with the requested UIPopoverController.

UIPopoverController does not notify its delegate when it is programmatically dismissed, only when it is dismissed by a tap outside its view. So we have no way of knowing when it is done. There are various techniques to discover whether or not the view has been dismissed. I chose a very simple polling technique that doesn’t make assumptions about whether or not it takes only one pass through the run loop, as other solutions do. For UIAlertView and UIActionSheet, I changed the delegate method I use to act on a button press from the “button pressed” delegate method to the “dismissed with button press” delegate method. This assures that the view has been dismissed before we continue.

 

PocketBible 1.4.2 – New Navigation, History and more!

Posted on: April 15th, 2015 by Michelle Stramel 8 Comments

PocketBible for Android version 1.4.2 has been released to the Google Play Store. If you downloaded the app from Google Play, you should be automatically updated. If you are using a Kindle Fire (or other non-Google Play device), you can download the latest version by browsing to http://lpb.cc/android while on your device.

The new version 1.4.2 update adds a Book Navigation Assistant (bottom toolbar) to the app. This new toolbar includes the following new and previously-released options:

  • Backward/Forward – the separate left and right pointing arrows will take you backward and forward respectively through your movements in the app.
  • NEW! Recent Verses – the list/clock icon will give you a list of recently visited verses and allow you to return there by choosing the verse reference.
  • NEW! Bible/Commentary Sync – the stacked arrows icon will immediately sync your verse-indexed books, such as Bibles and commentaries, to the same verse.
  • NEW! Strong’s Numbers On/Off – the Omega icon will toggle Strong’s numbers on/off in your open Bibles that contain them.

The new bottom navigation bar can be hidden along with other toolbars by double-tapping the screen. Your toolbars can be set to optionally show/hide this way via Settings | Control Settings in the PocketBible app.

Additionally, cross-references will now be reported in search results (where applicable) as “Referenced Here.”

New to Advanced Features! For those who own the Advanced Feature Set, a new library search option is now available on the overflow menu that lets you search all your downloaded books at once for a word or phrase. We have also added the option to turn off My Special Offers notifications in the Control Settings.

The PocketBible Bible Study App for Android is free. The optional Advanced Feature Set can be purchased at the Laridian web site or inside the app for $9.99.

Two Ways a Topical Bible is Better than Searching

Posted on: April 7th, 2015 by Michelle Stramel 6 Comments

Topical Search

One of the main benefits of PocketBible is being able to locate things quickly in the Bible. The GoTo feature in PocketBible takes you directly to a specific book | chapter | verse in the Bible. For the times you don’t already know the location, you have the Search feature. Just put in a few words or a phrase and PocketBible will present a list of possible matches.

But what if the item you are looking for is not actually mentioned in the Bible (e.g., Trinity)? Or there are different ways to describe it (e.g., marriage and betrothal)? PocketBible can get you there!

Finding the Un-Mentioned

When you know something is mentioned in the Bible but you can’t find it with a PocketBible search for the exact word(s), consider using a topical Bible like Nave’s Topical Bible (a free resource). Nave’s leads you to the applicable Bible verses for over 20,000 topics. For example, a search for the word trinity will bring up zero hits in your PocketBible Bibles but exploring this topic in Nave’s will lead you to dozens of related Bible verses.

Finding the Indirectly Mentioned

Sometimes a search will bring up some of the verses you are looking for or it may bring up different verses in different Bible translations. An example would be if you were interested in finding all the verses about marriage. If you use the Find feature to locate the word “marriage” in the NIV, you would find 46 verses. Search for it in the KJV and you find 18 verses. In the NASB, it’s 32 verses. Why the difference? Each translation may use a different word or phrase to describe marriage for various verses. Instead of “give me the girl in marriage” it may say “give me the girl as my wife.” Thus, the results of a word search will vary depending on the translation.

With a topical Bible, you are reviewing the entire topic of marriage without respect to how the verse is phrased. The topic of a particular Bible verse is going to be exactly the same no matter which Bible translation you are using. Even though the descriptive words may be different, the topic stays the same.

A topical Bible like Nave’s presents topics along with all the related verses. The Nave’s topic for “marriage” is further divided into 26 subtopics. Each sub-topic includes links to verses. And related topics such as divorce, husband and wife are also referenced and linked.

In addition to Nave’s Topical Bible, the following topical Bibles and similar titles are available for use with PocketBible.

If you find Nave’s or the other topical Bibles helpful in your studies, we’d love to hear how! Please share in the comment section below.

Which PocketBible Bible is Right For You?

Posted on: March 17th, 2015 by Michelle Stramel 12 Comments

There are many reasons to choose a specific translation of the Bible. People often use what their pastor or church recommends. For many people, the Bible and King James Version (KJV) are synonymous. In fact, Christianity Today reported last year that the KJV is still the most popular and fastest growing Bible translation.

While we provide the King James Version for free with PocketBible, there are many other translation options available. One of the major features of PocketBible is the ability to compare translations or create your own parallel Bible. Thus, you don’t have to be limited to one translation as you are with a printed book. This makes it easy to look at how a verse is worded in multiple translations to gain insight into its meaning.

Which Translation is Best?

Bible translations are usually categorized as to whether they provide a “word for word” translation from the original manuscripts (most accurate) or more of a “thought for thought” translation (easier to read). While the “best” translation will always be somewhat subjective, you can still find the one that is “best” for you. In addition to comparing translations for insight, you may find that you like one translation for your Bible reading and prefer another for study purposes.

(more…)

©2015 Laridian