9   Appendix

This concludes the body of Tonto2 documentation. We've endured an overview of Tonto2, instructions about how to install it, a step-by-step slide show concerning how to do rudimentary things with it and know you've done them, an inventory of file types and their display peculiarities, some dire warnings about concurrent processing, an exhausting concordance of the menus, an inventory of data types that can show up in files with some suggestions about how it is possible to modify the predefined file types, an extremely brief description of changing the columns on the grid (You probably missed it.), and an equally hasty sketch of sorting, searching, selecting, updating, and viewing records. Then we delved into optional externals and how to configure them. That's all.

By now, you're probably wondering how you can get Tonto2 to do things for you, so I should shut up. I hope you find Tonto2 useful. Have fun with it! Please let me know what you think.

What follows is a necessarily short list of problems that can arise and the vaguest possible hints about what to do to fix them or get around them.

9.1   Transport Data from and to Cellphones

There are two kinds of lists commonly kept on cellphones: contacts and calendars. On cellphones, the vCard (vcf) format may be used to transport contacts. The iCal (ics) format may be used to transport calendars. Because Tonto2 is natively equipped to handle only csv files, it may seem beside the point to mention these other file formats. However, if you can manage to interconvert them with csv files, then you ought to be able to maintain your lists on your desktop using Tonto2. This is not an unreasonable goal and may be more feasible than it at first appears. See Converting to and from csv Files, below.

The greater difficulty will be to move the files in whatever format from your desktop to your mobile device, so some discussion is devoted to that.

But you may not need to....

9.1.1   Cloud Storage

Cellphone ecosystem developers like Apple, Microsoft, and Google are eager for you to store your contacts and calendars with them on their cloud servers — in order (one suspects) to be able to monetize not only your patronage but also that of your friends, family, and cow-orkers. Thus, the ecosystem developers may allow you to upload csv files to them and interconvert the files for you. You then have access to a single cloud-based repository of information shared between all of your devices, mobile and desktop. You have to decide whether to exchange essential privacy to purchase this modicum of convenience. In any case, good luck getting that data back out.

Thus, our point of departure is to describe how to transfer address lists and calendars between your desktop and your cellphone's ecosystem. (Of course, you need to be keeping your cellphone sync'ed to the cloud for this to work.) There is the problem of uploading your files from your desktop to the cloud, and — by symmetry — there is the mirror problem of downloading your files from the cloud to your desktop.

This discussion is bound to be overly general. I don't transfer files this way because I'm overly squeamish about sending and receiving (unencrypted) data to, from, and through the cloud, but I understand your tastes may not be so epicurean. At any rate I'm not an expert on this aspect of any of the major ecosystems, such as:

  • iCloud
  • Office 365
  • Google

Before uploading any Tonto2 files, you'll want to convert Tonto2's csv format to something likely to be understood in your ecosystem.

After downloading any csv, iCal (ics), or vCard (vcf) files, you'll want to convert them to Tonto2's dd format before opening a tab for the file.

9.1.1.1   Calendar Info

9.1.1.1.1   Upload Calendar Info

From your desktop you should be able to login to whichever ecosystem you're a part of (presumably through a browser) and view your calendar there. From Settings select Import or select Add. See whether csv is one of the file formats supported for upload or preferably use iCal (ics). Be aware that csv won't convey any information about recurring events.

If all you want is to load desktop information one-way into your ecosystem, you're done. You can access this info from all your devices.

9.1.1.1.2   Download Calendar Info

If, however, you want to have a local copy of your cloud data on your desktop, you'll want to export and download file(s) from your ecosystem.

From your desktop you should be able to login (presumably through a browser) to whichever ecosystem you're a part of and view your calendar there. From Settings select Export. Export an iCal (ics) file to your desktop. Then, convert it to a Tonto2 dd file.

9.1.1.2   Contact Info

9.1.1.2.1   Upload Contact Info

From your desktop you should be able to login to whichever ecosystem you're a part of (presumably through a browser) and view your contact (people) information there. From Settings select Import or select Add. See whether csv is one of the file formats supported for upload or preferably use vCard (vcf).

If all you want is to load desktop information one-way into your ecosystem, you're done. You can access this info from all your devices.

9.1.1.2.2   Download Contact Info

If, however, you want to have a local copy of your cloud data on your desktop, you'll want to export and download file(s) from your ecosystem.

From your desktop you should be able to login to whichever ecosystem you're a part of (presumably through a browser) and view your contact (people) information there. From Settings select Export. Export a vCard (vcf) file to your desktop. Then, convert it to a Tonto2 dd file.

9.1.2   Moving Files Directly to and from Cellphones

This is a fundamental problem, and it's harder than it needs to be.

Depending on both your desktop and mobile ecosystems, you may be able to find a single utility that has parts that run both on your desktop and on your mobile device. The instructions for using such a utility supercede anything I may say below about how to transfer files because the utility handles it automagically between its separate parts.

I've never used the following in production and therefore cannot recommend any of them:

If those don't float your boat because of some deeply held aversion to shrink-wrapped software, you can try a more general approach.

To use a cable to tether your cellphone to your desktop, you must find and enable the USB Debugging option on the cellphone. Then, when you plug in your cellphone, your desktop operating system will generally provide a pop-up window showing on your desktop the accessible directories on the mobile device the same as it would for a camera or other storage device. After you identify files exported by your mobile apps, you may drag and drop them into folders on your desktop device for safe keeping.

Even more generally you may decide to use ftp or ssh transfer protocols over a WiFi connection instead of using a cable. You will, of course, need utility apps on both ends of the connection. (They will work with a cable, too.) You are limited to directories on both devices for which you have read/write authority.

Using general-purpose file-transfer apps, I find it much more convenient to use the cellphone as the server side and the desktop as the client side. That way I have the bigger display, mechanical keyboard, and separate pointing device on the desktop to manipulate the transfer session.

9.1.2.1   Cellphone Server App

On Android I like:

You configure it. You start it, and it shows you your IP addresses du jour, which you can then plug into your ftp or ssh client on your desktop.

Also, you will need to have a file-manager app such as Solid Explorer (NeatBytes) installed on your cellphone. Some cellphones come with a Files app pre-installed.

9.1.2.2   Desktop Client App

On Linux I like:

This is a curses application, not a graphical application. Although it is sensitive to mouse input, its display is strictly character-based. As such, it has somewhat more than a retro look and feel. The part I like about it is that it usually actually works, unlike other two-panel (orthodox) file managers I've tried with modern graphical interfaces.

On Windows and Other Operating Systems™, you no doubt have access to scads of file-manager apps such as File Explorer, which can access directories on ftp or ssh servers.

9.1.2.3   Calendars

9.1.2.3.1   Exporting Calendars

You can't export your calendar directly from Google's Calendar cellphone app (full stop). You may be able to install a calendar-export app that will make up for Google's intransigence. Alternatively you could use yet another calendar app altogether such as CalenGoo (Gunia) which does export.

9.1.2.3.2   Importing Calendars

First, copy your ics file from your desktop to the /storage/emulated/0/ folder on your cellphone. From your file-manager app on your cellphone, open the ics file. The file manager should propose that your calendar app import files of this type, which it does, and you wind up with new events. Presto chango!

9.1.2.4   Contact Lists

9.1.2.4.1   Exporting Contacts

Here is how I export contacts to a vcf file on my Android 11 cellphone:

  • Open the Contacts App. This may be called People on other cellphones.
  • Pull down the fries menu.
  • Select All.
  • Share.

Share the resulting vcf file with your file-manager app so that the file winds up in the /storage/emulated/0/ folder (which is the traditional mount point for your removable SD card if you have one).

Then you can copy that file to your desktop via ftp or ssh. Simple!

9.1.2.4.2   Importing Contacts

First, copy your vcf file from your desktop to the /storage/emulated/0/ folder on your cellphone. From your file-manager app on your cellphone, open the vcf file. The file manager should propose that your contacts app import files of this type, which it does, and you wind up with new contacts. Presto chango!

9.1.3   Converting to and from csv Files

Tonto2 ships with two utility programs to run on your desktop to convert dd files.

  • tonto2_conv_cal
  • tonto2_conv_adr

On Windows you can get them out of the Tonto2\Scripts folder.

They're very similar. You can see what they do with the --help option:

> tonto2_conv_cal --help

usage: tonto2_conv_cal [-h] --tonto Tonto_file.dd
      (--to-google Goggle_file.csv | --to-outlook Outlook_file.csv |
      --to-ical iCal_file.ics | --from-google Goggle_file.csv |
      --from-outlook Outlook_file.csv | --from-ical iCal_file.ics)

Tonto2 common calendar converter.

optional arguments:
  -h, --help            show this help message and exit
  --tonto Tonto_file.dd
                        Tonto Calendar *.csv file
  --to-google Goggle_file.csv
                        Google *.csv file
  --to-outlook Outlook_file.csv
                        Outlook *.csv file
  --to-ical iCal_file.ics
                        *.ics file
  --from-google Goggle_file.csv
                        Google *.csv file
  --from-outlook Outlook_file.csv
                        Outlook *.csv file
  --from-ical iCal_file.ics
                        *.ics file

> tonto2_conv_adr --help

usage: tonto2_conv_adr [-h] --tonto Tonto_file.dd
      (--to-google Goggle_file.csv | --to-outlook Outlook_file.csv |
      --to-vcard vCard_file.vcf | --from-google Goggle_file.csv |
      --from-outlook Outlook_file.csv | --from-vcard vCard_file.vcf)

Tonto2 common address-list converter.

optional arguments:
  -h, --help            show this help message and exit
  --tonto Tonto_file.dd
                        Tonto Address List *.csv file
  --to-google Goggle_file.csv
                        Google *.csv file
  --to-outlook Outlook_file.csv
                        Outlook *.csv file
  --to-vcard vCard_file.vcf
                        *.vcf file
  --from-google Goggle_file.csv
                        Google *.csv file
  --from-outlook Outlook_file.csv
                        Outlook *.csv file
  --from-vcard vCard_file.vcf
                        *.vcf file

In either case the --tonto argument is required, and one-and-only-one --to/from argument is required. The arguments are file names on your desktop. If a --to argument is provided, the --tonto argument is the source. If a --from argument is provided, the --tonto argument is the destination.

--to/from arguments come in three flavors: (1) Google, (2) Outlook, and (3) Generic. Choosing either Google or Outlook deals with converting Tonto2 files to/from csv files with headers recognized by either Google or Microsoft Office 365 (Outlook), respectively. Use these arguments to handle uploading/downloading cloud files.

You may interconvert to/from generic vCard (vcf) and iCal (ics) files for importing/exporting on your cellphone or with Apple's iCloud and potentially any of the other cloud services, too. These are the preferred formats.

Here's an example:

> tonto2_conv_cal --tonto /tmp/tonto.cal.dd --from-ical "/tmp/calengoo.ics"

You should anticipate — however uncomfortable it may be — that your information will not make the round trip to the cloud or to your cellphone and back unscathed because the remote storage formats are different from (not to say much more complex than) Tonto2's. There are nuances such as grouping of contact names and personal-availability flags on calendar events that are not replicated by Tonto2. Tonto2 lat/lon location information and event alarm information are not replicated in the remote storage formats either.

That being said, downloading existing contacts and calendars to your desktop will still be preferable to rekeying them.

9.2   Generate Form Letters

Of course, you need to install a rather full-featured word-processing app on your desktop before you worry too much about using your contacts list to generate form letters, postcards, and envelopes. It's something you might want to consider, though, to leverage the effort you put into learning Tonto2.

I'm sorry I can't be more help on this topic, but a review of the myriads of rather full-featured word-processing apps is inappropriate here. And, anyway, how many word-processing apps can you use? One, right? ... so you pick your poison and learn its intracies. Tonto2 can't help with that!

I am sure most word-processing packages include facilities for merging lists with template documents to print form letters. You just have to research how to do that with your favorite word-processing package. The ones I've dealt with did allow the user (after requisite propitiation, appropriate incantation, and ritual sacrifice) to include csv files as sources for address-list information, so, if you can use Tonto2's native csv files in your word-processing/office-automation suite, you are ahead of that game.

Nowadays, I'm most familiar with LibreOffice.

LibreOffice includes a "Mail Merge Wizard," which helps you set up a template document and connect a database to it. The hard part is realizing that the database must be registered as part of the wizard. Once the template document is linked to the database, then linking it to a different database is doable but can be difficult, particularly after a lapse of some time when memory has cooled. Databases may be populated from csv files, spreadsheets, or other databases. Template documents refer to flds in the database, and, during printing, the blank flds are filled in from the database recs.

Delving any deeper than that is — sorry to say — beyond the scope of this page at this time.

9.3   Browser Interface

For a discussion of barcode fonts and how they may be rendered (or not) in your browser, see "Fonts."

For a discussion of how Tonto2 invokes your default browser, see "Ini: browser."

9.4   Drag and Drop

Tonto2 accepts drag and drop from your browser to _URI flds. The target hot spot for Drag and drop is a bombsight (⌖) on a Tonto2 dialog box. The source can be a link in a browser page or the the padlock from the URL box — sometimes called the search box — on the browser's toolbar. Drag and drop hands information from one app to another thru the system-wide clipboard. Such information is formatted in the ways that the source app is willing to divulge it, which must match one of the ways the destination app is willing to accept it. If the drop doesn't occur, this is because of a mismatch. The source app did not provide information in any form that the destination app was willing to accept.

CAUTION: Passing any information (particularly sensitive information such as passwords) through the clipboard is considered dangerous by some people because the clipboard is accessible from any running malware program. Some people think, "Big Ears is always listenin' that shouldn't be." You have to make up your own mind what's likely to be a threat. I use the clipboard all the time because I'm convinced nothing else is running that I don't approve of.

Super-secure browsers such as the Tor Browser are reluctant to leak any information (sensitive or not) to the clipboard and, in fact, will not serve any Drag and drop requests at the highest browser security settings. ... so, if you're trying to drag and drop a link from such a browser to Tonto2, it won't work. You'll need to dial-down the browser's security settings (not recommended) or temporarily open a different browser for the task.