zt日記

書いているのは Kazuhiro NISHIYAMA a.k.a. ZnZです。
2001|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|
2012|04|05|06|09|

この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。

xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法インストールメモXREA + tDiary + Namazuをどうぞ。


2002年12月02日(Mon) ioctl

[Linux][ioctl] IPアドレス・ブロードキャストアドレス・ネットマスク

以前にあった話の続き。IPアドレス・ブロードキャストアドレス・ネットマスクはioctlでとれるけど、デフォルトゲートウェイはとれない。
# ipaddresses
SIOCGIFADDR = 0x8915
SIOCGIFBRDADDR = 0x8919
SIOCGIFNETMASK = 0x891b
def ipaddresses(request)
  ips = {}
  sock = Socket.new(Socket::AF_INET, Socket::SOCK_DGRAM, 0)
  File.foreach('/proc/net/dev') do |line|
    next unless device = line.scan(/\s*(\w+):/)[0]
    ifr = device.pack('a16')
    if 0 == sock.ioctl(request, ifr)
      ips[device[0]] = '%d.%d.%d.%d' % ifr.unpack('x20 C4')
    end
  end
  sock.close
  ips
end
p ipaddresses(SIOCGIFADDR)
p ipaddresses(SIOCGIFBRDADDR)
p ipaddresses(SIOCGIFNETMASK)

[Linux] デフォルトゲートウェイ

strace /sbin/route -nで調べてみると"/proc/net/route"を読み込んでいたので、こうしてみた。
IO.foreach('/proc/net/route') do |x|
  a=x.split(/\t/)
  if a[1] == '00000000'
    p a[2].scan(/../).collect{|i|i.hex}.reverse.join('.')
  end
end

2002年12月04日(Wed)

[tdiary] ファイルに保存する単位

長年日記が月単位でしか存在をチェックしていないと言うことは、tDiary自体が月単位で保存される形式を基本にしている?

[XSS] チェックの甘いRubyプログラム

RWiki/1.2.1とRWiki/1.2.2にあったsecurity vulnerabilityは結果的にユーザ入力値をそのままevalする部分があったということなので、eRubyを使っているとXSSと同じぐらい可能性がありそうです。

本日のツッコミ(全15件) [ツッコミを入れる]

Before...

miss [internet advertising]

temporabla [oxycontin http://oxy]

cukimbo [aldara http://aldara]


2002年12月06日(Fri)

[Emacs][TAGS]

`M-.'(`find-tag')はよく使っていたけど、`C-u M-.'で次、`M-*'`M-.'を起動した場所というのを知った。


2002年12月07日(Sat)

[関西O+F]

いけるかと思っていたのですが、やっぱり無理でした。

[C言語] 型違い

unsigned char ip[4]という引数の関数にchar *ipを渡してしまっていて、はまった。

gccでこういうのをチェックするのってどうすればいいんだろう?

C++ならチェックしてくれそうだけどC言語の範囲だとenumとintの混在とかのチェックとかはしないものなのかな。


2002年12月08日(Sun)

[RAA] /^regexp$//\Aregexp\z/

もしかしてXSSだったんでしょうか? まずそうということはすぐにわかっても、それがどの程度の危険度なのかの見積もりは難しい。

[RWiki2] ストーリーカード拡張

使い方もよくわからないのですが、見方もよくわかりません。サンプルが増えてくるとわかりやすくなるのかな。

[web] link or form

状態が変わるものをリンクにしてるとrobotがリンクをたどって状態を変える可能性があってまずいのではないかという話。

[samba] map system, map hidden

create mask = 0700だとmap systemとmap hiddenがきいていなかったので、create mask = 0711に変更した。

本日のツッコミ(全1件) [ツッコミを入れる]

なひ [XSSは表示(でていくとこ)の処理で、ここは入力(入ってくるとこ)の処理です。「あっぶねー」は「かっこ悪いバグを残す..]


2002年12月09日(Mon)

[Windows] WindowsXPコンソールの内部コマンド

colorコマンドは知らなかった。cd ...が使えないと言うのも初めて知った。


2002年12月11日(Wed)

[shell] ...

zshではとりあえずこんな風にしているけど、4つ以上は使ったことが無いかもしれない。2つはautocdがあるので不要、1つもデフォルトでsourceと同じなので不要。 .とは関係ないですがalias ,='cd -'という設定の人もいました。
#alias .=source
#alias ..='cd ..'
alias -g ...=../..
alias -g ....=../../..
alias -g .....=../../../..
alias -g ......=../../../../..
alias -g .......=../../../../../..
alias -g ........=../../../../../../..

[ruby] #<Errno::ECONNRESET: Connection reset by peer>

ruby 1.6.8 (2002-12-09) [i686-linux]で動かしている某チャットクライアントが昼間のほとんど通信量がないときに15分ぐらいで落ちてしまっている。Errno::ECONNRESETの前にTCPServer#acceptしているスレッドのensureが実行されているので、そこで$!を表示するようにして今晩またチェックしてみよう…。

ensureのすぐ上でrescue Exceptionしているのにそこで何も表示されないので、例外があがっているわけではなかった。こんなに頻繁に切れるのはどこが原因なんだろう。もう1つ別の方法で接続しているものはずっとつながっているので、経路やサーバ側の問題とは考えにくい気がする。


2002年12月12日(Thu)

[ruby] RHG

届きました。

[RWiki] The RWiki - top

壊れてたようなのでrevert。


2002年12月15日(Sun)

[word] private keyはsecret keyとは区別して私有鍵と呼ぼう運動

公開鍵暗号で使うのがpublic/private keyで、秘密鍵暗号で使うのがsecret keyらしい。

本日のツッコミ(全1件) [ツッコミを入れる]

arton [最初に「煩雑」を難点に挙げたわたしが悪いですね。互換性とか実装に問題が出そうだという点をあげるべきでした。すみません..]


2002年12月16日(Mon)

[ruby][SF.jp] rw-cgi.rb

今日じゃないけど、rw-cgi.rbがsourceforge.jpで動かせるかどうかと思ってとりあえずcgiでdrubyを試してみたら、connect(2)がETIMEDOUTになってつながらなかった。

[Emacs][TRAMP] tramp_mimencode/tramp_mimedecode

telnetでつながって、uuencode/uudecodeがなくて、perlは入っている環境のファイルをTRAMPで直接編集するのに困っていたら、こういうのをtramp-methodsに追加していたのを思い出した。内容は"tm"のtramp-encoding-commandとtramp-decoding-commandを変更しただけ。
  (setq
   tramp-methods
   (cons
    '("tmp"
      (tramp-connection-function tramp-open-connection-telnet)
      (tramp-rsh-program nil)
      (tramp-rcp-program nil)
      (tramp-remote-sh "/bin/sh")
      (tramp-rsh-args nil)
      (tramp-rcp-args nil)
      (tramp-rcp-keep-date-arg nil)
      (tramp-su-program nil)
      (tramp-su-args nil)
      (tramp-encoding-command "tramp_mimencode")
      (tramp-decoding-command "tramp_mimedecode")
      (tramp-encoding-function base64-encode-region)
      (tramp-decoding-function base64-decode-region)
      (tramp-telnet-program "telnet")
      (tramp-telnet-args nil))
    tramp-methods))
本日のツッコミ(全1件) [ツッコミを入れる]

むとぽん [うげげっ、まじっすか....。うーむ。]


2002年12月18日(Wed)

[SF.jp] shell.sourceforge.jp

つながらないそうですが、shell.sourceforge.jpに問題なくdsaの鍵でつながってます。

[tdiary] textarea

textareaにするのならreadonlyにした方が良さそう。

[SF.jp] shells.sourceforge.jp

shells.sourceforge.jpってどこでみつけたんだろう?

と思ったらSourceForge.jp: View Document シェルサーバのサービスに書いてあった。shellの方はどこで知ったんだっけ…。

[ruby] ruby-dev ML

間違いSubject(Re: ruby 1.6.9 preview4 予告)のままスレッドがのびてる…。

本日のツッコミ(全1件) [ツッコミを入れる]

たむら [user@shell(s).sourceforge.jp で無事つながりました。 IP は、同一のようですね。おかげ..]


2002年12月20日(Fri)

[ssh] user@

~/.ssh/configで設定しておけば省略できます。と思ってみてみたら、sf.netの方は書いていたけどjpの方は書いていなかったので追加しておこう。
Host *.sourceforge.net
  User znz

2002年12月26日(Thu)

[ruby] Process.ppid

Process.ppidって実際に試してみて、何回か試すとちゃんと同じになることもあって、しばらく考えてみると、親プロセスが先に終了してしまう場合に1になっていると気づいた。というわけでwaitを追加すれば良さそう。
print "I am ", Process.pid, "\n"
Process.fork { print "Dad is ", Process.ppid, "\n" }
Process.wait

2002年12月27日(Fri)

[ruby] install-guide jaのFreeBSD

1.6.7から1.6.8へのバージョンアップのような細かいバージョンアップでは変更する必要のない内容になってると思っていたら、1.7が1.8になって変更が入っていた。

他のプラットフォームはどうだろう?


2002年12月31日(Tue)

[debian] apmd

poweroffで電源が切れなかったので、apt-get install apmdした。


copyright © 2001-2013 ZnZ
Key fingerprint = 6E14 2C9C DBD7 874D 8B3C CAA8 9B58 5538 ED7E 1B73