Just another Ruby porter,

〜2002年2月中旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2002-02-11 (Mon)

今日の略語

RWN - Ruby Weekly News

Cygwin 1.3.9-1

Ruby binariesのcygwin1.dllをCygwin 1.3.9-1にした。 いや実際は金曜日の話なんだが。

$'...'

で、結局config.cacheの中身になぜ$がつくかというとbash 2.05だと

% bash -c 'foo="a b";set |grep foo'
foo=$'a b'

となるから。bash 2.04は

% bash -c 'foo="a b";set |grep foo'
foo='a b'

と、なるので2.05からみたい。

"Masashi Suzuki"

久し振りにSirCamだ。230KBもあるなんだかわからんファイルを送って来ないように。

19

3月で解散するらしい。


2002-02-12 (Tue)

"Masashi Suzuki"

だからSirCamを2日連続で送ってくるなよ。ベルギー在住らしい。

emacs -nw

screen内でemacs -nwってのは寂しいよねえ。 と思ってたらEmacs21なら色がつくじゃん *1。 cmailは

(cmail-i18n-defcustom cmail-highlight-mode window-system

てな感じなので、cmail-highlight-modeを強制的にtにする。あと、

(set-face-foreground 'modeline "gray")
(set-face-background 'modeline "black")

とするとなんかEmacs21ぽくていい。 てゆかなぜ-nwのときはfgとbgが逆なのだ?


*1: Emacs20はたぶんだめだよね?

uconv 0.4.9

更新。

Win32OLE 0.3.7a

とりあえず[test]のほうに入れとこう。


2002-02-13 (Wed)

REXML 1.2.6

更新。

"Masashi Suzuki"

3日目だ。いい加減SirCamに感染してるって教えてやるべきか? 毎回200KBほど送られてもかなり迷惑だしなあ。


2002-02-14 (Thu)

GNU GRUB

久し振りにバージョンアップしてみた。 ここに書いてるということは、そう、またbootしなかったのである。

まずDOS用のフロッピーをあらかじめ用意して

% sudo mount /dev/fd0 /mnt
% sudo /usr/local/sbin/grub-install --root-directory=/mnt '(fd0)'

てな感じでrescue diskを作り、これでちゃんとbootするかどうか確認した。 GRUBはFATにインストールできるから、 いざってときにmenu.lstをWindowsからいじれて便利なのだ。 その後

% sudo /usr/local/sbin/grub-install '(hd0)'

としてるので、それほど心配はしてなかったんだけど、 結局のところ元に戻してもbootしないのであった。 正確なエラーメッセージはもう覚えてないけど、 stage1.5がloadできないとかそんな感じの内容だった。

元に戻らないとしたら物理的な位置が原因としか考えられない。 とするとstage1.5がきっと8GBの壁を越えてしまったのだろう。 8GBを越えない別のパーティションを用意しgrub-installし直したらbootできた。 ビンゴのようだ。

ひょっとしてstage1.5がloadできればkernelの位置はどこでもいいんだろうか? 実験してみるとそんな感じだ。 いずれにせよ/bootを別に用意しとくべきだったな。

$'...'とbash 2.05a

autoconf方面でもbash 2.05の$'...'に関してはいろいろあったようで、 さがみさんというかたから情報をもらった。ありがとうございます。 で、bash 2.05aでは\nのようなものを含まなければ$がつかなくなった。

% bash -c 'foo="a b";set |grep foo'
foo='a b'
% bash --version
GNU bash, version 2.05a.0(1)-release (i586-pc-linux-gnu)
Copyright 2001 Free Software Foundation, Inc.

$がつく典型的な例はIFS。

% bash -c 'set |grep IFS'
IFS=$' \t\n'

これが生のままだと確かにわかりにくい。


2002-02-15 (Fri)

wwwoffle 2.7

なんかすごく速くなったような気がする。 off-line時にRAAぐらい大きいとかなり待たされてたんだけど、あ、 ModifyHTMLのenable-modify-htmlがnoになってるからだ。 2.7は/etc/wwwoffle.confを見るのか。 でもこれをyesにするとno dataになってしまうなあ。うーむ。 これじゃadd-cache-infoが使えない。 http://localhost:8080/control/もno dataだ。 なんかバグっぽいな。とりあえず2.6dに戻そう。

それはそれとしてwwwoffle-namazuも同梱されてる。

Linux 2.4.18-rc1

更新した。 -acもなぜか最近はactiveだったりするけど、これはどういう位置付け?


2002-02-16 (Sat)

ruby-talk

[ruby-talk:33941] で追い付かれて [ruby-talk:33942] で抜かれた。

その後Hybrisの登場だよ。ったく。

WEBrick 1.1.5

更新。

WWWOFFLE 2.7

これを無視してたらしい。

WWWOFFLE: There is already a directory /var/spool/wwwoffle/html.old.
WWWOFFLE: Remove it and re-run make.
WWWOFFLE: 

消してmake installしなおしたらちゃんとうまくいった。疑ってごめん。

これマジ!?

ミステリーサークルって人間が3人で3時間程度で作れるのか。 イギリスにはミステリーサークルを作る団体が8ぐらいあるらしい。


2002-02-17 (Sun)

RubyUnit 0.5.4-02

% i386-cygwin-ruby install.rb
%

えっ?と思いdiffを取ってみるとChangeLogとmakehtml.rbだけの違いだった。なるほど。

Win32OLE 0.3.9

更新。

REXML 1.2.7

なんか急にサイズが大きくなったと思ったら新しいRDocを使っているのか。 これからこんな感じでみんな大きくなるのかな。

RDoc alpha-a

CVSでupdateしてるんだけどNEW_FEATURESを見ると2/10にalpha-aが出てるようだ。 アナウンスを見落としたか?ruby-talkをgrepしても出てこない。 それにしてもalpha-9の次はalpha-aってのは意表を突かれた。 そういうバージョンを作られるとsetup.ini的には非常に困るなあ。

いずれ正式にリリースされればalphaは外れるから rdoc-alphaというパッケージ名にしてしまう手もあるか。

rubyのソースごと試してみたら1時間経っても終わらない。

watanabe  1003 41.6 77.5 141640 98756 pts/2  D    15:31  25:23 \
  /usr/local/bin/ruby /usr/local/bin/rdoc ...

ああ、これじゃ時間かかるわけだ。メモリが足りないな。 killしたらなにも残らなかった。ぐふっ。

さがみさん

最初はそんな気がしたけど、 biglobeからのメールだったことと芸風があまりにも違うので別人と判断しました。


2002-02-18 (Mon)

[Linux] iptablesでNAT

いままではPPxPのIPマスカレード機能を使って

filter ip +mO -S 192.168.1.0/24

てな感じで使ってたが、Linux 2.4.xのiptablesを試した。 iptables はmakeして普通にインストールしただけ。 kernelは既にreconfig済みなので、 後はダイアルアップして実際に実行してみる。

% sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

でokだな。tun0はifconfigして実際のdevice名を使う。 あ、もちろんあらかじめ

% grep ip_forward /etc/sysctl.conf
net.ipv4.ip_forward = 1

としてある。

デバイス名は$PPXP_IFでわかるのでこうしとくか。

% cat ~/.ppxp/rc/nat.rc
#!/bin/sh

export PATH="/usr/local/bin:/usr/bin:/bin:/sbin:/usr/sbin"
IPTABLES=/usr/local/sbin/iptables

case "$1" in
up)
  case "$PPXP_PHASE" in
  Dead) ;;
  *)
    sudo $IPTABLES -t nat -A POSTROUTING -o "$PPXP_IF" -j MASQUERADE ;;
  esac ;;
down)
  sudo $IPTABLES -t nat -F POSTROUTING ;;
esac

exit 0

ftpに関してはlftpが勝手にpassive modeにしてくれるので気にしない。 ip_conntrack_ftpもip_nat_ftpも作ってあるのでmodprobeしてもいいんだけど。

[Linux] iptablesでパケットフィルタリング

次はパケットフィルタリングだが、 iptablesを並べるのはよくありがちだよね。 それだとつまらないので、 一度iptablesで設定してiptables-saveして、 その結果をiptables-restoreするようにしてみよう。 こんな感じ。NATの設定も入っている。

% sudo iptables -A POSTROUTING -o tun0 -j MASQUERADE 
% sudo iptables -N ppxp-in
% sudo iptables -A INPUT -i tun0 -j ppxp-in
% sudo iptables -A FORWARD -i tun0 -j ppxp-in
% sudo iptables -A ppxp-in -p tcp -m tcp --dport ssh -j ACCEPT
% sudo iptables -A ppxp-in -j LOG
% sudo iptables -A ppxp-in -j DROP
% sudo iptables-save
# Generated by iptables-save v1.2.5 on Mon Feb 18 01:24:42 2002
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o tun0 -j MASQUERADE 
COMMIT
# Completed on Mon Feb 18 01:24:42 2002
# Generated by iptables-save v1.2.5 on Mon Feb 18 01:24:42 2002
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:ppxp-in - [0:0]
-A INPUT -i tun0 -j ppxp-in
-A FORWARD -i tun0 -j ppxp-in
-A ppxp-in -p tcp -m tcp --dport 22 -j ACCEPT
-A ppxp-in -m state --state ESTABLISHED,RELATED -j ACCEPT
-A ppxp-in -j LOG
-A ppxp-in -j DROP
COMMIT
# Completed on Mon Feb 18 01:24:42 2002

sshだけ開けた *1。 これを~/.ppxp/nat.upとでも名前をつけて保存しとこう。逆に

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

を、たとえば~/.ppxp/nat.downという名前で作っておけば

% sudo iptables-restore ~/.ppxp/nat.down

で後かたづけも簡単。最終的にはこうなった。

% cat ~/.ppxp/rc/nat.rc
#!/bin/sh

export PATH="/usr/local/bin:/usr/bin:/bin:/sbin:/usr/sbin"
RESTORE=/usr/local/sbin/iptables-restore

case "$1" in
up)
  case "$PPXP_PHASE" in
  Dead) ;;
  *)
    sudo $RESTORE $HOME/.ppxp/nat.up ;;
  esac ;;
down)
  sudo $RESTORE $HOME/.ppxp/nat.down ;;
esac

exit 0

NAT HOWTO を見ると後かたづけはしなくてもというか、 そもそもup時に動的に設定しなくても、 最初から設定しておいてそのままの状態でもいいんじゃないかという気もする。

ppxp-outもいずれ考えよう。


*1: 誰も外からsshする人はいないのであまり意味はない。

2002-02-19 (Tue)

[Ruby] 関数プロトタイプ

regex.cのxmalloc関連のプロトタイプはlongにするんじゃなくて消すべきだったか。 defines.hに追加されたわけだし。

A port of BSD ex/vi

READMEには一番最初にLinuxが挙げられてるから問題ないと思ってたら、 いきなりSEGVだ。やっぱmallocがらみのようで、 もう面倒だから自前のmallocを使わないようにquick hackしたら立ち上がった。 とはいうもののktermだとtermcap的に何か足りなくてopen modeになる。 いやあ、open modeなんてなつかしすぎるよ。vimではお目にかかれないもんなあ。

% TERM=xterm ./vi README

ではちゃんと立ち上がる。調べるのも面倒なのでncursesを使うようにしてみる。 いいみたい。:verしてみると渋いね。

Version 3.7, 6/7/85 (gritter) 2/17/02

1.6.7

あと10日ほどで3月になってしまうわけで、 このままだと例の法則がまた活きてきたり。


2002-02-20 (Wed)

regex.c

さて消そうと思ったらすでにないのであった。 おいらがcommitして1時間もしないうちにまつもとさんが消していた。 そういう点では 昨日の日記 はかなりまぬけだ。

Epic4/Ruby

使ってみたいけど、Epic4の日本語対応パッチってあったっけ?

"Noriko Sugisawa"

久し振りのBadtrans.Bだ。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!