Reflections and Projections

Joy To The World

Nothing sums up Christmas like the following song:

Joy to the world, the Lord is come!
Let earth receive her King.
Let every heart prepare Him room
And Heaven and nature sing.

I pray that you and your families would all have a very blessed and Christ filled Christmas. May we never forget the reason why Christ was born to us, and His gift of Grace.

Yours in Christ,

Derek.

Kids, don't try this at home!

I've done what any developer should NEVER do. I've released RC6 with a few bugs that we know about.

Well, I wanted to give everyone a nice little Christmas present. The latest version of openlp.org, with quite a few bug fixes. There are also two new import/export functions.... one to import openlp.org songs, and one to export openlp.org songs. Of course you can download openlp.org from the Download page. Bug reports in the usual place.

Here are some of the bugfixes we made:

  • Importing and exporting of songs database.
  • Corrected various issues in theme management, including previews and vertical align.
  • Ability to hide the display screen completely, enabling other applications to display on the second screen.
  • If you edit a song, the song remains selected, and the list doesn't scroll out of view (partially fixed).
  • Added an option to select whether or not you want to be prompted every time you load openlp.org and the screen is blanked.
  • Bible formats changed and Bible CSV Importer Wizard improved.
  • Show/hide options for the media manager, order of service, and theme manager.
  • Various other song, Bible, etc. display fixes.

One last bug...

Well, according to our bug list, we have one last bug to fix. And in the traditional style of bugs, it's proving to be the most elusive. Derek and I are both working on it, so we're hoping to have it solved pretty soon.

One thing to take note of is that the XML format for the themes has changed slightly. Fortunately this is not a big problem, and will cause at most a minor inconvenience. The simple way to "upgrade" your themes from the older to the newer format is to edit them and save them with their original settings.

These last few changes will be the last ones for openlp.org 1.0. After RC6 we will clean up any additional bugs in openlp.org, and then release the final version.

We're hoping to have RC out in the next week or so, and then 1.0 final by the end of January. It's a little later than Derek or I expected, but then again, we didn't expect our day-job workloads to be that much either...

Documentation Editor

I've had various offers in the past for help with the documentation, and I'm sad to say those have all fallen through. However, someone has contacted me, and he seems VERY keen to help out with the documentation.

One of the things I have been wanting to do is to extract the documentation from the site, and be able to work on it "offline" as it were. To this end, I extracted the documentation in XML format, and I'm writing a little editor that will be able to parse the XML and allow you to edit the pages of the documentation using a WYSIWYG HTML editor (currently it can do all of that, it just can't save).

So, if you're still interested in helping out with the documentation, you think you can spare an hour a week perhaps, then please contact me, and I'll give you stuff to do!

The all-new Theme Gallery has been launched!

I've just launched the new Theme Gallery, here on openlp.org. You can upload themes exported from openlp.org, and upload them to the site for others to download.

To upload a new theme, simply click on the "Theme" item of the "Create content" submenu, in your account menu.

The new theme gallery is in place of the Theme Gallery page in the menu on the left.

Help Wanted: Technical Support Consultant

I was just chatting this evening to our head of support, David, about how he was holding up on the support side of things, and he mentioned to me that he's not getting much time these days to attend to the support issues coming in. David is at college, studying up a storm, which doesn't lend itself to copious amounts of free time.

So, if you're interested, and you can spend about half an hour 3 times a week, just checking up on the support requests, I know David would appreciate the help. Please get in contact with him, his contact details are on the Contact Us page.

The all-new Bible CSV Importer

Well, I had to make some adjustments to the CSV Bible Importer because of the new format of the Bibles, and it was starting to get a little crowded, so I ended up creating a whole new wizard. This new wizard adds some new things, only found in the new format Bibles, such as a full version name, copyright information (required when you display the verses) and a permission field as well. More on that when RC6 is released.

In terms of the state of development, we've gotten about half way through our task list for RC6. Derek has been tied up at work, but he reckons that he should be getting more free time in the near future, and he hopes to spend some of that time on openlp.org. I've been getting time to work on openlp.org since we got back from honeymoon, but I'm wondering how long that will last. Hopefully long enough for us to get openlp.org 1.0 out the door.

Just a side note about contacting us, I've been getting a number of e-mails recently with feature requests, bug reports and support queries. I don't have the time to go through all of those and then still develop openlp.org. Please use the correct channels for all those items. The Contact Us page has all the details of who to contact for what.

Reworking the Bibles, part 2: Speeding things up.

Since I've been redoing the Bibles, I've been selecting ridiculously large ranges of verses to test out my other code, and I've been getting fed up with how long it took to fetch all the verses in order to display them.

Let me explain a bit of the process first. When you do a search for verses, it doesn't actually fetch the verses at that time. It just runs through the database and sees how many verses there are, and then shows that to you. Only when you use the "Preview," "Go Live!" or "Add to order of service" does openlp.org actually fetch the text of the verses.

So what would happen is that I would select about 8 chapters' worth of verses, which amounts to about 150 to 200 verses, and when I clicked on "Preview" it would take anything from 30 seconds to more than a minute to fetch those verses. Nope, that's not satisfactory for me, I decided. So this evening I sat down and decided to rewrite the code completely.

The rewritten code is definitely more complicated than the old code, but now instead of fetching each and every verse by itself, my code writes a bit of a crazy SQL query, which then fetches all the verses at once. A much more elegant solution, and MUCH faster. It now takes less than 5 seconds to fetch those 150 to 200 verses.

Unfortunately most of you will probably not notice much of a difference. I think most passages are only a few verses long... usually no longer than about 20 verses, so the performance gain will not be significant. However, it should be far faster now for the minority who like to read 300 verses in a go .

Reworking the Bibles

We've run into a couple of unforseen problems with the Bibles. Some translations use different names for some books. Some translations are not english, and so ALL their books have "different" names! So I'm rewriting how the Bibles work. We used to have an abbreviations file which we'd use when you're doing a Bible search using a book's abbreviation, and then the full search version of the Bibles page used to use that abbreviations file for it's lookup list.

So now we're making the Bibles self-contained. Each Bible file will contain it's own abbreviation table, and instead of doing a text lookup on the name of the book in the verses table, we'll get the id of the book from the abbreviation table (which has become a fully-fledged book table) and use that for the lookup.

So, for those interested, here are the create statements (SQLite) for the tables in the new format Bible files:

CREATE TABLE testament (
    id INTEGER PRIMARY KEY NOT NULL,
    name VARCHAR(30) NOT NULL
)

CREATE TABLE book (
   id INTEGER PRIMARY KEY NOT NULL,
   testament_id INTEGER NOT NULL DEFAULT 1,
   name VARCHAR(30) NOT NULL,
   abbreviation VARCHAR(5)
)

CREATE TABLE verse (
   id INTEGER PRIMARY KEY NOT NULL,
   book_id INTEGER NOT NULL DEFAULT 1,
   chapter INTEGER NOT NULL DEFAULT 1,
   verse INTEGER NOT NULL DEFAULT 1,
   text BLOB
)

What's great about this new format is that if you are Spanish, you can have all the names of the books in Spanish! So not only do you get openlp.org in Spanish (through the Language interface) but you can also have the Bible in Spanish.

Ok, let me get back to openlp.org...

openlp.org IRC channel

I have created an openlp.org channel on the freenode IRC servers. So fire up your IRC client (you can use ChatZilla with Firefox on any platform, or something like Konversation for Linux) and join me (who_da_fly) on irc.freenode.net/#openlp.org