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 も同様、紹介するまでもないのだろう。
いづれにしても、何か設定して使うというよりは、 初めから含まれている機能が殆ど ;-(


2010年12月20日(月) 旧暦 [n年日記] [更新:"2010/12/20 14:02:45"]

#1 [LaTeX] 住民票取得のための委任状

住民票を取得する時の委任状を LaTeX で作って見た。 LaTeX 形式 PDF 形式

#2 [mail] PGP 鍵

一つ署名付のメールをもらったが、次のようになってしまった。
Key 0xXXYYXXZZ not found; attempt to fetch? (y or n)  y
pgg-insert-url-with-w3: Cannot open load file: w3

w3 って emacs23 に対応していない ?:

===> Building for w3-4.0b47nb2
cd lisp && /usr/bin/make w3
GNUSDIR=no WIDGETDIR=/usr/pkg/share/emacs/23.2/lisp/ W3SRCDIR=. \
  emacs -batch -q -no-site-file -l ./docomp.el \
  -f emacs-batch-build-autoloads . auto-autoloads.el
Loading `w3-sysdp': old-style backquotes detected!
Loading `font': old-style backquotes detected!
Loading `css': old-style backquotes detected!
Loading `url-vars': old-style backquotes detected!
Loading `url-parse': old-style backquotes detected!
Loading `w3-cus': old-style backquotes detected!
Loading `w3-widget': old-style backquotes detected!
Loading `w3-imap': old-style backquotes detected!
Loading `w3-display': old-style backquotes detected!
Loading `w3-parse': old-style backquotes detected!
Cannot open load file: w3-e23
*** Error code 255

Stop.
make: stopped in /export/pkgsrc/www/w3/work/w3-4.0pre.47/lisp

use w3m instead of w3, w3m-retrieve:

w3 の代りに w3m を使うということで、次のように設定したら、無事 署名が確認出来ました。
(setq pgg-insert-url-function #'w3m-retrieve)
(autoload 'w3m-retrieve "w3m" "w3m" t)
(間接情報源 は 2ch です)


2010年12月19日() 旧暦 [n年日記] [更新:"2010/12/20 08:42:11"]

#1 [pkgsrc] tgif で書いた日本語を gs で見る

きのうの Ryumin-Light-H の続きで、今度は、6年くらい前に作った tgif の中にある日本語 が、生成した .eps を gs で見ると、表示出来なかった。
tgif の方は、 以前に書いた 通りで、
  1. ~/.Xresource-tgif に設定する
  2. xrdb -m ~/.Xresource-tgif で読む
  3. env LANG=ja_JP.eucJP tgif で起動
  4. W のような文字が書いてある書体の設定のメニューで「Ryumin」を選ぶ
のように入力して、その後に、印刷出力の設定で LaTeX(EPS) を選んでおいて ^P すると *.eps が生成される。 これを gs で見る(あるいは LaTeX の includegraphics で参照する)場合には、
/Ryumin-Light-EUC-H
/EUC-H /CMap findresource
[/WadaMin-Regular /CIDFont findresource]
composefont pop
のようなものを、/usr/pkg/share/ghostscript/8.71/Resource/Font に置いておけば良い。

#2 [機械] ML-115 G1 と G5 の間で disk 交換

手元に ML-115 の G1 と G5 がある。 Xen を使って、一つの箱の中に、いくつもサーバを用意する、というような ことを良くやっているが、今の Xen は MP(Multi Processor) が利用出来ない。
ModelMP?CPUdisk
G1singleAthlon 3500+250G x 4 (RAID)
G5dual4450B80G + 250G
それで、たまたま、上記のような組合せで disk を入替えたかった。 まあ、以上の話はどうでも良い訳だけれど、結構意外だったのは、 G1 は SATA x 4 なのに G5 の方は SATA x 6 が付いていて DVD/ROM も SATA だった。また SATA の基板上のコネクタの向きが 180度反転している。
それで、この
G1 ,single , Athlon 3500+, 80G + 250G
に NetBSD/i386 5.1 を入れている。実は 5.1 ははじめて。

#3 [pkgsrc] ghostscript again

I have NetBSD/i386 5.1 installed cleanly. And packages following ones only.
u4@makoto 00:28:40/101220(~)% pkg_info -u
zsh-4.3.10nb2       The Z shell
sudo-1.7.4p4nb1     Allow others to run commands as root
pkglint-4.94        Verifier for NetBSD packages
rsync-3.0.7         Network file distribution/synchronisation utility
modular-xorg-apps-1.5 Modular Xorg application meta-package
modular-xorg-drivers-1.4 Modular Xorg driver meta-package
modular-xorg-fonts-1.1 Modular Xorg font meta-package
modular-xorg-libs-1.0nb1 Modular Xorg library meta-package
ghostscript-8.71nb6 Postscript interpreter
adobe-cidfonts-20000901 Adobe CID-keyed O'Reilly fonts for CJK
ghostscript-cidfonts-20000901nb2 CIDFont resources for Ghostscript
ipafont-00302       IPA JIS X 0213 fonts (Gothic, P Gothic, Mincho, and P Mincho)
u4@makoto 00:28:45/101220(~)% 
gs (ghostscript) doesn't seem reading cidfmap in either
/usr/pkg/share/ghostscript/8.71/Resource/Init/cidfmap
/usr/pkg/share/ghostscript/8.71/lib/cidfmap
./cidfmap
ghostscript-8.61 seems to have the problem not reading cidfmap from the location historically used. It seems me, --disable-compile-inits is important to have following file to be effective.
 % cat  /usr/pkg/share/ghostscript/8.71/Resource/Font/Ryumin-Light-H
 /Ryumin-Light-H 
 /H /CMap findresource
 [/WadaMin-Regular /CIDFont findresource]
 composefont pop
Debian の場合 (武藤さんからの提案・報告など)

hns:

PRE .. /PRE の中に、/ で始まる行があると、変になる。


2010年12月18日() 旧暦 [n年日記] [更新:"2010/12/20 00:27:43"]

#1 [pkgsrc] ghostscript ghostscript-8.71nb1

実のところ、最近 gs では日本語をうまく表示出来ていない。 今まで入っていた版は ghostscript-8.71nb1
I have been with problem displaying Japanese chars. with ghostscript.
 20493147 Apr  6  2010 (omit)/packages/All/ghostscript-8.71nb1.tgz
 13130022 Dec 18 22:38 (omit)/packages/All/ghostscript-8.71nb4.tgz
     5530 Dec 18 17:20 (omit)/packages/All/ghostscript-cidfonts-20000901nb2.tgz
  4576799 Apr  6  2010 (omit)/packages/All/ghostscript-fonts-8.11nb2.tgz
その時に、こんな表示が出ている。
The error message is like:
Can't find (or can't open) font file 
   /usr/pkg/share/ghostscript/8.71/Resource/Font/Ryumin-Light-H.
Can't find (or can't open) font file Ryumin-Light-H.
どうも cidfmap が関係するのかなと思って、一つ symlink を張って見た。
I thought cidfmap problem ? and have symlink for interim solution.
ls -l /usr/pkg/share/ghostscript/8.71/Resource/CIDFont
lrwxr-xr-x  1 root  wheel  22 Dec 18 17:32 /usr/pkg/share/ghostscript/8.71/Resource/CIDFont -> ../../Resource/CIDFont
しかし
But with the command,
ktrace -t n gs /tmp/ps
して見ると、cidfmap を見ていないようだ。 それで、意味もなく試行錯誤で、次のようにして作って見たら、
cidfmap may not be referenced. I have rebuild the gs with following option.
modena@makoto 22:48:05/101218(..print/ghostscript)% tail -2 /etc/mk.conf
PKG_OPTIONS.ghostscript+=       disable-compile-inits
PKG_OPTIONS.ghostscript+=       fontconfig
今度は cidfmap を見ている気がする (後から確認すると、根拠なし)。
It looks to reading cidfmap, but not for sure, probably wrong observation.
modena@makoto 22:49:58/101218(..print/ghostscript)% \
    kdump ktrace.out| cat -n | grep cidfmap
130 13688 1 gsc      NAMI  "./cidfmap"
131 13688 1 gsc      NAMI  "/usr/pkg/share/ghostscript/8.71/Resource/Init/cidfmap"
今またこれがなくなっている。(特に変更していないはずだけれど)
どうも current directory の cidfmap も見ているような気がしたので、 ちょっと変更したものを置いたりしたが、何も変化がない。しかし、一度うっかり 文法誤りな行を書いたら、しっかり、そんなもの知らないと言うので、読んではいるらしい。
次のようなことをして見たら、一応何かしら有効になっているが、漢字コードが合っていない。
This reference line disappeared this time.
The file cidfmap in current directory for sure referenced.
The next tweak (placing a file) seems something effective, but Kanji code doesn't look matche.
 % cat  /usr/pkg/share/ghostscript/8.71/Resource/Font/Ryumin-Light-H
 /Ryumin-Light-H
 /H /CMap findresource
 [/WadaMin-RegularH /CIDFont findresource]
 composefont pop
上の中の /H が漢字コード変換をしているらしい。 こんなものも見つけたが、ちょっと違う。
The word '/H' seems for Kanji code conversion. The other info as following file is used for some instance.
 /Ryumin-Light-H
 /WadaMin-RegularH /CIDFont findresource
 dup length dict begin {def} forall currentdict end
 /CIDFont defineresource pop
多分、こんなことはしなくても良いようになっているはず。
最初 WadaMin-RegularH とかの H 付きのを Horizontal かと勘違いして しまいましたが、あれは HojoKanji の略だったんですね。
上の /WadaMin-RegularH を /WadaMin-Regular に変更したら、表示するようになった
To change the word '/WadaMin-RegularH' to '/WadaMin-Regular' fixed the problem.
% cat   /usr/pkg/share/ghostscript/8.71/Resource/Font/Ryumin-Light-H
/Ryumin-Light-H /H /CMap findresource
[/WadaMin-Regular /CIDFont findresource]
composefont pop
いろいろ試行錯誤しているので、本当はどうするのか、 後でまとめらたら、そうしたい。

Shared object "libpng12.so.0" not found:

実は ghostscript を作り直す時に、png が古いと言われたので、1.2.43 は pkg_delete -f して消してしまった。(もちろんかなり沢山の 30 くらいの pkg がそれに依存しているよ、 という文字は出た)。それが原因で、次のようになる。
dvipdfmx -d 5 -p a5      -o emacsbook.tmp emacsbook.dvi
Shared object "libpng12.so.0" not found
*** Error code 1
ここは応急措置ということで、次のようにそれらだけを置いておく。
cd /usr/pkg
sudo tar zxvf /export/pkgsrc/packages/All/png-1.2.43.tgz lib/libpng12.so lib/libpng12.so.0


2010年12月14日(火) 旧暦 [n年日記] [更新:"2010/12/14 09:17:17"]

#1 [機械] フレッツ保守のため切断があった 00:00-08:30

2010/12/14 の 00:00 に突然
Dec 14 00:01:00 gw /netbsd: pppoe0: LCP keepalive timed out, going to restart
  the connection
Dec 14 00:02:26 gw /netbsd: pppoe0: pap failure
というのがあって、切れてしまった。15 分に一回
ifconfig pppoe0 down
ifconfig pppoe0 up
するようにしておいたが、08:30 になってもつながっていなかった。 その時間に OCN 側故障窓口に電話をして聞いたところ、 フレッツ側での保守があり、問合せ多数だったとのこと。 今は上っているということだったが、 上の方法では、回復していなかった。 pppoe の接続手続を一度実行したところ、回復した。 (ルータは NetBSD)

ところが、上の down-up 手続を止めるのを忘れていて、これを一度実行したら、 またつながらなくなってしまった。もう一度故障窓口に電話をしたところ、 こちらから最初の一回を除いて、以後一度も認証要求が来ていないとのことで、 もしかして、と思ってルータを再起動したら、回復した。

という訳で、上の down-up 手続は、害あって益なし、ということになった。


2010年12月12日() 旧暦 [n年日記] [更新:"2010/12/13 11:23:53"]

#1 [無線] ARRL 10m 2010

109 局 20 Entity 交信。運用時間 (7:30, N1MM による)
      11             12                              
      12 13 14 15 16  6  7  8  9 10 11 12 13 14 15 16 TOT
   28 22 19 11  4  2  3  5  2  4  6  2  5  3  4 15  2 109
acuml 22    52    58 61    68    78    85    92   109
僕にとって珍しかったところ。FO8, VK9N。(Tahiti, Norfolk) いつも WW で出来ない zone 22 VU (India) からは呼ばれた気がする。
聞えたけれど、取れなかったところ LZ9W (Bulgaria, 16:00 JST Sat.) PP5KR (Brazil)。 何と言っても不思議なのは 南米の LU, CE, PY 等は聞えるのに、その間にある 米国 W が開かないこと。
VK (Australia) は強かった。pipeline open と言うらしい。12 日の 15時台 は 13 局 U zone (EU/AS) から呼ばれたものを含む
20 Entities の内訳
9M2 9M6 BY CE DU FO8 HS JA KH6 LU NH2 UA UA0 UN V73 VK VK9N VU YB ZL
実は 去年 一度 Log を出した後に、 訂正が効かなかった のは、宛先を間違えていたためだった。 10meter@ とするべきところ 10m@ で出していた。 (最初に送った時は正しかった)。今回も 10m@ に 送信し、返事が戻って来ないので、確認したら、そのことが判明。 10meter@ に送信しなおして、受付てもらった。 記録は LoTW に送信済で、FO8RZ は既に CFM してくれている。
去年に比べて、国内が開けていて、局数が多く出来た気がする。 音からすると、散乱伝搬 (scatter) でもなさそうだけれど、何かな。
Rig: TS-590 (100W), Ant: 4SDX (Minimulti 4EL Tribander) at 39mH, Logger: N1MM


2010年12月10日(金) 旧暦 [n年日記] [更新:"2010/12/10 17:24:12"]

#1 [無題] エピソード記憶は金物・紙物 ? CPU の設計方式と関係する ?

エピソード記憶という文字をつぶやいたら、いろいろ思い着いた。
人間の記憶にはエピソード記憶 (episodic memory) と論理記憶があると言われている。 これは金物(hardware) なのか紙物 (software)なのかなと考えたら、 では、人間の脳には金物と紙物という差があるのだろうか。 エピソード記憶を担う部分と論理記憶を担う部分では、 神経細胞の接続に違いがあるのか、ないのか。 少なくとも、それぞれを担っている脳の部位があると思っている。

どうもエピソード記憶が得意な人と、 論理記憶の方が得意な人がいるような気がしている。一番簡単な図式化は、 エピソード記憶(文科系)、論理記憶(理科系)ではないかと思っている。

ちなみにエピソード記憶とは、この前、こういうような出来事があった、 誰さんと誰さんがね、あるところで、... というようなこと。
論理記憶とは、例えば地球は丸くて、太陽の回りを回っていて、それは何故かと言うと 重力というものがあって、引張っていて、... というような記憶

(いま Wiki Pedia を見たら、エピソード記憶と意味記憶となっている、そちらが正しいか)

そこで話は変って CPU の話。最初の半導体 1 Chip CPU は 4004 かと思うが、これは全て random logic というか、構成は全て配線で作られていた。 機能は配線で実現されているということになる。(Wired Logic という方が正しいかな)。

Motorola で言えば 6809 まではこの配線による構成だった。 その配線というのは人間が手作業で図面を作る。 それも最初の頃は紙の上に配線図を書いて、 それを人間が手作業で半導体マスクに変換(書直し)する

ところが CPU の規模が大きくなると、 この配線による構成では配線図を書いてからマスクにするまでに作業量が大きく、 期待される時間内に作業が完了しない。また配線誤りが入るすきも多い。

そこで、マイクロプログラムと言う方法が考案される。 金物的にはなるべく単純な構成にしておき、 それにプログラムを 1 か 0 の並べた形で配置(書く)ようにして、 設計工程を短縮する試みだ。これも Motorola で言えば 68000 がそれで作られた。 プログラムというのは、フローチャート(流れ図)とも言う。 CPU の動作をレジスタ、ALU をどう、どの順でつなぐか、という流れ図で書いておき、 それをプログラムにして、後から 1 か 0 を置くだけで良いようにしておく。

Motorola で言えば、この方法は、ある意味で成功し、M68030 まではそれなりの成果 を上げる。この方法では、レジスタ構成や一つの命令で実行する動作を高度にすることで性能を稼ぐ。 CISC Complex Instruction Set Computer という訳だ。 また、性能を稼ぐには Pipeline というものも使う。一つの動作(命令)を完了するの に、何段階かの動作が必要で、それを一つ一つ順次に実行していては、時間がかかる。 そこで、これらを並列に、行う方法をとるようになった。簡単に言って、 少なくとも、命令の取得、解析、実行、という三段階があり、また実行にはメモリからの読出、 メモリへの書込もあるので、これで四段階になる。 これを工場のべルトコンべア方式のように、 各工程は、その段階が終ると、すぐ次の命令に取りかかるようにして、見かけ上の(結果的な) 実行時間を短くする (実のところ、マイクロプログラム方式とパイプライン方式は、設計する上で、直接には連動しない。 それぞれを独立に採用、不採用することが可能である)。

マイクロプログラムで実装する方式は結果的には大変良い性能のものが作れる。しかし大きな問題があった。 構想してから実際に出荷出来るようなものを 作るまでに大変時間がかかる。二三年とかあるいはそれ以上というような話だ。

では、この設計作業の多くをしめる部分は何かという分析から、じゃもっと簡単に作れば、 出来たものがずうっと高速に動作すれば、後はプログラム(紙物)側でがんばった方が、 世の中に早く形として出せるのでは、という話になって、 RISC Reduced Instruction Set Computer が作られる。SPARC は、この形で最初に成功した 商品だ。ここで「プログラムでがんばる」と書いたが、実際には 「(人間が書くプログラムを機械に読める形にする)コンパイラにがんばってもらう」 ということになる。

さてこのマイクロプログラム方式は性能の良いものが作れると書いたが、この方式の CPU は、実は実行時間がかかる。 命令を解析して、分類したりするのに、 内部の (マイクロプログラム ROM) を参照する訳だが、それには内部の一段階の時間(クロック) が必要で、それがいくつかあると、その分の時間が必要になる。 ROM も大きくなると、それなりに読出までの時間がかかるということだ。

ここで大切な話が一つあって CAD とか EDA というようなことだけれど、大昔に人間がやって いた配線図からマスク生成の作業は計算機がやってくれるようになって、 もし人間がやるならとても時間のかかる、最初の頃にやっていた配線による構成でも、 難なく実現してくれるようになったということがある。 それに加えて必要な機能も配線図でなく、プログラムのように記述することも可能になってきた。

(という訳で、話は続く)


2010年12月02日(木) 旧暦 [n年日記] [更新:"2010/12/02 21:49:14"]

#1 [pkgsrc][NetBSD] print/cups, cups-1.4.3nb9

I am getting some error while doing make package. I could not figure out why, but just for my record:
  190  cd print/cups
  191  make clean
  192  cvs update -dPA
  194  make package |& tee ~/prep/cups-1.4.3nb9.log
=> Checking file-check results for cups-1.4.3nb9
ERROR: ************************************************************
ERROR: The following files are in the PLIST but not in /usr/pkg:
ERROR:         /export/pkgsrc/print/cups/work/.destdir/usr/pkg/libexec/cups/backend/dnssd
ERROR:         /export/pkgsrc/print/cups/work/.destdir/usr/pkg/libexec/cups/backend/mdns
*** Error code 1
modena@makoto 10:37:03/101202(..print/cups)% grep Permission ~/prep/cups-1.4.3nb9.log
strip: unable to copy file '/export/pkgsrc/print/cups/work/
 .destdir/usr/pkg/lib/libcups.so.2.0.8' reason: Permission denied
 .destdir/usr/pkg/lib/libcups.a' reason: Permission denied
 .destdir/usr/pkg/lib/libcupsimage.so.2.0.3' reason: Permission denied
 .destdir/usr/pkg/lib/libcupsimage.a' reason: Permission denied
 .destdir/usr/pkg/lib/libcupscgi.so.1.0.0' reason: Permission denied
 .destdir/usr/pkg/lib/libcupscgi.a' reason: Permission denied
 .destdir/usr/pkg/lib/libcupsdriver.so.1.0.0' reason: Permission denied
 .destdir/usr/pkg/lib/libcupsdriver.a' reason: Permission denied
 .destdir/usr/pkg/lib/libcupsppdc.so.1.0.0' reason: Permission denied
 .destdir/usr/pkg/lib/libcupsppdc.a' reason: Permission denied
 .destdir/usr/pkg/lib/libcupsmime.so.1.0.0' reason: Permission denied
 .destdir/usr/pkg/lib/libcupsmime.a' reason: Permission denied
modena@makoto 10:37:28/101202(..print/cups)%
After all, the files pointed out above are installed.
modena@makoto 10:55:26/101202(..print/cups)% grep dns_sd ~/prep/cups-1.4.3nb9.log 
checking dns_sd.h usability... yes
checking dns_sd.h presence... yes
checking for dns_sd.h... yes
checking for current version of dns_sd library... no
dnssd is enabled by option, but it is not found on the system, it will be skipped. How PLIST is to be handled.

If the option 'dnssd' is enabled, packaging should check its relevant library and say no if not installed (not available).

in options.mk, it looks properly coded:
 30  PLIST_VARS+=            dnssd
 31  .if !empty(PKG_OPTIONS:Mdnssd)
 32  .include "../../net/mDNSResponder/buildlink3.mk"
 33  CONFIGURE_ARGS+=        --enable-dnssd
 34  PLIST.dnssd=            yes
 35  .else
 36  CONFIGURE_ARGS+=        --disable-dnssd
 37  .endif
And it seems to me DNS Responder is installed recently.
modena@makoto 11:04:03/101202(..print/cups)% pkg_info|grep DNS  
p5-Net-DNS-0.66     Perl5 module for DNS resolution
mDNSResponder-108nb1 Apple's mDNS responder

modena@makoto 11:04:50/101202(..print/cups)% ls -l /usr/pkg/lib/libdns_sd*
-rwxr-xr-x  1 root  wheel  19726 Dec  1 23:16 /usr/pkg/lib/libdns_sd.so
modena@makoto 11:04:54/101202(..print/cups)% 
Then, why configure says no.
in configure.log says:
configure:9920: checking for current version of dns_sd library
configure:9939: cc -c -I/usr/include/krb5  -O2 -I/usr/pkg/include -I/usr/include/krb5 -I/usr/include -
I/usr/pkg/include/dbus-1.0 -I/usr/pkg/lib/dbus-1.0/include   -DDBUS_API_SUBJECT_TO_CHANGE -I/usr/inclu
de/krb5  -I/usr/pkg/include -I/usr/include/krb5 -I/usr/include conftest.c >&5
conftest.c: In function 'main':
conftest.c:102: error: 'kDNSServiceFlagsShareConnection' undeclared (first use in this function)
conftest.c:102: error: (Each undeclared identifier is reported only once
conftest.c:102: error: for each function it appears in.)
configure:9939: $? = 1
configure: failed program was:
mDNSResponder 108 is too old, the current one is 258.13. But it is not easy to build it. So here is the patch:
cvs diff: Diffing .
Index: options.mk
===================================================================
RCS file: /e/cvsync/cvsync/pkgsrc/print/cups/options.mk,v
retrieving revision 1.11
diff -u -r1.11 options.mk
--- options.mk  14 Jul 2010 11:25:19 -0000      1.11
+++ options.mk  2 Dec 2010 02:16:18 -0000
@@ -4,7 +4,11 @@
 PKG_OPTIONS_REQUIRED_GROUPS=   pdftops
 PKG_OPTIONS_GROUP.pdftops=     ghostscript poppler
 PKG_SUPPORTED_OPTIONS= acl dbus dnssd kerberos libusb pam slp tcpwrappers threads
-PKG_SUGGESTED_OPTIONS= dbus dnssd kerberos libusb poppler slp
+PKG_SUGGESTED_OPTIONS= dbus kerberos libusb poppler slp
+.if ${OPSYS} == "Darwin"
+PKG_SUGGESTED_OPTIONS+=        dnssd
+.endif
+
 PKG_OPTIONS_LEGACY_OPTS+=      xpdf:poppler gs:ghostscript
 
 .include "../../mk/bsd.options.mk"
cvs diff: Diffing files
cvs diff: Diffing patches
Says the current version is 214.3.2.
I may be doing something wrong. net/mDNSResponder was too old (in my machine).

Updating mDNSResponder to recentt resolve the problem:

As stated above, the current version of nDNSResponder with pkgsrc is 214.3.2. With this version, the cups packages OK.


2010年12月01日(水) 旧暦 [n年日記] [更新:"2010/12/02 21:21:50"]

#1 [xterm] xterm の窓の題名を変更する方法

某所で見かけた訳だけれど、
echo -e "\033]2;foo\007"
とすると、題名を foo に変更出来る。 ここの 2 は
0    title+icon
1    icon
2    title
となっているらしい。少なくとも僕の fvwm では効く。

Comments related this article

Re: xterm の窓の題名を変更する方法 by obache    2010/12/04 10:24
リモートで入った先のシステムで、カレントディレクトリやらホスト名やらをタイトルの...


最近の日記
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)
以上、16 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)