Modern Software Experience

2022-07-27

GedStar Pro icon

flipping a magic bit keeps software working

free Android app

GedStar Pro is an Android app that, which despite several shortcomings, deserves to better known. Originally available for Palm OS, it later became available for Android.
There used to be two editions; GedStar Pro was the full edition, and GedStar (sans Pro) was the free edition. That free limited edition is no longer available, Now that GedStar Pro is free and that full edition is now the only download available. Sadly, development ceased more than six years ago, version 4.6.3 from April 2016 remains the latest release.

GedStar Pro is a genealogy database viewer.

genealogy database viewer

GedStar Pro is a genealogy database viewer. It allows me to carry a view-only version of my genealogy database on my Android phone. GedStar is not a GEDCOM viewer. GedStar Pro has its own database format. GedStar will import a GEDCOM file into its own database format. GedStar Pro shows it age by additionally directly importing from legacy applications Legacy Family Tree and The Master Genealogist (TMG).

Conversion from GEDCOM to GedStar format is done by a Windows program, after which you copy the GedStar database to your phone. With GedStar for Palm, you could rely on the Palm Sync software to take care of copying the database to your Palm, with GedStar for Android you have to copy the file manually.

Like more software created by enthusiast programmers, the quality of the GedStar software is uneven, with a remarkable large contrast between the stuff works well and the stuff that works poorly.

Its key feature is that you can browse your database interactively, with the app responding snappily, even if you have a particulary large database.

snappy app

The one thing that works well is the GedStar app itself. Its key feature is that you can browse your database interactively, with the app responding snappily, even if you have a particulary large database.

GedStar Pro has no real competition. There are several GEDCOM viewers for Android, but their fan value is too small; they cannot large database. Families is a genealogy database viewer works Legacy Family Tree, but Legacy Family Tree has serious size limitations; it cannot import large databases. In fact, because Legacy is historic pre-Unicode software, it cannot even import small databases, not really.

Several online services provide apps to access to your online tree, but that demands a live internet connection, that isn't your genealogy database in your pocket. There are some third-party apps for accessing popular online services as well, but these do of course suffer exactly the same limitations.

Some genealogy software suites offer both a Windows desktop application and an Android app using the same database format, yet fail to entice. Heredis has an Android app, but their handling of place names remains so confused that the Windows application still cannot import a GEDCOM file and then export it again without completely messing up your place names. The introduction of RootsMagic for Android back in 2014 seemed promising, as RootsMagic for Windows handles large databases with ease, but their Android app is incredibly sluggish. Thus, the one thing RootsMagic for Android succeeds at is highlighting just how special GedStar Pro is. Even on my current phone, with a fast processor and plenty of memory, RootsMagic for Android remains so sluggish, that you should only try to use it you're okay with frustrating yourself so much that may smash your phone against the wall. In fact, my phone warns my that the app for an older version of Android, and there is no newer version; RootsMagic the company has abandoned the RootsMagic for Android app.

issues

The GedStar viewer is not without issues. One annoying issue is that the app has some views that it will only show on large tablets. The website tells me that these views are available on tablets of ten inch or more, and I do believe that the programmer did indeed make the mistake of limiting that view to devices of a particular physical size instead of resolution. Thee GedStar app sure won't show those views on my phone, despite my phone having a QHD+ display of 1440 x 3120 pixels, which is signficantly better than the full HD screens of most of today's laptops.

The biggest issue that could easily be fixed if the developer only took some moments to look at it, is how astonishingly slow import is for large databases.

astonishingly slow import

The biggest issue that could easily be fixed if the developer only took some moments to look at it, is how astonishingly slow import is for large databases. That is a real issue for me, as some two decades of Leiden one place research has exploded the size of my database.

I guesstimate, based on aborted attempts, that the import (conversion to GedStar format) of my current database would take two or three days when run on my desktop PC. The GedStar database conversion is so sensationally inefficient, it could probably win a prize for most unfit algorithm ever. The CPU usage and harddisk activity are extravagant, it basically claims both for itself while accomplishing almost nothing. I can only guess that it is using insert sort or something equally inefficient, and simple-mindedly saving every second byte to hard disk in a synchronous manner. Running the same conversion on a laptop where it saves to a solid-state disk instead of a hard disk, takes about nine hours.

Conversion run time isn't a big issue when you can run it on a separate machine, but not wanting to bother with the excessive run time does tend to limit how often I update the GedStar database. If the import time were reasonable, I could update every day. As it is, I dislike having to deal with its bothersome run-time so much, that my actual update frequency is closer to once a month.

out of memory

GedStar Pro out of memory

A few days ago the Windows import utility displayed a message box I did not expect. After about eight hours of conversion, the GedStar converter ran out of memory. The conversion failed. As the GedStar converter can no handle my database, I can no longer enjoy an updated GedStar database.

slow SQLite

By the way, that out of memory error is an SQLite error. SQLite is known as a high-performance database, that has become quite popular. RootsMagic has used SQLite since version 1.0. MyHeritage Family Tree Builder uses SQLite since version 8.0. Family Tree Maker uses SQLite. The list goes on, and that's because of SQLite's excellent performance.
Yet somehow, GedStar Pro manages to be embarrassingly slow while using SQLite...

memory

That the laptop has 32 GB of RAM available hardly matters, as GedStar isn't a 64-bit application. GedStar is a 32-bit Windows application. Running on 64-bit Windows, this 2-bit app gets a 2 GB address space to work with.
Somehow, GedStar has managed to try and gobble up all of that. This Windows program is not displaying any data, it is merely converting one database format (GEDCOM) to another (GedStar). When done right, such conversions require very little memory. Somehow, the GedStar convertor seems to require at least 8 times the size of the GEDCOM file. That is some remarkably wasteful coding.

the magic bit

Readers may remember, from the 2007 article Ahnenblatt is Large Address Aware that 32-bit windows applications have a magic bit that changes how the application works when run on a 64-bit system. When that magic bit is set, the application gets 3GB instead of 2GB to work with. The article further explains that it very is easy for developer to do this, and does not effect how it runs on 32-bit systems.

CFF Explorer: App can handle more than 2GB

So, while the real solution is to replace the memory-wasting conversion code with something more reasonable, setting that bit is a temporary fix that allows continuing using the current code, despite it needing more than 2GB. However, the orginal programmer abandoned this product, and is no longer around to make that modification. That leaves one approach: modify the application to set that bit.

It is not necessary to muck about with a simple hex editor until you manage the fit the right bit. There are several tools that make it easy to flip the magic bit, most notably the EDITBIN command line tool that comes with Visual Studio. There are various third party tools for messing with Windows executable files as well. One such tool is NTCore's CFF Explorer.

The illustration shows that, using CFF Explorer, setting the magic bit is as easy as checking a box.
Once that has been done, the Windows app completes the database conversion.

conclusion

The GedStar Pro app isn't perfect, but is the only Android app that allows you to carry a large genealogy database in your pocket. The Windows application for importing your database doesn't match the quality of the Android app; it is astonishingly slow and excessively memory hungry as well. The GEDCOM-to-GedStar database conversion runs significantly less slow when run on system with an SSD instead of a hard disk.

Setting a magic bit provides the Windows app with more memory, but this is a temporary fix. The real fix is to replace the inefficient code. Another real solution would be for someone to develop an alternative to GedStar.

links