2004年11月28日

howmz.el

howm のメニュー (C-c , ,) にザウルスのカレンダー、ToDoの内容を表示する Emacs Lisp。

howmz.el

別途、howm, csv.el, zdbat が必要です。

軽い気持ちで書き始めたら、繰り返し日程の扱いがえらく大変で困りました。繰り返しのルールそのものを変換するだけの ZiCal の場合と違って、ルールに従って自力で展開しないといけないので。いちおううまく動いていそうですが、まだ怪しいかも。

Posted by Hiroyuki KUROSAKI at 2004年11月28日 21:27 このエントリーを含むはてなブックマーク
この記事の TrackBack URL:
http://noir.s7.xrea.com/mt/mt-tb.cgi/135
Comments

SL-A300から全データ移行を行ったら、とても重たくなってしまったので、とりあえずキャッシュをつけました (Revision 1.2)。それでも最初のメニュー表示のときには2分近く待たされますが…。

Posted by: noir123 on 2004年11月29日 21:23

csv.elをよく見ると、データ中のダブルクオートは、ダブルクオート2つではなくて、バックスラッシュでエスケープするものと解釈しているようなので、zdbatの出力とは合わないかもしれません。

icalendar.el といい、Ulf Jasper さんのコードはいつもなんか惜しいなぁ。

Posted by: noir123 on 2004年11月29日 21:32

自前でCSVを解釈するようにしたので、csv.el は不要になりました (Revision 1.3)。速さ (遅さ) はあまり変わりません。

Posted by: noir123 on 2004年11月30日 21:40

バグフィックス (Revision 1.5)。今日より後から始まる繰り返し日程が表示されませんでした。

Posted by: noir123 on 2004年12月07日 22:56

上記は説明が逆でした。今より前に始まった繰り返し日程が表示されない、でした。

その他速度向上のためにいろいろ修正しています。

Posted by: noir123 on 2004年12月07日 23:50

howmzのインストールなのですが、placeholderの設置とPathを通すにはどのようにすればよいのでしょうか。howm-menu.elとかをみてもよくわからないので

Posted by: T.Okano on 2004年12月10日 13:14

T.Okanoさん (EBtの作者の方ですよね?) こんにちは。
興味をもっていただきありがとうございます。

%ztodo と %zschedule を書くところですが、howm のメニューファイル (デフォルトでは ~/howm/0000-00-00-000000.howm だと思います) を
開いて、%todo や %schedule の後ろの行などに書いておけば、C-c , , したときにそこに表示されることになります。

また、howmz.el は Emacs の load-path の通っている場所に置いてください。X/Qt Server Project で配布されている Emacs だと、/home/QtPalmtop/share/emacs/site-lisp あたりが適当だと思います。

Posted by: noir123 on 2004年12月10日 17:17

それから、Zaurusにhowmをインストールした場合、データを置くディレクトリがデフォルトの ~/howm のままではすぐに容量不足になってしまいそうなので、私は ~/Documents/howm に置くことにし、~/.emacs で
(setq howm-directory "~/Documents/howm")
と設定しています。

Posted by: noir123 on 2004年12月10日 17:22

ありがとうございます。ちなみにEbtの作者はOkadaさんで私はEbtのサイトにあーだこーだと質問している方で、まったくLinuxはずぶの素人です。Emacsも少しずつ勉強しながら、URLに記載のMobileMemoというWikiにその教わったことを書いています。今回もhowmを知り、いろいろと試してみてうまくいったことをWikiに上げたいと思ってます。Kuro-sanのサイトでext3化などを勉強させてもらってます。

Posted by: T.okano on 2004年12月11日 00:09

howmの取り扱いですけれど、なかなかlinuxで修正をかけたりできないので、TreeExploreで/hdd3/Documents/howmに移動して、リンク貼り付けでもとのところにシンボリックリンクを貼るというように、素人くさい手段でいかにZaurusSL-C3000を活用するかをかんがえているようなわけです。

Posted by: T.Okano on 2004年12月11日 00:13

大変失礼いたしました…。MobileMemoのほうも拝見しました。

Posted by: noir123 on 2004年12月11日 06:40

howmzの設定をしないでC+c,,のときに
「Fontifying block...(void-function nil)と表示され
howmz.elに記載されている.emacsへの追加部分を加えた後起動すると
「Error in init file:Symbol's value as variable is void:howm-huge-」と表示されます

Posted by: T.Okano on 2004年12月12日 13:53

debaug-initオプションでみると、一部バイナリーのようなので
そこを省いて記載すると
Debugger entered--Lisp error:(void-variable howm-huge-)
byte-code(略)
[current-load-list howm-huge- howm-menu-file default-boundp
set-default nil howm-menu-name-format
"*howmM:%s*" howm-menu-schedule-days 7
howm-menu-schedule-days-before 0 howm-menu-todo-num 50 howm-menu-todo-priority howm-menu-expiry-hours howm-menu-hook howm-menu-keyword-regexp "^%.*%$" howm-menu-top "%menu%"] 3)
require(howm-menu)
eval-buffer(#> nil "howmz" nil t)

;;; Reading at buffer position 1753

load-with-code-conversion("/opt/QtPalmtop/share/emacs/site-lisp/howmz.el"
"howmz" nil t)
require(howmz)
eval-buffer(# nil "~/.emacs" nil t)
;;; Reading at buffer position 7998
load-with-code-conversion("/home/zaurus/.emacs" "~/.emacs" t t)
load("~/.emacs" t t)

中略

[init-file-user system-type user-init-file-1
user-init-file otherfile source ms-dos "~"
"/_emacs" windows-nt directory-files "~"
nil "^\\.emacs\\(\\.elc?\\)?$" "~/.emacs" "~"
"^_emacs\\(\\.elc?\\)?$" "~/_emacs" "~/.emacs" vax-vms
"sys$login:.emacs" "~" "/.emacs" t
load expand-file-name file-name-nondirectory file-name-as-directory
".emacs.d" file-name-directory file-name-extension "elc"
file-name-sans-extension ".el" file-exists-p file-newer-than-file-p message "Warning: %s is newer than %s" sit-for 1 assoc "default" alt custom-file load-history inhibit-default-init inhibit-startup-message] 8]() command-line() normal-top-level()

というようなメッセージがでています。

Posted by: T.Okano on 2004年12月12日 14:33

howm-reminder.el に定義されている howm-huge- という変数を、howm-menu.el が参照していて、それが howm-reminder.el の読み込み前なのが原因のようです。

とりあえず、~/.emacs で
(require 'howmz)
の前に
(require 'howm)
を入れてみてください。

Posted by: noir123 on 2004年12月12日 17:23

(require 'howm)を書くとCannot open load file と出ますね。なんでみつからないのだろ。

Posted by: T.Okano on 2004年12月12日 19:31

PCで解凍してみると徒然な覚書さんのPackageにはhowm.elは入ってないですね。tarで落としたほうにはhowm.elがあるのですが。この辺の違いでしょうか

Posted by: T.Okano on 2004年12月12日 20:02

徒然な覚書さんのところで配布されているのは 1.1.2 ですね。私のほうで動作確認しているhowmのバージョンは 1.2 です。

ソースからだとたしか make コマンドがないとインストールできないので、make がない場合は、howm-1.2 の doc/README.ja.rd の「手動インストールの場合」を参考にするとよいでしょう。

Posted by: noir123 on 2004年12月12日 21:17

一度アンインストールして手動インストールに変更してみます。

Posted by: T.Okano on 2004年12月12日 21:19

howm 1.2 の ipk を作ってみました。

http://noir.s7.xrea.com/pub/zaurus/howm_1.2-1_arm.ipk

これでうまくいきますか?

Posted by: noir123 on 2004年12月12日 21:41

howmのサイトを見ると昨日付けで 1.2.1 が出てますね。ううむ動作確認しなくては。

Posted by: noir123 on 2004年12月12日 21:48

さっそく手動インストールしました。
今度はSCANまでいったのですが、menuに書き込んだ%zscheduleのところが%here%(howmz-menu-schedule)と表示され、同様に%ztodoも%here%・・・と表示、下にArgs out of range:"20050731",13,15というコメントが出てしまいます。

Posted by: T.Okano on 2004年12月12日 22:00

すみませんちょっとずれてました。再度IPKにインストールしなおします。

Posted by: T.Okano on 2004年12月12日 22:24

ipkを入れなおしても結果としては同じでした。
zdbatで単純にdatebookをcsv化するときに、エラーをたくさん出しながら最後にCSVができるようなのですが、スケジュールデータの問題かもしれません。

Posted by: T.Okano on 2004年12月12日 22:47

zdbatがエラーをたくさん出すのはそういう仕様らしいです。
たぶんzdbatの出力データを解釈するところで何か問題が起こっているのだと思います。調べてみます。

Posted by: noir123 on 2004年12月12日 22:49

カレンダーのデータを全部削除して、新しいデータだけにしてみました。するとうまく表示されました。いろいろお手数をおかけしました。
もともとこのカレンダーデータはPalm、途中シグマリオン、CLIEと歴史を重ねて生きているので、いろいろとフラッグなどが挿入されているので、正月休みにでも一度全部CSVにしてデータを再構築したほうがよさそうです。

Posted by: T.Okano on 2004年12月12日 23:05

うまくいきましたか。
今回の問題とは直接関係ないですが、バグが一つありましたので修正しました (Revision 1.7)。繰り返し日程の最後の日が表示されませんでした。

Posted by: noir123 on 2004年12月13日 08:23

いろいろとありがとうございました。まさかipkまで作っていただけるとは思ってませんでした。
ipkの作成が自分でできるようになると良いのですが、そのあたりは今後の課題ということで。
howmなどemacsでできることをいろいろ追求してみたいと思ってます。今後もよろしくお願いします。

Posted by: T.Okano on 2004年12月13日 10:29

こんばんは
Todoの件ですが、全部削除したうえで、Qualenderで置き換えたTodoに新しく1件登録し、howmzで読み込むとArgs out of range:"20041217",13,15というエラーが出てしまいます。
Qualenderをはずすとうまくいくようです。

Posted by: T.Okano on 2004年12月14日 23:35

ありがとうございます。Qualendarが書き込むデータのどのへんが違っているのか、調べてみます。

Posted by: noir123 on 2004年12月15日 12:04

日付時刻を文字列からEmacs Lispの内部データ型に変換するところを修正してみました (Revision 1.8)。
Qualendar をインストールしていないので実際に試してはいないんですが、これでうまくいくかもしれません。

Posted by: noir123 on 2004年12月16日 10:02

そうそう、howm-1.2.1 も ipk にしました。
http://noir.s7.xrea.com/pub/zaurus/howm_1.2.1-1_arm.ipk

Posted by: noir123 on 2004年12月16日 10:07

メニューコマンド (カーソルを置いてEnter) で Qtopia のToDo、カレンダーが実行できるようにし、あわせて ~/.emacs での設定も (require 'howmz) だけで済むように変更しました (Revision 1.9)。詳細は冒頭のコメントに書いてあります。

Posted by: noir123 on 2004年12月16日 21:31

noirさんありがとうございました。Qualendarのtodoの連携確認しました。また、インストールがシンプルになったこと。
それと、ジャンプで直接カレンダーとToDoが開くというのも面白いアイデアで大変便利だと思います。カレンダーは母艦との連携があるので、QTの方がメインですし、Todoは、メインはQtですが、覚書やメモなどでは、howmも併用する環境なので大変便利です。

Posted by: T.Okano on 2004年12月16日 23:44

howmのメニューに表示されるスケジュール (%schedule) と同じものを
Qtopiaのカレンダーにエクスポートするコマンド (M-x howmz-export-schedule)
を追加しました (Revision 1.11)。

登録されたエントリのメモ欄には (howm) という文字列が入り、
次回エクスポート時にはこれをチェックしていったん削除します。
削除したくなければメモ欄を編集してください。

[2004-12-31 12:00]! 会議 のように、〆切 (!) 形式で書いた
ものは、アラームが鳴るように設定されます。デフォルトは0分前ですが、
変数 howmz-export-schedule-alarm-minute で変更できます。

まだ十分にテストしていないので、~/.emacs で
(setq howmz-use-dangerous-feature t)
と書いておかないと、何もしないようにしてあります。

登録したスケジュールが文字化けしていたり、
ゴミデータが登録されてしまうことがあるようです。
また、PCとのシンクロナイズを行っているときの影響も不明です。

Posted by: noir123 on 2004年12月25日 14:22

howm-1.2.2 ~ 1.2.3 で howmz を使うには
(defalias 'howm-view-sort-items 'howm-sort)
を書き加えないといけないようです.
次の howm-1.2.4 では直る予定.

Posted by: ひ on 2005年05月29日 20:33
Post a comment

サイン・インを確認しました、 さん。コメントしてください。 (サイン・アウト)

(いままで、ここでコメントしたとがないときは、コメントを表示する前にこのウェブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)


情報を登録する?