Subscribe to Updates

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

Posts Tagged ‘Programming’

PocketBible for Mac OS X Status Update

Posted on: June 2nd, 2014 by Craig Rairdin 4 Comments

PocketBible for Mac OS Kickstarter ProjectPocketBible for Mac OS X is moving right along. Last month I published a simplified version of my to-do list so I thought I’d update that list and let you know how it’s going.

If you’re a Kickstarter backer of this project, you’ve been getting regular video updates from me. One went out last night. If you’re not getting these updates, check your settings at Kickstarter or just go visit the the Kickstarter page and log into your account there to view all the updates. For those who didn’t get in on the funding of the project, I’ve posted a few updates here on the blog and made some comments in the comment sections of other blog articles as people have asked. We’ve been more open about this project than we have any other project in the 26 years I’ve been writing Bible software. If you want to know what’s going on and can’t find it here, just ask.

On May 1 I was projecting “mid-June” for being done with the basic feature set (not the Advanced Features). I’ve slid about a week since then. Here’s an update on that to-do list I published last month:

  • Autosync – (Automatically sync changes to notes, highlights, and bookmarks to/from the Laridian Cloud.) This is done and working.
  • Pane management – (Provide a way to open and close panes.) This is done but I’m still seeing some flakey behavior from time to time.
  • Button icons – I’ve made a user interface change that has cut down on the number of new button images I need to create.
  • Note editing/searching - I need to spend a couple more hours on the note editor. Note searching is done and supports most of the key features of book searching (that is, results sorted by relevancy, sounds-like searches, and root-word searches).
  • History – (Implement back/forward.) Haven’t started this yet. Hope to lift the design from iOS.
  • Search – I am currently working on a couple of special features of the search pane. For example if you search the Bible for “John 3:16″ the program now shows you John 3:16 instead of searching your Bible for the text “JOHN 3:16″. And when you do a Bible verse search in any book, you’ll see a list of places in the book where there is a link to the verse.
  • Devotionals – I believe devotionals are done.
  • Highlights – Highlights are done, including renaming highlight colors if you own the Advanced Feature Set.
  • Preferred Books – Provide user interface to choose preferred books.
  • Remove some features that actually belong to the Advanced Feature Set. The program now automatically adjusts to the presence or absence of the Advanced Feature Set; I just need to make sure I’m turning on/off all the appropriate features.
  • Fix a few bugs I’ve been living with but you won’t want to. I keep finding more of these. :-)

The plan is still to make the free version of the program available first, then implement the Advanced Feature Set. Right now, the list of Advanced Features Set features looks something like this:

  • Autostudy – Word study, verse study, and I’m hoping to add a new study called “Today”, which will pull today’s Bible and devotional reading into one convenient document.
  • Saved Layouts – The ability to create different “desktops” or “layouts” for different study configurations.
  • Open All Books – Open all installed books into a predefined layout.
  • Journal Notes – Notes that are not attached to a verse, just like the Journal features on PocketBible for iOS.
  • Named Highlight Colors – The ability to rename highlight colors to something meaningful instead of just “yellow” and “pink” etc.  This is already done.

I think that brings you up-to-date. I’ll post a video update to the blog sometime soon that demonstrates more of the features that the Kickstarter backers have seen but I haven’t shown publicly.

As always, thanks for your support during this process. And if you like what we’re doing here, give us a High 5!

PocketBible for Mac OS X Status Review

Posted on: May 1st, 2014 by Craig Rairdin 3 Comments

PocketBible for Mac OS Kickstarter ProjectAs you know, last June we launched a Kickstarter campaign to fund the development of PocketBible for Mac OS X. As part of that campaign, we had to estimate a ship date for the product. If you know anything about software development you know that ship dates are impossible to accurately predict for complex projects, and companies that make it a hard-and-fast requirement to ship on a particular date end up issuing a series of “point releases” to fix the problems that management wouldn’t allow the programmers to fix before the ship date. So it could be argued that even products that hit their ship dates don’t hit their ship dates.

But Kickstarter required us to name an estimated ship date. I chose May 2014 based on the roughly 9 months it took our Windows Phone / Windows 8 developer to port PocketBible to that platform. I figured I had a head start over that project, since I had the iOS version of PocketBible to lift code from. (iOS and Mac both use the same language, the same development environment, and a very similar API.) I knew I’d have to take time out for iOS 7 (turned out to be more than I thought), so I’d probably consume most of that head start with that.

The Kickstarter campaign was successful and development started in August 2013. I ended up spending a lot of the rest of 2013 on iOS 7, so full-time development on the Mac didn’t really start until January.

Since most of you aren’t software professionals, I know that there is an assumption out there that when we said “May 2014″ that we knew what we were talking about. And furthermore, I know that many of you think “May” means “May 1″ (which is today). That’s OK; you don’t speak the language of programmers and don’t understand our idioms. With that in mind I thought I’d make May 1 be a major project evaluation date. The idea is that this is the day that I honestly evaluate our progress and choose features to cut or simplify in order to do my best to meet the goal of delivering this product by the end of the month.

I’ve been posting progress updates as I go along, so you have a good idea what I have done. What’s less clear is what is remaining to be done. That list looks roughly like this:

  • Autosync – Just need to add some user interface to turn this on and set the frequency. The underlying code is already there to actually do the synchronization.
  • Pane management – Provide a way to open and close panes. This is mostly user interface. The underlying code is already there.
  • Button icons – I have graphics for the majority of buttons, but not all.
  • Notes – Implement a note editor and the ability to show a list of your notes. The latter is easy. The former I hope to lift from Android. Also implement note searching.
  • History – Implement back/forward . Hope to lift this from iOS.
  • Search – The bulk of this is done. I have a small number of special cases to deal with, for example if you search the Bible for John 3:16 it should show you John 3:16, not search for the text “JOHN 3:16″ in your Bible.
  • Devotionals – Finish the devotional go-to pane and the features of the Today menu. This includes setting a start date, catching up when you get behind, and providing a user interface to marking the day’s reading as complete.
  • Highlights – Finish the highlight pane. I can highlight verses and show lists of highlighted verses but there are a few more little features (such as deleting all highlights in a particular color and renaming the highlight colors for Advanced Features owners) that need to be implemented.
  • Preferred Books – Provide user interface to choose preferred books.
  • Remove some features that actually belong to the advanced feature set. These include being able to create multiple saved screen layouts.
  • Fix a few bugs I’ve been living with but you won’t want to.

If all goes extremely well, I can get all of the above done by mid-June. All will not go extremely well. I will most likely delay some of these features, such as searching notes, until after the initial release.

The list above excludes features I intend to implement for the Advanced Feature Set. The plan would be to make the free version of the program available, then implement the Advanced Feature Set. Right now, that list looks something like this:

  • Autostudy – Word study, verse study, and I’m hoping to add a new study called “Today”, which will pull today’s Bible and devotional reading into one convenient document.
  • Saved Layouts – The ability to create different “desktops” or “layouts” for different study configurations.
  • Open All Books – Open all installed books into a predefined layout.
  • Journal Notes – Notes that are not attached to a verse, just like the Journal features on PocketBible for iOS.
  • Named Highlight Colors – This is already done.

If all goes extremely well, these features could be complete by mid-July. All will not go extremely well.

As part of our Kickstarter campaign, we also promised to do a Mac version of BookBuilder. We estimated that would be complete at the end of June. I don’t think it will take long and may attack it over a couple of weekends. I’ll have more to say about that project once I get a chance to look into it.

This sounds like I’m announcing that the program will be late, but I’m actually quite happy with our progress and am optimistic about meeting these dates. I also hope to make some betas available to our Kickstarter supporters before the final version ships, so it’s possible you’ll be using the program relatively soon.

Thanks for your support during this process. If you like what we’re doing here, give us a High 5!

 

A Couple Security-Related Issues

Posted on: April 11th, 2014 by Craig Rairdin 6 Comments

HeartbleedJust a couple brief comments  on two unrelated security issues. You’ve probably heard about the Heartbleed vulnerability that affected many websites this week. For some reason, the media didn’t mention that the affected servers are running Linux. (There are issues with certain programs running on other servers, but the primary impact was for those sites running Linux-based servers.) They’re quick to jump on Microsoft when it comes to security flaws in Windows, but I guess Linux doesn’t get the same treatment. Weird.

Anyway, we run Windows servers here and don’t appear to be affected by Heartbleed. This blog is on a Linux box, but there’s nothing valuable here except for my rambling a on various topics, and those are only mildly worth stealing.

Coincidentally, we were working on another security-related issue when we heard about Heartbleed. A few of you have given us grief in the past for sending password reminders in email. While your Laridian password doesn’t expose any personal information of import, except perhaps your mailing address — which is widely available elsewhere — it was still disconcerting to see your password show up in clear text.

So we’ve made some changes now so that we don’t send out passwords but instead send a link to a page where you can reset your password.  This should provide a little more security, especially if you’re in the habit of using the same password everywhere. :-)

PocketBible for Mac OS X Update

Posted on: January 9th, 2014 by Craig Rairdin 4 Comments

PocketBible for Mac OS X 1-9-14It’s been a while since I updated you on our progress on PocketBible for Mac OS X, so I thought I’d do that here.

For those of you who don’t follow us as closely as we’d like to think you all do, last summer we launched a Kickstarter campaign to fund the development of a Mac OS X version of PocketBible. The campaign was successful, so in August we started working on it.

We ran into some problems right away, as iOS 7 took a large percentage of our attention in September and November. And in October. And quite a bit in December. But I think that is behind us.

As you can see, there is some rudimentary functionality in place. I spent a lot of time up-front working on details of the user interface. I’m trying to build a sturdy framework on which to hang functionality. So it may seem like the program doesn’t do much yet, and it doesn’t. But there is a lot going on under the hood.

For example, all the shared C++ code that reads our Laridian Book (LBK) files has been imported into the program and is working great. You’re seeing real Bible text being displayed. And the program is able to access our server to get a list of the books you own (well, currently, it always gets the list of books I own, but once I add some user interface so you can enter your own customer ID and password, it will get your list). It allows you to maintain multiple layouts so that you can configure one for devotional reading, one for sermon prep, one for Greek word studies, etc. without having to open and close books all the time.

PocketBible Mac OS X Cloud Lib 1-9-2014While implementing PocketBible for Windows Phone and Windows Store, we added a capability to download cover art for every book. I’m taking advantage of that in the Mac version to display cover art for every book when you go to download it, and again when you select a book to open. Cover art is downloaded in a “background thread” which just means it doesn’t make you wait while it gets all those image files. It is cached locally so you don’t have to download it every time.

The screen shot on the right shows the “Cloud Library” function where you see a list of all the books you own. Unlike the iOS version of PocketBible, the list is organized by type of book (Bibles, commentaries, dictionaries, etc.) to make it easier to navigate. Books you’ve already downloaded are dimmed, or you can check the box to hide them entirely.

The “Open Book” dialog looks very similar, except it only shows you books that you’ve already downloaded from our server and installed on your Mac.

The program will support the “type-n-go” feature of the Windows Desktop version. This allows you to simply type “John 3:16″ to go to that verse, or even type “find jesus” to find everywhere in the Bible “Jesus” is mentioned. I’ve implemented an early form of this feature, which is really handy for testing. That is, I can test my go-to-verse functionality before inventing a fancy book/chapter/verse chooser.

Even though a large percentage of the code is shared with PocketBible for iOS (developing for iOS and for Mac uses the same Xcode programming environment, Cocoa class library, and Objective-C/C++ programming languages), a lot of the design of the text display system will actually be ported from the Java code in our Android version. This means we’ll be able to have continuous scrolling of the text, which we chose not to support in the iOS version.

Remember that we carefully construct our screen shots to hide all the bugs. Don’t assume since you’re looking at Bible text that the program is done. We think we’re still on schedule but there’s a lot left to do. I just thought I’d bring you up to date.

If you’re a Kickstarter contributor but you have not been notified yet about your reward(s), please contact support@laridian.com and tell us about it. We think we’ve fulfilled all the rewards we can (obviously the program itself hasn’t shipped) so if you haven’t heard from us it means we must be missing you on our list.

Follow us on Google+

Posted on: September 11th, 2013 by Jon Grose 4 Comments

I started a Google+ page all about the latest PocketBible for Android news and development. About every week or so I post what is being worked on now and what is up next.

You might ask: “You already have a blog. Why make another blog on Google, and only for Android stuff?” Two reasons:

1) We don’t have a huge Google+ presence right now, but a lot of our customers use it already. If you are like me, you might not even have a Facebook or Twitter account, so there are not social media outlets for you to connect with Laridian other than coming to this blog.

2) By having a Google+ page, we are able to promote PocketBible in Google Play in a much more organic way. Believe it or not, during a talk at the latest Google I/O conference, it was revealed that the search algorithm Google Play uses actually looks at your +1s, ratings, and even your friend’s +1s and ratings in Google+ to give you customized search results. In other words, the more we promote PocketBible on Google+ the more it will come up in search results in the Google Play.

So check us out, get the latest news, +1, share, link and tell all your friends about PocketBible for Android on Google+

Serendipitous Programming

Posted on: July 27th, 2013 by Craig Rairdin 6 Comments

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.

PocketBible for Mac OS: Design Principles

Posted on: July 8th, 2013 by Craig Rairdin No Comments

PocketBible for Mac OSWhile it may not be evident from the outside, there are certain philosophies, both of Bible study and software design, that strongly influence each of our Bible study apps regardless of platform. While we’re not at a point where we can give a concrete demonstration of PocketBible for Mac OS, we can talk about how those philosophies will influence our work.

In no particular order:

You should spend most of your time in PocketBible wrestling with the Bible text, not with your Bible software. This means that frequently accessed functionality should be immediately available, and that you shouldn’t have to deal with overlapping windows that obscure the text you’re trying to read. You shouldn’t be thinking about how to arrange things on the screen or how to access basic functions like navigating to a verse or creating a note, but instead be thinking about what you’re reading and how it applies to your life.

While we should consider specific use cases and how they are served by our design, we shouldn’t design around the use cases. We think a lot about all the things you might want to do with your Bible software, like search for a word, compare Bible translations, and view a commentary on a passage. This list of ways that you use our software defines a set of “use cases” (or “user stories”).

Informally, a “use case” or “user story” is a combination of a specific goal (“User must be able to search the text for a given word or phrase”) and a description of the steps or interactions with the program necessary to meet that goal. Programmers use these use cases as part of validating that their solution meets the user’s requirements.

Some Bible software companies make the mistake of creating new user interface elements for every use case. In these programs, when you’re in “search mode” the program looks and behaves differently than it does while just browsing through the text. When you want to compare two translations of the Bible, the second one pops up in a window that may obscure a portion of what you’re reading, and which doesn’t have all the functionality you have in your “main” Bible. And the only way to view a commentary might be to split your Bible window to show a commentary beneath it, with no consideration given to how you might open a second commentary or that you might not want to lose space for Bible text when viewing a commentary. And while you might consider “commentaries” and “dictionaries” to be just “reference books” and expect them to work similarly, the program might display dictionaries in the form of pop-up windows when activated for a particular word, covering other text and behaving differently than commentaries, devotionals and other reference books.

We will try to create a flexible user interface where, for example, search results, bookmark lists, lists of notes, and other “lists of verses” share a common user interface component or pattern, and where opening a Bible to compare to the current one is no different than opening a dictionary, commentary, devotional, or any other book. There’s less to learn and there are fewer surprises.

PocketBible for Mac OS should not necessarily look like PocketBible for Windows, PocketBible for Android, or even PocketBible for iOS. While it should share a lot of design, algorithms, and even code with those platforms, it should look and feel like a Mac app, not a Windows app ported to the Mac or even an iOS app ported to the Mac. We like to take the best features of all our previous apps and combine them with fixes to the mistakes we made in previous apps and wrap them in a user interface that is consistent with the other apps on the target platform.

Mac users should not feel like they are being accommodated, but rather that Laridian considers Mac to be a primary platform for its products, and PocketBible for Mac a flagship product. We confess that we treat certain platforms as second-class citizens. For example, both our BlackBerry and webOS apps were “Bible only” apps, and neither shared the LBK file format used by our other apps. BlackBerry was primarily an enterprise (business) platform, and the future of webOS was always doubtful. This made it difficult to commit the time and money to those platforms that would’ve been necessary to really do them right. Mac OS is different. It is our intention to make it difficult to tell if we’re “Mac people” or “Windows people” because of our level of commitment to both platforms.

PocketBible for Mac OS will focus on the needs of the 99% of Christians who are neither “clergy” nor “Bible scholars”. Most of our customers occupy the pews on Sunday morning and work in secular jobs during the week. While many are Sunday School teachers or Bible study leaders and a few are pastors, most are simply everyday Christians with a love of the Bible. Some have some experience with Greek or Hebrew, but most don’t do their daily devotional reading from the Greek New Testament. PocketBible for Mac OS may include resources like the Greek New Testament and meaty, scholarly commentaries, but its focus will be on concise, accessible works that help the average Christian understand and apply the teachings of the Bible in their daily walk. It’s not that we have a disdain for the original languages, but rather that, as Bible software users and everyday Christians ourselves, we understand there are people out there who understand those languages significantly better than we do, and it’s better, faster, and easier for us to read what they’ve written in English about the Bible than to depend on our own spotty and questionable original language knowledge.

Of course, the 1% of you who dream in Greek will want a different Bible study app. PocketBible may not be for you. We understand that; you’re not our target user.

Given a choice, we will take functionality over complexity; usability over displays of our technical prowess, and simplicity over beauty. We’re not trying to solve every problem in the field of computerized Bible study, but instead we’re trying to provide a tool that can help you solve the most common problems you encounter in your everyday study of the BIble. We’re not trying to flex our programming muscles to win your admiration, but instead give you something you can be expected to use and understand with minimal learning time. We feel that beauty is often only skin-deep; that simplicity and elegance are beautiful in their own way. You may find another girl who looks prettier, but PocketBible is the girl you want to take home to meet your parents and be with forever.

We hope this helps you understand more about how we think about Bible software and from there, maybe infer how that might apply to PocketBible for Mac OS. Of course you’ll be seeing more concrete examples of these principles in practice as we begin to work on PocketBible for Mac OS — assuming, of course, that we reach our funding goal for the project on Kickstarter!

©2014 Laridian