[ Top > アマチュア無線局 JP1DDD ]

ログ管理法

2013年12月15日更新

私は現在Macを使用していますが、過去にはパソコンのOSをいろいろ替えてきましたので、データの移し替えが常に問題となっていました。MS-DOS/Windows系のマシンしか使用していないかたには実感しにくいことですが、マイクロソフト系OSとそのもとで作られたアプリケーションソフトは、他のOSとの間でのデータのやりとりが非常に面倒な傾向があります。

そのような理由で、テキストファイルでログを保存・処理する方法をとっていたことが多かったのです。 しかし、最近はテキストファイルで処理することに飽きてきたので、アプリケーションを使い、なおかつクロスプラットフォームでの使用が可能な方法を模索しています。

現在の管理法:FileMaker Pro

これまで使用していたBentoが2013年秋で販売終了になりましたので、FileMaker Proを使用しています。これは価格が高いだけあって大変多機能かつ便利なアプリです。とうぶんこれでいくつもりです。

FileMaker Pro

過去の管理法

古い順に示します。

開局時 1982年~

パソコンは使用しておらず、名刺サイズのカードにコールサインを書き、順番に並べて整理していました。

1986年~

SONYのMSXマシンを購入しました。SONY製データベースソフトにログのデータを入力しました。根気の要る作業でした。

1988年~

社会人になった翌年、PC-9801VXを購入しました。dBASEIIIを使うことを考えましたがデータの変換方法で悩みました。MSX-DOSとMS-DOSはファイルレベルでの互換性がありましたので助かりました。MSX-DOSのフロッピーディスクに入っていたログファイルをPC-98でダンプして構造を分析し、QuickBASICの自作ソフトで一旦テキストファイルに変換、そのデータをdBASEIIIに読み込ませるという方法をとりました。

1990年~

SharpのX68000を購入しました。データをシャープ製のデータベースソフトを利用しました。X68000のOSであるHuman68kは大変使いやすいものでした。

1990年~

Macintoshを使い始めました。X68000のデータは通信ケーブルを使って移しました。 フリーウェアなどを使用し、データを管理していました。

1990後半頃~AppleWorks

AppleWorksが使えるようになってからは、そのデータベース機能を利用していました。これは本当に使いやすいアプリでした。

通常の入力画面↓

入力画面・出力画面のレイアウトは自由自在↓

表計算のように表示することも可能↓

シェルスクリプトによる方法

AppleWorkはやがて販売が終了し、また自分自身はLinuxを学ぶようになりました。そのため、シェルスクリプトを使って検索をおこなう方法に買えました。ログは1交信1レコードとし、フィールド間はタブで区切っておきます。

・・・・・
2004.12.5 0945 1001 7K1UTG 599 599 A1A 7.028 50 小山市 Setsuさん IC-756 DP 15mh
2004.12.6 1815 1825 JA10JIT 57 59 J3E 21.256 50 天国市 案河馬さん 自作機 1kw
・・・・・

ログファイルを以下のシェルスクリプトで検索します。単にファイルの文字列を拾うだけなので、余計なレコードがひっかかってきてしまいます。


#!/bin/sh
callsign=
while [ -e /home/hogehoge/logfile ]
do
        read -p "Callsign= " callsign
        CALLSIGN=`echo $callsign | tr 'a-z' 'A-Z'`
        less /home/hogehoge/logfile | grep $CALLSIGN
done
exit

perlによる方法

より洗練されたものにするため、perlを使用しました。

ログの内容はシェルスクリプトと同様です。

交信したらテキストエディタで追加しておきます。

ただし、UNIX系のスクリプト言語で処理を行いますので、改行コードはLFとしておきます。文字コードは環境によりますが、現在はperlによる処理を行っているのでUTF-8としています(Windows用のperlの場合はshift-JISにしなければなりません)。

交信時は以下のようなperlスクリプトを使って検索します。ログファイルを1行ずつ読み込んで、入力した文字列がコールサインのフィールドにマッチした場合のみ必要なフィールドを表示するという簡単なものです。



#!/opt/local/bin/perl

while (1) {

  # open log file
  
  $filename = "/Users/path-to-logfile/logfile.txt";
  open JP1DDD, "$filename";

  # input callsign and make letters small
 
  print "Searching Callsign = ? ";
  $searching = ;
  chomp($searching);
  $searching = lc $searching; 

  # read every line and print if match

  while ($one_line = ) {
    @one_record = split(/\t/, $one_line, 10);
    $s_call = lc @one_record[3];
    if ($s_call =~ m/$searching/) {
      print @one_record[3];
      print " ";
      print @one_record[0];
      print " ";
      print @one_record[6];
      print " ";
      print @one_record[7];
      print " ";
      print @one_record[9];
    }
  }
close JP1DDD;
print "\n";
}

close JP1DDD;

実行結果:

[prime:~@jp1ddd]$ seiribo.sh
Searching Callsign = ? 7k1utg
7K1UTG 19900811 F3E 145.02 小山市 FT-208 WHIP
7K1UTG 19900926 F3E 433.02 小山市 
7K1UTG/1 19910202 F3E 433.02 
7K1UTG/1 19910820 F3E 433.02 群馬県吾妻郡
7K1UTG/1 19911003 F3E 439.92 宇都宮市/M
7K1UTG/1 19911003 F3E 433.04 旧4号/M
7K1UTG/1 19950303 F3E 432.76 佐野市・岩舟町・大平町M 

Searching Callsign = ? 

phpMyAdminによる管理

Windowsに少しずつ慣れてきたところで、2011年からphpMyAdminを使ってみました。これはフリーのリレーショナルデータベースであるMySQLをGUIで操作するためのツールです。現在は簡単にインストールできるようになっています。検索やデータの書き出し等は何とかできるようになりましたが、2011年5月にメインマシンをまたMacintoshにしたため、使用を終えました。

データの操作画面です。図をクリックすると実物大のものを示します。

phpmyadminによる画面 小サイズ

Bentoによる管理

2011年5月よりメインマシンをiMacとしたので、Apple関連のデータベースを使いたいと思っていたのですが、AppleWorksはとっくの昔に発売終了、 FileMakerは高価だということで、悩んでいました。そのときに見落としていたのがBentoです。

BentoはMac関連のアプリケーションのなかでは知名度が低かったのですが、個人的に使用するには十分なデータベース機能を持っており、ログ管理には最適と思われました。

データの操作画面です。図をクリックすると実物大のものを示します。

Bento 小サイズ

雑感

現在、アプリケーションの市場では、安価な汎用データベースがあまり見当たりません。私としては昔の「The Card」のようなものがあれば十分と思うのですが。フリーウェアやシェアウェアでもこれだ、というものがありません。


[ Top > アマチュア無線局 JP1DDD ]