Login to participate
Register   Lost ID/password?

Louis Kessler's Behold Blog

Re-evaluating Everything - Sun, 9 Aug 2015

I’ve been bothered with the worry that I may have taken Behold in the wrong direction.

My original goals I believe were solid. Display the user’s information clearly and concisely in one report so that everything’s available and nicely cross referenced in the indexes. Behold was doing this task well and people liked it. The objective was to add editing to this and to allow source-based data entry and virtual merging.

imageBut then I got side-tracked from that vision. I spent a couple of years on a different path to make the report “better”. I expected it would be useful to incorporate all the person’s important family events into their own timeline. Their parent’s deaths, children’s births and their marriage info was incorporated into their own information section with full details. Other events for siblings, parents, partners and children were optionally added as Life events (shown in green) and this option was ON by default. Then I threw in ages and how long married the person was at each event. On top of this, I incorporated some consistency checking mostly based on date comparisons and thought that including the message in red right there where the data was would result in the user best being able to see and correct it.

What did I get? I think I overwhelmed the report with everything but the kitchen sink. It was no longer just the information the person entered. It now included calculated information (like ages and relationships and messages) that interfere with the most important mission of seeing the data entered about the person.

The last few weeks, a few users contacted me and gave me a reality check. Basically, they liked the old pre-version 1.1 report better. They were able to work with it better and could tell what data they had entered and then see what they were missing.

I was myself wondering how I was going to handle this extra info in my database. It would take extra work for me to do it. I was wondering how I’d add editing to this extra info. It would take extra work for me to do it. I was wondering how I’d add source-based data entry and virtual merging to this extra info. It would take extra work to do it.

Not only that, but all this complicates my program, making it harder for me to make changes or find bugs. And it takes longer for the program to run, and produces much larger output.

It now seems so simple, actually. People have other genealogy software to produce fancy charts, make timelines of an individual’s life, do consistency checks, and do detailed analysis of their evidence.

What they don’t have is a simple program to show them all the data they entered, allow them to quickly and easily add to or update that data (in a source-based manner if they prefer) and virtually merge it with data they receive from others or from online family trees.

I’ve been working on the database for Behold so there will be a place to save your edits in version 2. This is the opportunity to take a step back and remove the extra unnecessary goop that I’ve added. It would actually take less time to remove those extras and build the database than it would to leave them in and incorporate them into the database.

I’m thinking of taking the goop out for the next version when I add the database.

I have heard the opinions of several users of Behold that have emailed me and commented on some of my other blog posts about Version 1.1. I would very much like to hear what the rest of you users (and you lurkers) of Behold have to say about this.

Which do you like better? The report in or 1.1?

Version is available here to anyone who wants it.

Update: Aug 14. Deciding how to order the information is interesting. It can be:
- age-date-place-event
- date-age-place-event
- event-date-age-place.  

There’s 4 x 3 x 2 = 24 possible orderings. No. I’m not going to let the user decide. I’m going to try to make it easier for you and pick the ordering that is likely the best for research purposes most of the time. I’m leaning towards:
- date-age-event-place

An example would be:

Sun 18 Nov 1951, age 61, married 26y (Mildred Nellie). Marriage of Son: Walter Francis McCARTHY MCC-12, age 20 and Adelaide Helena (LANNAN) McCARTHY LOCKNEY MCC-12, age 18, in South Boston, Suffolk, MA.

It is in one line now. There will not be multiple lines. The subject’s information will be first, so it will be more obvious that the age and marriage information is about the subject and not the relative.

I’m also flipping the person-event (Son Marriage) around to be “Marriage of Son” so that the son information can immediately follow “Son”. I think the new presentation above will be much better than the current display below.

Son Marriage: Sun 18 Nov 1951, age 61, married 26y (Mildred Nellie) in South Boston, Suffolk, MA
   Son: Walter Francis McCARTHY MCC-12, age 20 and Adelaide Helena (LANNAN) McCARTHY LOCKNEY MCC-12, age 18

Update: Aug 16. Darn! I still think the event must be given first. I just don’t like the date first. It hides what the event is really about. To avoid confusion between the subject’s age and the relatives ages, it might also be best to put the place before the date, which lists the date and ages last. I think I like this because the place is actually very important and moves up in the line and is easy to find because its a hyperlink. The dates and ages at all events should be easy to find at the end of each event line.

So now I’m going to have:

Marriage of Son: Walter Francis McCARTHY MCC-12, age 20 and Adelaide Helena (LANNAN) McCARTHY LOCKNEY MCC-12, age 18, in South Boston, Suffolk, MA, Sun 18 Nov 1951, age 61, married 26y (Mildred Nellie)..

There’s 240 ways to skin this cat. I’m trying to find the best way.

Oh, and while I’m looking again at that example, I’ve decided it best to cut down the family events that are listed to: Births of Siblings and Children, Marriages of Children, later marriages of Parents, and Death of Parents, Spouses and Children, which have the most effect on a person’s life. The “survived by” and maybe also a “pre-deceased by” section upon a person’s death will give a general indication as to what other events had transpired in the meantime.

Doing so also eliminates the need to number each type of relative. I had numbered them to help to see which person was involved in which events. But now, cutting down the number of life events shown, each person will not be shown more than once or twice and everything is simplified greatly. I also didn’t like the way I numbered sister 3 and brother 2 and child 4 when there were 9 siblings. Child 1 to 9 might have been better, but showing sister or brother is more descriptive. Again a no-win situation. So I’m really happy to take this out because counting the relatives in the program code was a real PITA requiring an extra pass to determine if there was only one, in which case the number wasn’t shown.

I’m now working very hard to get this done, and will release a version 1.1.1 as soon as I can with these improvements.

Raising the House - Wed, 5 Aug 2015

Installing a database into Behold is a major endeavour that I am doing carefully. It is, in many ways, not unlike the work that has been going on at a house I have been passing by for the past couple of months.

This is a beautiful home, about 100 years old, that supposedly was used for a movie set many years ago. But it had major foundation problems. The owner decided to replace the foundation.


If you look at the picture, you’ll see there are four huge steel beams holding the house up. I wish I knew how they got those steel beams there, but this was the first view of the house I had seen after the work started. It took me by complete surprise when I first saw it, and I just stood there for a while quite incredulous at the sight of it. If you look very closely in the black area under the house below the right side of the left window, very faintly you’ll see a white plastic chair. That chair is in the backyard behind the house.

With Behold, I’m removing its foundation: the internal data structures that hold all its genealogy data in memory while Behold is running, and I’m replacing that with a database on your hard drive that will hold the data. I’m ripping out the basement and replacing it. While I’m doing so, I’ve got to keep the rest of the house (Behold) safe and together, so that it can be laid back down on its new foundation.


It’s got to fit just right and I can’t break anything as I do this. There’s no room for any attempts to add something new, or make something better to the rest of the house. It’s just a matter of getting this most important job done and getting the foundation right.

Basically, I am taking each data structure: the INDI record, the FAM record, parent-children connections, places, sources, all the references between them, and one by one I’m replacing that part of the foundation. I hope that in a day or two, I’ll have enough done to replace a few parts of Behold’s old foundation with the new ones. I’ll see Behold work in a hybrid form, with some of its data now in the new database and the rest still from the old data structures.

I’ll then slowly convert the remaining data structures over bit by bit, keeping Behold running and working the whole time.


Once it appears that the entire new foundation is ready and is made to fit perfectly, I’ll lower the house onto it. Then I’ll carefully remove the four steel beams, um…, old data structures that are no longer needed, ensuring that everything continues to work as I dismantle the old support.

Quite a feat! But this should be a foundation that will serve the house at least another hundred years.

And it will provide the base that Behold will need to save your data in Version 2.

Why are there so many genealogy programs? - Wed, 29 Jul 2015

This post is total plagiarism of an article just written today by Matt Sherman on the StackExchange Blog titled “Why are there so many programming languages?” 

The article struck me as also being totally true when applied to genealogy software, so I am reproducing it here and just changing a few words. Here it is:

I was asked this question twice in the past week, by colleagues who work with our clients. It sounds like a dumb question, but it’s not.

The short answer is that we don’t need so many genealogy programs, but we want them. Let’s explore this further.

Aren’t they all the same?

In a sense, yes. You can record your family information using Family Tree Maker, Legacy Family Tree, RootsMagic, Brother’s Keeper, Reunion or Family Historian. You can use Family Tree Builder or Gramps or Ancestral Quest or Heredis. Or WikiTree or Clooz or Evidentia.

Underlying this fact is that all of these genealogy programs serve the same purpose: to help you record, keep track of, and make sense of your data. In highfalutin genealogy terms, they all help you with yourGenealogy Workflow”.

Genealogy Workflow, by Joe Martel, Ron Tanner, Grant Skousen

At their most foundational level, these programs are all the same. But on the surface – where humans interact with them – they vary a lot. This is where other concerns come into play.

Different tools for different jobs

Genealogy programs are tools, and we choose different tools for different jobs. A tractor trailer and a bicycle and a Tesla are all vehicles – they have wheels and steering and will get you from point A to point B – but obviously we use them for different things.

Genealogy programs are similar. RootsMagic and Reunion are great for recording your facts; Family Tree Builder and WikiTree are often used to work with online family trees; Clooz and Evidentia are the tools of choice for analyzing your reasoning.

Genealogy programs often make trade-offs in terms of convenience, safety, and speed – much like vehicles. The trade-off is dictated by the job at hand.

Genealogists have tastes

Beyond mere utility, genealogists choose tools based on personal tastes.

A genealogy program is a tool for humans to express ideas to computers. While we genealogists have many things in common, there is natural variety in the way our minds work.

Because we have many choices of good genealogy programs, we can select one that “works the way I think”. Some genealogists like WikiTree’s flexibility, while others prefer RootsMagic’s strictness. Where some programs feel complex, others look like they were made for you.

People first

Beyond utility, and beyond taste, businesses run on people. Often, you will choose a genealogy program based on what you, or the people around you, know.

Many genealogists chose Family Tree Maker mostly because that’s what they found on store shelves. In turn, it’s what their friends and colleagues then used. Which made learning how to use the software easier, and allowed Family Tree Maker to get to dominate the market.

(Unfortunately, Family Tree Maker also happens to have terrible technical characteristics.)

Technologies are supported by “ecosystems” – communities and organizations that provide the tools and assistance that every genealogist needs. A good ecosystem – Family Historian has a great one, for example – can make the individual genealogist more successful.

Variety is strength

In summary, we have a variety of genealogy programs because there is a variety of jobs to be done and a variety of people who do those jobs. This diversity makes interesting programs – and interesting companies, and interesting research – possible.

By Matt Sherman Louis Kessler, Engineering Manager Genealogist Developer

Tagged in engineering software

For a list of over 900 different genealogy programs that you can rate and review and see other people’s ratings and reviews, visit GenSoftReviews.