hns - 日記自動生成システム - Version 2.19.9

先月 2010年12月 来月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2010年12月31日(金) 旧暦 [n年日記] [更新:"2011/01/01 03:02:39"]

#1 [pkgrc] RCD_SCRIPTS を Makefile で設定すると

自分でも良く忘れてしまうので、書いておく
pkgsrc/*/*/Makefile の中に、次の行を書いて、
RCD_SCRIPTS=		ja_freewnn
起動手続として
files/ja_freewnn
を用意しておく、その一行目は
#! @RCD_SCRIPTS_SHELL@
にしておく これで、いろいろなことをしてくれる。
  • 一行目を適切な、例えば #! /bin/sh に変更する
  • 起動手続を /usr/pkg/share/examples/rc.d/ に写す
  • MESSAGE の中に、次の行を書いてくれる
    (「make package-install の時に、次の表示が出る」の意味)
    これって pkg_info -D でも pkg_add でも出ないもののようだ。
    The following files should be created for ja-FreeWnn-1.11a021:
    
            /etc/rc.d/ja_freewnn (m=0755)
                [/usr/pkg/share/examples/rc.d/ja_freewnn]
    
と思ったが、ある機械で、そうならない pkgsrc/mk の下は更新したけれど .. まだだめ
(make package-install の時に最後の表示が出ない)

jserver: could not bind unix domain socket (Address already in use):

上の話とは変るが、/var/log/messages を見ると
Dec 31 08:43:56 modena jserver: could not bind unix domain socket (Address already in use)
と出ている時には、
  • 何も言わないで開始してくれない
  • wnnkill も効かない
  • /tmp/jd_sockV4 が残っている
手で /tmp/jd_sockV4 を消せば元に戻る

installed without execute permission; fixing (should use [BSD_]INSTALL_LIB):

これは何かな
=> Generating post-install file lists
/export/pkgsrc/wip/ja-freewnn/work/.destdir/usr/pkg/lib/libcwnn.so.0.0: 
   installed without execute permission; fixing (should use [BSD_]INSTALL_LIB)
/export/pkgsrc/wip/ja-freewnn/work/.destdir/usr/pkg/lib/libjd.so.0.0: 
   installed without execute permission; fixing (should use [BSD_]INSTALL_LIB)
/export/pkgsrc/wip/ja-freewnn/work/.destdir/usr/pkg/lib/libkwnn.so.0.0: 
   installed without execute permission; fixing (should use [BSD_]INSTALL_LIB)
/export/pkgsrc/wip/ja-freewnn/work/.destdir/usr/pkg/lib/libwnn.so.0.0: 
   installed without execute permission; fixing (should use [BSD_]INSTALL_LIB)
=> Checking file-check results for ja-FreeWnn-1.11a021
=> Checking for non-existent script interpreters in ja-FreeWnn-1.11a021

IMDICTDIR:

NetBSD/pkgsrc で ja-FreeWnn を make すると、辞書は /var/dict/www/ja_JP 等を使う。 これはどこの設定かなと言うと、
pkgsrc/mk/defaults/mk.conf:IMDICTDIR?=   ${VARBASE}/dict
という行があって、 (今は)
SEDSCRIPT+= -e 's|\([JCKT]\)\(WNNDICDIR = \).*|\1\2${IMDICTDIR}/wnn/$$(\1WNNLANG)|'
ということで IMDICTDIR 変数を使うようにしているため。

#2 [pkgsrc] libspt

Unfortunately, I am looking for libspt.
Is the following part of libspt-1.1/configure.ac correct ?
Calling sequence as
230th -> 216 th -> 197th lines
195 # Check for ptys
196 dnl SPT_DEFINE_PTY(TYPE)
197 AC_DEFUN([SPT_DEFINE_PTY],[
198   if test "x$spt_cv_pty_$1" = xyes; then
199     dnl Don't quote AS_TR_CPP or autoheader fails!
200     AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_PTY_$1]),1,[Define to 1 if you have $1 pty.])
201     spt_pty_found=yes
202   fi
203 ])

204 dnl SPT_CHECK_PTY(TYPE, COMMAND, COMMAND-IF-CROSS)
205 dnl TYPE is small, COMMAND stores its result to spt_ptyval(default no)
206 AC_DEFUN([SPT_CHECK_PTY],[
207   AC_CACHE_CHECK([for pty $1],[spt_cv_pty_$1],[
208     spt_ptyval=no
209     if test "x$cross_compiling" = xyes; then
210       $3
211     else
212       $2
213     fi
214     spt_cv_pty_$1="$spt_ptyval"
215   ])
216   SPT_DEFINE_PTY([$1])
217 ])

224 dnl SPT_CMD(COMMAND)
225 AC_DEFUN([SPT_CMD],[$1 && spt_ptyval=yes])

230 SPT_CHECK_PTY([bsd],[SPT_CMD([test -c /dev/ptypa || test -c /dev/ptyva])],
231   [SPT_HOST([linux*|freebsd*|netbsd*|openbsd*|bsdi*|darwin*|hpux*])])
in 230th line, if /dev/ptypa is there and it is char device, SPT_CHECK_PTY([bsd], true) is issued. And then ...

#3 [pkgsrc] process many SPECIAL_PERMS

good example is found at canna-dict/Makefile
REQD_DIRS_PERMS+=       ${CANNA_DICTDIR} ${CANNA_USER} ${CANNA_GROUP} 0775
.for d in fuzokugo.cbd bushu.cld dics.dir iroha.cbd iroha.cld \
        chimei.ctd hojomwd.ctd hojoswd.ctd kanasmpl.ctd katakana.ctd \
        keishiki.ctd necgaiji.ctd number.ctd software.ctd suffix.ctd
SPECIAL_PERMS+= ${CANNA_DICTDIR}/${d} ${CANNA_USER} ${CANNA_GROUP} 0664
.endfor


2010年12月29日(水) 旧暦 [n年日記] [更新:"2010/12/30 00:46:53"]

#1 [pkgsrc] ja-freewnn-* 1.1.1-a021

  • ja-freewnn-lib は package 出来る。ただし permision (owner) はまだ合っていない と思う。
  • ja-freewnn-server-bin は make の途中で止る ( user-destdir にもなっていない)
    In file included from ./de.c:82:
    ../../Wnn/include/wnn_os.h:83: 
      error: expected declaration specifiers or '...' before '*' token
    ../../Wnn/include/wnn_os.h:83: 
      error: 'RETSIGTYPE' declared as function returning a function
    
でも、考えたら、pkgsrc 環境でなければ、make 出来た気がするので、 もう少しがんばれば、出来るのかな

現在の問題は local/src 環境(非 pkgsrc) では

FreeWnn-1.1.1-a021/cWnn/include/
FreeWnn-1.1.1-a021/kWnn/include/
から 
FreeWnn-1.1.1-a021/Wnn/include/
へ、link が張られているが pkgsrc ではそうなっていないので、jd_sock.h 等を 見つけられないこと。
いっそ、LIB SERVER DICT を元のように一つにして作って見る ?
という訳で、まだ途中だけれど (PLIST が合っていない) (PLIST は合っています)
  • chown の調整が不充分なため:
    egg Japanese backend: 付属語ファイルが読み込まれていません
    
  • Path が戻ってしまっている /usr/pkg/bin/Wnn4/jserver


2010年12月26日() 旧暦 [n年日記] [更新:"2010/12/26 15:08:55"]

#1 [pkgsrc] Shared object "libgobject-2.0.so.0" not found

きょう、うっかり glib2-2.22.5 を消してしまったら、例えば emacs が 次のように起動しない
Shared object "libgobject-2.0.so.0" not found
Shared object "libgmodule-2.0.so.0" not found
Shared object "libglib-2.0.so.0" not found
Shared object "libgio-2.0.so.0" not found
それで次のようにしたけれど、
80  2010-12-26 14:59  sudo tar zxvf  /export/pkgsrc/packages/All/
(同上) glib2-2.22.5.tgz lib/libgobject-2.0.so.0 lib/libgobject-2.0.so.0.2200.5
(同上) glib2-2.22.5.tgz lib/libgmodule-2.0.so.0 lib/libgmodule-2.0.so.0.2200.5
(同上) glib2-2.22.5.tgz lib/libglib-2.0.so.0  lib/libglib-2.0.so.0.2200.5
(同上) glib2-2.22.5.tgz lib/libgio-2.0.so.0  lib/libgio-2.0.so.0.2200.5
良く見たら、まだ次のものを入れていなかったので、単に glib2-2.22.5.tgz を pkg_add すれば良かったような気がする。
そこまで考えると、glib2 等は入替えでなく、(make しないなら) 両方置いておく、という手段もあるような気がする (pkg_add に入替えでない、強制上書きがあっても良いな ?)


2010年12月25日() 旧暦 [n年日記] [更新:"2010/12/26 00:07:49"]

#1 [Emacs] きょうの正規表現

\includegraphics[ ...]{...}
のような文字列があるのを \fbox{ } で囲みたい、つまり
\includegraphics.*} -> \fbox{元の文字列}
としたい時に、query-replace-regexp の場合に
\(\\includegraphics.*}\) -> \\fbox{\1}
とした。
  • \( .. \) と \1 は、正規表現演算子なので \ が一つで良い
  • 検索・置換文字列に \ が入っている時には \\ とする
何か問題があった時に replacing と replacement という用語が出て来る。
  • replacing とは元の置換前の文字列 (置換する文字列)
  • replacement とは先の置換前の文字列

#2 [NetBSD][pkgsrc] 出来れば 2010-Q4 に入っているといいもの

xorg-utils-macros  1.7.0  -> 1.11.0  PR/43891  joerg
elscreen           1.4.5  -> 1.4.6   PR/43967  uebayasi
これだけかな。
上とは関係ないけれど、 最近 wip/emacs-current が make 出来ない。


2010年12月24日(金) 旧暦 [n年日記] [更新:"2010/12/25 00:03:18"]

#1 [Emacs] Emacs Advent Calendar JP 2010 24日目

これは Emacs Advent Calendar JP 2010 の 24 日目の記事です。 昨日 23 日目は kozo2 さんの jk は上下移動だろjk でした。 明日は shyohex さんです。
結局、準備的に、 21 22 23 日等に書いたことからは、話題は増えなかったので、 Emacs に対する思い等から始めます。

何故 Emacs が良いか、:

というのは、 文書やプログラムを作成する時に、
使い勝手 (user interface) がどこでも同じ
に尽きると思うのです。 これは、ある意味で Emacs を使っている方々の暗黙の了解というか、当り前なことだとは思います。
大昔に Apple Computer (現在の Apple) が User Interface Guideline という本を作って GUI の U/I (User interface) は統一する必要がある、としました。 もし Mac OS が使いやすい、と思っている人がいるとすると、この本に書いてあった ことや、それを守らせようとした努力も、その理由の一つになっていると思います。
Emacs でも、(キー割当がいろいろあって覚え難いと思っている人達も多くいるとは 思いますが)それでも「文字が沢山書いてあるもの」を作る方法としては、 いつも同じ操作で使えて便利、と感じている人が多いと思います。 ここで書いている同じ操作、というのは、 カーサの移動、日本語の入力方法、 文字の削除や、切取(cut)、貼付(paste)、やり直し(undo)等の基本的な操作のことです。
例えば、だから、mail (wl)twitter 等も Emacs の中から書けるようにしたい、 という努力を惜しまないのだと思っています。(本当に有難く使わせてもらっています)
僕の場合は T-code で日本語を入力しているので、最初の頃は、 日本語入力は Emacs からだけでした。それも Emacs を使い続けていることの理由の一つ でもあります。(OS は NetBSD 限定です)

あまり設定をしないで、なるべく標準的なままで使う:

Emacs 使いの方は、~/.emacs 等に数多くの設定をして使うのが普通だと 思います。それももちろん便利で楽しいと思いますし、実は自分でも 次のような行数の設定はあります。(「どこが標準的なままか」ですが)
u4@makoto 18:24:02/101224(~)% wc ~/.emacs
    1601    4791   58693 /home/makoto/.emacs
u4@makoto 18:24:06/101224(~)% sed '/^;/d' ~/.emacs |wc
     891    2109   28421
u4@makoto 18:24:10/101224(..editors/xemacs-packages)% 
(行数が多いのは、殆どべタに書いていて、整理していない、とか、 以前に使っていて今は使っていないものもそのままになっているという所為もあります)
なるべく標準的なままにしたい理由は簡単に言うと二つあって、
  1. 多くの人に共通の説明を書きたい、その場合にあまり特殊なことは避けたい
  2. 特殊なことをすると、その(時間的)保守費用も無視出来ない (要するに、しばらく使わなかった機能は後で見て分らなくなることがある)
というようなことかと思います。

全部の機能を使う必要はない:

どんな道具でもそうですが、まず使い始めて見て、最低限の機能を覚えて、 使っているうちに、ああ、こんな便利な機能があるのか、 教えられたり、と気が付いたりして、だんだん楽しくなるというか、はまって行く訳です。 (話は飛びますが、 英語も人と通信する道具だと思えば、全く同じだと思います)
僕は、
  • とにかく使い始めることが出来る
  • (物理的、あるいは通信機能的に) 身近に、教えてくれる人がいる
  • だんだん機能を覚えて使い込んでいける
がとても大切だと思っています。
(時にはすごく便利なのに、全く、長く気付かないものもあったりして、 それも、良いのでは、と居直っています)

良く使っている機能:

ここからが本題で、数日前から 準備的に書いたこと と重複しますが、 自分でも良く使っていて、また Emacs を使う理由にもなっていて、 他の人にも使って欲しいなと思う項目を三つ挙げます。
  • C-u C-SPC ( set-mark-command の前置引数付)
  • アウトライン副モード
  • 長方形操作

C-u C-SPC (set-mark-command の前置引数付):

(特に設定をしなくても) 大きな移動をした後には、以前のカーサ位置を覚えてくれて いるので C-u C-SPC とすると、表示がそこに戻ります。
文字列で検索して遠くに移動し、変更した後に、検索する前のところに戻る、 *1 というような時に使えます。 こういうのは、説明 (M-x info RET memacs) を 丁寧に読むか、人に教わらないと気が付かないものかと思います。
似た話で逆順に整列する、 C-u M-x sort-lines も、しばらく(長い間)忘れていて、 そういう機能がないな、と不便をしていたことがあります。

アウトライン副モード:

M-x outline-minor-mode RET
と入力するだけで、使えることが多いです。 「多いです」と書いたのは、「見出を決める outline-regexp が 設定済の場合には」の意味で、あまり普通の人の使わないモードや編集内容だと、 その outline-regexp を設定する必要があるからです。
アウトライン副モードでは、 もともとのキー割当は C-c @ で始まるのですが、'C-c @ C-何とか' は入力しにくいので、 僕は次のようにしています。
(setq outline-minor-mode-prefix "\C-c\C-m");
設定はこれだけです。ただし、いつも M-x outline-minor-mode RET と入力するのは大変だし、使うことを忘れてしまう、 とか outline-regexp が設定されていない場合などがあり、便利のため、 他に二点と、時にもう一点ありました。
  • outline-minor モードを自動で起動する 例えば find-file-hook に設定する。以下は実用的ではないけれど書き方の例
    (add-hook 'find-file-hooks
              (function (lambda ()
                          (if (string-match "\\.rd$" buffer-file-name)
                              (progn 
                                (set (make-local-variable 'outline-regexp) "^[=!:]+")
                                (outline-minor-mode t) ))
                          )))
    
  • (場合によっては)、例えば上のように、 見出を決める正規表現 outline-regexp の値を設定しておく
  • 見出の段階は通常文字数で決まるけれど、それを変更したい時に outline-level に設定する (僕は使わないで、文字数で決まることに妥協しています)
ただ、良く使う場合として、特殊な設定というか、安易に、
Local Variables:
outline-regexp: "[=!:]+"
End:
のように編集対象に書込んでしまうこともあります (この時 ^は不要です、といいますか、勝手に付けられてしまいます)。 実のところ、僕が良く使うのは、次のものくらいです。
C-c C-m C-q 一番上位見出だけ        (quiet)
C-c C-m C-i 次の見出を追加          
C-c C-m C-e カーサ位置の見出を表示  (entry)
C-c C-m C-a 全文表示                (all)
C-c C-m C-t 全ての見出だけを表示    (tree)
説明が面倒だけれど、使うと手離せなくなるほど便利なのがこまったもの。
このくらいの説明では、理解出来ないかと思いますが、 ちょっと関連説明がありました。 (上記 URL 先内容は本の内容の補足になっていますが、内容は本の参照はしなくて、完結しています。 先程、少し直しました)

長方形操作:

vi を使わざるを得ない場面で、この長方形操作があったならな、 と思うことは良くあります。 長方形操作は別画面 (PDF 形式) を見て下さい。

その他、まとまりが一層良くないですが、
21日 (下書き)
22日 (procmail-mode)
23日 (C-h と backspace の交換がうまく行っていない、init-file のこと)
に書いたことも、見て下さい。ありがとうございます。

明日の Emacs Advent Calendar JP 2010shyohex さんです。


*1: Rubikichi さんの本だと p117 の goto-chg.el の項目に、 「C-u C-SPC を繰返すことでいつかは戻れます」という説明があります。

Comments related this article

Re: Emacs Advent Calendar JP 2010 24日目 by すがわら    2010/12/25 01:40
C-u SPC 便利ですよね。後からここを見に来た人のためにもうひとつ。C-x C-x も便利で...
C-x C-x, generic.el by Makoto Fujiwara    2010/12/25 22:57
C-x C-x exchange-point-and-mark は、時々思い出すのですが、実はあまり使ったことが...

2010年12月23日(木) 旧暦 [n年日記] [更新:"2010/12/25 00:20:54"]

#1 [Emacs] C-h と Backspace の交換

改めて確認して見たら 「C-h と Backspace の交換」をしているつもりが、そうなっていない。 C-h で一文字消去にはなっているが Backspace も一文字消去になってしまっている。

どう設定したいかを一応確認しておくと DEL と Backspace と C-h のキーについて

DEL後方込一文字消去 (C-d と同じ)
Backspace通常 C-h として説明されている機能にする (Backspace n で view-emacs-news)
C-h前方向一文字消去

昔書いた覚書から:
C-h と BS (BackSpace) の入替:

;; (load "term/keyswap.el")	...  以前の方法
;; (load "obsolete/keyswap.el")	...  現在の位置
;; 最近の方法
(keyboard-translate ?\C-h ?\C-?)
(keyboard-translate ?\C-? ?\C-h)
以下は以前に行なっていた方法
(load "swap-C-h-Backspace")

(define-key function-key-map [backspace] [8])
(put 'backspace 'ascii-character 8)
(setq keyboard-translate-table
"\^@\^A\^B\^C\^D\^E\^F\^G\^?\^I\^J\^K\^L\^M\^N\^O\^P\^Q\^R\^S\^T\^U\^V\
\^W\^X\^Y\^Z\^[\^\\\^]\^^\^_ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK\
LMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\^H")
~/.emacs-c-h-test 等の名前で上記を用意して、それだけを書いておいて
emacs -q -l ~/.emacs-c-h-test
しても交換になっていない気がする。

誰か教えて下さい :-)
参考: 何故 Backspace キーでヘルプが起動するのですか ?


(追記)
にて @mori_dev さん に 教えていただいた方法でうまく動きました。ありがとうございます。

;;C-h と Backspace の交換
(global-set-key (kbd "C-h") 'delete-backward-char)
(global-set-key (kbd "<backspace>") 'help-command)

init-file について:

最近書いた覚書:
init file とは initialization file (初期設定譜) の略です。
~/.emacs または ~/.emacs.el など です。init file は、以前 は ~/.emacsが良く使われ、最近は、 *.el という名前の方が 良いと ~/.emacs.el が使われることもあります。 また更に最近では ~/.emacs.d/init.el も使われているようです。
もし以上のうち、 一つ以上のものが見つかると、どれか一つだけ読みます。その 優先度は次のようになっています。
~/.emacs.el > ~/.emacs > ~/.emacs.d/init.el 
例えば 一番優先度の高い ~/.emacs.el があれば、他は読みません。 更に低い優先度のものとして load-path 上で探す default.el があります

--no-init-file または -q を付けて起動すると、上のどれがあっても 全く読まないで起動します。

(こられは
M-x info RET memacs minit file RET
で表示される画面に書いてあります。
(と思ったのですが、優先度は書いてない気がします)


2010年12月22日(水) 旧暦 [n年日記] [更新:"2010/12/24 08:07:09"]

#1 [emacs] procmail-mode

12/21 に僕の作ったものはないと、書いたが、最低限、とても簡単な procmail-mode というものを作っていた。でもこれはいくら何でも短すぎる(単純すぎる) と思ったら、次のようなものがあった (ただし、見つけただけでまだ使ってはいない)
同じく、追加項目として、
  • init-file のこと ( ~/.emacs 等のこと)
  • emacs-news を読もう (view-emacs-news) C-h n
というのが話題として考えられるな、とも思った。


2010年12月21日(火) 旧暦 [n年日記] [更新:"2010/12/24 12:04:16"]

#1 [Emacs] Emacs Advent Calendar jp 2010

Emacs Advent Calendar jp 2010 が進行中。僕の番は 24 日 かな。

参加しますと言った時には、 何か書けるかな、と思ったが、(何も用意出来ないうちに) 時間がせまって来ている。

自分で作ったものは多分無いので、何か気に入った使い方、 というような話になると思う。 自分でも良く使っているので、 是非他の人にも使ってもらいたいと思っていることは、 例えば:
  • アウトライン(副)モード
  • C-u C-Space かな (set-mark-command に C-u のついたもの)
    (いつも手で反射的に使っているので、 いざ文字にしようと思うと何か分らなくなるが、これで合っていると思う)
    遠くにカーサーが(何かの操作で)飛んで行ってしまった時に、 以前いたところに戻る操作
  • 長方形操作
  • RE-builder (現在は良く使うというほどでもないけれど)
  • gud、デバッガ (同上)
  • Wanderlust の中での EasyPG を使った署名・検証・暗号化・復号化 ( Multi-Part = separated と non-separated の場合)
後の方になると、自分でもたまにしか使わないものになる
twittering-mode も最近は良く使っているが、 これは紹介する必要もないと思うから上には入れなかった。
template insert も同様、紹介するまでもないのだろう。
いづれにしても、何か設定して使うというよりは、 初めから含まれている機能が殆ど ;-(



最近の日記
2024年03月10日
停電 (瞬電)
2024年03月03日
the second try on bare-metal
useradd
2024年02月29日
opendkim and senmail
2024年01月24日
chat/iam 0.0.8
2024年01月21日
uselocale vs setlocale (textproc/R-readxl)
以上、8 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)