2006.02.16

Honma's Computer Life Monthly Index

以前、http://member.nifty.ne.jp/honmat/diarylist.html で公開していた日記。

Honma's Computer Life Monthly Index.

この member.nifty.ne.jp というサーバーがなくなってから、ハードディクスの肥やしにしてあったのを、あらためて公開。リンクなど古いかも。できるだけ、自分の管理しているリンク先にはちゃんとリンクするようにしてみてはある。リンク切れやらおかしなところがあれば、お知らせいただけるとありがたい。

情報は、古いが自分にとってはいろいろ思い出があるし、役に立ちそうなこともある。

| | コメント (0) | トラックバック (0)

2004.12.16

LinuxZaurus 上の emacs 内で EPWING な辞書が引きたい。Private Packages for Zaurus SL-C series

下のリンクが参考になりそう。時間ができたら、実行するつもり。

Private Packages for Zaurus SL-C series

| | コメント (0) | トラックバック (0)

2004.12.09

pobox-el

Linux Zaurus (SL-C860) 上の emacs で増井さんの POBox の emacs 用のクライアントを使っていたのだが、小松さんの pobox-el というのが便利そうだったのでこちらに乗り換えてみた。なかなか快適だ。

しかし、pobox-dabbrev という機能が働かなかったのでいろいろ調べたら kakasi の kanwadict の置き場所が問題であったらしいことが分かった。

小松さんの pobox-el 1.16.1 を suikyo や mell や kakasi などのライブラリも含めてインストールしておいて、適当なバッファで適当な文章を入力しておいておもむろに M-x kakasi-wakati とすると、/opt/QtPalmtop/share/kakasi/kanwadict: No such file or directory と起こられる。そこで、kanwadict のありかをつきとめて、シンボリックリンクをはった。

cd /opt/QtPalmtop/share
ln -s /usr/share/kakasi kakasi

すると pobox-dabbrev が動いているようだ。同一バッファ内の文字列を pobox の変換の候補として補完してくれる。なかなか素敵な機能だ。

| | コメント (0) | トラックバック (0)

2004.11.05

HandEra ネタを連発で。新しいOSだそうだ。

OS4.1 build 922, dated 20 September 2002 というものがあるらしい。っていうか、入手した。試していない。Bluetooth に対応したらしい。一応、今使ってるPHSは、Bluetooth 対応のDocomoの633Sだから、試してみたい気もするが、CFかSDなBluetoothカード買わなきゃいけないし。うーむ。投資するだけの価値ないよね。

しかし、つぶれた会社なのにOSのアップデートだけは、細々と続いているってどういうことなのか?元社員が趣味としてやっているのかね?そのうち復活するのかな?

今じゃ、ザウルス (SL-C860)一点張りだからね。emacs + howm があれば、大丈夫っていうか。

| | コメント (0) | トラックバック (0)

2004.06.02

howm で、enriched-mode が使えるとうれしいかも。

howm: Hitori Otegaru Wiki Modoki

howm なファイル(つまり、*.howm なファイル) を、新規に(つまり、C-c , c して)作って、M-x enriched-mode として、適当な色を付けようかと思っても、つかない。でも、いったん閉じて、C-x C-f して開くと、ちゃんと色が見える。

なんとか howm と enriched-mode と共存させられないものだろうか?

| | コメント (0) | トラックバック (0)

2004.04.18

「emacs の M-x calendar で日本の祝祭日を」のその後

2003.1.23にemacs の M-x calendar で日本の祝祭日を。という記事を書いた。しかし、最近、海の日も、float することに気がついた。2003年からであるらしい。


| | コメント (0) | トラックバック (0)

2004.04.06

howm のメニュー。行を折り返すと見にくいこともあるので。

%eval%(toggle-truncate-lines) みたいにしてみたら、なんだか変。で、よく、説明を読んでみると、この %eval% ってのは、メニューを呼ぶ直前に開いていたバッファで評価されるようになっていることが分かった。

そこで、howm-menu.el を眺めてみて、下のようになっていたので、...

(defvar howm-menu-command-table-common
  '(
    (("%eval%\\(.*$\\)" 1) howm-menu-eval previous)
    (("%call%\\(.*$\\)" 1) howm-menu-call previous)
     ))

.emacs に下のように書き加えて、...

(setq howm-menu-command-table-common
  '(
    (("%evalC%\\(.*$\\)" 1) howm-menu-eval current)
    (("%eval%\\(.*$\\)" 1) howm-menu-eval previous)
    (("%call%\\(.*$\\)" 1) howm-menu-call previous)
     ))

さらに、メニューに下の一行を加えた。

%"1[改行トグル]"%evalC%(toggle-truncate-lines)

これで、メニューの中で、1を押せば、トグルする。

本当は、.emacs に (setq howm-menu-toggle-invisible "%|") と書いた上で、下のようにする方がよさそうなのだが、なぜか %| 以降が、不可視にならない。なぜだろう。

%"1[改行トグル]"%|%evalC%(toggle-truncate-lines)

ちなみに、howm は、1.1.1 だ。

| | コメント (0) | トラックバック (0)

2004.03.20

emacs の diary に某非常勤先の出講日を設定してみる。

emacs の diary のエントリーには、emacs-lisp の式を書くこともできる。その式を評価してみて、t が帰るとその日のエントリになる。

例えば、某非常勤先で授業をする日は、下のように書ける。
date という「変数」(定数か?)のことなどは、diary-lib.el の該当箇所をよく読んでほしい。

%%(let ((dayname (calendar-day-of-week date)))
  (and (or (diary-block 4 12 2004 7 31 2004)
	   (diary-block 9 24 2004 12 22 2004)
	   (diary-block 1 11 2005 1 31 2005)
	   )
       (= dayname 3)
       (not (diary-date 5 5 2004))
       (not (diary-date 11 3 2004))
       )
  ) 某大学の授業

つまり、まず、dayname という変数に、(calendar-day-of-week date) の結果を let する。
calendar-day-of-week は、日付を入力にして、その曜日をあらわす整数(0 が日曜で6まで)を返す関数。
だから、dayname には、曜日情報が代入されることになる。後で、曜日判定に使う。

授業期間は、「4月12日から7月31日まで」か「9月24日から12月22日まで」か「1月11日から1月31日まで」かでその中の (= dayname 3) dayname が 3 つまり水曜日である日が授業をする日。これで済めばいいのだが、そうはいかない。本当は、祝日、祭日を判定する関数があればいいのだが、上のように力技。

diary-file に emacs-lisp を書く技を使っている人はあまりいないのだろうか。


| | コメント (1) | トラックバック (0)

2004.03.10

bibtex-mode で yomi などのオプショナルフィールドを付け加える方法。

情報の入手先忘れた。

(setq bibtex-user-optional-fields
'(("annote" "Personal annotation (ignored)")
("yomi" "Yomigana")
("location" "where it is (ignored)")
("memo" "Memorundum (ignored)")
))

| | コメント (0) | トラックバック (0)

SKK のプログラム実行変換を利用して、howm 形式の日付を入力。

SKK の マニュアル (M-x info の SKK の項参照)によると、 SKK には、「プログラム実行変換」という仕組みがある。これを使えば、簡単に[2004-03-10]みたいな日付を入力できることに気がついた。

適当なエントリーに適当なS式、例えば、(format-time-string "[%Y-%m-%d]") とか (format-time-string "[%Y-%m-%d %H:%M]") を登録すれば、良い。

登録の仕方などは、各自調べてほしい。さらに、キーストロークを少なくするためには、 SKK abbrev mode を使うのが良いかも。これは、かなモードの状態で / (半角のスラッシュ)を入力することで、移行するモードでアスキー文字を見出しとして変換できる。

参考のために format-time-string を M-x apropos してみた結果を引用しておくことに。

===== format-time-string を M-x apropos してみた結果の引用始め =====
format-time-string is a built-in function.
(format-time-string FORMAT-STRING &optional TIME UNIVERSAL)

Use FORMAT-STRING to format the time TIME, or now if omitted. TIME is specified as (HIGH LOW . IGNORED) or (HIGH . LOW), as returned by `current-time' or `file-attributes'. The third, optional, argument UNIVERSAL, if non-nil, means describe TIME as Universal Time; nil means describe TIME in the local time zone. The value is a copy of FORMAT-STRING, but with certain constructs replaced by text that describes the specified date and time in TIME:

%Y is the year, %y within the century, %C the century.
%G is the year corresponding to the ISO week, %g within the century.
%m is the numeric month.
%b and %h are the locale's abbreviated month name, %B the full name.
%d is the day of the month, zero-padded, %e is blank-padded.
%u is the numeric day of week from 1 (Monday) to 7, %w from 0 (Sunday) to 6.
%a is the locale's abbreviated name of the day of week, %A the full name.
%U is the week number starting on Sunday, %W starting on Monday, %V according to ISO 8601.
%j is the day of the year.

%H is the hour on a 24-hour clock, %I is on a 12-hour clock, %k is like %H only blank-padded, %l is like %I blank-padded.
%p is the locale's equivalent of either AM or PM.
%M is the minute.
%S is the second.
%Z is the time zone name, %z is the numeric form.
%s is the number of seconds since 1970-01-01 00:00:00 +0000.

%c is the locale's date and time format.
%x is the locale's "preferred" date format.
%D is like "%m/%d/%y".

%R is like "%H:%M", %T is like "%H:%M:%S", %r is like "%I:%M:%S %p".
%X is the locale's "preferred" time format.

Finally, %n is a newline, %t is a tab, %% is a literal %.

Certain flags and modifiers are available with some format controls.
The flags are `_', `-', `^' and `#'. For certain characters X, %_X is like %X, but padded with blanks; %-X is like %X, ut without padding. %^X is like %X but with all textual characters up-cased; %#X is like %X but with letter-case of all textual characters reversed.

%NX (where N stands for an integer) is like %X, but takes up at least N (a number) positions.

The modifiers are `E' and `O'. For certain characters X, %EX is a locale's alternative version of %X; %OX is like %X, but uses the locale's number symbols.

For example, to produce full ISO 8601 format, use "%Y-%m-%dT%T%z".
===== format-time-string を M-x apropos してみた結果の引用終わり =====

| | コメント (0) | トラックバック (0)

2004.02.29

memo:Ulf Jasper's Emacs stuff

Ulf Jasper's Emacs stuff

| | コメント (0) | トラックバック (0)

2004.02.23

howm が 1.1.1 になったし、howm-diary.el (仮称) の修正されたようだし。diary-file を開く時、howm-set-mode にする。

ほんまたけるのココログ: howm と calendar と diary の連携その後。

howm のバージョンが、1.1.1 になったし、howm-diary.el (仮称)もすこし変更されてたので、入れなおし。というか、howm-diary.el (仮称) の中の howm-mark-calendar-date という関数の中で (require 'howm-reminder) するようになったということか。そもそも、howm 1.1.0.3 では、howm-reminder.el というファイルがなかった。うまく動かないわけだ。

(defadvice make-diary-entry
  (after howm-mode activate)
  (text-mode)
  (howm-set-mode))
;;  howm-set-mode);; [2004-02-23]上の行のように修正

こうしないと、モードが変わらないのね。

ありゃ、todo のところに、「済み」の項目が現れない仕様になったのね。うーむ。

変数 howm-menu-todo-priority に適当な値を setq すれば、いいのか。なるほど。

| | コメント (0) | トラックバック (0)

2004.02.22

calendar 関係

Meadow/Emacs memo http://www.bookshelf.jp/soft/meadow.html#SEC_Top の 37.6 http://www.bookshelf.jp/soft/meadow_37.html#SEC504 でmy-insert-day というのが紹介されているが、ちょっと困ったことがあった。

というのは、これ、一番先頭で、(require 'calender) されていて、そのせいで、calendar 用の設定(具体的には、japanese-holidays.el)と干渉してしまった。japanese-holidays.el の load を先にしておかなければならないような
感じ。

設定ファイル .emacs の中での順序によって、load する順序を決定するというやりかたではなくて、もっと論理的にする方がよかろう。ということで、require するよりは、eval-after-load を使う方がよかろう。これなら、emacs の中での位置に問題はなくなる。

| | コメント (0) | トラックバック (0)

2004.02.13

howm と calendar と diary の連携、さらに続き。

ほんまたけるのココログ: howm と calendar と diary の連携

さらに、続き。

howm-menu-diary の中の let* に、下を加えた。

(list-diary-entries-hook 'sort-diary-entries)

以前は、(list-diary-entries-hook 'ignore) としていたが、上のようにすると、日付だけではなく、時刻でもソートしてくれる。

howm-open-diary をまねて、別の関数 (仮に howm-tkr-open-diary としてある)をでっちあげてみた。
何を変えたかうれしいかというと、diary-file に下のように日付が違って、他が同じエントリがあると、 howm-open-diary だと行き先を間違える可能性があるが、これを解決するために、howm-tkr-open-diary では、行き先の検索を howm-view-search に任せるので、行き先を間違えるってことがなくなる。ひとつステップ増えるけど。

[2004-02-23]@14:30 教授会
[2004-03-05]@14:30 教授会

つまり、こんな感じ。

(defun howm-tkr-open-diary (&optional dummy)
  "Pick up the string str for a diary entry listed in the howm-menu buffer 
and search the str in the diary-file using howm-view-search.  See also 
howm-mode.el."
  (interactive)
  (let ((date-str nil) (str nil))
    (save-excursion
      (beginning-of-line)
      (when (re-search-forward
             ">>d \\[[-0-9]+\\] " nil t)
        (setq str
              (concat
               "^.+"
               (buffer-substring-no-properties
                (point) (line-end-position))))
	(howm-view-search str diary-file)))))

その上で、add-diary-action-lock-rule の定義の中の、 howm-open-diary を howm-tkr-open-diary にして、こいつを呼ぶようにする。

| | コメント (0) | トラックバック (0)

2004.02.11

memo: Emacs Lisp プログラミング:

Emacs Lisp プログラミング:

| | コメント (0) | トラックバック (0)

2004.02.08

Amazon.co.jp のアソシエイト・プログラム

Meadow や Emacs Lisp のことでお世話になっているこせきさん(と言っても面識があるわけではないが)の日記のページの「ぶっちゃけアマゾンアソシってもうかるの?」(2004年2月2日)に、アマゾンのアソシエイト・プログラムの運用のためにためになるコードが紹介されていた。

ちょっと、改造してみた。直接、href を作ってしまう。

(defun tkr-link-Amazon ()
  (interactive)
  (let (end isbn)
    (end-of-line)
    (setq end (point))
    (beginning-of-line)
    (setq isbn (buffer-substring-no-properties (point) end))
    (insert "<a href=\"http://www.amazon.co.jp/exec/obidos/ASIN/")
    (end-of-line)
    (insert "/associate-ID/ref=nosim\">")
    (insert (format "<img alt=\"ISBN %s\" border=\"0\" src=\"http://images-jp.amazon.com/images/P/%s.09.MZZZZZZZ.jpg\">" isbn isbn))
    (insert "</a>")))

associate-ID は、自分のものにするのを忘れずに。

ISBN を入力して、実行すれば、リンクが出来上がる。実際は、適当なキーにバインドして、使うのが便利だろう。

| | コメント (0) | トラックバック (0)

howm と calendar と diary の連携、その後。

2004年2月4日に、 「howm と calendar と diary の連携」という記事を書いたが、補足。

上の記事の通りに、設定して、M-x calendar して、適当な日付で、id (insert-diary-entry) を実行すると、howm 形式(とでもいうのだろうか) [2004-02-08] 式の日付が入る。その上、この書式で、d (view-diary-entries) でも、ちゃんと理解してくれる。

diary-file を howm が検索してくれる path の上に置けば、そのまま、howm のメニューに出てくるってことになる。

すごい。


| | コメント (0) | トラックバック (0)

2004.02.04

howm と calendar と diary の連携

37.6.1 howm と カレンダの併用 (2004/02/02) という記事。

これは、すばらしい。

私のページ
howm と diary と calendar と
([2004-01-18])
をご覧になって、思いつかれたとのこと。

で、使わせていただいて。(diary-to-howm みたいなやつを作りかけていたけど。)

まず、上記のページのコードを、howm-diary.el として、load-path 上に保存。
次に、.emacs に下を書き加える。
(下は、インデントなど示そうと思い、<pre></pre>してあるんだけど、ココログだとフォントが小さく見えるのかな?)


;; ;;;; howm と diary の連携 はじまり
(autoload 'howm-menu "howm-diary" "howm diary" t)
;;howm のメニューで d でカレンダー
(add-hook 'howm-menu-hook
'(lambda ()
(local-set-key "d" 'calendar)))
;;;;;;;;;;;;
;;;; 2ch から
; M-x calendar から M-x howm-from-calendar でその日を検索。
(defun howm-from-calendar ()
(interactive)
(let* ((mdy (calendar-cursor-to-date t))
(m (car mdy))
(d (second mdy))
(y (third mdy))
;; (key (format-time-string howm-date-format
;; (encode-time 0 0 0 d m y))))
;; オリジナルだと yyyy-mm-dd を検索するので、[yyyy-mm-dd HH:MM] も
;; 検索されて、ちょっとうっとしいので、下のように変更。[2004-02-23]
(key (format "[%s]" (format-time-string howm-date-format
(encode-time 0 0 0 d m y)))))
(howm-keyword-search key)))
(global-set-key "\C-c,f" 'howm-from-calendar)
(add-hook 'initial-calendar-window-hook
'(lambda ()
(local-set-key
"b" 'howm-from-calendar)))
;;; howm と diary の連携 おわり

さらに, howm のメニュー (~/howm/0000-00-00-000000.howm) に以下を追加。

[ diary ] (%sdays 日先まで表示)
%hdiary
-------------------------------------

で、C-c,, で、howm を起動してみると、下のようなエラー。

Symbol's function definition is void: howm-menu-display-number

で、メニューに加える部分を次のようにしたら、つまり、%s を取ったら、OK。その後、手で、14 と入力。

[ diary ] (14 days 日先まで表示)
%hdiary
-------------------------------------

さらに、M-x calendar して、m してみると、下のようなエラー。

Symbol's value as variable is void: howm-schedule-menu-types

で、よくわからないまま、関数 howm-mark-calendar-date の5行目と6行目をコメントアウト。
と、思ったけど、行の入れ替えかな?つまり、下のようにしたら、動いているようだ。

;; (howm-schedule-types
;; howm-schedule-menu-types)
;; 上の2行を下の2行と置き換え。
(howm-schedule-menu-types
howm-schedule-types)

さらに、私の場合、下の3行を書いたファイルを diary-file に #include しているのだが、...。

%%(diary-day-of-year)
%%(diary-sunrise-sunset)
%%(diary-phases-of-moon)

これらを展開した情報も howm のメニューに出てきてしまい、結構じゃまくさい。で、関数 howm-menu-diary の中の let* の中に、 (list-diary-entries-hook 'ignore) を加える。これをしないと、include-other-diary-files が、働いてしまうようだ。

しかし、これは、便利だ。メニューに diary の項目を表示させておいて、その行頭で、リターンすれば、diary-file の当該箇所にジャンプするって、とっても素敵だ。素の calendar/diary では、項目の挿入は簡単なのに、後からエディットしようとすると苦労していたので、革命的にすばらしい。

贅沢を言えば、diary-file 上のすべての項目をこの形式で表示するようなバッファを作るともっと便利かも。

さらに、下のような書式を理解して、しかるべく howm のメニュー上に表示できるとうれしいかも。

Feb 23, 2004@ 予定
Feb 23, 2004+7 todo
Feb 23, 2004! 〆切
Feb 23, 2004-1 覚書

さらに、C-c,, して、d すると、calendar が起動するのも、すばらしい。

| | コメント (0) | トラックバック (0)

2004.02.03

Ulf Jasper's Emacs stuff

あら、下のサイトの lookout.el ってのは、...。
Ulf Jasper's Emacs stuff

| | コメント (0) | トラックバック (0)

diary to Yahoo! Calendar 計画

emacs の calendar/diary から Yahoo! Calendar 用の CSV (Comma Separated Value)
ファイルにエクスポートするための emacs lisp を書いてみるのも面白そう。

Yahoo! Japan のカレンダーでは、インポートもエクスポートもできないようだが、
本家の Yahoo! Calendar では、インポートもエクスポートもできる。

CSV をエクスポートしてみると、下のような形式。

"Subject","Start Date","Start Time","End Date","End Time","All day event","Description"
"授業英作文","2004/2/3","13:00:00","2004/2/3","14:30:00","False","test note contents"

最初の行は、CSV field headers と呼ばれる。英語でなくてはならない。
次の行からがエントリー。

Yahoo! Calendar が吐いた CSV ファイルを diary にインポートするための
ツールも、簡単にできそうだ。elisp じゃなくて、perl とか awk とかを
使えば、もっと楽にできそうなきもする。

| | コメント (0) | トラックバック (0)

Angel's Egg - the home page of Eduardo Ochs (a.k.a. Edrx)

Angel's Egg - the home page of Eduardo Ochs (a.k.a. Edrx)

| | コメント (0) | トラックバック (0)

2004.02.02

diary-to-howm 計画

そういうのを作ってみようかと、いろいろ調べてみた。

なぜ必要か。

diary は、曜日名による予定、毎月同じ日の予定、ある日数おきの周期的予定などを扱うことができる。これは、howm にはないので、diary でやるのがよかろうと。

それから、calendar と連動して、予定のある日に色をつけたりできる。howm では、一行ずつの表示なので、味気ないっていうか、何週間か先のことが見えにくい。

メモは、いろいろなファイルに書き散らしてもいいような気がするが、予定は、ひとつのファイルの方がなんとなく安心。バックアップもファイルひとつコピーするだけだし。

● list-diary-entries について (diay-lib.el) ==> (1)
● diary-file について 特に各エントリーの形式について (calendar.el) ==> (2)
● howm とうまく連携するための diary-file の書き方について ==> (3)

(1) list-diary-entries について (diay-lib.el)

diary-lib.el 中で定義されている list-diary-entries は、下のように使う。

(list-diary-entries date number)

引数 date から引数 number 日分の日記のエントリーを日付順にして、リストとして返す。リストのそれぞれのエントリーは、((month day year) string specifier) のような形式。(month day year) は、そのエントリーの日付、string は、そのエントリーの内容、specifier は、いろいろ。(元のエントリーの diary-file での形式の日付が入るみたい。)この関数が偉いのは、diary-block などの関数を理解して、ちゃんと日付に変換してくれること。diary-block などについては、calendar.el 参照のこと。

calendar.el の中で定義されている calendar-current-date を使えば、現在の日付を得られる。なので、例えば、下の S 式を評価すると。今日から365日分の日記のエントリーのリストが得られる。

(list-diary-entries (calendar-current-date) 365)

list-diary-entries の結果得られるリストをいろいろ加工すれば、面白いことができる。

例えば、list-diary-entries の結果得られるリストの car を次々に取り出す。取り出したものは、、((month day year) string specifier) の形式なので、こいつの car を取り、適当に加工すれば、日付が出来上がり。cadr は、エントリーの内容。エントリの先頭には、時刻を入れる場合もある。(下記、「diary-file について 特に各エントリーの形式について」参照)なので、これを切り出すようにすれば、時刻つきのエントリーも作れる。

(2) diary-file について 特に各エントリーの形式について

エントリーは、それぞれ一行で書いてもいい。例えば下のように。これは、default の American style。

12/22/1988 Twentieth wedding anniversary!!
&1/1. Happy New Year!
10/22 Ruth's birthday.
21: Payday
Tuesday--weekly meeting with grad students at 10am
Supowit, Shen, Bitner, and Kapoor to attend.
1/13/89 Friday the thirteenth!!
&thu 4pm squash game with Lloyd.
mar 16 Dad's birthday
April 15, 1989 Income tax due.
&* 15 time cards due.

下のように最初の行に日付のみ(行末に空白も入れない)で、続く行に複数行のエントリーを入れることも。日付の行以外は、行頭に空白文字でインデントする必要あり。

02/11/1989
Bill Blattner visits Princeton today
2pm Cognitive Studies Committee meeting
2:30-5:30 Lizzie at Lawrenceville for `Group Initiative'
4:00pm Jamie Tappenden
7:30pm Dinner at George and Ed's for Alan Ryan
7:30-10:00pm dance at Stewart Country Day School

ただし、これは、list-diary-entries の返り値に複数行のエントリーを作るので、howm とはなじまないか?複数行のエントリーを処理するコードを書けばいいが、面倒くさい。

(3) howm とうまく連携するための diary-file の書き方について

エントリーの頭に @ などをつけることにする。エントリーの頭とは、日付、そしてもしあれば、時刻の後ろ。で、これを、list-diary-entries の car の cadr の中から切り出すような関数を書いておく。つまり例えば、下のように。

Feb 10, 2004 +7 一応締め切り
Mar 5, 2004 @ 友人がくる
Mar 5, 2004
14:30-16:00 @ 授業
Feb 4, 2004 howm 用のマークの無い行も許容。

で、これを加工して、下のようなファイルを出力するような関数を書く。

[2004-02-10]+7 一応締め切り
[2004-02-04] howm 用のマークの無い行も許容。
[2004-03-05]@ 友人がくる
[2004-03-05]@ 14:30-16:00 授業

以上、基本設計。

| | コメント (0) | トラックバック (0)

2004.01.30

meltin.net - emacs hacks

meltin.net - emacs hacks

| | コメント (0) | トラックバック (0)

2004.01.29

howm wiki - 併用ツール

howm と diary と calendar のことについて書いたら、早速、本家(?)に見つかってしまったらしい。下のリンク参照。

howm wiki - 併用ツール

howm が diary の項目を理解してくれるとうれしいんだけど。作者さんにおねがいしてみるか?自分で何とかするか。どうしよう。

| | コメント (0) | トラックバック (0)

2004.01.27

elisp calendar diary のバグ

[debian-users:12028] A bug in The GNU Emacs

| | コメント (0) | トラックバック (0)

2004.01.24

USB メモリかなんかに入れて、あっちこっちで、Meadow を使う。

USBメモリっていうかリムーバブルなメディアに Meadow 一式入れて持ち歩くってのは、便利そう。

下のサイトで、そういうことを試みてる。

Meadow in a bottle

で、問題は、環境変数っていうか、HOME やら PATH やらどうにかしたいわけだが、リムーバブルなメディアは、ドライブ名がマシンによって変わってしまう。

HOME=.
PATH=.
meadow.exe

meadow.exe のあるディレクトリに上のようなバッチファイルを作り、こいつから起動することにして、カレントディレクトリを HOME と PATH に設定しても良いのかもしれないが、そうすると、.emacs などのユーザーがいじるファイルといろんな *.exe なファイルがそのディレクトリにたまっていくことになりそう。

そこで、XP なら、こんな感じ。

set HOME=%CD%\HOGE
set PATH=%CD%;%windir%;%windir%\command
runmw32.exe

Me には、%CD% という組み込み(?)環境変数が使えないので、こんな感じ。

CWD CD
set HOME=%CD%\HOGE
set PATH=%CD%;%windir%;%windir%\command
runmw32.exe

CWD は、HiRo さんという方が作ったコマンド。カレントディレクトを環境変数に入れてくれるというもの。
入手は、http://aida.myhome.cx/soft/soft.htm

で、Meadow.exe のあるディレクトリの直下に hoge というディレクトリを HOME に設定できるし、パスも、マシンに依存せずにそれなりのところに通せる。

| | コメント (1) | トラックバック (0)

2004.01.23

emacs の M-x calendar で日本の祝祭日を。

M-x calendar すると 洋物の holidays が出てくる。で、日本の祝祭日をなんとかしたい。
自分で何とかしようと思うと、ハッピーマンデーとか結構大変。で、探すと、やはりすで出回っている。

;;; From: Takashi Hattori
;;; Subject: Japanese holiday
;;; Newsgroups: fj.editor.emacs
;;; Date: 20 Apr 1999 17:17:51 +0900
;;; Message-ID:
;;; Organization: ToM Research Group, Keio SFC

オリジナルは、下から get。
http://suiten.wig.nu/text/diary/2000/japanese-holidays.el

これだと 1999 年以前も成人の日と体育の日が float しちゃう。で、.emacs に下のように書けば、OK。
(下の例だと、japanese-holidays.el を ~/elisp/ の下に置くってこと。)


;; ここから .emacs に転記
(load "~/elisp/japanese-holidays.el")
;; さらに、http://www.ysnb.net/meadow/meadow-users-jp/2001/msg00048.html や
;; その辺りからのリンクの情報により、
;; 変数 general-holidays-JP を下のように再設定。
(setq general-holidays-JP
;; '((holiday-fixed 1 1 "元旦")
'((holiday-fixed 1 1 "元日")
;; (holiday-float 1 1 2 "成人の日")
;; さらに1999年までは、成人の日は float しなかったんで、下の修正。
;; (if (>= displayed-year 2000)
;; さらに...
(if (or (>= displayed-year 2000)
(and (= displayed-year 1999) (> displayed-month 6)))
(holiday-float 1 1 2 "成人の日") ; 1月の第二月曜日
(holiday-fixed 1 15 "成人の日"))
(holiday-fixed 2 11 "建国記念の日")
(holiday-fixed 4 29 "みどりの日")
(holiday-fixed 5 3 "憲法記念日")
;; 国民の休日って、日曜になると単なる日曜。だから、japanese-holidays.elオリジナルの方が良し。
;; (holiday-fixed 5 4 "国民の休日")
(and (> (calendar-day-of-week (list 5 4 displayed-year)) 0)
(holiday-fixed 5 4 "国民の休日"))
(holiday-fixed 5 5 "こどもの日")
(holiday-fixed 7 20 "海の日")
(holiday-fixed 9 15 "敬老の日")
;; (holiday-float 10 1 2 "体育の日")
;; さらに、体育の日も1999年まで float しなかったので、下の修正。
(if (>= displayed-year 2000)
(holiday-float 10 1 2 "体育の日") ; 10 月の第二月曜日
(holiday-fixed 10 10 "体育の日"))
(holiday-fixed 11 3 "文化の日")
(holiday-fixed 11 23 "勤労感謝の日")
(holiday-fixed 12 23 "天皇誕生日")
;; 春分の日と秋分の日
(if (memq displayed-month '(2 3 4 8 9 10))
(solar-equinoxes-solstices))
;; 振替休日
(when (not (boundp 'called-recursively))
(let* (called-recursively
(month displayed-month)
(year displayed-year)
(day (progn
(increment-calendar-month month year -2)
(list month (calendar-last-day-of-month month year) year)))
(calendar-holidays general-holidays-JP) ;; ここ変数名と同じにする
(holiday-list (calendar-holiday-list))
holiday mmday ret)
(if (check-calendar-holidays day)
(setq holiday-list (cons (list day "dummy") holiday-list)))
(while holiday-list
(setq holiday (caar holiday-list))
(and (= (calendar-day-of-week holiday) 0)
(setq mmday (calendar-gregorian-from-absolute
(1+ (calendar-absolute-from-gregorian holiday))))
(null (check-calendar-holidays mmday))
(setq ret (cons (list mmday "振替休日") ret)))
(setq holiday-list (cdr holiday-list)))
ret))))
;; 日曜日だけじゃなく、土曜にも色をつける。
(setq calendar-weekend '(0 6))
;; ここまで .emacs に転記

過去の成人の日や体育の日が、float しちゃうことより、5月4日が日曜のときに、国民の休日にならないって方が重要かも。

こうするとオリジナルの japanese-holidays.el で定義されてる holiday-fixed-furikae という関数を使わないことに。
まあいいけど。

春分の日、秋分の日は、オリジナルの方が、日本語で出るのでよいかも。上だと、春分、秋分の時刻まで分かって楽しいけどね。ちなみに、オリジナルは、下。

    (let ((equinox (solar-equinoxes/solstices 0 displayed-year)))
      (holiday-fixed-furikae (extract-calendar-month equinox)
			     (truncate (extract-calendar-day equinox))
			     "春分の日"))
    (let ((equinox (solar-equinoxes/solstices 2 displayed-year)))
      (holiday-fixed-furikae (extract-calendar-month equinox)
			     (truncate (extract-calendar-day equinox))
			     "秋分の日"))

お好みで、差し替えて使えば良い。

| | コメント (0) | トラックバック (0)

2004.01.19

dot.emacs についての解説。

メモです。

dot.emacs/index

| | コメント (0) | トラックバック (0)

2004.01.18

howm と diary と calendar と

この日記を書いてから、いろいろいじったのでemacs関係(http://honmat.cocolog-nifty.com/txt/emacs_/index.html)あたりから適当に探してほしい。

howm は、なかなか便利。
でも、diary+calendar もなかなか便利。
で、いろいろ工夫してみた。

まず、diary-file を howm のディレクトリに置く。そうすると、howm がdiary-fileの中を検索してくれる。

(setq diary-file "~/howm/diary")

次に、2ch から、下のコードを拾った。

; M-x calendar から M-x howm-from-calendar でその日を検索。
(defun howm-from-calendar ()
(interactive)
(let* ((mdy (calendar-cursor-to-date t))
(m (car mdy))
(d (second mdy))
(y (third mdy))
(key (format-time-string howm-date-format
(encode-time 0 0 0 d m y))))
(howm-keyword-search key)))

これで calendar の特定の日付からその日を含むメモを検索できるようになる。

calendar は、三ヶ月分のカレンダーを表示してくれる。さらに、予定のある日に色付けしてくれるから便利。でも、予定をそっちこっちのメモ(ファイル)に書き散らかしちゃうと、この機能が使えない。で、diary-file に書き込むときに、ちょっと手をかける。つまり、予定を書き込む際、howm の日付をいれちゃう。具体的には、diary-file を編集しながら、C-c,, で howm のメニューを呼び出し、d で、日付挿入。こうしておけば、homw の C-c,,y で予定表にリストできる。

| | コメント (0) | トラックバック (1)

2004.01.17

six olq: Movable Type:: Emacs フロントエンド「mapae」

見つけたのでメモ。
six olq: Movable Type:: Emacs フロントエンド「mapae」

| | コメント (0) | トラックバック (0)

Meadow in a bottle

Meadow in a bottle

ノートパソコン持ち歩くより、ずっといいかも。

最近、howm を使い始めたので、メモがあっちこっちのマシンに散らばってるってのは避けたいので、いつも持ち歩けるなら便利かなと。
howm: Hitori Otegaru Wiki Modoki

なくしたりしたとき、すごい泣けるだろうけど。

| | コメント (0) | トラックバック (0)

2004.01.12

Blog Developer's Cookbook : RSS をメールで送信する

こういう仕組み、すでにあると思ったら、やっぱりあった。

Blog Developer's Cookbook : RSS をメールで送信する

| | コメント (0) | トラックバック (0)