Small glitch that may be of interest

32 views
Skip to first unread message

Brian G. Mason

unread,
Jul 2, 2024, 2:30:59 PM7/2/24
to GEDitCOM II Discussions
When I opened up GEDitCOM today and went to look for the person I was working on yesterday,  I could not find her in the list of individuals.  I found her grandfather and worked my way down the family tree and found her individual record that way.  The first screenshot shows the individual record in front of the listing of individuals where she is missing.

So I sorted the list by birth year, and found her listed.  I resorted by last name and she appeared as shown in the second screen shot.

So the solution was to force a re-sort.  In case this happens to someone else.

Brian.

Screenshot 2024-07-02 at 2.18.42 PM.png


Screenshot 2024-07-02 at 2.22.01 PM.png

John Nairn

unread,
Jul 2, 2024, 7:08:54 PM7/2/24
to geditcom-ii-discussions@googlegroups.com geditcom-ii-discussions@googlegroups.com
You are in the "large file" regime (and maybe I should update that).

When you open a file and the index window is not sure if the records are sorted, it sorts by the first column. When I started GEDitCOM II (about 20 years ago now), computers were slower and automatic sorting not requested by the user could cause unexpected loss of response while it finished. To solve that, the window DOES NOT automatically sort for any record type with more than 10000 records, which for you is individuals where you have 16983. Normally records are saved as sorted the last time you opened the file and should be OK when reopened and still be sorted. But, as you found out, manually inducing a sort by any column will fix it.

Things I will do for next version are:

1. Revisit the 10000 limit for automatic sorting. Computers are a lot faster now and that number can probably be increased without causing long delays (I tested in files with a million individuals and things got very slow). I did write the sorting code using old-school computer science of sorting to make it as fast as possible (which means I could not use some Apple built-in methods that did not seem to scale very well). It is also possible better methods have appeared and should check them out. My current sorting speed (and I think the limit of all sorting methods) should be on order N log N, but that means sorting 1 million records is 150 slower than 10000, which is why I wanted to place a limit on automatic sorting.

2. A file saves its sort order. I would have thought if you saved while names were sorted, they would be known as sorted when reopened. I will check that coding too.

In the mean time, click a column header to resort if things do not look correct. In the worst case, it should only be needed once every time you open the file. If #2 is above is working as I intended, it should only be needed once, ever.

Regards,
John

On Jul 2, 2024, at 11:30 AM, Brian G. Mason <wyom...@gmail.com> wrote:

When I opened up GEDitCOM today and went to look for the person I was working on yesterday,  I could not find her in the list of individuals.  I found her grandfather and worked my way down the family tree and found her individual record that way.  The first screenshot shows the individual record in front of the listing of individuals where she is missing.

So I sorted the list by birth year, and found her listed.  I resorted by last name and she appeared as shown in the second screen shot.

So the solution was to force a re-sort.  In case this happens to someone else.

Brian.

<Screenshot 2024-07-02 at 2.18.42 PM.png>


<Screenshot 2024-07-02 at 2.22.01 PM.png>

--
You received this message because you are subscribed to the Google Groups "GEDitCOM II Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to geditcom-ii-discu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/geditcom-ii-discussions/577897a6-92fa-44df-bb43-212aa1b93024n%40googlegroups.com.
<Screenshot 2024-07-02 at 2.18.42 PM.png><Screenshot 2024-07-02 at 2.22.01 PM.png>

Brian G. Mason

unread,
Jul 3, 2024, 2:16:14 PM7/3/24
to GEDitCOM II Discussions
John,

Thinking about it more carefully, this only happened this one time.  I’ve been over 10,000 individuals for quite some time, and I don’t think I’ve noticed a problem before the other day.  So I don’t consider this to be urgent by any means.  Thank you for your hard work and for your patience with your users.

Brian.

John Nairn, Developer

unread,
Jul 3, 2024, 11:36:27 PM7/3/24
to GEDitCOM II Discussions
I had a look at sorting. I created GEDCOM files where each individual is a 3 or more letter word from an English dictionary (which is on everyone's Mac at /usr/share/dict/words). I varied the number of individuals from 5000 to 235,764 (or number of words with 3 or more letters) and then timed the sorting. The attached plot are the results and it goes from 0.061675 sec for 5000 individuals to 2.903716 sec for 235,764 individuals (symbols in the plot). The line is n*ln(n) scaling (normalized to results for 235,764 individuals). Some findings are:

1. Computers have gotten better since I first tested this. I will increase automatic sorting limit to 25,000 where sorting takes about 1/4 second. I think that is quick enough that users won't think GEDitCOM II has stopped responding.

2. It is possible a new sorting method might be faster, but at the cost of code complexity. Sorting in parallel might be an interesting option. Or maybe switch to parallel for large files only. But sorting an entire English dictionary in 2.903716 sec isn't that bad.

This timing was on Mac laptop with M1 Max and 64 GB memory.

Sorting.jpg

John

P.S.: This plot was made with PublishPlot app I have on the Mac app store.

Brian G. Mason

unread,
Jul 7, 2024, 1:01:28 PM7/7/24
to GEDitCOM II Discussions
This is amazing!  Computers have certainly gotten faster.  Time for processes to finish are much less of an issue than they were in what seems like just a short time ago.
Reply all
Reply to author
Forward
0 new messages