December 18, 2007

gtk+ immoduleをXSETTINGS経由で変更する

trunkにcommitされた。

December 17, 2007

破壊的代入とcopy-sequence

何も知らずにこんなコードをEmacs Lisp上で書いた。便宜上サンプルコードとしてよりシンプルになってはいるけど。

(defun foo ()
(let ((bar '(a b c)))
(if (eq (car bar) 'a)
(prog2
(setcar bar 'e)
(foo)))
bar))

なんとなくbarには常に(a b c)が代入されて無限ループになりそうなもんだけど、最初の呼び出しも含めて実際にはfooは2回しか呼ばれない。これは'(a b c)が実行時に生成されるんではなくて、読み込み時に生成されるからなんだそうな。これを回避するにはlistやconsといった関数を呼び出せばいいようだ。ただこれらの書き換えが出来ない場合には、copy-sequencecopy-treeといった関数を使うことで手間を省くことが出来る。

勉強になった。

mew-ical.el

先日の続き。認証の有無を認識するようにして、必要ならパスワードの入力を求めるようにしてみた。それからMETHOD:REPLYな.icsファイルの場合には、リクエストに対する相手のステータスを表示するようにした。

ファイルは前回と同じ場所に置いた。

December 15, 2007

富良野メロンパン

近所のコジマ前に移動販売がきてた。コンビニなんかでよく見るメロンパンとはちょっと違ってて、メロンの味が結構主張してる感じ。中はふかふかで悪くなかった。とはいえパンなので、時間とともに固くなってしまうので、焼きたてをとっとと食べるのが吉。

December 14, 2007

MewでiCalendar形式のファイルに対応させる

必要に迫られてMewでiCalendar形式のファイルが添付されてきた場合に、設定したカレンダーサーバに対して予定の登録および承認の可否をできるようにしてみた。現時点でできることは、

  • iCalendarの情報を(気持ち)分かりやすく表示する
  • 自分のカレンダーサーバへ登録する
  • ステータスの更新
  • Mewからカレンダーサーバへアクセスする
できないことは、

  • 承諾の可否を選択した後、要求者に対してメールで返信すること
  • 排他制御
  • カレンダーサーバに対する認証の有無の自動検出
  • ローカル時間で表示すること
  • その他多数
現状だととりあえず運用でいくらかカバーできるというレベル。動かすために必要なものは、

  • emacs
  • mew
  • browse-url
  • curl
  • iTIPをサポートしたカレンダーサーバ
ものはこちらからどうぞ。