Login to participate
Register   Lost ID/password?

Louis Kessler’s Behold Blog

It’s About Time for Version 1.1 - Mon, 5 May 2014

This is starting to get ridiculous. I’ve spent the close to 2 years trying to design and implement all the complexities of 3 new features that I think will be really important to help you with your genealogical research, which I’ve called: Ages Everywhere, Life Events, and Who’s Alive at Events.

The work I was doing on these just seemed to mushroom. The “Ages Everywhere” started veering off into Consistency Checking. I had to deal with handling Multiple Events. The Life Events led me to Who’s Alive at Events. This required estimating ages so that those people without birth dates could be stated to be “likely” or “possibly” living at an event. Then it was a matter of ordering and storing them and … it got messy, I must say. There were too many ideas at once, and the data structure developed for one idea got messed up by the next idea.

Trying to work on too much at once just doesn’t work. It leaves you in a state of everything being somewhat unfinished. And putting Behold down for a bit of time (for RootsTech, family vacation, writing a magazine article, new computer, my father passing away) was always difficult to pick up again where I left off. It’s always best to try to finish a little piece and then add to it, always leaving everything in a working state of completion.

So I’m going to try to change this. I’ve made a number of enhancements to my working version of Behold over the past year that have been marked as “done” on the Future Plans page. I’m going to release the first set of changes which will include the merging of family events into both spouses to make the output of each individual resemble a timeline, and include the individuals’ age at events. I’ll release this as soon as possible as version 1.1. This will be a significant change

Then I’ll move ahead and work on one major thing at a time, releasing the Life Events as version 1.1.1, and follow that the with Who’s Alive at Events as version 1.1.2. Then Consistency Checking, Saving GEDCOMs and the Behold Database. The plan is in place. I just have to make sure I continue to move forward and make progress.

But before my next release, I’ll have to update my code signing certificate for Behold. Doing the update is a PITA (pain in the rear-end), but the certificate has expired so I have to. They give me a whole 3 days notice, which is nowhere near enough time. In addition to the onerous procedure I went through last time, this time I have to also get a licenced notary or attorney to confirm that the documents I am sending them actually are for me. What are they going to add next time. Will I have to be fingerprinted and strip searched? I get a 3 year certificate each time, but I’d get a longer one if they had it, just to avoid the hassle this involves. Now I understand why some software developers don’t bother with a certificate, even though it adds safety for the user.

Now, back to work.

Almost 800 Genealogy Programs. You’ve Tried How Many? - Sun, 27 Apr 2014

How many have you even heard of?

Over at GenSoftReviews, where I maintain a website allowing users to rate and review their genealogy software, I’ve compiled a comprehensive list of the genealogy programs that is approaching 800.

In the last month alone, I’ve found, or people have told me about 14 16 new programs that do all sorts of things, including: Branches for iPad, CatroGenea, GEDexplorer, Soundex Calculator, DKIndex, Origins, Leaves, Last-Memories.com, Jworld, JewAge, DP Genealogy Records, G-List, Genway, and Khandan Info, Rodovoderevo and Wallcharts. You can’t tell what all of them do just from their name. You have to at least go their website, and then maybe try them out.

Of the nearly 800 programs, almost half run on Windows, 75 run on Macs, 70 on Unix, over a hundred on your SmartPhone or Pad, and there are almost 300 online programs.

Almost 300 are full featured programs. These are the ones you can use to record your genealogy data, print reports, import and export your data. The rest are utility programs that generally read your data and do something useful with it, or auxiliary programs that are useful to genealogists, but do not interface directly with your data.

Okay, you’re probably happy with the program you use now … or maybe you’re not. But have you tried many others? How many? One, two, a half dozen?

Do you use any online programs? There are almost 300 of them.

Are you worried about cost? Over half the programs are free to use, and many of the others have free trials.

I love finding out about new programs. They introduce new concepts, and different ideas about how to do the same thing. There’s no one best way to do genealogy. Everyone is different. Even if you’ve been using the same program for 15 years, maybe there is one out there that will be a better fit for you.

I’m saddened that the average genealogist probably has not even heard of more than a couple of dozen different programs. There are so many genealogy software vendors out there that are trying to add something new and useful to your toolkit. They all deserve at least a look.

Benchmarks - Tue, 25 Mar 2014

One thing I’ve tried to do with Behold is optimize its speed. I want it to load your GEDCOM and display the Everything Report for you as fast as possible. I’ve worked hard to do this and have made it a program that is notable for its loading speed.

Every version prior to release, I check both the speed and memory use of that version of Behold to ensure any changes I’ve made have not degraded it significantly. Sometimes, when I add something major to Behold, it may slow down and use more memory. If I think that’s significant, I’ll do some program profiling with a program called AQTime that shows me which lines in Behold are taking a lot of time, and I’ll do some work to optimize and speed it up a bit.

I have several test files I use for benchmarking the speed and memory. One is a large GEDCOM from a friend of mine. Let’s call it the Lynn file. This file has 1.4 million lines, is 24 MB in size, includes 94,000 people and 33,000 families.

The first benchmarks I had for the Lynn file were for version 0.99.2 of Behold, when it took 11 seconds to load and used 265 MB of RAM.  Since then, I’ve added functionality to Behold and the time has reduced for version  to 8 seconds and memory to 164 MB.

The ratio of the RAM used to the GEDCOM file size for the Lynn file is 164 MB to 24 MB which is a 7 to 1 ratio. I know that’s way too much. One of the reasons is that Behold loads everything into memory. Behold does not yet use a disk-based database. I’ll be adding that in Version 1.5 in preparation for editing, since Behold will need its own native format to save your data. Once I am doing that, I’ll optimize Behold’s memory use and it should then not use more than a 1 to 1 ratio of its GEDCOM file size.

The second file I use is a huge one known as Good-Engle-Hanks (lets call it GEH). The copy of it that I have is a monster that is 333 MB in size, with 742,000 individuals and 267,000 families. This file challenged Behold. Version 1.0.1 loaded it and displayed the Everything Report after 94 seconds. But it used 1618 MB of RAM. Now that value of 1618 MB is near the limit of what any 32-bit program is capable of in a Windows Operating System. In Version 1.0.2, I added some new features to Behold that added to the memory use, and since then GEH causes Behold to run out of memory just before completing. That’s disappointing. But I do expect that when I get to version 1.5 and reduce the RAM to filesize ratio, Behold should once again handle GEH.

If youre interested to see how your genealogy program handles a huge file, I’m afraid that when I just looked to give you the link, I saw that Mr. Beeston took down his Good-Engle-Hanks GEDCOM from his Gedcoms page. His other files aren’t nearly as large. So might I instead suggest an even larger one that I sometimes test with which happens to be a very interesting file. It is the 2010 Catalog of Life Database converted to GEDCOM and contains 1,257,735 species that work out to 2.1 million individuals. The GEDCOM file is over 650 MB in size. You can get it at Paul Pruitt’s Famous Family Trees site. If you’re curious what program created this huge file, well it was Personal Ancestral File (PAF).

The last file I test with is actually a set of files created by Tamura Jones’ GedFan utility. This utility generates a number of GEDCOM files where each one has double the number of individuals that the previous had. By the time you’re up to the fan value 15, you’ve got over 32,000 individuals in it. The GEDCOM really has nothing but individuals who are connected to their mothers and fathers with very little data. But it is an excellent test of program capability. A fan value 16 file is twice as large as a fan value 15 file. If your program can handle one fan value, then try one higher. Eventually it must fail.

Behold currently can only handle fan value 19, which is about a half a million individuals. It is again the memory limit which Behold runs into. I expect that when I reduce the memory requirements in version 1.5, I’ll be able to increase Behold’s fan value somewhat. And then when I build the 64-bit version of Behold, that should increase Behold’s fan value even more.

The times I gave you above, e.g. 6 seconds for Behold to load my Lynn file, are very much dependent on the computer that Behold is run on. A slower computer will take more time. A faster computer will take less time. So I was wondering how much faster my new development computer was than my old one.

My old machine had an AMD Phenom 9650 Quad-Core with 4 GB RAM running 64-bit Vista. It was five years old. My new machine has an Intel i7-4770 Quad-Core with 12 GB RAM running 64-bit Windows 8.1. Running Behold with my Lynn file, it now took only 2.5 seconds. That was over 3 times faster than my old computer. Similarly, the fan 19 file also was over 3 times faster, reducing from 38 seconds down to 11.5 seconds. The memory used on both machines was, of course, the same, since memory is handled almost the same way between Vista and Windows 8.1. Now I have new benchmarks to compare the next versions of Behold to.

I’m almost through converting over to my new machine. It generally takes me about 2 weeks to get my web development and programming environment all set up again. I’m looking forward to the boost in productivity the new computer will offer me. That should help me achieve my resolutions to get the next few versions of Behold out this year.