#!/usr/bin/ruby
require "kconv"
while gets
if $_ =~ /^A:hover \{/ then
print $_
print "body {padding: 1em 3%;}"
end
if $_ =~ /^<body/ then
print $_
while $_ !~ /<!-- begin center column -->/
gets
end
gets
gets
end
$_.gsub! /<img.*?>/i, ""
if $_ =~ /cssdef.php/ then
print $_.sub "//sourceforge.net/cssdef.php","cssdef.css"
elsif $_ =~ /</ || $_ =~ />/ || $_ =~ /&/ then
line = $_
line.gsub! "<", "%%lt;"
line.gsub! ">", "%%gt;"
line.gsub! "<", "<"
line.gsub! ">", ">"
line.gsub! "&", "&"
line = Kconv.toeuc line
line.gsub! "&", "&"
line.gsub! "<", "<"
line.gsub! ">", ">"
line.gsub! "%%lt;", "<"
line.gsub! "%%gt;", ">"
print line
else
print Kconv.toeuc($_)
end
end
# Generated by iptables-save v1.2.6a on Mon Nov 18 23:27:56 2002 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :forward_err - [0:0] :input_err - [0:0] [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT [0:0] -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT [0:0] -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT [0:0] -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT [0:0] -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT [0:0] -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT [0:0] -A INPUT -j input_err [0:0] -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT [0:0] -A FORWARD -i eth1 -j ACCEPT [0:0] -A FORWARD -i ppp0 -p tcp -m tcp --dport 9801 -j ACCEPT [0:0] -A FORWARD -i ppp0 -p udp -m udp --dport 9801 -j ACCEPT [0:0] -A FORWARD -i ppp0 -p tcp -m tcp --dport 11000 -j ACCEPT [0:0] -A FORWARD -i ppp0 -p udp -m udp --dport 11000 -j ACCEPT [0:0] -A FORWARD -p tcp -m multiport --sports 135,netbios-ns,netbios-dgm,netbios-ssn,445 -j DROP [0:0] -A FORWARD -p udp -m multiport --sports 135,netbios-ns,netbios-dgm,netbios-ssn,445 -j DROP [0:0] -A FORWARD -p tcp -m multiport --dports 135,netbios-ns,netbios-dgm,netbios-ssn,445 -j DROP [0:0] -A FORWARD -p udp -m multiport --dports 135,netbios-ns,netbios-dgm,netbios-ssn,445 -j DROP [0:0] -A FORWARD -j forward_err [0:0] -A OUTPUT -o ppp0 -p tcp -m multiport --sports 135,netbios-ns,netbios-dgm,netbios-ssn,445 -j DROP [0:0] -A OUTPUT -o ppp0 -p udp -m multiport --sports 135,netbios-ns,netbios-dgm,netbios-ssn,445 -j DROP [0:0] -A OUTPUT -o ppp0 -p tcp -m multiport --dports 135,netbios-ns,netbios-dgm,netbios-ssn,445 -j DROP [0:0] -A OUTPUT -o ppp0 -p udp -m multiport --dports 135,netbios-ns,netbios-dgm,netbios-ssn,445 -j DROP [0:0] -A OUTPUT -s 192.168.0.0/255.255.0.0 -o ppp0 -p tcp -j DROP [0:0] -A OUTPUT -d 192.168.0.0/255.255.0.0 -o ppp0 -p tcp -j DROP [0:0] -A forward_err -p tcp -j LOG --log-prefix "iptables[FORWARD]:" --log-level 6 [0:0] -A forward_err -p udp -j LOG --log-prefix "iptables[FORWARD]:" --log-level 6 [0:0] -A forward_err -p icmp -j LOG --log-prefix "iptables[FORWARD]:" --log-level 6 [0:0] -A forward_err -j DROP [0:0] -A input_err -i ppp0 -p tcp -j LOG --log-prefix "iptables[INPUT]:" --log-level 6 [0:0] -A input_err -i ppp0 -p udp -j LOG --log-prefix "iptables[INPUT]:" --log-level 6 [0:0] -A input_err -i ppp0 -p icmp -j LOG --log-prefix "iptables[INPUT]:" --log-level 6 [0:0] -A input_err -i ppp0 -j DROP COMMIT # Completed on Mon Nov 18 23:27:56 2002 # Generated by iptables-save v1.2.6a on Mon Nov 18 23:27:56 2002 *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] [0:0] -A PREROUTING -i ppp0 -p tcp -m tcp --dport 9801 -j DNAT --to-destination 192.168.0.3:9801 [0:0] -A PREROUTING -i ppp0 -p udp -m udp --dport 9801 -j DNAT --to-destination 192.168.0.3:9801 [0:0] -A PREROUTING -i ppp0 -p tcp -m tcp --dport 11000 -j DNAT --to-destination 192.168.0.3:11000 [0:0] -A PREROUTING -i ppp0 -p udp -m udp --dport 11000 -j DNAT --to-destination 192.168.0.3:11000 [0:0] -A PREROUTING -i ppp0 -p tcp -m tcp --dport 47624 -j DNAT --to-destination 192.168.0.2:47624 [0:0] -A PREROUTING -i ppp0 -p tcp -m tcp --dport 6037 -j DNAT --to-destination 192.168.0.2:6037 [0:0] -A PREROUTING -i ppp0 -p tcp -m tcp --dport 2300:2400 -j DNAT --to-destination 192.168.0.2:2300-2400 [0:0] -A PREROUTING -i ppp0 -p udp -m udp --dport 2300:2400 -j DNAT --to-destination 192.168.0.2:2300-2400 [0:0] -A POSTROUTING -o ppp0 -j MASQUERADE COMMIT # Completed on Mon Nov 18 23:27:56 2002<pre>使うと折りかえしてくれないんだった…。
(autoload 'rubydb "rubydb3x" "run rubydb on program file in buffer *gud-file*. the directory containing file becomes the initial working directory and source-file directory for your debugger." t)
require "kconv"
while gets
line = $_
if line =~ /^A:hover \{/ then
print line
print "body {padding: 0em 3%;}\n"
end
if line =~ /^<body/ then
print line
while line !~ /<!-- begin center column -->/
line = gets
end
gets
gets
end
if line =~ /=\?ISO-2022-JP\?/i then
while line.scan(/=\?ISO-2022-JP\?/i).length != line.scan(/\?=/).length
line = line.chomp + gets.strip
end
end
line.gsub! /<img.*?>/i, ""
if line =~ /cssdef.php/ then
print line.sub "//sourceforge.net/cssdef.php","cssdef.css"
elsif line =~ /</ || line =~ />/ || line =~ /&/ then
line.gsub! "<", "%%lt;"
line.gsub! ">", "%%gt;"
line.gsub! "<", "<"
line.gsub! ">", ">"
line.gsub! "&", "&"
line = Kconv.toeuc line
line.gsub! "&", "&"
line.gsub! "<", "<"
line.gsub! ">", ">"
line.gsub! "%%lt;", "<"
line.gsub! "%%gt;", ">"
print line
else
print Kconv.toeuc(line)
end
end
(setq user-full-name "fullname") (setq user-mail-address "foo@bar.ne.jp")
NTPSERVERS="ntp.sut.ac.jp"とか書いておけばOK。
cat /dev/cdrom > cdimage.iso
set terminal postscript color solidとしておけばよい。
Makefileが期待通りに動作しない原因は .o が .O になっていたことだった。 アホだ…。
プログラムかきかき。
Phoenix BIOSの商標侵害であると文句を言われたらしく、 名前変わるんだそうな。(^^;
来週には0.5リリース予定。
O'REILLYのmake本には $$@ というマクロがのっていて、 これを使うと複数のターゲットに対する処理をまとめて書けて便利なのだが、 どうも $$@ は GNU make では使えないらしい。 GNU make で $$@ を使うと $@ という文字列に解釈されてしまうようで、 「$@.c がありません」とかいうエラーが出てしまう。
でもこの手のルールを記述する方法がないと、ターゲットの数が多い場合 Makefileが爆発してしまうので、 何かかわりのものがあるだろうと思い探した結果あったのが、 Static Pattern Rule というものだった。
これは $$@ の機能を拡張したようなもので、 ターゲットの種類によって依存するファイルを変えることができる。
TARGETS ...: TARGET-PATTERN: DEP-PATTERNS ...
COMMANDS
...
のように書く。
ここで、TARGET-PATTERN にターゲットに対するパターンを書き (ターゲット名は%にマッチする)、 DEP-PATTERNS にマッチしたパターンが依存するファイルを書く。
例えば、
foo bar.o: %.o: %.c
COMMANDS
...
と書くと、次のように書いたのと同等になる。
foo:
COMMANDS
...
bar.o: bar.c
COMMANDS
...
非常に便利。
例えば次のような使い方ができる。
#define foo(_t1_, _t2_) bar(#_t1_ #_t2_, hoge##_t2_);
foo(aaa, bbb) //==> foo("aaabbb", hogebbb);
似たような処理を大量に書くときなどに重宝する。
久々に土曜日にルネへ行ってみたら、棚卸しのため休み…。
タイミングわるすぎ。
まだちょっと鼻の奥が変だけど、体調はほぼ回復したようです。
丸善にて入手。
Book1stにはなかった。丸善にも一冊ひっそりと棚にはいってただけだし、 あんまり売れると思われてないんかな?
以上、14 日分です。