Part of the problem is in addition to WinTD and SwissSys there are another half-dozen or so lesser-known pairing programs preparing DBF files and a few programmers who wrote their own code, so we don’t really have a list of developers to contact about this. Writing about it here is probably our best way of keeping people informed about them. Contacting the TDs who are submitting those files (some 500 of them in the last year or so) and asking them if they’re using a 3rd party pairing program or wrote their own code is on my list of things to see if I can do.
I’ll see if I can describe the issue in less techy terms. DBF files have a feature called a memo file which is usually used for large scale free-form text or stuff that just doesn’t easily fit into a character, numeric or logical data field type. The 2C format, which was never officially released so it didn’t go through a step of making sure it met the DBF standards, says to use a character field in the header file (thexport.dbf) for the additional TDs, a field called H_OTHER_TD, Some of the files we are getting are using a memo file instead, which creates a problem because we have no way of uploading a memo file. I’m not sure if these programs are even creating one, but the TDs wouldn’t know to upload it and there’s no place to put in its name.
So we basically have two choices, neither of them great. One is to tell an unknown number of TDs (probably a couple dozen of them) that they need a different version of the pairing program, and that’s assuming the pairing program author even has a version that doesn’t use a memo file for that field.
The other is to to have the Leago programmers kludge their parsing program to convince it not to throw an error because of a missing memo file. That’s probably outside of the scope of their current contract, so they may want to bill us for that time.
I don’t know which approach is more practical, but I’ll probably be having a discussion with the Leago team about it today.
Not having a list of who is creating DBF files is part of the reason I posted a note a few days ago asking programmers to contact me if they want to use the internal Leago APIs,so I have a list of people who’ve asked about it rather than just have programmers find it on their own. And the other issue with these APIs is they were developed for Leago’s internal use, so they may change over time and Leago doesn’t have the resources to be answering questions from dozens of programmers about API issues, at least not without billing US Chess for the time. So what I’ve been telling people who ask about the APIs is that they’re there, how to find the documentation, such as it is, for them, but cautioning them that they could change and there is no support available.
If, at some point, we decide to create external APIs that are not changing and for which there is both proper documentation and some way of getting support on them, that’s likely to be something Leago bills us for as it is out of scope in their current contract. So we might have to have a fee for using those APIS so we have some offsetting revenue to support the cost of deveoping and supporting external APIs.