Login to participate
  
Register   Lost ID/password?

Louis Kessler’s Behold Blog

Log Rolling - Wed, 27 Jan 2010

There was another feature I used to have in Behold that just has been knawing at me. It actually is important that it be put back in now while the time is ripe.

Basically, when Behold reads a GEDCOM, it may find problems with the GEDCOM file. I’ve now added the listing of the problems to the file information in the Everything Report. But what if Behold is interrupted or does not get to that point? How about more detailed information that isn’t appropriate for the file information (such as line references from the GEDCOM), or maybe just some warnings about the GEDCOM that you really don’t care about normally, but may want all the detail for.

Well this should all go into a log file that is created when a file is read. The fact that there is a log file at all will add to your security to know whether Behold is or isn’t detecting something.

I had two different interfaces for a log file. At first (way back in 2005) there was one I really liked. The top part had the GEDCOM files with a tabbed interface. The bottom was the log file. It was meant so that you click on an log message, and the line could be brought up in the pane above. But back then, loading all those GEDCOMs into TRichView windows was expensive in terms of performance. I didn’t have the Virtual TRichView back then - so I took it out and I put in a simple writing of the log to a file. That happened in version 0.98.8 alpha, 28 Jan 2007.

I then decided for version 0.98.9.5 alpha, 19 Nov 2007 to not print the log file altogether. This is the decision I am now reversing.

Putting it back in really isn’t too hard. All I have to do is compare the differences between version 0.98.9.5 and 0.98.9.6 to see what the log file code was. I started that two days ago, and it took about 15 minutes to get the code in again.

The harder part was my “AppendToLogFile” routine. It was written with Delphi 4 before Unicode and didn’t work with Unicode. I puzzled how to get that working and searched Google, but after two hours I wasn’t there. So I went back to my friends at StackOverflow and asked “How can I get this File Writing code to work with Unicode (Delphi)“. With that help, it’s now just two days later and the core code is working again.

There is no standard way to write a log file, so it’s up to me. Most genealogy programs do not do a good job with theirs and many don’t even produce one. Behold is already fairly decent at determining problems with GEDCOM files, so its log file should turn out to be quite useful when it’s needed.

Genlighten Notices Me - Mon, 25 Jan 2010

I’ve written this blog on a regular basis for many years. I’m not really sure who the audience is, since we’re talking not about just genealogy, or genealogy software, but programming and all that I’m involved in regarding Behold.

So it’s really nice when someone else can write up what my blog is about even better than I can.

Dean Richardson at Genlighten did just that. In his January 22nd Follow Friday post, Dean writes about “Behold Genealogy and Louis Kessler’s Behold Blog”.

Dean writes:

I have a lot of admiration for Louis’ openness, persistence, and pride in his craft. You won’t find a lot of details of Louis’ genealogy research in his postings, but you can tell he’s channeling his love and respect for his ancestors into his software development efforts.

Well that makes me feel all warm and fuzzy inside. Thanks very much, Dean.

To read Dean’s entire post, pop over to the Genlighten Blog.

Version 0.99.6 beta Released - Sun, 24 Jan 2010

I decided it was important at this juncture to change the data structure to include the GEDCOM data exactly as it is in the file and to change the structure from lines-based to records-based. Previously I had taken some shortcuts and internally modified some of the GEDCOM lines to make processing easier later. I would concatenate the lines, convert the character set, change @xxxx@ link references to addresses and more. But that then gave some sort of GEDCOM monster that was no fun to work with.

Not doing that will make it much easier to input and store the data and then later export it back out to GEDCOM. It will make the internal data structure of Behold a truly GEDCOM record-based structure. For some reason, some genealogy programmers think this is good. Personally, I see advantages and disadvantages to it, but the bottom line is “it’s convenient”.

It took a while (hey: a while is now just “a week”!!) to make these changes. Over a year ago, I had tried to implement them, but I bit off a bit more than I could chew, and the program was too complex to rebuild using that data structure so I had to abandon those improvements.

This time, I started with a working version and kept it working as I made the changes one by one. This method worked much better, and the knowledge of where I was going as well as having a prototype of the code already available made this second attempt a success. There are a few small things that I haven’t yet converted over, but those I’ll get done for the next beta. Most people won’t notice them.

Because of this major change, I do expect some bugs. The tests I have run are working, but I expect the real world will find others. You’ve all been great at uncovering new problems for me to fix. Really, do send me them. It’s the only way I can ensure that Behold becomes as bug-free as possible.

And that last version 0.99.5 did have some nasty problems that some people uncovered. I believe this version has fixed almost all of them. So I highly recommend upgrading to 0.99.6.

For a complete list of the changes in this version, see the Behold History page.