Browse Source

update documentation, add HSC import script

Fabian Kurz 4 years ago
  1. 30
  2. 150
  3. BIN


@ -0,0 +1,30 @@
#!/usr/bin/perl -w
# yfktest script to import HSC member data
# see
system("wget -O hsc.txt");
$sql = "delete from clubs where `club`='HSC';\n";
$sql .= "insert into clubs (`club`, `call`, `nr`) VALUES \n";
my @out;
open HSC, "hsc.txt";
while ($line = <HSC>) {
$line =~ s/(\r\n)//g;
if ($line =~ /^[A-Z0-9]/) {
my @a = split(/,/, $line);
push @out, "('HSC', '$a[0]', '$a[1]')";
close HSC;
$sql .= join(",\n", @out);
$sql .= ";";
open HSC, ">hsc.sql";
print HSC $sql;
close HSC;
print "Saved to hsc.sql ($#out records).\n";


@ -4,9 +4,27 @@
<title>YFKlog v0.4.0 Manual</title>
<style> <!--
figure {
padding: 5px;
float: right;
border: 1px solid #cccccc;
border-radius: 5px;
width: 484px;
figure img {
border-radius: 3px 3px 0 0;
figure figcaption {
padding: 2px 4px 2px 4px;
background-color: #636363;
color: #eeeeee;
font-style: italic;
border-radius: 0 0 3px 3px;
@ -97,17 +115,25 @@ running:</p>
make libsqlite3-0 libcurses-perl libwww-perl</code>
<p>For LoTW, you will also need the packages <code>trustedqsl</code> and
<p>Download the <a href="">latest version</a> of
YFKlog and unpack the tarball to a directory of your choice, then run
YFKlog (or clone the latest version from git) and unpack the tarball to a directory of your choice, then run
<code>make install</code>.</p>
<h3>Install from distribution archive</h3>
$ wget
$ tar zxfv yfklog-0.4.0.tar.gz
$ cd yfklog-0.4.0
$ su
# make install
$ sudo make install
<h3>Install from git</h3>
$ git clone
$ cd yfklog
$ sudo make install
<p>By default, YFKlog will be installed to <code>/usr</code>, but you can specify
@ -128,20 +154,14 @@ You can chose between two databases,
<a href="">MySQL</a>.</p>
<p>SQLite is a lightweight,
self-contained, zero-configuration SQL database engine and probably the right
choice for most users of YFKlog. It's very easy to set up (for example in
Debian, just install <code>libdbd-sqlite3-perl</code> and
<code>libclass-dbi-sqlite-perl</code> and you're set!) and surprisingly fast.
<p>MySQL is pretty much the opposite. Don't use it, unless you know why you'd
want to.</p>
choice for most users of YFKlog. Only use MySQL if you know why.</p>
<h3>1.1 SQLite</h3>
<p>There is nothing really to set up, this is the default setting.
SQLite will autmatically create a SQLite database file
of the name as set in <code>dbname=...</code>. This single file contains the
whole database. It's trivial to back up and (if needed) accessible via the
<code>sqlite3</code> command line utility just like a MySQL database.</p>
<code>sqlite3</code> command line utility.</p>
<h3>1.2 MySQL</h3>
<p>Create a database (in this example it's called <code>YFKlog</code>, the user
@ -303,8 +323,10 @@ they are not important.</p>
<img src= "menu.png" align="right">
<img src="menu.png">
<figcaption>YFKlog main menu</figcaption>
<h2><a id="menu" name="menu">3. Main Menu</a></h2>
<p>All functions of YFKlog are accessible through the main menu, shown on the
right. The single menu points will be described in greater detail in the
@ -348,8 +370,10 @@ following sections; some are self explanatory. A quick overview:</p>
<img src= "logmode1.png" align="right">
<img src= "logmode1.png">
<figcaption>The main logging screen of YFKlog</figcaption>
<h2><a id="logging" name="logging">4. Logging QSOs</a></h2>
<p>In the <strong>Logging Mode</strong>, as shown in the picture, the screen is
split up into 4 main windows. A QSO can be saved with <strong>F2</strong>,
@ -401,7 +425,7 @@ respectively.</p>
<li> This window shows information about the callsign entered, derived
from the country file <code>cty.dat</code>. The last line also shows -
if available
- known <a href="">club memberships</a>, if the DXCC was worked before,
- known <a href="#clubs">club memberships</a>, if the DXCC was worked before,
and if so on which bands, and if the callsign appears in any other log,
as specified by <a href="">checklogs</a> in the config file. <a
href="logmode2.png">This is an example</a> where all these
@ -421,8 +445,11 @@ respectively.</p>
<img src="edit1.png">
<figcaption>Editing QSOs</figcaption>
<img src="edit1.png" align="right">
<h2><a id="search" name="search">5. Searching and Editing QSOs</a></h2>
<p>Logged QSOs can be searched and edited under the menu point <strong>Search
@ -453,7 +480,10 @@ which can easily be adopted, even without knowledge of SQL.</p>
<p>Effective handling of QSL cards, both incoming and outgoing, is
easily done with YFKlog. This section describes how.</p>
<img src="qslin1.png" align="right">
<img src="qslin1.png">
<figcaption>Marking QSL cards as received in the log</figcaption>
<h3>6.1 Incoming QSL cards</h3>
<p>The menu point <strong>QSL enter mode</strong> allows you to record received
QSLs very effectively. After entering 3 or more letters of the callsign, all
@ -525,8 +555,7 @@ from YFKlog. There are two exceptions:</p>
<ol><li>YFKlog has a separate log field for handling LoTW confirmations. This
field has no ADIF equivalent and is not used when exporting to
<li>Exported logs from YFKlog currently don't include any DXCC information.
This will be fixed in foreseable future.</li>
<li>Exported logs from YFKlog currently don't include any DXCC information.</li>
<p>To export the current logbook to an ADIF file, chose "ADIF export" in the
@ -562,7 +591,7 @@ author's PC (1.8GHz, 256MB RAM).</p>
<h2><a id="online" name="online">8. Update Onlinelog</a></h2>
to be written...
... function to be rewritten completely ...
@ -579,7 +608,10 @@ QSL labels however, or exporting the log, it's changed back to a slash.</p>
<img src="awards1.png" align="right">
<figcaption>DXCC award tracking with YFKlog</figcaption>
<h2><a id="awards" name="awards">10. Awards and Statistics</a></h2>
<h3>10.1 Standings for awards</h3>
@ -635,9 +667,13 @@ Name/QTH DB" from the main menu.</p>
<img src="lotwimport.png" align="right">
<figcaption>YFKlog shows which contacts were recently confirmed on LoTW</figcaption>
<h2><a id="lotw" name="lotw">12. LoTW functions</a></h2>
<p>YFKlog makes it easy to keep track with the LoTW status of your QSOs!</p>
<p>YFKlog makes it easy to keep track with the LoTW status of your QSOs and supports direct upload and download to/from LoTW.</p>
<p>For each QSO, YFKlog saves a value (called QSLrL, QSL-received-LoTW), which
can be:
@ -739,13 +775,50 @@ message queue and be fetched as soon as YFKlog enters the remote mode.</p>
<h2><a id="appendix" name="appendix">Appendix (very much UNDER CONSTRUCTION)</a></h2>
<h2><a id="appendix" name="appendix">Appendix</a></h2>
<h3>Using Putty</h3>
<p>When using YFKlog via ssh with Putty, the F-keys may not work in the default
configuration. In the putty configuration (Terminal -&gt; Keyboard), set
&quot;The Function keys and keypad:&quot; to <em>Xterm R6</em>.</p>
<h3 id="clubs">Club memberships</h3>
<p>When entering a callsign in logging mode, YFKlog searches for this
callsign in a database table named <code>clubs</code>. This database
table has three columns, <code>club</code> (the name of the club), <code>nr</code>
the membership number, and <code>call</code> (the callsign).</p>
<p>By default this table is empty. In the <code>clubs</code> subdirectory
you'll find a couple of scripts which download membership data from a
number of different sources and generate SQL statements from them, which
you can then push into the database. Some of these membership databases
are directly pulled from the respective clubs, others come via the
<a href="">CW Club files
by G4BKI / VP9KF</a>.</p>
<p>By adapting the existing scripts, you should be able to add your own clubs if needed.</p>
<h4>Example: HSC member list</h4>
<p>The script <code></code> will download the HSC member list and
generate SQL statements for it. Here's an example how to use it:</p>
$ ~/dev/yfklog/clubs/
--2019-07-01 21:52:36--
Resolving (
Connecting to (||:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/plain]
Saving to: 'hsc.txt'
2019-07-01 21:52:36 (116 MB/s) - 'hsc.txt' saved [30910]
Saved to hsc.sql (1358 records).
$ mysql -uUSERNAME -pPASSWORD YFKlog < hsc.sql # for MySQL
$ sqlite3 ~/.yfklog/YFKlog < hsc.sql # for sqlite
<h3>Database backup</h3>
<p>Regular backups of your logbook data are highly recommended. With SQLite and
@ -753,13 +826,13 @@ MySQL you can easily produce a so-called <em>SQL dump</em> of the database,
from which you'll be able to completely restore your database in case of data
<p>For SQLite, use the following command-line:</p>
<pre><code>sqlite3 ~/.yfklog/YFKlog '.dump' | gzip -c > dump.sql.gz</code></pre>
<pre><code>sqlite3 ~/.yfklog/YFKlog '.dump' | gzip -c &gt; dump.sql.gz</code></pre>
<p>This will produce a compressed file <code>dump.sql.gz</code> which contains the
whole database in human readable SQL format. Replace
<code>~/.yfklog/YFKlog</code> with the location of the SQLite database file, in
case you don't use the default location.</p>
<p>For MySQL, use the command line utility <code>mysqldump</code>:
<pre><code>mysqldump -p YFKlog | gzip -c > dump.sql.gz</code></pre>
<pre><code>mysqldump -p YFKlog | gzip -c &gt; dump.sql.gz</code></pre>
Where <code>YFKlog</code> is the name of the database. You will be prompted to
enter your password; alternatively you may directly include it in the command
line (for example when invoked from cron): <code>mysqldump -pMYPASSWORD
@ -796,25 +869,6 @@ Rows matched: 3158 Changed: 3158 Warnings: 0
<h3>Database Backup</h3>
<p>A backup of the complete database can be easily done by sqldump. In this
example the database name is YFKlog.</p>
<pre><code>mysqldump -p YFKlog | gzip - - > dump.sql.gz</code></pre>
<p>mysqldump will promt you for the password to access the database. If you
invoke mysqldump from a script, you may add the password in the command line
(mysqldump -pPASSWORD) but be advised that this is not very secure. Everyone
doing a <code>ps a</code> during the backup can see your password. You may want
to consider using for example <code>expect</code> if this is an issue.</p>
<pre><code>sqlite3 ~/.yfklog/YFKlog .dump YFKlog | gzip - - > dump.sql.gz</code></pre>
<p>Alternatively, just back up the database file itself, ~/.yfklog/YFKlog, but
makre sure there is not currently any process writing to it.</p>
<h2><a id="GNUFDL" name="GNUFDL"> GNU Free Documentation License </a></h2>


Binary file not shown.


Width:  |  Height:  |  Size: 3.7 KiB