#!/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 日分です。