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

先月 2007年09月 来月
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
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2007年09月30日() 旧暦 [n年日記] [更新:"2007/10/03 10:32:47"]

#1 [csh] sub filter ($$$$) の $ の数

filter/*.pl の sub filter ($$$$) の行を見つけて、その $ の数を表示する:
ttyp1:makoto@mini 10:36:00/070930(...local-src/namazu-2.0.17)> 
   foreach i ( filter/*.pl )
foreach? grep 'sub filter ' $i |   \
   perl -nle '$_=~ /([\$]+)/; print $1' | wc | tr -d '\012' 
foreach? echo ' ' $i
foreach? end
       1       1       6  filter/apachecache.pl
       1       1       6  filter/bzip2.pl
       1       1       6  filter/compress.pl
       1       1       6  filter/deb.pl
       1       1       6  filter/dvi.pl
       1       1       6  filter/excel.pl
       1       1       6  filter/gnumeric.pl
       1       1       6  filter/gzip.pl
       1       1       6  filter/hdml.pl
       1       1       6  filter/hnf.pl
       1       1       6  filter/html.pl
       1       1       6  filter/koffice.pl
       1       1       6  filter/macbinary.pl
       1       1       6  filter/mailnews.pl
       1       1       6  filter/man.pl
       1       1       6  filter/mhonarc.pl
       0       0       0  filter/mp3.pl
       1       1       6  filter/msofficexml.pl
       1       1       6  filter/msword.pl
       1       1       6  filter/ooo.pl
       1       1       6  filter/pdf.pl
       1       1       6  filter/pipermail.pl
       1       1       6  filter/postscript.pl
       1       1       6  filter/powerpoint.pl
       1       1       6  filter/rfc.pl
       1       1       6  filter/rpm.pl
       1       1       6  filter/rtf.pl
       1       1       6  filter/taro.pl
       1       1       6  filter/taro56.pl
       0       0       0  filter/taro7_10.pl
       1       1       6  filter/tex.pl
       1       1       6  filter/visio.pl
       1       1       6  filter/zip.pl
ttyp1:makoto@mini 10:36:11/070930(...local-src/namazu-2.0.17)> 
こっちの方が分り易いし簡単だ:
ttyp1:makoto@mini 10:50:33/070930(...local-src/namazu-2.0.17)> foreach i ( filter/*.pl )
foreach? grep 'sub filter ' $i | tr -d '\012'
foreach?  echo ' ' $i
foreach? end
sub filter ($$$$$) {  filter/apachecache.pl
sub filter ($$$$$) {  filter/bzip2.pl
sub filter ($$$$$) {  filter/compress.pl
sub filter ($$$$$) {  filter/deb.pl
sub filter ($$$$$) {  filter/dvi.pl
sub filter ($$$$$) {  filter/excel.pl
sub filter ($$$$$) {  filter/gnumeric.pl
sub filter ($$$$$) {  filter/gzip.pl
sub filter ($$$$$) {  filter/hdml.pl
sub filter ($$$$$) {  filter/hnf.pl
sub filter ($$$$$) {  filter/html.pl
sub filter ($$$$$) {  filter/koffice.pl
sub filter ($$$$$) {  filter/macbinary.pl
sub filter ($$$$$) {  filter/mailnews.pl
sub filter ($$$$$) {  filter/man.pl
sub filter ($$$$$) {  filter/mhonarc.pl
  filter/mp3.pl
sub filter ($$$$$) {  filter/msofficexml.pl
sub filter ($$$$$) {  filter/msword.pl
sub filter ($$$$$) {  filter/ooo.pl
sub filter ($$$$$) {  filter/pdf.pl
sub filter ($$$$$) {  filter/pipermail.pl
sub filter ($$$$$) {  filter/postscript.pl
sub filter ($$$$$) {  filter/powerpoint.pl
sub filter ($$$$$) {  filter/rfc.pl
sub filter ($$$$$) {  filter/rpm.pl
sub filter ($$$$$) {  filter/rtf.pl
sub filter ($$$$$) {  filter/taro.pl
sub filter ($$$$$) {  filter/taro56.pl
  filter/taro7_10.pl
sub filter ($$$$$) {  filter/tex.pl
sub filter ($$$$$) {  filter/visio.pl
sub filter ($$$$$) {  filter/zip.pl
ttyp1:makoto@mini 10:50:45/070930(...local-src/namazu-2.0.17)>
mp3 と taro7_10.pl は sub filter($$$$$) のように ( の前に空白文字がないのが原因


2007年09月29日() 旧暦 [n年日記] [更新:"2007/09/29 22:47:44"]

#1 [pkgsrc] namazu-2.0.17 (MEF 版)

実は長いこと (自分用の) Namazu が動いていなかった。自分用の Namazu は、jeedosaquin 用のフィルタが入っていることと、 日本語の表示を変更している等だけれど、2.0.17 用に更新していないだけでなく、多分 2.0.16 用でも正しく動いていなかった気がする。

それで、一台目では make package まで進み、動作確認も取れたが、ちょっと古い 3.99.9 の機械で、

===> Creating toolchain wrappers for namazu-2.0.17
Syntax error: expecting "in"
*** Error code 2
となってしまう。 古い日記 を見て /etc/mk.conf に次のように書いて見た
PKG_DEBUG_LEVEL?=       1
_PKG_SILENT=            # was @ here
すると、次のような字が見える。
=> Linking iconv files into /export/pkgsrc/personal-pkgsrc/namazu-mef/work/.buildlink.
case  in *not_found)   echo 1>&2 "ERROR:" 
     "iconv is not installed; can't buildlink files.";  exit 1; ;;                                                       esac
Syntax error: expecting "in"
*** Error code 2
(うまく動いた機械には /usr/bin/iconv が入っている)。 あれ、古い方にも同じところに入っている。ああ、これ単にそう書いてあると いうだけか。


2007年09月25日(火) 旧暦 [n年日記] [更新:"2007/09/27 08:39:39"]

#1 [買物] iBook Shell (5,800) iPod Shuffle(5,980)

某所の DNS secondary server がおかしいようなので、代替の iBook を探しに秋葉原へ。Sofmap Mac 館の上の方の階へ。 iBook Shell 型、96MB + 3GB + 300MHz, 保証なしを見つける (5,800 円、電池完全抜け)。見かけの程度としてはとても良い。所謂美品。 OS 8.6 が起動しているところを見せてもらった後に、 NetBSD boot CD (20070828.iso) を差して起動することを確認してから購入。 予定価格よりも想像以上に安かったので、 横に見えた 型落ちの iPod Shuffle を 5,980 円で入手。 Head Phone 3,500 円 + 1G USB 3,000 円 と考えると、安い。

#2 [BSD] ZFS by nork

18:10    開場
18:30    開始
20:30    終了

20:50(?) 懇親会
22:20    終了
会場の東京都体育館 サブアリーナ第一会議室 はとても良いところだった。 重村 nork さん の説明は(一番前で聞いたせいもあるけれど)とても 良かった。
発表資料
nork さんの blog (ZFSメンテナンスの日々 #4 等)
移植者の資料 (EuroBSD con の .swf + .mpeg 有)
Sun
Sun
Sun
Open Solaris
Solaris 10
FreeBSD wiki
FreeBSD
Sun (日本語)

懇親会:

GPSMAP(R) 60CSx を見せてもらった。



2007年09月24日(月) 旧暦 [n年日記] [更新:"2007/09/24 22:31:32"]

#1 [無題] 墓参 5 か所 5 時間


地点
時刻

自宅出発07:18
1八街
08:13
2小堤09:00

(横芝入口)
09:10

(成東出口)



126号丁字路交差点09:23

[八百屋]
09:29

東金
09:50(*1)

野呂
10:40
3+4平和公園


5千葉寺



帰着
12:20
(*1) 真亀川総合公園 近く、 Orizzonte
国道 126 号から (豊海)県道 75 号線へ入る。


2007年09月23日() 旧暦 [n年日記] [更新:"2007/09/23 12:32:40"]

#1 [Network] Ipv6 逆引は長いから

IPv6 の逆引が正しく設定されているか確認しようと思っても その方法を忘れてしまうというか、長いので入力が大変、 そこで安易な方法として、
./digptr6 2001:218:463::234
のように入力すると、その逆引を表示する操作を作って見た。 → digptr6 (1.3)
./digptr6 -d 2001:218:463::234
とすれば、その操作を表示するだけ。それを手で写して入力しても良い。
しかし Perl 的にも dig 的にも、 もっときれいにやる方法があるとは思うが ... あれ、int じゃなくて arpa かな ?
query - IPv6の使い方
IPv6アドレスの逆引きドメインにおける ip6.intでの逆引きゾーン委譲の廃止について
何ていうことだ。作り直し 自分の日記 (2003/07/07) に書いてある ...

nibble ip6.arpa:

本来は次のようにすればいいはず
dig ptr -x 2001:2e8:22:12::2
dig ptr -x 2001:218:463::234
なのに、実は自分のところの設定がまだ ... (らしい)
(それで Wanderlust の ML からはねられるのかな ..) .. 単に address が違っていた
dig ptr -x 2001:218:463::4
しかし正引(や実機)と合っていない .. 一応作り直した ので、ip6.arpa の bit string の確認は可能になった。


2007年09月22日() 旧暦 [n年日記] [更新:"2007/09/22 19:46:09"]

#1 [pkgsrc][NetBSD] AMD CPU の bytebench の値を比較

以前に作った bytebench-plot-poler を見易くして見た。
agrigento.1  amd64 GENERIC
agrigento.2  amd64 MP
catania.3    i386  MP
catania.4    i386  MP (別の時に測定)
(これを見る限りは) NetBSD/amd64 (4.99.31) は NetBSD/i386 (4.99.29) に較べて、 File Copy 1024 busize 2000 maxblocks と Process Creation (だけ) が 劣っている

実は、上の二つの機械は CPU は全く同じものだけれど、 Release, Mother Board, Memory , Disk 等は全く同じではない。 機会があれば、もっと揃えて、贅沢を言えば、何回かの平均値を取って、 もっと正確な比較をして見たい。



2007年09月21日(金) 旧暦 [n年日記] [更新:"2007/09/22 23:20:08"]

#1 [NetBSD] amd64 に戻す

きのうは fxp0 を使えば問題なく動くということが分った。

そこで、もう一度残った半分に NetBSD/amd64 を入直す。 sysinst が完了して再起動すると、 disklabel 上 i386 側が全て見えてしまって、/etc/fstab にも書かれてしまっている。 一応 noauto になっているが、これだと、 記述順に(?) i386 側を mount してしまう。

# NetBSD /etc/fstab
# See /usr/share/examples/fstab/ for more examples.
/dev/wd0a               /       ffs     rw,noauto                1 1
/dev/wd0b               none    swap    sw               0 0
/dev/wd0e               /usr    ffs     rw,noauto                1 2
/dev/wd0f               /var    ffs     rw,noauto                1 2
/dev/wd0g               /export ffs     rw,noauto                1 2
/dev/wd0h               /       ffs     rw               1 1
/dev/wd0i               none    swap    sw               0 0
/dev/wd0j               /usr    ffs     rw               1 2
/dev/wd0k               /var    ffs     rw               1 2
/dev/wd0l               /export ffs     rw               1 2
kernfs          /kern   kernfs  rw
ptyfs           /dev/pts        ptyfs   rw
procfs          /proc   procfs  rw,noauto
もう一度 CD-ROM から起動し、上のいくつかを # で無効化。これで無事 初めての amd64 が動くようになった。

byte-bench は GENERIC kernel (352.9) MP kernel (332.2) 以前に似た機械で測った i386 (4.99.28) の 368.8 より値が良くない。 まあ、これは公平な比較ではないけれど。


#2 [NetBSD] 玄箱/evbppc 4.99.31 を build

かわうちさん用意された 20070909 のうち、 20070909.evbppc-4.patch.tar.bz2 を使って
env CVSROOT=/e/HOGE/cvsync sh 20070909.evbppc-current.patch.sh 
のようにして build.sh (NetBSD/amd64 で実行、経過 2:23)


2007年09月20日(木) 旧暦 [n年日記] [更新:"2007/09/22 14:56:49"]

#1 [MTA] spamass-milter に amd64

2007/08/27 の日記 に spamass-milter の機械を用意したが、どうも負荷が重すぎて、うまく動かない と書いた。それで、これはメールの経路からは外していた。 これを何とかしようと、もう一台 amd64 を 買って来た。
Mother BoardASUSM2NPV-VMAM2 Matx GF615010,280
CPUAMDAthlon X2 BE 23502.1GHz/45W10,980
MemoryTransendPC2-64001GB x 211,160
CaseScytheK110-WHATX 450W/White8,980
Disk

250G SATA
CD-ROMApple
12X
Total


41,400
Disk 250MB Sata と Optical Drive (CDROM .. Made by Apple) は手持で。 CPU が 4200+ なら 320GB の disk が付いて 53,900 円くらいのものがあったが、 やはり BE 2350 は替え難いということで、自分で組合せることにした。

組立時にちょっと失敗した:

CPU を刺す時に、ちょっと失敗したが、それは書かないでおこう。 無事復活(したと思う)。

初めての NetBSD/amd64 はあえなく消去:

まず BIOS に Network boot のメニューは見つからなかった。そこで、 4.99.31 の iso 形式を、例によって 絹 FTP mirror の 200709190002Z から持って来て CD-R に書く。 これで起動。250G 全体に NetBSD/amd64 4.99.31 を入れる。ところが、どうも 使っていると network がおかしい。
  • NFS サーバとの通信が変 (nfs server cvsync:/export: not responding)
  • 他の機械から ssh で入ると、入力がひっかかる、遅い
このため pkgsrc さえ満足に co が出来なかったが、それでも 5 つくらいは package を作った。 しかし、これではやってられない。 これは初めての amd64 だったので、何が悪いのかの見当を付けるのもおぼつかない。 良く似た最初の機械では i386 で動かしていて問題ない、という こともあって、i386 を入直して見る。今度は 125 + 125 で半分を使う。

i386 を amd64 の CDROM で入れる:

amd64 の CDROM で起動して、 sysinst の中 で 媒体は ftp を選び、i386 を入れる。この方法だと、 最後の root passwd の設定が execv: illegal format となって実行出来ないが、 それは後で設定すれば良い。これで無事入る。ところが、Network は、かなりは 良くなったように見えるが、どう見ても正常ではない。そこで、手持の fxp0 の板を 代りに使って見る。 すると、何の問題もない。(この NIC は 100 Base-TX だけれど、 接続している Hub はもともと 100Base TX )。 つまり基板についている nfe0 が問題があるということらしい。
nfe0 at pci0 dev 20 function 0: NVIDIA nForce430 Gigabit Ethernet Controller (rev. 0xa1)
APCH: Picked IRQ 21 with weight 1
nfe0: interrupting at ioapic0 pin 21 (irq 11)
nfe0: Ethernet address 00:1d:60:00:f5:3f
ukphy0 at nfe0 phy 1: Generic IEEE 802.3u media interface
ukphy0: OUI 0x000ac2, model 0x0021, rev. 1
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto


2007年09月19日(水) 旧暦 [n年日記] [更新:"2007/09/21 10:34:37"]

#1 [仕事] 納品完了

今回は印刷物が厚くなってしまった。18m/m くらい。いつもの安物とじでは、 はさめないので、急拠近くの文具店に行き、大枚 840 円をはたいて A4 の 3cm 用のもの を買って来た。すると、今度は背表紙にきれいに印刷したい。

奥村本 (ISBN-10: 4774129844) を見ると

\documentclass[17pt]{jsarticle}
のように書けて、この 17pt には 9,10,11,12,14,17,21,25,30,36,43 などの数字が書けるらしい。 (改訂第4版, p44)

それと、google 先生に聞いたら、

\usepackage{graphicx}
\begin{document}
\rotatebox{90}{
本文
}
こんな感じで、90 度の文字回転が出来る。結局作ったのは次のようなもの。
\documentclass[17pt]{jsarticle}
\usepackage{graphicx}
\textheight 50mm
\textwidth 240mm

\begin{document}
\rotatebox{90}{
\begin{tabular}{l l  l l}
\Huge TITLE  & \Huge FOO  &  \Huge HOGE  & \Huge VAR\\
             &            & \multicolumn{2}{c}{\large 2007/09/19 (株) xxxx}
\end{tabular}
}

\end{document}
これで出来るものの二枚目を印刷した。実はどうやって印刷したか忘れてしまった。 (次の時にこまりそう) 多分次のようにして pdf を作ってから印刷したと思う。
 dvipdfmx -p 7cm,25cm sample.dvi

右のものは convert (ImageMagick) を使って変換した。 夕方五時頃に発送。



2007年09月18日(火) 旧暦 [n年日記] [更新:"2007/09/18 11:57:52"]

#1 [linux] iso 形式を linux で mount するには

いつもなら次のようにするはずの時に、
vnconfig /dev/vnd0c /export/20070917.iso
mount /dev/vnd0c /cdrom
たまには linux でこういうことをする必要があって、次のようにした。
mount -t iso9660 -o loop /export/20070917.iso /cdrom


2007年09月17日(月) 旧暦 [n年日記] [更新:"2007/09/17 23:12:02"]

#1 [NetBSD] 玄箱 (Sandpoint) が reboot する時

kernel panic して自動で再起動する場合、 fsck する間に watch dog が disk の問題だと電源を切ってしまう ... 続き


2007年09月16日() 旧暦 [n年日記] [更新:"2007/09/17 18:40:04"]

#1 [無題] 館山自動車道

2007/07/04 に全線が開通したのに、まだ一度も通して走っていなかった。 行きは都合で君津まで。 帰りは全線。燃料がなくなりそうなので、ゆっくり走ったのと、結局市原で 10 litre 追加した。という訳で、時間は良く測っていなかった。 富山・松ヶ丘間 (普通車) 2,250 円。

#2 [comp] make (gmake) pattern rule

make と言っても gmake の話だけれど pattern rule というのがある。% を使って、一般式を書いておけば、 一つ一つ書かなくてもいい、という話である。 これが(ちょっと複雑なものになると) なかなかうまく行かなくて、実のところ、あまりいい印象が なかったというか、良く書き方が分っていなかった。
gmake: *** No rule to make target `hoge.pdf', needed by `all'.  Stop.
のように言われるのだけれど、確かにその規則は書いてあるのだがなぁ、 というような場合である。良く々々 説明 を見ると、
In order for the pattern rule to apply, its target pattern must match the file name under consideration, and its dependency patterns must name files that exist or can be made.
とあって、 この規則が適用されるためには、二つのことが重要で、
  • : の右側に書く目的物の名前が確かに作りたいものに一致すること
  • : の左側に書く依存物の名前は、既に存在するものであるか、作るための規則があること
と書いてある。この二つ目が問題で、
%.dvi: %.tex
のような、右側が既にあるものなら簡単なのだけれど、それが また
PDF = hoge.pdf
TWO = ${PDF:%.pdf=%.two}

all: ${PDF}

%.pdf : %.two
        dvipdfmx $*.dvi
このようになっていて、%.two の作り方の規則がない場合に、 %.two の作り方がないよではなく、%.pdf の作り方が 書いてないよ、と言うので、ちょっと見ただけでは、分り難い、 ということである。このことを知っていれば、全て目でたどって 見れば、おそらく何が悪いかは気が付くと思う。


2007年09月15日() 旧暦 [n年日記] [更新:"2007/09/17 18:35:18"]

#1 [無題] 町内会避難訓練

  • 起震車での模疑体験
  • 消火器の使い方
  • 三角巾
  • 炊出し模疑


2007年09月14日(金) 旧暦 [n年日記] [更新:"2007/09/14 19:07:26"]

#1 [Emacs] Emacs-23.0.50 と emacs-w3m

emacs-current を wip から入れて見たら、 23.0.50 になっていた。
GNU Emacs 23.0.50.1 (i386--netbsdelf, X toolkit, Xaw3d scroll bars) of 2007-09-13 on catania
それで Wrong type argument: stringp, nil と言っているが (setq debug-on-error t) したら、Emacs-w3m が
signal(error ("Emacs-w3m of this version does not support Emacs 23; try the development version")
と言っていた。
104  19:04   cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot login
105  19:04   cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot co emacs-w3m
106  19:04   cd emacs-w3m/
107  19:04   ls
108  19:06   autoconf
109  19:06   ./configure
110  19:06   make
111  19:06   sudo make install
113  19:06   sudo make install-icons


2007年09月13日(木) 旧暦 [n年日記] [更新:"2007/09/14 09:18:22"]

#1 [pkgsrc] OpenOffice -> scalc column(行と列)

しばらく前に作った OpenOffice (openoffice2-2.2.1) を使って見た。scalc あるいは scalc be2350.ods のように起動する。なかなか良く出来ている気がする。 実は、この機械は AMD で、今は NetBSD/i386 で動いているが、 NetBSD/amd64 だとだめなのかも知れないという気がして来た。

良く出来ていると思った一つは、Insert の選択の中に Rows と Columns があるけれど、 それに図が付いているということ (右側の図、クリックで拡大します)。まあ、これ自体は大したこと ではないかも知れないが Row と Column は米国人でも混乱するのかということが分った。

普通 Column って何 ? と聞くと、たいていの人は横長の箱を思いうかべると思うが、 Column とは柱で、この選択肢の図にあるように縦長が正しい。 英和 で column を索くと最初に出て来るのは柱だ。 和伊辞典に御相談したら、柱 → (円柱) colonna(女)と書いてある。

Column は横長だと思っている場合、例えば HTML でも colscan と言えば、横にのばす ことだけれど、それは column の数は横に進むからである。 column(柱) を並べて、それに番号を付けて、 その番号を見ると 1 2 3 4 と横に進む訳である。言い直せば、その(柱 = 横長)という 理解は column ではなく column number のことを言っていることになる。 左側の図で言えば A B C D が column の名前ということになる。確かに A B C D は横に伸びている。

横書き社会でもこれだから、日本語になるともっと厄介。column = 行 となって縦か横か 良く分らない (row は 列)。でも column に行の訳を付けたのは日本の勝手か。縦か横か分らな い訳を当てたツケは高くつくということかな。

という訳で、Insert の columns と rows に図の説明が付いている OpenOffice の scalc は素適 ということになった。

Prime A Regulus (BE 2350):

で何の計算をしているかと言うと dos/v paradise に Prime A Regulus という BE 2350 の機械がある。基本は 42,980 円。 お店で聞いて見ると、通常一年の保証が付くが、Windows XP か Vista でないとその保証は付かない、 という話であって、じゃ自分で組合せたらいくらで出来るかを 計算して見た (ただし Mother Board は全く同じではないし、 Memory など増してあるので基本とそのままで比べられない)。

他に何が出来るのかな:

起動名種別MS 名
swriter文書作成Word
soffice総合入口Office
simpress発表資料PowerPoint
sdraw図作成Visio
scalc表計算Excel
unopkg


2007年09月09日() 旧暦 [n年日記] [更新:"2007/09/12 09:50:57"]

#1 [Perl] Getopt::Std の使い方 (use strict)

以前にも ちょっと書いた ことがある Getopt::Std; の使い方の話。まず話がそれるが、 Emacs か vi かという話があって、それと(僕は)似た話だと思うが、 Perl 手続を書く時に、 use strict; を使う か使わないかがある気がする。 どのような時でも use strict; を使う と決めているとすると、その Getopt::Std で少し悩むかも知れない。( 参考: perldoc Getopt::Std)
use strict;
use Getopt::Std;
と書いた時の話。まず、use strict; の有無に関係ない話として、 その時に使えるようになる二つの関数の getopt() と getopts() の違い。 はじめの getopt('r'); は r に引数をとる。
./test-script -r 2
の 2 が $opt_r に入る。一方二つ目の getopts('r') は r に引数をとらない。 getopts() の方で引数をとるようにするには getopts('r:') と書く。 初めの方の getopt では、(: を付けなくても) 並べて書いた全ての文字に引数をとる。
関数引数の例その時の動作名前の覚え方
getopt'r'-r hoge の hoge が $opt_r に入る方法が一つだけなので単数形
getopts'ari:'-a や -r は、有無で $opt_a や $opt_r に 1 か 0、i: のようにコロンを付けると、-i foo の foo が $opt_i に入る二つの方式 (: の有無)があるので複数形
このようにして getopt() や getopts() は変数 $opt_文字 に値が代入される。で、 もう一つの使い方として hash の %opts 変数 を使うことも可能。
getopts('r', \%opts);
のようにしておくと %opts の $opts{'r'} に値が入る。 単数形の getopt の方が指定方法が一通り。 複数形の getopts は指定方法に二つあると覚えるのかな。 で、ここまでは use strict; とは関係なくどちらでも同じ。

use strict;:

use strict; と一緒に使う場合には、そのままだと、例えば $opt_r が宣言されて いないと言われる。
Global symbol "$opt_r" requires explicit package name at hoge line xx.
それで、使うものに応じて、次のような宣言を書いておく。
our(%opts);
our($opt_r);
%opts 方式が良いのは、全ての文字について our を書かなくても良く、一つで済むいということ。 ちなみに our は大域変数 (global variable)宣言。 つっこみをいただきましたが、%opts が良いのは、my(%opts) で済むこと(らしい)です。 ありがとうございます。

@ARGV に与えた引数が入らない:

更にもう一点注意が必要、それは @ARGV。何も考えないと、特に問題が表示されないで 「@ARGV に与えた引数が入らない」 変だなぁ、となる。これは
our(@ARGV);
の宣言を書くことで期待通り動くようになる。


2007年09月08日() 旧暦 [n年日記] [更新:"2007/09/09 15:01:45"]

#1 [無題] 台風で木が折れていた

台風 9 号が 6 日の夜から関東地方を通過した。 夜中には、建物が揺れるくらいすごい風が吹いた。 後で気が付いたが 木が折れていた。 実は何の木かも分っていないようなものだけれど。 多分切る必要があるだろう。(写真左)

ついでに全然関係ないが写真右は、最近差木をしたべンジャミンの苗。

(gimp で周辺をぼかす方法が分らない)。
Script-Fu → Selection → Fade Outline だった。
かなり修行が必要な気がする



2007年09月07日(金) 旧暦 [n年日記] [更新:"2007/09/07 12:54:02"]

#1 [pkgsrc] doxygen を使う

  1. doxygen -f で Doxyfile を作る
  2. それを一部変更する
  3. time doxygen で実行
変更内容
ttyp1:makoto@catania 12:09:19/070907(...nn/gas)> diff Doxyfile.orig Doxyfile | grep '>'

> EXTRACT_ALL            = YES
> EXTRACT_PRIVATE        = YES
> EXTRACT_STATIC         = YES
> EXTRACT_LOCAL_METHODS  = YES
> INPUT                  = src/ld src/bfd work/ld work/bfd
> EXCLUDE_PATTERNS       = "*/testsuite/*"
> SOURCE_BROWSER         = YES
> HAVE_DOT               = YES
> CALL_GRAPH             = YES
> CALLER_GRAPH           = YES
これは binutils の中の ld を見たい時。bfd や work の下も参照するように するのが良い。(しかし多分 work の方は、この場合には、意味がないかも知れない)
これで 2.1GHz Athlon X2 (BE 2350) で
Generating page index...
2425.283u 453.954s 55:32.44 86.4%       0+0k 326+258395io 1pf+0w
ttyp1:makoto@catania 12:04:59/070907(...nn/gas)> ls -l Doxyfile*
55 分くらいかかる。できた html は約 340MB

#2 [Emacs] outline-regexp を切替えるには ?

*.c を編集する時には、いつもは次の outline-regexp を使っている
;; (setq outline-regexp "[_A-Za-z]+\\(.*\\)\\|/\\* \\$Header") ; normal
しかし時には次のようにしたい。これは実際には一行。
;; (setq outline-regexp "[_A-Za-z]+\\(.*\\)\\|
                        /\\* \\$Header\\|
                        [ \t]*\\(for\\|else if\\|else\\|if\\|while\\)")
これをうまく切替えるには ?
しかし ( ) の使い方は perl と elisp で逆だし、しばらく考えないと分らない、 あるいは実は、考えても分らない。

perlelisp
()正規表現文字そのもの
\(\)文字そのもの正規表現
だとすると、いつも使っている方は ( ) と書くべきでは ?


2007年09月01日() 旧暦 [n年日記] [更新:"2007/09/02 23:27:34"]

#1 [NetBSD][ftp] NetBSD-daily/HEAD/map/index.html

NetBSD-daily/HEAD の evbmips-mipse{b,l}cd.iso がたまりすぎて disk が溢れていた。10 日以上古いこれらを消すと 17 GB くらい空いた。消す方法のどこかにまだ誤りがある。



最近の日記
2019年08月24日
for 9.0_BETA
2019年08月22日
Could not locate a virtual/physical font for TFM "rml".
2019年08月14日
bulklog/rust-1.36.0nb1/install.log
completed with error 5
2019年06月28日
config-set for 8.99.45
2019年05月05日
graphic monitor for bulkbuild count
以上、19 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)