;;; -*- Mode: outline -*- ################################################################ 00usage.jis ################################################################ Created: 2000/06/26 Revised: 2001/09/30 01:43:04 将来ちゃんとしたドキュメントを用意する予定ですが、 それまでは、このファイルと emacs/00usage.jis 及び、 ソースコードをを参照して下さい。 * コマンドの簡単な使い方 これらのコマンドを利用するには、ruby-ext/ 以下のライブラリをあらかじめイ ンストールしておく必要があります。GUI に関しては、ruby-gtk を必要とします。 samples/DOT.schedule.sample.jp は日本の祭日についてのデータを記述したファ イルです。~/.schedule としてコピーしておくとよいでしょう。 ** today コマンドラインでの予定一覧表示ツールです。today と単に打つと、 今日の予定が表示されますが、指定の日のスケジュール一覧表示をすることも できます。 today には次のようなオプションが使えます。 --format=html/ps スケジュールを HTML や PostScript (のカレンダー) 形式で出力します。 --category=CATEGORY 指定のカテゴリのみを出力することができます。 "!CATEGORY" とすると、指定のカテゴリのみの出力抑制ができます。 --date=[string][+n] 表示したい日付とその範囲を指定します。 string に指定できるのは、 today, tomorrow, sun ... sat, yyyymmdd, yymm です。以下によく使われると思われる date の指定を挙げておきます。 --date=today+1 今日から明日まで --date=200007 2000年 7月の一ヶ月分 --format=ps の場合は、これを指定したいでしょう --date=mon+6 今週一週間のスケジュール --mail=ADDRESS スケジュールを指定のメールアドレスに送信します。 cron などで、毎日自分宛にスケジュールを送ると便利でしょう。 ** gemcal gemcal は、MHC の GUI です。 閲覧、入力、アラームの発行等することができ、これ単体でもスケジュールアプ リケーションとして機能するようになっています。入力は mhc からの方が便利 かもしれません。日程の変更等は gemcal の方が便利かもしれません。 ruby/gtk で書かれています。ruby の 1.4.2 + FreeBSD 3.3 / Solaris 2.6 で は正常に動くことを確認しています。ruby-gtk は 0.21 以降で使って下さい。 gemcal -g +X+Y geometory の指定 X と Y には数値が入ります。 + の代わりに - は使えません。 -r dir MHC のデータを保存しているディレクトリを指定します。 デフォルトは ~/Mail/schedule です。 -d +X+Y 一ヶ月カレンダーと同時に日めくり(DayBook) を最初から表示 します。 -f 祭日等を書いた定数ファイルを指定します。 デフォルトは ~/.schedule です。 通常は、単に、 % gemcal & として起動すればいいでしょう。あとは想像して下さい。 1ヶ月表示ウィンドウを最大化すると、各日付の予定を参照することができます。 ** mhc-sync の使い方 mhc-sync は、NotePC とデスクトップといった、MHC を利用している 2台の PC 間のスケジュールの同期を取るコマンドです。mhc-sync と叩くと usage が出ます。 以下を行う前に、バックアップをきちんと取りましょう。 1. notepc, server の 2台のマシンがあるとします。双方で mhc-sync, ssh が使 えるようにしておきます。 ruby-ext/lib もインストールしましょう。 2. 古い mhc で作ったアーティクルには、X-SC-Record-Id がないもの がありま す。まず、全部に付けておきましょう。 コマンド create_message_id を使っ て、 % create_message_id ~/Mail/schedule/[0-9]*/[0-9]*/[0-9]* % create_message_id ~/Mail/schedule/intersect/[0-9]* のように実行します。 3. 2台の間の +schedule 以下をまったく同じにしておきます。 例えば、notepc で rsync を使って、 % rsync -a --delete server:/home/Mail/schedule/ /home/Mail/schedule のようにしておきます。 そして、db の同期のための情報を白紙にするために、.mhc-db-log という ファイルを双方ともに消しておきます。これは通常 ~/Mail/schedule/ に生成 されています。 4. notepc, server でいつも通りの操作をします。 C-cm した後に、C-cC-c で finish するのを忘れないで下さい。 (C-xC-s してセーブしないように) 5. どちらか一方のホストで、(たとえば notepc) % mhc-sync -x exchange_id user@server.host.name のように実行すると、sync が行われます。 exchange_id というのは、2台の間で sync 履歴を管理するための 識別名(合言葉) です。何でもいいですが、同じ 2 台の組み合わせ で sync するときは、常に同じでないといけません。 実行の 前に、何が起こるかだけを見たい場合は、-n オプションを使って下さい。 % mhc-sync -n -x exchange_id user@server.host.name create_message_id: -------------------------------------------------------------------- #!/usr/local/bin/ruby $last_mid_rand = 'AAAA' $last_mid_time = nil $i = 0 $DOMAIN = 'set_your_domain' def create_message_id(domain = $DOMAIN) mid_time = Time .now .strftime("%Y%m%d%H%M%S") mid_user = Process .uid .to_s if $last_mid_time && mid_time == $last_mid_time $i += 1 $last_mid_rand .succ! mid_rand = $last_mid_rand else $last_mid_rand = 'AAAA' mid_rand = $last_mid_rand $i = 0 end mid_rand += '-' + $$ .to_s $last_mid_time = mid_time return '<' + mid_time + mid_rand + '.' + mid_user + '@' + domain + '>' end while path = ARGV .shift file = File .open(path) contents = file .gets(nil) file .close if contents =~ /X-SC-Record-Id:/ print "#{path} has X-SC-Record-Id: ignored.\n" else print "add X-SC-Record-Id: to #{path}.\n" contents .sub!(/^/np, "X-SC-Record-Id: " + create_message_id() + "\n") ## contents .sub!(/\n\n/np, "\nX-SC-Record-Id: " + ## create_message_id() + "\n\n") file = File .open(path, "w") file << contents file .close end end -------------------------------------------------------------------- ** mhc2palm -- MHC のデータを Palm に転送する MHC のデータを Palm/WorkPad に転送するコマンドです。 pilot-link の libpisock を必要とします。 usage: mhc2palm [-a | -i] [-n] [-d dev] [-r dir] [YYYYMMDD-yyyymmdd] 以下のようなオプションがあります。 -v verbose mode. 実行時に色々な表示を行います。 -a Palm に MHC のデータを追加 (Append) します。 つまり全ての Palm 上のデータは保存されます。 -i Palm に MHC のデータを導入 (Install) します。 つまり全ての Palm 上のデータは消去されます。 MHC を主に使っているユーザであれば、 通常はこれを利用するでしょう。 -n 実行の過程を示すだけで、実際の転送は行いません。 mhc2palm が何をするのかを見るのに有効でしょう。 -d dev Palm と繋っているシリアルポートを指定します。 デフォルトは /dev/pilot です。 (Cygwin ユーザは /dev/com1 等になるでしょう) -r dir MHC のデータを保存しているディレクトリを指定します。 デフォルトは ~/Mail/schedule です。 YYYYMMDD-yyyymmdd MHC から転送するデータの範囲を指定します。 デフォルトは、3ヶ月前 〜 3ヶ月後です。 ** palm2mhc -- Palm のデータを MHC に転送する Palm/WorkPad のデータを MHC に転送するコマンドです。 pilot-link の libpisock を必要とします。 usage: palm2mhc [-a | -u] [-n] [-i] [-d dev] [-r dir] -a 全ての Palm のデータを MHC に追加します。 Palm ユーザが最初に MHC を使い初めるときに有効でしょう。 -u Palm のデータのうち、更新されたデータのみを MHC に 追加します。 -n 実行の過程を示すだけで、実際の転送は行いません。 palm2mhc が何をするのかを見るのに有効でしょう。 -i インタラクティブに実行します。MHC にデータを追加する各々の データについて、ユーザに確認を行います。 -d dev Palm と繋っているシリアルポートを指定します。 デフォルトは /dev/pilot です。 (Cygwin ユーザは /dev/com1 等になるでしょう) -r dir MHC のデータを保存するディレクトリを指定します。 デフォルトは ~/Mail/schedule です。 ** adb2mhc の使い方 adb2mhc は、HP200LX のスケジュールソフト用データ (adb ファイル) を MHC にコンバートするプログラムです。 % adb2mhc --mhc-dir /tmp/schedule appt.adb のようにすると、/tmp/schedule 以下に MHC 形式のファイルが多数生成されます。 ** mhc2ol -- MHC のデータを Outlook に転送する mhc2ol は、MHC のスケジュールを、Microsoft 社のスケジュール管理ソフト Outlook に転送するスクリプトです。Outlook の OLE コントロールを利用し ているため、Windows マシンでしか動きません。 詳しくは、00readme.w32.jis を参照してください。 usage: mhc2ol [-a | -i | -N] [-n] [-r dir] [-c category] [YYYYMMDD-yyyymmdd] 以下のようなオプションがあります。 -v verbose mode. 実行時に色々な表示を行います。 -a Outlook に MHC のデータを追加 (Append) します。 つまり全ての Outlook 上のデータは保存されます。 -i Outlook に MHC のデータを導入 (Install) します。 つまり全ての Outlook 上のデータは消去されます。 -N スケジュールのタイムスタンプを比較して、必要最小限 のスケジュールを Outlook に転送します。通常はこの オプションを利用します。 -n 実行の過程を示すだけで、実際の転送は行いません。 mhc2ol が何をするのかを見るのに有効でしょう。 -c Outlook に転送する MHC スケジュールのカテゴリを、 Ruby の正規表現で指定します。 -r dir MHC のデータを保存しているディレクトリを指定します。 デフォルトは ~/Mail/schedule です。 YYYYMMDD-yyyymmdd MHC から転送するデータの範囲を指定します。 デフォルトは、3ヶ月前 〜 3ヶ月後です。 ** experimental/gp2mhc -- Giga Pocket to MHC の使い方 一部の人には有名な TV ガイドの番組表で、VAIO のハードディスク録画予約 (Giga Pocket) 対応ページってのがあるようです。例えば、福岡版だと http://210.152.244.34/fukuoka/table/ この番組表で、目当ての番組の [予約] という所をクリックすると、 ---------------------------------------------------------------- Content-type: application/x-tv-program-info; charset=shift_jis version: 1 station: RKB year: 1999 month: 09 date: 02 start: 13:30 end: 14:00 program-title: キッズ・ウォー 生稲晃子 川野太郎 井上真央ほか ---------------------------------------------------------------- みたいなのを送ってくるようです。 gp2mhc は、こいつをパーズして MHC に入れるスクリプトです。 Navigator の [編集] -> [設定] -> [Navigator] -> [アプリケーション] から、 MIMEタイプ: application/x-tv-program-info アプリケーション: /path/to/gp2mhc %s としておくといいでしょう。 ** experimental/my-meeting2000 ruby-gtk を必要とします。 Meeting2000 自体の開発は終了して、別なプロジェクトが立ち上がっているら しいです。ので、このコマンドは、日の目を見ないままになるでしょう。 Meeting2000 とは、ruby で書かれた meeting の時間調整サーバです。 イベントでときどき使うのですが、自分の予定表と付き合わせながら、これに 入力するは意外と疲れます。 my-meeting2000 は、Meeting200 が吐く入力フォームに、 自分の予定を並べて見せるプロキシです。 認証は localhost からかどうかのチェックのみですので、 他人からつながれると、自分のスケジュール丸見えです。 localhost には自分しかいないような環境で使ってください。 以下 Navigator での設定。 1. 適当な proxy.pac を書いて、これを Navigator の proxy 設定 に指定します。file:/home/nom/proxy.pac とでも。 function FindProxyForURL(url, host) { // 例えば、*:8080 へのアクセス時のみ、 // localhost:33333 で動いている my-meeting2000 を通す // を手抜き表現すると、以下のようになる。 // if (shExpMatch(url, "*:8080/*")) return "PROXY localhost:33333; DIRECT" // ここからは普段使っている Proxy があれば、それ用の設定 // にしておく。この例では、普段の Proxy なし。 return "DIRECT"; } 2. この script を localhost で動かします。toggle button の Conversion を on にしておきます。 3. Meeting2000 にアクセスしてみます。予定入力一覧の脇に自分の予定が 並んで表示されるので、入力がしやすいでしょ? EOF