Login to participate
Register   Lost ID/password?

Louis Kessler's Behold Blog

Quick Update - Mon, 21 Sep 2015

Its been a while since my last post so I wanted to let you know I’m still here. I’ve been working quite hard to finish off Version 1.1.1 which will be much, much, much better than 1.1. Hopefully not more than a couple of weeks left (but I know I’ve said that before).

I’ve removed piles of code and what’s left will be just what’s needed. For me, it’ll be streamlined with cleaner code and more efficient. For you, the information will be easier to read and I’m including what you as a family researcher need to know, with information that most other programs don’t give you.

This includes half-family and step-family as well as an “obituary” list, with the names of both living and pre-deceased relatives that you can use to cross-check an obituary. For each living person, there will also be a current relatives list, so that when you contact one of them you’ll have a cheat-sheet of their family enabling you to ask about each of their relatives and not miss anyone.

Now you see some of my out of the box thinking. And let me reassure you that I’m not forgetting my main goal to get to version 2 and editing.

Back to work.

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.