Jump to content


Photo

Adventures in Creating a Shareable CD


  • Please log in to reply
8 replies to this topic

#1 c24m48

c24m48

    Advanced Member

  • Members
  • PipPipPip
  • 2613 posts

Posted 15 January 2012 - 09:58 AM

I've played around quite a bit with making shareable CD's, but I just now did it for the first time for real. Namely, for the first time I just made a shareable CD time that I actually intend to give to one of my cousins. I ran into a number of little issues, several of which have already been reported by other users.

  • I can't imagine making a shareable CD of my entire database. Therefore, any time I'm going to make a shareable CD I'm almost certainly going to do a GEDCOM export/import or a drag and drop to create a smaller database, and I will make the shareable CD from the smaller database.
  • Because I had to use GEDCOM export/import or drag and drop to create a smaller database, I put the effort into solving the problem I complain about so much where GEDCOM export/import or drag and drop loses carriage returns at the end of my notes. However, the solution required the use of SQLite. I will outline that solution in a separate message. I still look forward to a solution to this problem that's native to RM5. I know that I'm not the only user who controls white space in reports with carriage returns at the end of notes, and I know I'm not the only user who makes a smaller database before creating a shareable CD.
  • Having made a smaller database, there are a lot of easy but very detailed actions that you need to take before creating the shareable CD.
    • You have to go to Lists -> Media Gallery to get thumbnails created. If you forget to do this then your shareable CD will not have thumbnails.
    • You have to decide what default options you want on the shareable CD for the home person, the sidebar, and the main view (Pedigree or Family) by establishing these defaults in your smaller database. If you forget to do this, you will not be able to change the defaults on the shareable CD itself. I find the home person especially problematic because I would like to make the person to whom I'm giving the shareable CD the home person. Also, if in the future I'm making 20 or 30 shareable CD's for a family reunion, then I will have to make the shareable CD's one at a time and change the home person each time for each cousin for whom I'm making a CD.
  • The process of making a shareable CD asks for a good bit of information to be placed on the CD (my contact information, narrative about the CD and the family that's included on the CD, etc.). I discovered that because of various issues that I ran into, I tended to run the process over and over again until I got everything just right. But the information that I had already typed in was not remembered, and I had to type the same information in over and over again. I discovered that this information is stored in a file called RMMenu.cfg. So I made a copy of this file in the same folder and ran the process again to create the shareable CD. This time, I didn't retype the same information and I was planning to replace the new (and empty) RMMenu.cfg with my copy. But RM5 outsmarted me because in addition to making a new and empty RMMenu.cfg, it also deleted my copy. But I outsmarted RM5 because I run Dropbox and Dropbox had a copy of my copy. I restored that copy and replaced the blank RMMenu.cfg with my own copy that had all the correct information. There is a terrible need for RM5 to handle this situation much more gracefully.
  • As it is making your shareable CD, RM5 is not really writing to your CD. It's really creating a collection of files which later will be written to your CD. As the last thing it does when creating a shareable CD, RM5 asks you if you want it to create your CD or if you will create the CD yourself later. I strongly recommend not allowing RM to create your CD. Instead, I recommend choosing the option to create the CD yourself later. At that point, go to the collection of files on your hard disk that are intended to be written to the CD and test them out. The files will be in a folder called RMShareableCD which will be a subfolder of the folder which contains your RM5 database. The file you need to run to test your CD is called rmmenu.exe.
  • Finally, burn the CD yourself. If you are not comfortable doing so, your options are not great. Your only real option would be repeat the entire process in RM5 and at the end tell RM5 to create the CD for you (see item #5 above). And by repeating the entire process in RM5, you have to type all your information in again or learn how to deal with the RMMenu.cfg file (see item #4 above), and you have to be willing to commit your files to the CD without first being able to test them (see item #5 again). I think a better solution would be an option where a user could create the files for a shareable CD without writing them to the CD, and then after testing the files the user could choose from RM5 to write the files to the CD without having to recreate the files.
Many if not most of these issues are already in the wish list. So I'm really just seconding those existing wishes.

Jerry

#2 Renee Zamora

Renee Zamora

    Advanced Member

  • Support
  • PipPipPip
  • 7094 posts

Posted 17 January 2012 - 02:32 PM

The issues/enhancement wishes are in our tracking system. I am moving this thread to the Tips and Hints forum because I think many users a can benefit from your findings.
Renee
RootsMagic

#3 Laura

Laura

    Advanced Member

  • Members
  • PipPipPip
  • 4276 posts

Posted 24 March 2012 - 02:05 PM

4. Other suggestions for those who don't use Dropbox or are uncomfortable with replacing the RMMenu.cfg file.

I have a separate database which has tips and tricks and my census templates and other information in it that will not fit into my main lineage database.

One of the people in that database is Shareable CD notes. I put the Shareable CD descriptions and my address in the Personal note.

I had the Shareable CD notes person in my main database before I created the tips and tricks database.

I have a text file saved with that information also and open it side by side with RM when fine tuning a Shareable CD.

#4 c24m48

c24m48

    Advanced Member

  • Members
  • PipPipPip
  • 2613 posts

Posted 25 May 2012 - 02:46 PM

  • Because I had to use GEDCOM export/import or drag and drop to create a smaller database, I put the effort into solving the problem I complain about so much where GEDCOM export/import or drag and drop loses carriage returns at the end of my notes. However, the solution required the use of SQLite. I will outline that solution in a separate message. I still look forward to a solution to this problem that's native to RM5. I know that I'm not the only user who controls white space in reports with carriage returns at the end of notes, and I know I'm not the only user who makes a smaller database before creating a shareable CD.

Here is the promised solution to the loss of carriage returns at the end of my notes.

  • I make a copy of my production database using File->Copy from RM5 menus. This does not lose any data. IN THIS STEP, IT'S VITAL NOT TO USE GEDCOM EXPORT/IMPORT OR DRAG AND DROP!
  • My copy is now sort of a play data base, where I can mess things up if I need to and then delete the database when I'm done. So I append the characters QQQQQ to the end of all my fact notes that end with carriage return and line feed. I execute the following SQL code using SQLiteSpy.

    UPDATE EventTable 
        SET Note = Note || 'QQQQQ'
        WHERE Substr(Note,-2) = CAST (X'0D0A' AS TEXT);    
    
    SELECT OwnerID, OwnerType, Length(Note) AS Length, Substr(Note,-5), Note
        FROM EventTable
        WHERE Substr(Note,-5) = 'QQQQQ'
        ORDER BY OwnerID;
  • The code above probably deserves a little explanation. If you strike the "Enter" key in the RM5 Note editor, what actually happens is that the two character sequence Carriage Return followed by Line Feed is inserted into the file. Carriage Return is really a CTL-M character and Line Feed is really a CTL-J character in the old ASCII code. RM5 uses UTF-8 rather than ASCII, but for this part of the code space it is the case that UTF-8 and ASCII are identical. M is the 13th letter of the alphabet. Hence, the ASCII code for CTL-M is 13 in decimal and 0D in hexadecimal. Similarly, J is the 10th letter of the alphabet so that the ASCII code for CTL-J is 10 in decimal and 0A in hexadecimal. So X'0D0A' in the SQL code is looking for the Carriage Return followed by Line Feed sequence. The Substr(Note,-2) function is looking at the rightmost two characters in fact notes, and hence the overall WHERE statement is looking for fact notes that end with Carriage Return and Line Feed. The SET statement is appending 'QQQQQ' to the end of such notes. I chose 'QQQQQ' because a double Q virtually never occurs naturally in English, and five Q's in a row really never appear.
  • I only look at fact notes because my individual notes never end with a Carriage Return followed by a Line Feed, and I never use family notes. (Family notes are not associated with family facts. I do use family fact notes.)
  • The UPDATE statement makes all the required changes. The SELECT statement is used only to make sure that the changes were made correctly.
  • I create a second play database and drag and drop into it those people who will go onto the sharable CD. The drag and drop goes from the first play database to the second play database. It's important to use the first play database rather than my production database as the source of the drag and drop because it's the first play database that contains the 'QQQQQ' characters at the end of notes and that therefore will not lose any carriage return and line feed sequences.
  • The second play database has just the right people, and it hasn't lost any Carriage Returns and Line Feeds. But it still has all those 'QQQQQ' sequences that were used to prevent the loss of the Carriage Returns and Line Feeds, so I have to get rid of them. It's easy to do so from within RM5 itself with one global Find and Replace (or I could also do it with another SQLite UPDATE).
  • I make my shareable CD from the second play database.
  • I delete both the first play database and the second play database.
  • Finally, I wish to myself yet again that this bug in RM5 would be fixed as soon as possible so I wouldn't have to go through all this mess, and congratulate myself on a job well done in making my shareable CD.
Jerry

#5 Laura

Laura

    Advanced Member

  • Members
  • PipPipPip
  • 4276 posts

Posted 25 May 2012 - 04:53 PM

Jerry, as I understand your steps, you add the QQQQQ to the notes in the copy of your main database which means you do that every time you want to make a Shareable CD, right?

I am wondering if you could add {QQQQQ} with the Q;s being privatized to your notes in your main database and not have to do that step in a database copy.

Would the SQL code work the same for '{QQQQQ}' as it does for "QQQQQ' with the {} characters between the ''?

-------
I got to thinking about how to keep the returns in a gedcom or drag and drop without having to go through all those steps to use SQL.

I came up with entering {ZZZ} with no return after my ending returns in my main database. ZZZ is easier for me to type.

If exporting a gedcom of selected people to import into a new database to make a Shareable CD, the Include (Private} notes box would need to be checked.

Now I can drag or drop selected people into a new database and just delete the {ZZZ] using Search and replace before making my Shareable CD.

Or if I have other private facts, I might need to export a gedcom excluding private notes and import it into a new database before I made the Shareable CD.

#6 c24m48

c24m48

    Advanced Member

  • Members
  • PipPipPip
  • 2613 posts

Posted 25 May 2012 - 05:49 PM

Jerry, as I understand your steps, you add the QQQQQ to the notes in the copy of your main database which means you do that every time you want to make a Shareable CD, right?

Correct - every time. It's practically instantaneous, but I do have to do it every time.

I do think your {ZZZ} or {QQQQQ} solution is ingenious and elegant. I'll have to play with it.

I still think that none of this should be necessary if this very simple bug could be fixed.

Jerry

#7 TomH

TomH

    Advanced Member

  • Members
  • PipPipPip
  • 5467 posts

Posted 25 May 2012 - 06:08 PM

Clever workaround! Congrats on a job well done!

Tom user of RM7230 FTM2017 Ancestry.ca FamilySearch.org FindMyPast.com
SQLite_Tools_For_Roots_Magic_in_PR_Celti wiki, exploiting the database in special ways >>> Rmtrix_tiny.png app, a growing bundle of RootsMagic utilities.


#8 c24m48

c24m48

    Advanced Member

  • Members
  • PipPipPip
  • 2613 posts

Posted 25 May 2012 - 06:28 PM

I came up with entering {ZZZ} with no return after my ending returns in my main database. ZZZ is easier for me to type.

If exporting a gedcom of selected people to import into a new database to make a Shareable CD, the Include (Private} notes box would need to be checked.

Now I can drag or drop selected people into a new database and just delete the {ZZZ] using Search and replace before making my Shareable CD.

I played with your technique, and it works fine. It only only requires one iteration of making a play database instead of the two iterations that are required with my technique, and it does not require the use of any SQL.

What your technique does require is to include some sequence such as your {ZZZ} at the end of every note that otherwise ends with a CR/LF. It's easy enough to put the {ZZZ} characters in if you've been doing it from the beginning. If not (and I obviously have not), then the easiest way for me to convert to your technique would be to run an SQL script to insert the {ZZZ} at the end of every note that otherwise ends with CR/LF. I would have to do this in my production database. But I would only have to run the SQL script once, and then I could use your technique forever (or until the bug is fixed, whichever comes first).

Jerry

#9 Laura

Laura

    Advanced Member

  • Members
  • PipPipPip
  • 4276 posts

Posted 25 May 2012 - 07:32 PM

I haven't been using it in my database either. Your posts just got me to thinking out of the box today. I will be adding it in the future to new entries and to old entries as I work on different people as I don't use SQL.