Login to participate
Register   Lost ID/password?

Louis Kessler's Behold Blog

Living Up To Expectations - Sun, 21 Jun 2015

Today is Father’s Day. I spent a wonderful day with my family. What do I come home to, but three reviews on GenSoftReviews giving Behold terrible ratings.

The first two reviews point to the very long time it is taking me to develop Behold. Both say Behold is an excellent GEDCOM reader. But the expectation from the first two reviewers is that I’ll never get Behold to the Version 2 and the full-featured onscreen editor that I’ve been promising for 10 years.

The third review took this even further and lists 6 points. 1, 2 and 3 are about the amount of time my updates have taken me. 4 is concluding I’ll never get editing into Behold. 5. and the Biggest Con: is calling Behold extremely expensive, and 6 is saying I shouldn’t try to help influence the future of genealogy and should only concentrate on Behold. It was scathing.

Now I don’t want to make any excuses. Just because I have an important full-time job that requires additional hours from time to time, I have a wife and daughters and we do things together, I’ve got my household chores like everyone that makes me hate the fact that we have to eat and that grass grows in the summer, I had a mother who came down with cancer and gave us six rough months, a father who came down with dementia and gave me three intensive years in the nursing home, I have other relatives and friends we spend time with, after finishing my stint on the Board and as President I still do volunteer work for our regional Heritage Centre, I maintain my personal website, GenSoftReviews, and contribute to Genealogy and Family History Stack Exchange, which I helped start, I blog and maintain close contacts with other geneabloggers. I give talks on genealogy that require preparation and thought (and I’ve got three proposals I’m submitting to RootsTech 2016).

Just because I’m doing a few other things, I’m not going to give any excuses. I should be able to spend 4 or 5 hours every night and stay up to 2 a.m. to work solidly on Behold and nothing else … and then go to work the next morning, shouldn’t I?

Should I be single-minded? Should I work on Behold and nothing else? Every little change I propose in Behold’s Future Plans sounds easy doesn’t it? If life and programming were only that simple and problem free.

Contributing to BetterGEDCOM and FHISO and going to Gaenovium all add to my global perspective of the program that I think is needed. I don’t feel I can ignore the surroundings. I must absorb, adapt, and continue on towards seeing Behold to fruition.

In really contemplating what the posters are complaining about, there do appear to be a few things they think I’m doing wrong.

First, obviously according to the reviewers, I shouldn’t be so open with everybody. I shouldn’t talk to other developers, or people who are trying to change genealogy for the better. I shouldn’t think about their good ideas. I definitely shouldn’t try to help the genealogical community in any way.

Second, I shouldn’t give any of my customers any ideas at all about my future plans. I should be totally mum to mentioning where I am going, and definitely not state any dates I’m striving for. In fact, I should completely take my ToDo list down and keep it private just like every other vendor does.

And my pricing is obviously totally wrong. I should not charge a single lifetime price for my product, but should instead do what all the other vendors do and charge an initial price, and then a significant upgrade price for every insignificant upgrade and bug fix each year after that. $40 is way more than any genealogist is willing to spend on any product. After all, shouldn’t all genealogy software be free?

Sorry. I’ll just sit and take my lumps from those reviews. They certainly don’t do anything to motivate me. They only depress me and give me less incentive.

But I’ll continue on. I have been developing Behold a long time. I agree it is taking much longer than I ever expected it to, and I’m sorry if people feel deceived about the goals I have been setting for myself that I haven’t achieved. I’ve written many blog posts on my Behold Blog documenting my progress, lack of progress, and ongoing battles in programming and I’ve been open about everything. Do you know other genealogy developers who do this?

Now I’ll apologise again that Version 1.1 will unfortunately be another day later. I couldn’t work on it tonight because I didn’t expect to see those reviews and then need to spend the evening writing this blog post.


Second thought, and I realize this is really what the reviewers were asking for: Maybe after 1.1 is out, I should directly track towards Version 2.0 and just do what’s necessary to make that happen.

Complete Genealogy Data Transfer - Mon, 8 Jun 2015

Isn’t this what every genealogist wants?

I thought the problem was that when you export your data from one program, the second one doesn’t read it all in. The sources may not transfer properly. Some data may come in as notes rather than as the event information they should be. Some data may just be ignored completely. Forget about the formatting and don’t even think that you’ll ever get back those hundreds of hours you spent carefully filling out those source citation templates.

We’ve been complaining for years that GEDCOM doesn’t transfer all the data. I’ve said before that it’s 90% the programmers and only 10% due to GEDCOM, but the reason doesn’t really matter. What matters is that it doesn’t do it.

So what’s the solution?

I thought it was very clear.

When a new genealogy data communication standard is created, it must require all compliant programs to:

  1. Input the data using the standard,
  2. Output the data using the standard, and
  3. Pass all input data through to the output including what it may not use or may not process so that EVERYTHING that was input (that is unchanged by the user during the run) will be output.

That number 3 is the key. The *only* way to get complete data transfer is to transfer the data completely, isn’t it?

For a moment, let me first reassure you that I am really working hard on Behold whenever I’m at my computer. But when I’m away and don’t have access to my development tools, I catch up on my other sites, including all the stuff going on at FHISO. I am interested in seeing a new genealogy data transfer standard to allow for the complete data transfer which is GEDCOM’s biggest problem. I’d like to see the effort move forward. And every so often, I just have to put my two cents in when I read an important post on the FHISO forums.

A week ago the FHISO Technical Standing Committee Coordinator, Luther Tychonievich asked an excellent question. He was asking the best way in a new genealogy data standard for a program to handle a data structure that it does not support. He gave 3 options that lose some data, and a 4th option that the program must be able to input, edit, and re-export the file, keeping the data structure intact.

I immediately saw and replied that the requirement was similar to option 4, but the program need not be able to edit the data structure. It only need to input and re-export the file. In other words, the program must “pass-through” all the data that it doesn’t use.

Wow! What a reaction. There are a lot of intelligent people, excellent programmers and deep thinkers on the FHISO mail list, and a thread started with the subject “Pass Through Requirement??”. I am not sure what it was that wasn’t clear, but there was almost complete rejection of the necessity of data pass-through.

I think what I said is important enough that I’d like to repost it here and get some opinions from the general genealogical community.

What do you think. Am I right or am I wrong?

This is what I said:

Sorry people. You can disagree, but I’m sticking by my guns. Data not processed must pass-through.

Let me reiterate my example again:

Program A sends data to Program B. Program B doesn’t understand Concept 1 that program A uses, so throws away Concept 1 data.

Program B sends data it got to Program C. Program C doesn’t understand Concept 2 that both Program A and Program B uses, so throws away Concept 2 data.

Program A now gets its original data back from Program C. All its Concept 1 and Concept 2 data is missing.

In other words, data gets lost when one program will not pass-through data that it will not handle.

This is why I see a requirement of data pass-through as necessity.

The non-transferability of data through GEDCOM is the number one complaint of GEDCOM and is really the primary reason why FHISO needs a new standard.

FHISO must write the new standard so that different concepts that not all programs will support (e.g. the information/evidence layer, GPS, citation templates, capabilities for one-name or one-place researchers, evidence analysis, etc.), must be sufficiently independent of each other in the standard so that a program that does not handle a concept can simply pass the data through. It will take some thinking to do this properly, but it can be done.

But once you allow any data to be lost, all is lost.

If data loss is allowed, then using an extreme example, a programmer might decide not to handle sources at all. They’ll do stuff with just the conclusion data and export just the conclusion data with none of the sources that were originally attached to the input data.

Yes, this program is compliant. It follows the standard for defining the data. FHISO will have to endorse it as a compliant program if data loss is allowed.

If FHISO is just creating a data definition standard, that is fine.

But FHISO is creating much more than that. FHISO is creating a data COMMUNICATION standard. See that key word. The data must be communicated between programs. Data loss does not communicate the data and is unacceptable.

Don’t take an example of html being lost by a text processor. That’s quite different. Take an example of sending your data up to Ancestry, you editing it up on Ancestry, and then you downloading it and not getting everything back, be it notes, sources, pictures, or maybe certain tags or data items that you don’t notice until its too late. Imagine wanting to move from Ancestry to FamilySearch and then later from FamilySearch to MyHeritage.

Yes, I know that there are all sorts of tricky little examples that seem to make this difficult: e.g. person is edited with unhandled data. But these are all solvable once the core idea of data pass through is accepted and designed.


Do you care if all your data transfers, or don’t you?

Sometimes It Works … But Not Always - Sat, 6 Jun 2015

Didn’t quite make my self-imposed May 31 deadline. It was a busy week.

I also got caught up in the attempt to add one last improvement into this version. I just can’t help myself. Yes, I know it’s better to get the version out first and then add the improvements later. But as I came to a screenshot I was going to be including in the documentation, I felt a slight need to standardize and improve the data presentation..

So I thought about the structure I have assembled. If you take a look at the information for each event for a person being presented, I’ve set it up to look like this (with the indentation as shown):

      Event: Date Place
            Source, Analysis

An example of this is:


Here you have several event details: The wife’s name and age. A photo, and the source of the marriage information along with its assessed quality and data from the the record,  which could as well have included an analysis of the source record.

Good! Now for the Place Details section, why not flip around the Person and the Place, and include the same information, like this:

      Event: Date 
                  Source, Analysis                  

And an example would be:


I’m sure that One-Place studiers are especially going to love the presentation of the data this way. Everything is there, organized by place and then by date.

So I thought I’d do the same thing with the sources. Simply in a similar manner, flip the Source with the Person in the first structure and get something like this:

      Event: Date Place 
            Person, Analysis 

It seemed correct. And it contained everything like I hoped it would. But something just wasn’t quite right.

After I played with it for a while, I realized what the problem was.

In the first example ordered by person, all the event information was associated with the person. In the second example ordered by place, all the event information was associated with the place.

But in this case, ordered by Source, not all the information is associated with the source. That other-event-info (in this case the picture) is associated with the marriage event for the person, but it is not associated with the source. That additional information could include other notes or even other sources.

The picture would need its own source information if it is to be assigned to the source.

So I relented and realized that in the Source Details, I could only have this structure:

      Event: Date Place 

and it looks like this:


So the image I had of presenting complete event information under the Person, the Place, and under the Source, just didn’t quite pan out. But this is the best you can do.

At the end of this, I did change the Place Details to the expanded structure, so it was a worthwhile diversion. This was something I had in my future plans for version 1.5, so that’s now done.

Still finishing off the Version 1.1 documentation. Doing this has been a really good audit that everything’s working and the way I want it. But now I’m hoping this will have been the last diversion before releasing 1.1.