QSOs beta
An explanation of the software that I have written to publish my logs and to give a webpage to each of my QSOs.
An explanation of the software that I have written to publish my logs and to give a webpage to each of my QSOs.
You can browse results for a complex log-search (such as 'stations with the prefix F, contacted in February of any year by M0BLF') by constructing a simple page address on my site. You can try this below. Notice how '*' is added as a wildcard if needed, and that '/' in a callsign is converted to '-'. The order of the parts which make up the address is important but only my callsign is mandatory (leaving everything else blank will show you my full log).
At the heart of the service is a unique, permanent, ID given to each QSO. This ID is case-sensitive. If you know a QSO ID, you can retrieve my log entry for that QSO:
The primary aim of this service is to put my log at the centre of my website by ensuring that every QSO that I make has its own permanent, linkable, page automatically generated from my log. The main features include:
Where multiple QSOs are returned, the page contains a maximum of 50 QSOs. If there are more, you can add a GET request variable to the URL to display a specific page of results. eg. ?page=3 for QSOs 101-150. On pages with multiple QSOs, a <pageInfo> element is added, which contains the current page number <pageNum>, the total number of pages for the query <maxPages> and the total number of QSOs <totalQsos>.
On pages with multiple QSOs, results are returned in date ascending order, except when browsing a whole log for one of my callsigns, in which case date descending order is used. This behaviour can be overridden by supplying ?sort=ASC or ?sort=DESC (for ascending and descending respectively) as a GET request. The value of the <order> element (within <pageInfo>) is either ASC or DESC, confirming the sort direction applied.
All of /qsos/ is blocked in robots.txt to prevent crawling.
This service uses an implementation of the draft xDIF format (XML Data Interchange Format, an implementation of ADIF in XML) to return the log data in a computer-understandable format, which is then transformed in XSLT to make it human-readable. The principle deviations, at present, from the xDIF specification include the fact that the time is never returned, and that if multiple QSOs are found, my equipment and location are not returned. Additionally, the <request_url> element, containing a URL from which a request for a QSL card can be obtained, is sent within the <confirm> element. Once development is reasonably stable, I will post fuller details on the xDIF discussion list. Because of the technology used, the results for multiple QSOs will fail to display in older/mobile browsers without XML/XSLT support. When only one QSO is returned, a special mobile version of the page will be shown to user agents which cannot be positively identified as XSL complient.
Appropriate HTTP status headers are returned (ie. 404 if the QSO is Not in the Log; 400 for a malformatted request, 300 if there are multiple results; 200 if one and only one QSO is found).
In the case of DXpedition logs and contest logs for which the deadline has not yet passed, callsigns and exchanges will not be displayed (unless, in the case of callsigns, you have searched on that callsign). Additionally, to avoid self-spotting, frequencies are withheld if the QSO has been made within the last thirty minutes.
The xDIF returned is also used for the AJAX-based lookups on some DXpedition and contest pages on this site, for example IARU 2008 Log-Search.
If you are interested, you can view the XSLT pages applied to multiple QSOs (HTTP Status 300) and to individual QSOs (HTTP Status 200).