2008年12月29日月曜日

2009

からできるだけ心がけること

・多少は誰かに役に立ちそうなエントリを書く

「なかのひと」や FEEDJIT で確認したところ、
あちこちから見られてるっぽいし どうせなら、ね

Blogger で書いてるおかげか、Google 検索でやたらとひっかかる(自分が調べたいときに自分のエントリがかかったりも、、、)し、、

・プログラミン関係ふやす
積年のテーマになってしまってるんだなこれが、、、


ブログの引っ越し予定はない

2008年12月26日金曜日

Ruby本

「ピッケル本」ではなく、(それは「Programming Ruby」)

オライリーの「The Ruby Programming Language 」の邦訳版がでるようだ。

めでたい。
原書でてから丁度一年くらい・・?
やっぱ英語できるとすぐ読めていいよなぁ。。

プログラミング言語 Ruby

プログラミング言語 Ruby

・著者:David Flanagan、まつもとゆきひろ 著
卜部昌平 監訳
長尾高弘 訳
・定価:3990円(本体3800円+税)
・B5変 464頁
・ISBN 978-4-87311-394-4
・発売日:2009/01


まつもとゆきひろ著作によるRuby言語解説の決定版!
  Ruby1.9をカバーした、包括的なRuby解説書です。Rubyプログラムの語彙と構文、データ型とオブジェクト、表現と演算子、メソッド、 procs、lambds、クロージャ、クラスとモジュール、リフレクションとメタプログラミングなど、Rubyプログラミングの特徴を豊富なサンプルで解説します。Ruby言語を体系的に網羅した決定版です。

このような方におすすめ
Rubyを勉強したい人、仕事に使いたい人、Rubyについて知りたい人全般


追記:
オライリーのサイトにものった
プログラミング言語 Ruby

追記2:
amazon でポチれるようになった

2008年12月23日火曜日

ルータないけど

システムソフトウェアのアップデート、
PlayStation Store や PlayStation Home 利用のため
PS3 を ネットワークにつなぎたいので
ここしばらく(もうすぐ3ヶ月くらいか) Mac にルータをさせてる.

Mac - PPPoE & ルータ係
PS3 - Mac を default g/w にして外へ出る

システム環境設定 -> 共有 で、
"共有する接続経路" と "相手のコンピュータが使用するポート"
を選んで "インターネット共有" ぽちるだけ

Mac - PS3 間、無線/有線どちらでも動作確認した

dhcp で配りたい場合はやっぱり Mac OS X Server でないとできない (daemon が入ってない) のかな。。

特に不便はしてない. UPnP ができないくらいかな.

ps した結果見た限り、
natd , bootpd, bind, が起動する. diff とってみてもそんな感じだった

アドレスは伏せた
86259 ?? Ss 0:00.01 /usr/libexec/InternetSharing
86261 ?? Ss 0:00.01 /usr/sbin/natd -alias_address xxx.xxx.xxx.xxx -interface ppp0 -use_sockets -same_ports -unregistered_only -dynamic -clamp_mss -enable_natp
86262 ?? Ss 0:00.01 /usr/libexec/bootpd -P
86263 ?? S 0:00.02 /usr/sbin/named -c /etc/com.apple.named.conf.proxy -f

firewall は ipfw から変わったらしいけど natd は今も FreeBSD のものっぽい気がする
man みてもそう

2008年12月21日日曜日

おもむろに whois dq10.jp

してみると、10月に取得済み

% whois dq10.jp|nkf -w
[ JPRS database provides information on network administration. Its use is ]
[ restricted to network administration purposes. For further information, ]
[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e' ]
[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'. ]

Domain Information: [ドメイン情報]
[Domain Name] DQ10.JP

[登録者名] 株式会社スクウェア・エニックス・ホールディングス
[Registrant] SQUARE ENIX HOLDINGS CO., LTD.

[Name Server]

[登録年月日] 2008/10/02
[有効期限] 2009/10/31
[状態] Active
[最終更新] 2008/10/02 17:42:18 (JST)

Contact Information: [公開連絡窓口]
[名前] トムソンコーポレーション株式会社 トムソンブランディ
[Name] Thomson Corporation K.K. Thomson Brandy
[Email] admin@thomsonbrandy.jp
[Web Page]
[郵便番号] 105-0002
[住所] 東京都港区愛宕1-3-4
愛宕東洋ビル11階
[Postal Address] 1-3-4, Atago, Minato-ku,
Tokyo
[電話番号] 03-5733-6120
[FAX番号] 03-5733-6130


とりあえずおさえたってかんじか。
トムソンコーポレーションて知らないな。。

スクエニって持ち株会社制になってたんだ。
http://www.square-enix.com/jpn/company/history.html
2008(平成20)年10月 持株会社体制へ移行し、商号を株式会社スクウェア・エニックス・ホールディングスへ変更

2008年12月20日土曜日

「とうきょうこんてな」?

とある話の場であがった名称。

『「とうきょうこんてな」って知ってる?』

「No」

『(ニヤニヤ) 』


Tokyo 〜〜は

Tokyo Cabinet
Tokyo Tyrant
Tokyo Dystopia

ってがあるの知ってるんだけど(mixi の中の人作)、
それの亜種みたいなのを誰か作ってるのかなぁ。
ぐぐってみたけど 「Tokyo Container」なるものはないしなぁ。

謎だ。

続きは何なのか判明したら書く。

2008年12月10日水曜日

A / AAAA

ある社内メイリングリストで

名前解決してみると
AAAA が紗季似先にかえってきておかしいなー

というような話題が。

それってさっさと新バージョンにマイグレー..(以下略

で、どっかでみたことあるなーと思い
ちょっとぐぐってみて見つけたのがこれ

BSD Unixにおいて IPv6 を有効にした際に発生する 課題とその対策

寝た子を起こすな、ってのはあるかもしれないけどサーバは適宜移行しないと
古くてはまることはあるよなぁ。

2008年11月16日日曜日

早速 wapbl がパニックしてくれた

新しいユーザーランドをインストール
( # ./build.sh -O ../obj -T ../tools -U install=/ )
してたらパニックしたよ。。

メッセージは次のとおり
panic: wapbl_flush: current transaction too big to flush

fatal breakpoint trap in supervisor mode
trap type 1 code 0 eip c0233fbc cs 8 eflags 246 cr2 bbb81470 ilevel 0
Stopped in pid 2983.1 (nbpax) at netbsd:breakpoint:0x4: popl
db{1}>

再起動したらあがってこなくなったので boot.iso であげて fsck..
ジャーナルがおかしくなってたよ、、とほほ。

ソースだとここかな。

http://fxr.watson.org/fxr/source/kern/vfs_wapbl.c?v=NETBSD#L1349

一旦 soft updatesにもどした。快調快調。
wapbl は /home くらいで使っておくのがいいかもしれないね。

% mount -t ffs
/dev/wd0a on / type ffs (soft dependencies, local)


fstab 書き換えだけで済むような実装になっててステキ。

たまには NetBSD


PSP でネットワークまわりだかどこかでつかわれてる(はずの)NetBSD.

育て方がよくわかってないけどちょっと前 WAPBL が使えるようになったり
5.0 のリリースサイクル開始されたりしたのでたまには NetBSDをば、、
(Mac OS X 上の VMware Fusion で仮想マシン作成)

i386cd-4.0.1.iso を入手
インストール. パーティションはめんどくさいので / と swap のみ. / は ufs2 にする
current を追跡
tar玉とってきて展開、/etc 更新してリブート、これでひとまず 4.0.1 -> 5.99.01 に

bash-3.2# uname -mrs
NetBSD 5.99.01 i386

その後「最新の」 current にする、けど長いのでコマンド叩いて暫く放置。

pkgsrc guide みる
pkgsrc-2008Q2 とってきて使ってたけど perl がビルドできない、、、
cvs update して更新したあともダメだなー。。

kernfs がなんか変。なんもない

bash-3.2# ls /kern/
bash-3.2#

??
(カーネルビルドしなおして再起動したら解消)

WAPBL は fstab のとこに log 書くだけで OK 。素晴らしい。
softdep をやめて WAPBL にした。パフォーマンスはいいらしい。

ここ -> 31 Jul 2008 - FFS へのメタデータジャーナリングに対応
彼らはまた、性能ベンチマークをいくつかおこないましたが、 WAPBL の性能は soft-dependencies 有効でのマウントに非常に近いものであり、 (安全ではない) async でのマウントより少しだけ遅いものでした。 クラッシュや予期せぬ電源断において、 ジャーナルされたファイルシステムではブート時に長時間のファイルシステムチェックは必要なくなり、 カーネルが数秒の間にログを再生することになります。 これにより、クラッシュの高速な復旧が可能となり、 総停止時間の現象と高い可用性が実現できます。
mount コマンドで log になっているのを確認。

bash-3.2# mount -t ffs
/dev/wd0a on / type ffs (log, local)

こんなかんじ
20080731:
WAPBL (metadata journaling support) has been added, but at this
time isn't backwards compatible with pre-WAPBL aware kernels
and userland (fsck_ffs in particular). Please make sure you
don't use a journaled filesystem with an older kernel/userland,
especially an uncleanly mounted journaled filesystem. WAPBL
also requires the super block to be in the UFS2 format. You
can use fsck_ffs -c 4 to update the superblock format.

入れてみたあと気づいたのが、
・openssl が 0.9.9-dev
・openssh は hpn パッチあてられてる.これ地味にいいかもしれんね

bash-3.2# openssl version
OpenSSL 0.9.9-dev 09 May 2008
bash-3.2# ssh -V
OpenSSH_5.0 NetBSD_Secure_Shell-20080403, OpenSSL 0.9.9-dev 09 May 2008
bash-3.2# telnet localhost 22
Trying ::1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.0 NetBSD_Secure_Shell-20080403-hpn13v1
^]
telnet> quit
Connection closed.

そういえば citrus 関連ってどうなってるのかさっぱり解らないなぁ。。



追記: perl ビルドの件、コメントに依ると pkgsrc-2008Q3 だとよさそう。いかん、日本語訳のサイトみてたおかげか、 2008Q3 の存在に気づけなかった、、 orz...

先月でてる 14 Oct 2008 - pkgsrc-2008Q3 released

2008年11月15日土曜日

libedit.2.dylib 入れ直した

そのいち
そのに
そのさん
と、libedit2.dylib いかれてると思ってたけど、
ぐぐってみたところ、ど〜も知らぬ間にオリジナルの libedit.2.dylib を上書きしてしまっていた模様。。

さて、どうやって元に戻そうか、、、と思って試みたのが以下

・MacPorts で libedit いれて symlink
苦し紛れにこれやればなおるんじゃね?
と思って入れて symlink 張ってみたものの、、バージョンが違うぞと叱られた

% ftp
dyld: Library not loaded: /usr/lib/libedit.2.dylib
Referenced from: /usr/bin/ftp
Reason: Incompatible library version: ftp requires version 2.0.0 or later, but libedit.2.dylib provides version 1.0.0
zsh: trace trap ftp

2.11 なんだけどなー。なんか違うの?
% port installed libedit
The following ports are currently installed:
libedit @20080712-2.11_0 (active)

諦めて、次。

・Darwin Source Code の libedit 入れる
あ、そういやソース公開されてるじゃないか、と思い出し(おそい
Apple のサイトへ。
Apple - Mac OS X 10.5.5 (Darwin 9.5)

お目当てのものはこれ
libedit-11.tar.gz

手順は、、適当
0. tarball ゲット
1. libedit-11.tar.gz を展開 & cd
2. make
3. make install
4. Debug ディレクトリがなくてエラーになるので mkdir /tmp/libedit/Debug
5. また make install
6. /tmp/libedit/Release/usr/lib 以下に欲しいものができてるので
sudo install -m 755 /tmp/libedit/Release/usr/lib/libedit.2.dylib /usr/lib

そして、、、

% /usr/bin/python
Python 2.5.1 (r251:54863, Jan 17 2008, 19:35:17)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D
% /usr/bin/ftp
ftp> quit
% /usr/bin/bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
quit

無事直りましたとさ・・・

2008年11月8日土曜日

libedit.2.dylib にリンクしてるバイナリがおかしい(?)

libedit.2.dylib にリンクしてる、一部のコマンドがおかしい。

追記: libedit.2.dylib 入れ直して解決した

こんな具合

% bc
dyld: Symbol not found: _history
Referenced from: /usr/bin/bc
Expected in: /usr/lib/libedit.2.dylib

zsh: trace trap bc
% dscl
dyld: Symbol not found: _history
Referenced from: /usr/bin/dscl
Expected in: /usr/lib/libedit.2.dylib

zsh: trace trap dscl
% ftp
dyld: Symbol not found: _history
Referenced from: /usr/bin/ftp
Expected in: /usr/lib/libedit.2.dylib

zsh: trace trap ftp

sqlite3 や ntpq などは問題なし
% otool -L /usr/bin/sqlite3
/usr/bin/sqlite3:
/usr/lib/libsqlite3.0.dylib (compatibility version 9.0.0, current version 9.6.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.0.0)
/usr/lib/libedit.2.dylib (compatibility version 2.0.0, current version 2.9.0)
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
% otool -L /usr/bin/ntpq
/usr/bin/ntpq:
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
/usr/lib/libedit.2.dylib (compatibility version 2.0.0, current version 2.9.0)
/usr/lib/libcrypto.0.9.7.dylib (compatibility version 0.9.7, current version 0.9.7)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.0.0)

% /usr/bin/sqlite3
SQLite version 3.4.0
Enter ".help" for instructions
sqlite> .quit
% /usr/bin/ntpq
ntpq> help
ntpq commands:
addvars debug lopeers passociations rl
associations delay lpassociations passwd rmvars
authenticate exit lpeers peers rv
cl help mreadlist poll showvars
clearvars host mreadvar pstatus timeout
clocklist hostnames mrl quit version
clockvar keyid mrv raw writelist
cooked keytype ntpversion readlist writevar
cv lassociations opeers readvar
ntpq> quit

"MySQL" が

mySQL や Mysql と書いてあるのをみると、やや気持ちわるい、、

同様に、PostgreSQL が postgreSQL て書いてあるとやや気持ちわるい。

2008年11月7日金曜日

WEB+DB PRESS vol.47



書評でもなんでもないけど

ざっと自分にとってはこんな具合。

ネットワークプログラミングの基礎知識
Java で萎えた

memcached ベストプラクティス
これは読みたかった

CodeRepos の全て
CodeRepos にぶちこめるコードがないZE

武者さんの連載は毎回楽しみ。第三回。

python 以外もおかしい、、

python がおかしいんだけど、
どうも ftp コマンドもおかしい。

追記: libedit2.dylib 入れ直して解決した

ftp
% /usr/bin/ftp
dyld: Symbol not found: _history
Referenced from: /usr/bin/ftp
Expected in: /usr/lib/libedit.2.dylib

zsh: trace trap /usr/bin/ftp

えー、なんで Symbol not found になるの。。

2008年10月27日月曜日

おっ。。 python がこわれた ?

(後日、libedit.2.dylib 入れ直した で解消した。)

おもむろに python と叩いてみたら、
Apple製のは Bus error おこしてくれて対話型のがつかえないことに気づいた
(書いたスクリプトの実行は可)

% /usr/bin/python
Python 2.5.1 (r251:54863, Jan 17 2008, 19:35:17)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
zsh: bus error /usr/bin/python

ためしに MacPorts でいれてみたブツは生きてる
% /opt/local/bin/python2.6
Python 2.6 (r26:66714, Oct 27 2008, 01:12:42)
[GCC 4.0.1 (Apple Inc. build 5488)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D
% /opt/local/bin/python3.0
Python 3.0rc1 (r30rc1:66499, Oct 27 2008, 01:06:24)
[GCC 4.0.1 (Apple Inc. build 5488)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D

なんだろなー。。
2.5系も MacPorts のいれればいい・・・のか?



2008年10月26日日曜日

use strict と use warnings

(Perl) プログラマではないんだけど、件名のことは
Perl で書くときの定番の作法(?)、として「なんとなく」知っている。

でもこないだ、書かずに作られてるブツ(新しめ)をちらっとみた。

ぼくはたいして詳しくないけど、その点は教えるのがよいんだろうか・・・?うーん。
「書いたら動かなくなった!どうしてくれる!」となるとなぁ。。

「ロクにかいてないオマエがゆうな」ともおもうだろうしなー。

ここはひとつ、Perl プログラマにしれっと指摘してもらうのがいいんだろなー。

参考
404 Blog Not Found:perl - use strict; # and be happy
404 Blog Not Found:perl - use warnings; # -w でなくて

2008年10月8日水曜日

いやいやいやいや

「なんかおかしい」だけじゃ判断しようがない、ので即刻反面教師認定。

2008年10月4日土曜日

26秒の怪

症状:
cvs がもっさりしている(update やら checkout が始まるのに時間がかかる)
2ヶ月まえくらいから発生していた(らしい)

制限事項:
cvs のサーバには ssh ログインすることはできない

緊急ではなかったけど、放置しておくのもなんだかな、、と思ったので調べた。上記制限事項により、クライアント側からのみ、の調査に留まる。

方法:
tcpdump
wireshark

メモしてなかったけど、Mac OS X のターミナルでだいたい以下のように実行、、

$ sudo tcpdump -n -x -l -v -w ~/Desktop/cvs.tcpdump port 2401

しつつ、cvs checkoutやらupdate を実行して採取した。

ふむ、、、おそい。たしかにおそい。ためしに3回採取し、wireshark で解析。
するとすぐ目についたのが、
「26秒の待ち」。3回とも一様に待ちが発生している。

サーバには入れないので、これを手がかりに調査 & 社内のネットワークのプロに聞く。

すると、、某アプライアンス機器が弾いているという。

しかし26秒てなんだ、、と思って調べていると、 どうも ucspi-tcp パッケージ の tcpserver プログラム が怪しいことに気づく。

http://cr.yp.to/ucspi-tcp/tcpserver.html より
# -t n: Give up on the $TCPREMOTEINFO connection attempt after n seconds. Default: 26.

「タイムアウト」の時間が 26秒なので、タイムアウトする以前に、機能自体を無効にしてしまおう。もちろん -t 0 でもいいけど、、いらないだろう。どうも ident らしいし。

というわけで、ぼくは -HRDl0 が定番オプションだと思ってることもあるので
とりあえず tcpserver 経由の -R オプションつきで起動してなければつけてもらうことに。

ついててこの現象が起こることはないと思われる。

さてどうなるかな。


・・・・と、もし tcpdump, wireshark を使わない、という条件で調べることになったら、どうやるのがいいんだろう?とふと思った。クライアントからは困難か。

痴女・・・?

やや混んでいた帰りの電車。

左手に可愛らしい子いるなー。と和んでいた矢先、
気がつくと、耳を押さえながら「ん〜、、ん〜、、ん〜、ん〜〜〜〜。」と唸る女性が左後方に位置していた。(反射ごしにみたからなんとなくだけど、耳を押さえていたはず)

なんだこのひと、、と思っていると、やたらくっついてくる!パイプにはさまれる!いたい!そんなに混んでないだろう、、、とおもって右側に目をやると、すかっと空いてる。
身の危険を感じた・・乗り換えですぐ降りれて良かった。

とてもビビった。

2008年9月27日土曜日

tcpdump で

よんどころない事情によりtcpdump でアレコレ?することに。



man みて気づいたので -s 192 つけた。
Note that NFS requests are very large and much of the detail won't be printed unless snaplen is increased. Try using `-s 192' to watch NFS traffic.
しばらく採取して wireshark にかける予定。不要になればそれはそれで嬉しい。

2008年9月23日火曜日

こわれたか・・・

ここんところ放置気味だった 7年前くらいのふるい ThinkPad に火をいれる。

クロックがおかしい。
750MHz のはずなんだが、、162て、、w

- dmesg
CPU: Intel Pentium III (162.46-MHz 686-class CPU)

- sysctl
% sysctl dev.cpu.0.freq
dev.cpu.0.freq: 161

buildworld してみたら、まぁサクサクしてるかな。。

いつの 7.0-STABLE か忘却の彼方なので 7.0-RELEASE にするテスト

追記:
再起動したら直った

CPU: Intel Pentium III (746.76-MHz 686-class CPU)

powerd 起動してヒマなとき
% sysctl dev.cpu.0.freq
dev.cpu.0.freq: 92

忙しいとき
% sysctl dev.cpu.0.freq
dev.cpu.0.freq: 743

2008年9月20日土曜日

バラけ具合

OpenBSD の PID のバラけ具合にグッとくるのを思い出した。

2008年9月8日月曜日

英作文

port で feedback もらってやりとりしてる最中

Thank you 〜〜〜

と書くことが多いんだけど、もしや過剰だったりするのかな。。
「こいつはやたら Thank you 書きよるなー」て思われてんのかなー。

などとふと思った。

書店でGoogle 日本法人シャッチョさんの英語本をチラ見したら、
「英作文」でなくて「英借文」などと書かれてたから
ML でも漁って文をパクってみるか。

2008年9月7日日曜日

訃報、、。

同級生が亡くなったらしい。

こないだの同窓会で元気な姿をみたばかりだったのに、、。

まさに「ムードメーカー」という言葉がピッタリなヤツだった。
こないだ会ったときはちょっとハゲちらかし気味になってて「うぅ、俺の頭もなんのかな、、gkbr」と思ったりした。

はー、信じられん。「はい、ちょっとしたネタでしたー。ごめんごめん」というオチがあるのをつい期待してしまう。。

合掌。

ベンチマークとりたいよね

って話があがる。

「〜〜したいよね」って話はよくある。
けど何をどうやるのか、具体性に欠ける。
結果だせばいいだけなんだろーけど、
実際手を動かすものにとっては気持ち悪いことこの上ない。
なんとなく「チーム」という感覚が乏しいから孤独でもある。

・・ま、孤独は嫌いではないけどw

表題の件は benchmarks の中からよさそうなのをみつけてみるか。

CentOS のパッケージ、あるかなー。

2008年9月6日土曜日

FreeBSD 7.0 と MySQL 4.0.x

まぁなんとなく予想してたんだけど。

1. FreeBSD 7.0 をいれる

2. mysql-4.0.x なソースをとってくる

3. ./configure , make なかんじで野良 make してみる

と、コンパイル通らんよ。(4.0.27 で確認)
このような具合。
mysql.cc: In function 'void print_table_data(MYSQL_RES*)':
mysql.cc:1650: error: expected primary-expression before '?' token
mysql.cc:1650: error: expected `:' before ')' token
mysql.cc:1650: error: expected primary-expression before ')' token
mysql.cc:1652: error: expected primary-expression before '?' token
mysql.cc:1652: error: expected `:' before ')' token
mysql.cc:1652: error: expected primary-expression before ')' token
mysql.cc:1666: error: expected primary-expression before '?' token
mysql.cc:1666: error: expected `:' before ')' token
mysql.cc:1666: error: expected primary-expression before ')' token
*** Error code 1

Stop in /usr/home/katsuji/src/mysql-4.0.27/client.
*** Error code 1

Stop in /usr/home/katsuji/src/mysql-4.0.27.
*** Error code 1

Stop in /usr/home/katsuji/src/mysql-4.0.27.

これもまた、ports みてみると
USE_GCC で gcc 3.4 を使うようになっている。
一時期は IGNORE にして 5以降使いましょうとなってた

というわけで、大人しく gcc3.4 いれて対応。

send-pr みると、obsolete だけどもいいから使いたいよーということでちょっと前変更されてたようだ。

新しいOSには(なるべく)新しいアプリケーションを。

2008年9月5日金曜日

FreeBSD 7.0 と Apache 1.3.x

諸事情により FreeBSD 7.0 で Apache 1.3系を野良 make した。7.0 では初めて。

・・・・で、ものの見事にはまった。

たとえばこんな風にconfigure
./configure \
--prefix=/usr/local/apache \
--enable-module=all \
--enable-shared=max

して、make , make install する。まぁ特に変わったところはない。

が、おもむろに httpd -t すると見慣れないエラー。。

# /usr/local/apache/bin/httpd -t
Syntax error on line 205 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache/libexec/mod_mmap_static.so into server: /usr/local/apache/libexec/mod_mmap_static.so: Undefined symbol "ap_null_cleanup"

だめじゃん。。 orz...
たまに Undefined symbol はみるけど、Apache ではみないぞ。。

実際やったときは、configure にいろんなオプション付けてたり変態的な最適化されてたりしたのであれこれはずしてみるも、ダメ、ダメ。

らちがあかないので ports を漁ってみることに。
(最初からみときゃよかった、、、。)

試しに port の apache13 なのを make , make install する。うむ問題ない。メンテナー乙です。

問題ないことがわかったので files の下を漁る。このへん

patch-なんちゃらをみる。クンクン。。patch-ae がくさい。

patch-ae の中身をコピペしてファイル作成、適用。

# patch -p0 < ../patch.apache
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- src/Configure.orig 2007-08-10 19:45:50.000000000 +0400
|+++ src/Configure 2007-09-08 04:46:28.000000000 +0400
--------------------------
Patching file src/Configure using Plan A...
Hunk #1 succeeded at 26.
Hunk #2 succeeded at 457.
Hunk #3 succeeded at 1083.
Hmm... Ignoring the trailing garbage.
done

で再び configure , make , make install して、、

# /usr/local/apache/bin/httpd -t
Syntax OK

うまくいった。

ports でサクッといきたいんだけど、そうもいかなかったりする事情があるわけで。
まぁ野良 make で困ったら ports 漁ればだいたいは済む。

件の patch 、CFLAGS や LDFLAGSなんちゃらの変更をしているんだけど、LDFLAGS なんちゃら がキモのようだ。。
/usr/bin/objformat 実行して aout か elf か判別して分岐。
7.0 だと /usr/bin/objformat 自体ないから aout として判定されてしまい(2.2.8 ですか...)

LDFLAGS_SHLIB_EXPORT=""
SHLIB_SUFFIX_DEPTH=2

が設定されるとアウト。6系も objformat なかった気がするんだけどどうだったかな。。

試しに /usr/bin/objformat をでっちあげてみた( echo elf するだけ) ところ、パッチ当てずに済むことを確認。まぁ当然か。。


2008年8月31日日曜日

「Google を支える技術」著者のブログ

はてダで書かれてたはずなんだけど、無くなってる(?)
ここだったんだよなぁ。クリップしてたし。

どこかに移転したのかな。気になる。

2008年8月28日木曜日

RedHat な Perl の rpm の件

覚え書き的に。一部界隈では有名?なネタみたい。

前なにかの拍子にみつけたの。
Yappo さんのとこ(面識無い)
YappoLogs: FedoraCoreやCentOS系の遅いPerlのパッチの件

perl-5.8.8-U27512.patch
perl-5.8.8-U27509.patch
がキモ


最近も、また。「何という悲劇」だって。
Balance Through Extremism » Redhat perl. What a tragedy.
まだ閉じてないみたいだな。。
100倍から1000倍速くなった、ってのが、もうね。。。


reddit だとこんなかんじ。ネットデハッケン。
Massive RedHat perl performance issue
SwellJoe って人のコメントが興味深いかも。


どういう意図でなのかよくわかってないけど、パフォーマンス劣化してくれるパッチは嫌だなぁ。。。

2008年8月27日水曜日

疲労

ここんとこ妙に疲れる。

iMac の高さが悪い気がするけどどうだろうな。。むぅ。



iMac みたり某弁当箱みたりするからかなぁ。(synergy 利用)
Remote Desktop Connection Client for Mac 2 使おうかな。うーむ。

2008年8月25日月曜日

いやぁ、全くです

Links Roundup
send-pr で カテゴリまちがえた だからporttools使えと書いたのに

入れて port コマンドをぺしぺし叩いていた。けど submit は使わなかったんだよね、、。
というのも、、
(書こうと思ったけど、「いいわけ」でしかない気がしてきたのでやめ)


素直に使おう。

2008年8月24日日曜日

lang/mosh 0.0.5 に更新

NEW PORT ではないからか、いたってスムースに closed に。

今後、しれっと追従していく予定でおる。

http://www.freebsd.org/cgi/cvsweb.cgi/ports/lang/mosh

2008年8月13日水曜日

2008年8月10日日曜日

勤務時間

8時 - 17時っていい気がしてきた。

年金手帳

元同僚の二人、がそれぞれ転職をはさんで年金手帳を無くし、
紛失時の手続きをしてたよう。

会社で預かられてる場合だと「返した」「返ってきてない」でごたごた。。。
悪用される場合もあるみたい。怖いね。

自分で持ってる場合だとただ単に自分の過失で済む。

幸い(?)、自分の場合はこれまで会社で預かられてたことがなかったので手元にある。
今度はご丁寧に雇用保険被保険者証をステープラーで留めてくれてる w
これも会社によっては会社で預かってたりすんだよね。

「ヨノナカテキ(個人的には嫌いな言い回し..)」にはどっちが(手元か会社か)多いんだろうね。

[解決] snmpd が死亡遊戯

snmpd が死亡遊戯のつづき。

誰かが 作った、snmpd.conf を生成してくれるスクリプトが f*ck !
exec 〜〜 な行がおかしなことになってた -> ログにでてた(Syntax error とは別物) -> 書き換えてしばし様子見てたら直った模様。

少なくとも man snmpd.conf して一度目を通しておけばよかったんだろうね。

でも、SIGSEGV で落ちるのは別問題でだめだよなぁ。値がとれないにしても落ちずに起動しててほしい。

スクリプトを憎んで人を憎まず。

2008年8月7日木曜日

snmpd が死亡遊戯

cacti のグラフがガッタガタ、で値がとれていないところがものすごく多い。

経緯を知らないので、まずはそこから追っていくことに。。
すると、、

・snmpd が起動後しばらくすると死亡
(某 daemon 監視ツールで自動起動 -> 死亡の繰り返し)
・複数台同時期に設定
・構成はいずれも同じ
・snmpd.conf は syntax エラー(が、それが原因ではなさそう)

違う時期に設定された同じ構成のものがあるかはいまのところ不明。
これまで遭遇したことのない、非常に奇妙な現象。

つづく

2008年8月3日日曜日

遺憾の意

頼んだビールは勝手にのまれるわ

ことあるごとにいじられるわ

もういいよ、そのパターン

特別な理由がない限り、今後積極的に行くことはなかろう

てなわけでひとつ足を運ぶ店を「無い」ことにした

2008年7月27日日曜日

DragonFly 2.0 on Parallels Desktop

File -> New...

・ installation mode の選択
ラジオボタン Custom を選択 -> Next

・ OS の選択
OS Type .... DragonFly は当然ながら無いので、
FreeBSD を選択 (4.8 から fork したし)

OS Version ... 適当に FreeBSD 6.x を選択 -> Next

・メモリ使用量の設定
256MB でよしとする

・仮想ハードディスクオプションの選択
Create a new hard disk image

・仮想ハードディスクの容量
少なめで 12000 MB
ラジオボタンは Expanding(recommend) のまま

・ネットワークオプション
Bridge Ethernet を選択 -> Next

・仮想マシン名
DragonFly

more options で Create icon on Desktop のチェックを外す。アイコン要らん。

・パフォーマンスの最適化
Virtual machine (recommended) のまま -> Next

インストールCD いれろと言われるので more options で、落としておいた dfly-2.0.0_REL.iso を選択

Start FreeBSD 6.x installation チェックのまま、Finish

あとは boot 後 installer [Enter] してインストーラに入り、ふつーにいれる。



- 入れた後
・ pkgsrc とってくる
# cd /usr (ここに Makefile がおいてある)
# make pkgsrc-checkout (しばし放置)

とってきたら /usr/pkgsrc/[カテゴリ]/[アプリケーション] 以下で
# bmake install

すれば入る。個人的には bmake package かな

** bmake は特に指定しなければ、OSインストール時にパッケージで入れてくれる
(/usr/pkg/bin/bmake)

# pkg_info bmake
Information for bmake-20051105nb4:

*** PACKAGE MAY NOT BE DELETED ***
Comment:
Portable (autoconf) version of NetBSD 'make' utility

Requires:
bootstrap-mk-files-[0-9]*

Description:
bmake is a portable version of NetBSD's make(1) utility,
conveniently packaged using a configure script, for other environments
which may lack NetBSD's libraries, regular expression code, etc.

Homepage:
http://www.crufty.net/help/sjg/bmake.html

*** PACKAGE MAY NOT BE DELETED ***

apache2.2 で worker MPM 指定で入れる例
# cd /usr/pkgsrc/www/apache22
# bmake APACHE_MPM=worker bmake install

pkgsrc に portupgrade のようなのあるのかな。。

・起動周り
rcNG はけっこー前に merge されてるので FreeBSD と同じように設定。
(rcNG の元は NetBSD だけども)


・HAMMER Filesystem
/sbin/hammer にそれ用のコマンドあり。まだいじくってない。

# hammer
hammer -h
hammer [-v] [-t seconds] [-c cyclefile] command [argument ...]
hammer synctid [quick]
hammer namekey[32]
hammer prune
hammer prune-everything
hammer snapshot [filesystem]
hammer bstats [interval]
hammer iostats [interval]
hammer mirror-read [begin-tid]
hammer mirror-write [file ...]
hammer mirror-dump
hammer mirror-copy [[user@]host:] [[user@]host:]
hammer reblock[-btree/inodes/dirs/data] [fill_percentage]
hammer pfs-status
hammer pfs-master [options]
hammer pfs-slave [options]
hammer pfs-update [options]
hammer pfs-upgrade
hammer pfs-downgrade
hammer pfs-destroy
hammer history[@offset[,len]] ...
hammer -f blkdev[:blkdev]* [-r] show [offset]

man 見ると、バージョン 1.11 からあるらしい

HISTORY
The hammer utility first appeared in DragonFly 1.11.


・gcc
3.4.6 と 4.1.2
# gcc -v
Using built-in specs.
Target:
Configured with: DragonFly/i386 system compiler
Thread model: posix
gcc version 4.1.2 (DragonFly)
# env CCVER=gcc34 gcc -v
Using built-in specs.
Configured with: DragonFly/i386 system compiler
Thread model: posix
gcc version 3.4.6 [DragonFly] (propolice, visibility)

2008年7月23日水曜日

DragonFly 2.0

HAMMER filesystem がどんなもんか気になるなー。

DragonFly - July 2008 Release 2.0.x Download

HAMMER filesystem released!

* Crash recovery on-mount, no fsck.
* Fine-grained snapshots, snapshot management, snapshot-support for filesystem-wide data integrity checks.
* Historically accessible by default.
* Mirroring: Queueless incremental mirroring, master to multi-slave.
* Undo and rollback.
* Reblocking.
* Multi-volume, maximum storage capacity of 1-Exabyte.

2008年7月21日月曜日

だんまり

X32 で CURRENT を buildworld してるといつのまにやら固まってる。。
パニックのメッセージなどは皆無。この現象は初めてだな。
-j なしでやってみるか。

Apache モジュール

「なんかつくってみれ」といゆーことで、
実用的ではないけどまぁサンプルみたいなものを書いてみた。
そういや Apache モジュールつくるの初。

なにはなくとも
apxs -g -n モジュール名
でスケルトン作成

あとは適当なコードを漁って参考にして
書く、コンパイル、インストール、Apache リスタート、動作確認
繰り返し。

とりあえず「動く」ものはできた。世に出すような役立ちモジュールではないんだけどね。
Apache モジュールの雰囲気がなんとなくわかったのでそれなりの収穫。

感想:Apache があぼーんしまくって大変。。

本棚に眠ってた Apache モジュール本をひっぱりだしてみたのは言うまでもない。

2008年7月13日日曜日

10Gイーサ

10Gイーサのモデルがあるサーバを前に、

「10G、何に使うんですか(・∀・)ニヤニヤ」

とかる〜く言ってみたら

「IPストレージでつかうでしょっ(やや怒り気味)」

いや、まぁそーなんだろうけど、、サーバだけ10Gイーサでも
だめじゃん、、、

2008年7月6日日曜日

FreeBSD の port を作った

FreeBSD の port を書こう を元に、簡単なのを書いてみた。

まえ Porter's Handbookを見て途中まで書いてたものを今回書き直した。
(port で make するとコンパイルエラーになってて投げ出してたんだな。。)

コンパイルエラーは、デフォルトで付けられる最適化を無くしたら解消した。-O0 にした。

とりあえずできあがったので、submit 。



submit したあとにしょぼいミスをしたことに気づいた。。orz....

突っ込みくるのを待ってみるテスト。

そうそう、作ってみた port は higepon さん作のmosh-scheme。自分は全然 schemer じゃないんだけど、ちょいとためしに port 作ろうと思って手頃そうなのを探したところ、 mosh-scheme になった。

追記:
どうも、send-pr したつもりが亜空間へ消えているくさいんでやりなおそう。。

追追記:
今度は spam 扱いされたので web interface で send-pr した、、
こんなところではまるとは、、、orz..

2008年7月2日水曜日

q4m を FreeBSD 上でインストールだけしてみた

---
たまにアクセスきてるようなので追記:

ports が作られたのでそれを使うのがいいでしょう
-> ports/databases/mysql-q4m
---


・q4m というものの存在を知る
・どうも対象は GNU/Linux, Mac OS X, Solaris ぽい
・FreeBSD だとコンパイルできるのかしらん
・ものは試し

ぐぐると、すでにFreeBSD 上でインストールしてみたという人がみつかる orz..

まぁそれはそれで。
同じようにやってみるテスト。

環境:
FreeBSD 8.0-CURRENT

準備:
・MySQL-5.1.25-rc を 入れる
・boost を portinstall devel/boost で入れる

src/queue_cond.h を下記の通り修正
@@ -265,7 +265,7 @@
};
struct pow_func : public binary_op {
value_t bop(const value_t &x, const value_t &y) const {
- return value_t::int_value(static_cast(powl(x.l, y.l)));
+ return value_t::int_value(static_cast(pow(x.l, y.l)));
}
};
powl -> pow にしただけ(long double -> double.. )
* powl は FreeBSD にはない模様
* ports の math/ldouble いれればいいのかもしれない(?)

configure
% CPPFLAGS="-I/usr/local/include" ./configure --with-sync=fsync --with-mysql=/home/katsuji/src/mysql-5.1.25-rc --prefix=/usr/local/mysql

* --with-sync は fsync を指定しないと fdatasync 無いよと言われて通らない

そのあとは make, make install

で入りましたとさ

% ls -1 /usr/local/mysql/lib/mysql/plugin/libqueue_engine.*
/usr/local/mysql/lib/mysql/plugin/libqueue_engine.a
/usr/local/mysql/lib/mysql/plugin/libqueue_engine.la
/usr/local/mysql/lib/mysql/plugin/libqueue_engine.so.0.0

2008年6月29日日曜日

VirtualBox 1.6

1.6 がでてたよ。
Sun xVM VirtualBox - Get It
VirtualBox 1.6 is a major update, incorporating over 2000 improvements. Among the highlights:

* The new Sun livery
* Solaris and Mac versions no longer in beta
* Guest Additions for Solaris
* Seamless windowing for Solaris and Linux guests
* SATA support for up to 32 hard disks per VM (first product in the industry to do SATA!)
* PAE support for guests (memory model required by some server OSes)
* Web Services API for remote management
* Significant improvements to scalability


Solaris, Mac 版はこれまでベータ扱いだったのか。
PAEサポートはイイな。確か Parallels Desktop はPAE対応してない。

2008年6月26日木曜日

Subversion 1.5

でてた
Subversion 1.5 Release Notes

オレ yum リポジトリつくる

先ず yum install createrepo で createrepo コマンドをいれる。

で、そのあとコネコネするんだけど、
「独自 yum リポつくるには!」というサイトがちょろちょろみつかる。。
ふーむ。。。

man よも。

createrepo で大抵すむな。
groupinstall してみたいんでグループ作るのを調べるくらいか。
しなくても別段困ることはない。

yum.repos.d 以下でごそごそしたあと、
作った大量の RPM がもりもり入るのは確認。

追記:
YumGroups - yum -Trac の、Setting up your own groups in your own repository を見ましょう。

2008年6月25日水曜日

「初めてのRuby」著者サイン 本

そうそう、RubyKaigi 2008 、二日目「だけ」行った。
昼休みに「初めてのRuby」を買って、著者 Yugui さんにサインしてもらった

Chad Fowler のサイン会もやってた。

2008年6月22日日曜日

nowa

nowa[ノワ]の記事を整理
(とりあえず削除はせずに非公開)して、
ナニシテル専用にしてみた。

2008年6月21日土曜日

buildkernel がコケる

2008年6月18日 MPSAFE TTYテスター募集,pfSense開発者srcコミッタへ,Wine更新,BSD grep更新,GIMP更新他

ってんで、MPSAFE TTYてのを試してみようかなーと思い
csup 後 patch を取ってきて適用、
buildworld して buildkernel でコケた。

csup後のソースに合わなかったんだろな。残念。
ほぼ毎日パッチが作られてるみたいなんで、まぁそんなものだろう。

2008年6月20日金曜日

バージョンを意識するということ

「apache 2.2.x と Ruby 1.9.x インストールよろ!
(他サーバで動かしてる Rails アプリをこっちでつかう)」

ということで 「あー、きっと Rails はつかえないだろなー。1.9.x で動かしてること聞いたことないしなー。」と思いつつも、自分はそのへんの事情知らないので(ひょっとすると問題なく動かしてるのかもしれないしね)
そのまま 1.9.x インストール。

案の定?動かないらしい。

オヌヌメはここにかいてある。
Download Ruby on Rails
We recommend Ruby 1.8.6 for use with Rails. Ruby 1.8.5, 1.8.4 and 1.8.2 are still usable too, but version 1.8.3 is not. Ruby 1.8.7 still has some bugs to straighten out.
(1.9.x は記述すらない)

というわけで 1.8.6 で入れ直し。まぁ既定路線。

その後 rubygems いれて Rails 2.1.0 をいれて動かしてみたら、使ってるプラギンが対応してないらしい。これもたぶん README かなにかに書いてある気がする。それか プラギン配布してる人のサイトだったり。

新バージョンにマイグレーションするつもりでやるならいいけど、今動いてるものをそのまま動かしたい場合は同バージョンが無難だよね。

どうでもいいけど、Ruby on Rails って
「Rails」と「RoR」、どっちで呼ぶのが多数派なんだろうね。
後者は「アールオーアール」て読むのかな?

2008年6月19日木曜日

UNIX magazine


■総力特集
AIX、Solaris、HP-UX、Mac OS X、FreeBSD、NetBSD、OpenBSD、Linux
カーネルから見る最新UNIX

に惹かれて買った。薄い割に値が張るけど!

社内だとたぶん「Linuxでいいじゃん。ほかの*NIX ? フーン」

な感じ(まぁ用途が用途だし)w

2008年6月6日金曜日

ssh 認証方法

・LDAP
・Kerberos

このへん試してみたいな−
Kerberos 使ってるひとみたことない!><

2008年6月2日月曜日

ミニマルPerl

書店でみてから買う予定。

ミニマルPerl Unix/LinuxユーザのためのPerl習得法
必要以上に学ばなくともPerlは書けるようになる!
  Perlハッカーである著者の提唱する「ミニマルPerl」というアプローチによって、本書の読者は「必要以上にPerlを学ばなくても有益なプログラムを書けるようになる」だろう。本書はそんな新しいPerlの本である。UNIX/Linuxユーザを主な対象に、一般的なデータ処理のための実用的な Perlスクリプトを書きながら、Perlプログラミングのポイントを詳しく解説。Perl習得に必要な知識を深く掘り下げる。Perl入門者だけでなく、Perlに再入門したい読者にとっても最適である。

このような方におすすめ
Perlユーザ、プログラミング初~中・上級者
原書はこれかな

Amazon.com での評価は星4.5とよろしい。

構成はこんなかんじらしい
Minimal Perl: for UNIX and Linux Users

1 Introducing Minimal Perl
2 Perl essentials
3 Perl as a (better) grep command
4 Perl as a (better) sed command
5 Perl as a (better) awk command
6 Perl as a (better) find command
7 Built-in functions
8 Scripting techniques
9 List variables
10 Looping facilities
11 Subroutines and variable scoping
12 Modules and the CPAN

appendix A: Perl special variables cheatsheet
appendix B: Guidelines for parenthesizing code

んー、やはりみてからでないと危険な香りだ。

Manning Publications Co. の出版物って、表紙がほとんど人間?

日本語版はオライリー発行。ダンコーガイへの献本がされて、

これからPerl を覚えようとしている foo な人にはオススメする、
しかし、bar について書かれてないのは惜しい。
bar を求めるなら buzz , quux (ラクダだったりクックブックだったり) を参照のこと

のような書評があがったりするのかな。マッチョ!

2008年6月1日日曜日

MySQL 5.0 Certification Study Guide

また MySQL 熱がでてきたのでややマジメに MySQL 本を読んでみるテスト(認定試験のだけど)。

読み始めたのは件名のもの。日本語版みつけらんなかったので原書で。2005年モノ。

開発者むけと管理者むけ両方をカバーしていて、自分は職業柄(?)、管理者むけから読み中。
23章〜42章。うち9章分は飛ばし飛ばし読んだけど、要点だったり自分の知らなかった箇所を書き残していこうかなと。いつまで続けられるかは不明。。

とりあえず管理者むけの章は以下の通り。
MySQL DBA Exams

MySQL DBA I Exam
23章 MySQLのアーキテクチャ
24章 MySQLの起動・停止と設定
25章 管理業務のクライアントプログラム
26章 MySQL Administrator (そういうGUIなプログラム、ね)
27章 キャラクタセットのサポート
28章 ロック
29章 ストレージエンジン
30章 テーブルのメンテナンス
31章 INFORMATION_SCHEMA データベース
32章 データのバックアップとリカバリの方法
33章 管理のためのストアドルーチンとトリガの利用

MySQL DBA II EXAM
34章 ユーザ管理
35章 セキュアな MySQL の導入
36章 アップグレードに関するセキュリティの問題
37章 クエリの最適化
38章 データベースの最適化
39章 サーバの最適化
40章 診断メッセージの解釈
41章 環境の最適化
42章 スケーリング

業務でつかうんじゃーという人には「現場で使える MySQL」がいいのかな。
入門記事をまとめたヤツだけど。

[Ruby] Ruby 1.8.7 でてた

[ruby-dev:34905] Ruby 1.8.7 has been released

2008年5月30日金曜日

ほげ言語の覚え方

ここでの「言語」はプログラミング言語。
敢えて「ほげ」と書いておく。

某IRCにて、ざっとこのようなやりとり

・ほげ言語のイイ参考書は?
・オライリーは真面目な子でないとムリ
・本はいらないかも
・ソース嫁

他にもあったけど、省略。

肉体派プログラマに尋ねてみたところ、
Perl の場合にはクックブックがオヌヌメ。


でふと思ったのが、タイトルのようなこと。
プログラミング言語「ほげ」 を覚えて、書きたいものがさくさく書けるようになるには?

「ほげ」言語での "流儀" を覚えることかなー。とボンヤリ思った。
"流儀" を覚えるために読んで書いて読んで書いて・・・
アルゴリズムに関しては別問題。

まぁ自分はプログラマじゃないからなんともいえないけど


そうそう、プログラミングに関するエントリをいくつか思い出したので書いておこう。

I, newbie » Perl初心者はどうやって勉強したらいいんですかね
プログラミングの6大10項目リスト
kajidaiの日記 - 新しいプログラミング言語を習得するための15の方法
Teach Yourself Programming in Ten Years 日本語訳
プログラマになる方法

2008年5月24日土曜日

[MySQL] Native POSIX Thread Library / LinuxThreads

いまさら、だけど。

最近とあるRHELクローンな GNU/Linux 上で rpm をシコシコと作成してるわけなんだけども
MySQL (バージョンはとある歴史的 or 政治的理由 ? により とりあえず 4.0.x 系) のを作ってたら、

--with-mysqld-ldflags=-static
だと NPTL な libpthread.so を dynamic link
(オプションが無い場合も)

--with-mysqld-ldflags=-all-static
だと LinuxThreads な libpthread.so を static link

となることに気づく。

某所のブツは static link (で LinuxThreads) なのを使っているようなんだけど、どういう理由からなのかは不明。パッと思いついたものは以下のとおり。

・「枯れてる」ということで以前旨く動いた設定そのまま。
・static ならそのバイナリだけコピっちゃえば動くからおけ。リンクしてるライブラリ考えなくておけ。
・カッリカリにチューニング。だから static。
・NPTL だと何かではまった(?)

で、パフォーマンスてどっちがいいんだろうねぇ。スレッド生成のコストやらなんやら、は MySQL の場合さほど考えなくていいものなのかな。
どこかに比較した結果ころがってたりしないかな。

ひとついえるのは、ps で MySQL のプロセスが沢山見えるのはやっぱり気持ち悪い w

-- 参考
Manpage of PTHREADS より
POSIXスレッドの Linux での実装
これまで、2つのスレッドの実装が Linux の GNU C ライブラリにより提供されてきた。

LinuxThreads
最初の Pthreads の実装。 glibc 2.4 以降は、この実装はもはやサポートされていない。
NPTL (Native POSIX Threads Library)
新しい Pthreads の実装。LinuxThreads と比べると、 NPTL は POSIX.1 の要求仕様への準拠の度合いが高く、多数のスレッドを作成した際の性能も高い。 NPTL は glibc 2.3.2 以降で利用可能である。 NPTL を利用するには Linux 2.6 カーネルに実装されている機能が必要である


KLab の中の人が記事中でちょろっと書いてはいる。
MySQL5開拓団 - ストレージエンジンの吟味 (1)
ライブラリの影響に悩まされたくないならば「Linux(x86, glibc-2.2, "standard" is static, gcc)」のStandardを使うのがよいと思いますが、LinuxThreadに比べNPTLはスレッド生成のコストが低いとされているので、性能を追求するならばダイナミックリンクされているMySQLのバイナリでNPTLを使うのもよいと思います。

違いはわからないまま。

MySQL の tar玉バラして中見ると、混ぜるな危険っぽいことが書いてあるんだけど詳しい話がわからんのよね。。

また調べよう。

2008年5月22日木曜日

[DNS] unbound

BINDオルタナティブのDNSサーバ「Unbound 1.0」がリリース
というのを見て、NLnet Labs は NSD 開発してるよなーと思ってたら、案の定同じように思ってるひといたの巻。
NSD は権威サーバ(コンテンツDNS)のみ。
確か Kルートサーバは NSD.

[nsd-users] unbound vs nsd
nlnetlabs develop nsd and unbound too. why? what's more it seems from the mailing list that the same people involved in both projects? so i've got a few querstions:
- why are to different name server?
- why not merge the two project?



なんだか unbound でぐぐってくるひとが多いみたいなので追記:
日本Unbound ユーザ会 なるものができたらしい。
BIND とか djbdns ってとくにユーザ会ないよな。。
(知らないだけ?)
こうしてまとめられてるのは良いね。

インストール方法 が載ってるよ!
Debian/GNU じゃなくて Debian GNU/Linux だと思う。
RedHat のところも Enterprize じゃなくて Enterprise だと思う。
直されるかな?


ぼくなら FreeBSD、 んで portinstall dns/unbound 。
最初はどんなもんか敢えて野良 make するかも。

2008年5月20日火曜日

[security] 例のDebian の件

これ
Debianのopensslパッケージに欠陥発覚


詳細は
OpenSSL パッケージの脆弱性とその影響について (SSH鍵、SSL証明書等)

で、確か Debian(etch) や Ubuntu(Feisty以降) のサーバでないところで作ってたから大丈夫、と思っていたけど念のためチェック。

・ssh-vulnkey
・dowkd.pl

を使用。パス。

2008年5月12日月曜日

ハカーの名前

どういうわけかどっちがどっちだかごっちゃになってたので書いておくテスト。
たぶん J と Z のせいだな。。

Jeremy Zawodny
・Yahoo! の中のひとで MySQL guru
・ハイパフォーマンスMySQL 著者

Jamie Zawinski
・Mozilla や XEmacs.
・"jzw" はこの人
・ナイトクラブ所有(!)

或るサーバの話

ついつい GNU/Linux なサーバ前提だと思ってたら FreeBSD だった。。orz..

自分が嫌になった。

# 個人的にはFreeBSD マンセー

2008年5月11日日曜日

[Ruby] ruby_1_8_7 で rails つかってみたら落ちたの巻

** おことわり **
・Ruby の中身は全然しらない
・Rails 使いこなしてない
・ただなんとなく svn で ruby_1_8_7 とってきててきとーに scaffold 作ってあげてみただけ
・GNU/Linux では試してない
・FreeBSD は CURRENT なのがいけないのかもしれない

・事情知らないので「これで当然」なのかもしれない
(どこかで既出?)

なにやら、 malloc 周りで死亡

・Darwin 9.2.2 i386 の場合
ruby(42561,0xa0574fa0) malloc: *** error for object 0x1b8b610: Non-aligned pointer being freed (2)
*** set a breakpoint in malloc_error_break to debug
ruby(42561,0xa0574fa0) malloc: *** error for object 0x1bdeec0: Non-aligned pointer being freed (2)
*** set a breakpoint in malloc_error_break to debug
ruby(42561,0xa0574fa0) malloc: *** error for object 0x1bdeb90: Non-aligned pointer being freed (2)
*** set a breakpoint in malloc_error_break to debug
ruby(42561,0xa0574fa0) malloc: *** error for object 0x1b8fba0: Non-aligned pointer being freed (2)
*** set a breakpoint in malloc_error_break to debug
zsh: illegal hardware instruction $HOME/sw/ruby187/bin/ruby ./script/server


・FreeBSD 8.0-CURRENT の場合
Assertion failed: ((run->regs_mask[elm] & (1U << bit)) == 0), function arena_run_reg_dalloc, file /build/src/lib/libc/stdlib/malloc.c, line 2197.
zsh: abort (core dumped) $HOME/sw/ruby187/bin/ruby ./script/server

2008年5月6日火曜日

同窓会あった

高専の同窓会行った。某科四期生。

そう、四期生。四期生なんだよね。
当時新しめの科、で入学時は五年が居なかったんだよね。
世間一般的には「高専?なにそれ?おいしいの?」と思う人多い気がするけど五年制ですよと。

18時からだったけども 14時すぎ、正月集まることの多いメンツで集合してボーリング。その後やや早めに会場へ移動。で早速懐かしい顔をみたけども、いやー変わってないね。
その後ぞくぞくと集まってくるけども、

「アレ誰、、?!?!」

なことは全く無かった。ちょっと安心。
流石に二十歳からの八年だとさほどかわらんか。
プクーリしてたりホソーリしてたり、他若干風貌がかわってる程度。
参加者は25名くらい。なかなかな参加率だと思う。まぁ女子は少なかったけどね。。

職かわってたり地元にもどってたり、結婚してたり。皆それぞれの物語を綴っている!

それにしても、男子(あえて男子と書く)の既婚率の低さ!ホント指折り数える程しかしてないねぇ。自分は某先生に「ケッコンはマダカ?」「ヨテイは?」と聞かれたけど、、全く以て未定です、。

ママンになってた女子(あえて女子と書く)には子供の写真をみせてもらった。とても可愛いのー。

みんなのかわらなさっぷりと元気そうなのが拝めてよかった。

次回は三十代のうちにあるのかなー。少なくとも十年後として 38 。ちょっと怖いな。

あぁ、そうそう。服をどうしようかと思って「ノータイなスーツなら無難だろー」と思ってたらみんなラフすぎ (w 。かなり読み間違えた。まぁ普段着ないからたまには着らんとね。

2008年5月2日金曜日

2008年5月1日木曜日

[Apache] 最適化やらチューニングやら

Apache 1.3.x の話。
かなーーーーーり前、(覚えてない

CFLAGSに -O6 -fomit-frame-pointer はいらんだろー。

と某制作物をみて思った。

FreeBSD ports を参考にすることが多いんだけども、
3年前、 -O6 -fomit-frame-pointer は -O3 に変更されてた。ということに今日気づいた。

それがこれ
Change APACHE_PERF_TUNING default to more reasonable value

だそうな。ほっほっ。

Makefile みてて気づいたけど、 -DBUFFERED_LOGS 付けるのもよさげ。これは知らなかった!・・・って、 perf-tuning.html に書いてあるな、、 orz....

[Rails] AWDwR 3rd Edition

Oct 2008 に出る模様

The Pragmatic Bookshelf | Agile Web Development with Rails, Third Edition

2008年4月30日水曜日

ふしぎな ? rpm ファイル

中身がないやつってなにをしてくれるんだろう。

# rpm -qpl なんちゃら.rpm
(contains no files)

prefix かえていれようとしてもダメだった。。ちっ。
# rpm -i --prefix=/tmp/hoge なんちゃら.rpm
error: package なんちゃら is not relocatable

追記: --scripts でみたらなんかいろいろ実行する模様。
何もインストールしないで設定だけする rpm て初めてみた。
自分が知らなかっただけ?
ディストリビューション純正な rpm にもあるのかねぇ。

2008年4月25日金曜日

RPM

RPM とかなり戯れるので、書籍購入。
何度か作ったことはあるんだけど、どうも今ひとつ理解に乏しい。

2003年のもの。基本的なことは変わらんだろーと思い、手元に欲しいので購入。

ウェブサイトだとここで見られる。日本語のもあるかも。

絶版だかわからないけど、マーケットプレイスでしか買えなかった。
送料込みで新品よりそこそこ安い程度で買えた。状態は良い。

米Amazon で原書は $390 してる。。。ありえん。

2008年4月20日日曜日

ポインタの話

某部署でゼミっぽいことをやるみたい、で
その中で C のポインタについて話すらしいので聴いてみることに。
ポインタの「正しい解説」に興味津々。

ZDNet の記事は無茶苦茶たたかれてたなぁ。。。

mycom でも記事あるし。密かにいまポインタがアツイの?w

自分が習ったのは、、12年前くらいか。

試験の成績はショボかったなー。
もちろんプロコンなんざ無縁。だめ学生。

なんだか今のほうが学習意欲がある気がする。。。

MySQL のマルチコアスケーラビリティ

某所ブログで書いてみたモノ。興味を持つ人いなかったね。

古い話題(だと思う)。

o 今フツーに? 手に入る GNU/Linux だとスケールしないらしい
(install用 iso 落としてきて、それで入れられるやつ、とする。Fedora だと新しいっぽいので違うか)

MySQLのマルチコアスケーラビリティとLinux
http://blog.miraclelinux.com/yume/2007/02/mysqllinux_472a.html

スラド記事
http://slashdot.jp/bsd/article.pl?sid=07/02/25/0735245


o malloc を Google の malloc (tcmalloc)にしてみると改善っぽい

MySQL scalability on Linux with sysbench
http://ozlabs.org/~anton/linux/sysbench/


tcmalloc は ここ
http://code.google.com/p/google-perftools/

o glibc 2.7 と linux 2.5.25-rc4 でもよい性能
http://www.kernel.org/pub/linux/kernel/people/npiggin/sysbench/

Gualala ?

people.freebsd.org の ウェブサーバが謎。

Trying 69.147.83.40...
Connected to freefall.freebsd.org.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.0 301 Moved Permanently
Connection: close
Location: http://www.freebsd.org/
Content-Length: 0
Date: Sat, 19 Apr 2008 16:48:32 GMT
Server: httpd/1.4.x Gualala

Connection closed by foreign host.


httpd/1.4.x Gualala て?

2008年4月19日土曜日

indent

とあるソースをみてて、
「うー、、とりあえず indent にかけてみっか」

とおもい indent にかけたら、 コンパイルできなくなって鬱。

見たことないスタイルだなーと思ってその後調べてみたら、
どうも Bannerスタイル風。こんなんあんだね。

2008年4月10日木曜日

借りてるサーバ危機

というわけでもないけど、
こないだカード情報をいじくってたせいか、
「支払いまだだよ!払わないととめちゃうよ!」的なメールが来た。
即決済した。

前ちらっと書いたけど、
利用してるのは vpslink
Link-4 というプラン。いまさらながら、オーバースペック気味。
まー、Catalyst やら動かしてメモリどっさりつかうかもね。

メモリ: 512MB
HDD: 20GB
IPaddress: 3個
OS: Ubuntu 7.10 (Gutsy Gibbon)
virtualization: Xen

vpslink にある OpenVZ と Xen の比較はココ

2008年3月21日金曜日

gjournalおためしその後

だめくさい。
7.0-RELEASE の GENERICでもだめだわ。というわけで?全部だめ。
+-----------+------+-----+
| version | 4BSD | ULE |
+===========+======+=====+
|7.0-RELEASE| BAD | BAD |
+-----------+------+-----+
|8.0-CURRENT| BAD | BAD |
+-----------+------+-----+

よくわからんけどスケジューラは無関係。

そもそも async つけてるから当然??

遂には fsck 中にも panic。しばらく使わないことに決定。。


journal 解除、 soft-updates にした。。

vmcore

/var/crash の下に吐いてくれる、vmcore の活用法を知らないので今度調べる。

2008年3月20日木曜日

gjournal と SCHED_ULE が悪い??

ULEスケジューラで gjournal つかってると panic する、気がする。気がするだけ。
今のところこんな感じ

・gjournal の領域は async で mount
・tar展開, 削除繰り返す
・しばらく待つ
パニックした -> BAD
パニックしてない、しそうにない -> good (でも怪しい)
+-----------+------+-----+
| version | 4BSD | ULE |
+===========+======+=====+
|7.0-RELEASE| good | BAD |
+-----------+------+-----+
|8.0-CURRENT| N/A | BAD |
+-----------+------+-----+

2008年3月19日水曜日

んー

gjounal 使用開始後、

csup & カーネル再構築してたらパニックで死亡遊戯

ファイルシステム、ダーティな状態

シングルユーザモード
(マルチユーザモード& background fsck にならず。。)

fsck

起動

したけど、、どうも
・なにかしらの tarball展開
・削除
・tarball 展開
・削除
・・・・を繰り返ししてるだけでパニック。
今まではなかったなぁ。

確実に
panic: ufs_dirbad: /usr/home: bad dir ino 847884 at offset 512: mangled entry

とでるな。んー。CURRENTだからか?
buildworld, buildkernel 時はたまにおきるかな。
7.0-RELEASE でもためしてみよう。

gjournalをつかってみるテスト (再)

前回
は まだソースツリーになかった、けども 7.0-RELEASEから使えるようになった。
man より
HISTORY
The gjournal utility appeared in FreeBSD 7.0.

CURRENT上で man をみながら使ってみた。小難しいことは一切なし。

/home (は、/usr/home へのシンボリックリンクなのでそのまま /usr/homeで)
/build (/usr/src, /usr/obj 置き場)
を それぞれ 別ディスク用意して(Parallels のVMなのでラク) gjournal に。
ジャーナル分で結構容量食うみたいだ。。
元のディスクは
ad2: 12G
ad3: 4G
で作成。

% df -h -t ufs
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 496M 362M 94M 79% /
/dev/ad0s1e 496M 3.9M 452M 1% /tmp
/dev/ad0s1f 28G 2.4G 23G 9% /usr
/dev/ad0s1d 1.2G 158M 970M 14% /var
/dev/ad2.journal 10G 5.0G 4.5G 52% /usr/home
/dev/ad3.journal 2.8G 1.5G 1.1G 59% /build

% mount -t ufs
/dev/ad0s1a on / (ufs, local)
/dev/ad0s1e on /tmp (ufs, local, soft-updates)
/dev/ad0s1f on /usr (ufs, local, soft-updates)
/dev/ad0s1d on /var (ufs, local, soft-updates)
/dev/ad2.journal on /usr/home (ufs, asynchronous, local, gjournal)
/dev/ad3.journal on /build (ufs, asynchronous, local, gjournal)


サーバ落としたりリブートするときは gjournal sync しないといけない風なので、(ソース: man, 2ch)、/etc/rc.shutdown にこんなん追加してみた、けどこれでいいのかな。。

gjournal_sync_count=1
while [ $gjournal_sync_count -le 5 ]; do
echo -n "Gjournal sync${gjournal_sync_count}..."
gjournal sync -v
gjournal_sync_count=$(expr ${gjournal_sync_count} + 1)
sleep 1
done

この処理のあと syncing disks.... が走るわけなんだが、man とは逆順になってしまってるなぁ。。うーん。
The most important one is that sync(2) and
fsync(2) system calls do not work as expected anymore. To ensure that
data is stored on the data provider, the gjournal sync command should be
used after calling sync(2).

/etc/fstabはこんなん (ufsのところ抜粋)、/boot/loader.conf に geom_journal_load="YES" を追加。まぁ適当に。
/dev/ad0s1a  /  ufs rw  1 1
/dev/ad0s1e /tmp ufs rw 2 2
/dev/ad0s1f /usr ufs rw 2 2
/dev/ad0s1d /var ufs rw 2 2
/dev/ad2.journal /usr/home ufs rw,async 2 2
/dev/ad3.journal /build ufs rw,async 2 2

% grep geom /boot/loader.conf
geom_journal_load="YES"

とごそごそやってみたものの、ベンチとる気は起きない。。
async だけどジャーナルのぶん、遅い気がする。

2008年3月15日土曜日

pid 0 なやつ

前は [swapper] だったけどいつのまにやら [kernel] になってることに気づく。ただそれだけ。
$ uname -mrs
FreeBSD 7.0-STABLE i386
$ ps -xa -o pid,command -p 0,1
PID COMMAND
0 [swapper]
1 /sbin/init --

% uname -mrs
FreeBSD 8.0-CURRENT i386
% ps -xa -o pid,command -p 0,1
PID COMMAND
0 [kernel]
1 /sbin/init --

2008年3月10日月曜日

Fatal trap 12: page fault while in kernel mode

とゆーのに遭遇の図。



CURRENT ですから。

前のカーネル(/boot/kernel.old/kernel )でのあげかた。
たまにやるけどその度に「どーだったかな、、」と若干迷うのでメモ
FreeBSDのサイトにあると思うけど探したことがない。。

6. Escape to loader prompt を選択

OK のプロンプトになる

show [Enter] してみる

module_path=/boot/kernel;/boot/modules
やら
kernelname=/boot/kernel/kernel
が確認できる

unload [Enter]

load /boot/kernel.old/kernel [Enter]

-> kernelname=/boot/kernel.old/kernel になる

set module_path=/boot/kernel.old;/boot/modules [Enter]

カーネルモジュールも前のを指定しないとね

で、 boot [Enter]

無事起動。

起動した後は
sysctl kern.bootfile
sysctl kern.module_path
でドレを読み込んだのかが解る。

2008年3月4日火曜日

Mercurial

手軽っぽいんで Mercurial で管理してみる。
今のところ

clone
commit
diff
init
log
pull
push
remove
status
update

くらいしか使ってない。
使ってみて少し理解した(つもり)

小気味よく使える印象。他のあまりつかったことないけど。

2008年3月2日日曜日

簡易DNSサーバちぇっかー

簡易DNSサーバちぇっかー
今のところ、ただ DNSなモジュール使って"簡単な"チェックをするだけ。
当初あれやこれや、、と思ったけどひとまずなんかしら動くものを。

外部からキャッシュDNSとして利用可能か、或る程度判別できる筈。

つくってみた経緯みたいなもの

htmlワカンネ w

2008年3月1日土曜日

2008年2月28日木曜日

FreeBSD 7.0-RELEASE

でてた。

7.0-PRERELEASE になってたのを 7.0-STABLE にしておくか。
スペックがプアーなマシンなので時間かかるけども。

CPU: Intel Pentium III (746.76-MHz 686-class CPU)

だったり

real memory = 402522112 (383 MB)
avail memory = 380116992 (362 MB)

だったり。。

Mac OS X 上の Parallels でビルド用のVM作ってそっちでコンパイル、
NFS マウントして インストール したほうが速いね。。

netqmail 1.06

とある検証で、 qmail をひさしぶりに入れた。
新規で導入することは、政治的問題がなければ無いだろうなぁ。たぶん。

public domain になったからか、netqmail は バージョン1.06 になっていた。
これまではシェルスクリプトを実行してパッチをあてるようになってたけど、ただ tarball を展開するだけになった。

INSTALL.ids を一部コピって グループとアカウント追加、
make setup check .

PIC.* ファイルはメイルの流れがわかっていいよね。としみじみ。

2008年2月26日火曜日

Mac OS X , php5, apache2, mod_fcgid, PostgreSQL

ちょいとphpをほげることがあったので
Mac OS X 上で試せるように環境作成しておいた。メモ。

・php5
OS付属のはつかわず MacPorts で
variants は
+fastcgi +ipc +mysql5 +pcntl +pear +postgresql +sockets +sqlite
(てきとう。apacheからはFastCGIで使うので +apache2 は不要)

依存関係から、わさわさ入る

・apache2
これもOS付属のは(略)
ソースでいれた。
configureはてきとうに。SSLいらないけど。
$HOME/apache2 にしてみた (きまぐれ)
MPMはワーカー

--prefix=$HOME/apache2
--enable-layout=Apache ¥
--enable-so ¥
--enable-nonportable-atomics ¥
--enable-mods-shared=all ¥
--with-mpm=worker ¥
--with-ssl

インストール後、
モジュールの読み込みまわりはDebianチックに変更
httpd.conf が長いのは萎え萎えです

・mod_fcgid
これもソースで。
Makefile の top_dir を書き換え、make ; make install


でまぁ入れたのはいいものの、Postgres を起動したあと mod_fcgid を有効にした apacheが起動しない。
fork してくれず。エラーは以下。

[emerg] (12)Cannot allocate memory: mod_fcgid: Can't create share memory for size %zu byte

あぁ、、shmなんちゃらをいじるのね、、ということで

コマンドラインで
sudo sysctl -w kern.sysv.shmall=32768
sudo sysctl -w kern.sysv.shmmax=134217728

次回起動時のため
/etc/sysctl.conf に
kern.sysv.shmall=32768
kern.sysv.shmmax=134217728

そんなかんじで。
値は カーネルリソースの管理を参考。
OS X全バージョンで、共有メモリパラメータの変更を反映させるためにはリブートが必要になります。
とあったけど、Leopard だと動的に反映してるように見えた。値は変わるけど、実際は変わってなかったりするの?

それにしてもRではじまる某言語でごそごそする機会は中々ないなー。サミシス。。

2008年2月14日木曜日

8-CURRENT

kernel が げほげほ と。。
なんだろう。

kernel: lock order reversal:
kernel: 1st 0xc2e2d9e8 ufs (ufs) @ /usr/src/sys/kern/vfs_subr.c:2061
kernel: 2nd 0xc2ed7000 vfslock (vfslock) @ /usr/src/sys/kern/vfs_subr.c:364
kernel: KDB: stack backtrace:
kernel: db_trace_self_wrapper(c0ae661b,d3cd79e4,c079eb5e,c0ae890b,c2ed7000,...) at db_trace_self_wrapper+0x26
kernel: kdb_backtrace(c0ae890b,c2ed7000,c0aee6fc,c0aee6fc,c0aeec99,...) at kdb_backtrace+0x29
kernel: witness_checkorder(c2ed7000,1,c0aeec99,16c,d3cd7a24,...) at witness_checkorder+0x6de
kernel: _lockmgr(c2ed7000,2001,c2ed7030,c0aeec99,16c,...) at _lockmgr+0x1e5
kernel: vfs_busy(c2ed7000,0,0,c2ccecc0,d3cd7b58,...) at vfs_busy+0x198
kernel: lookup(d3cd7b44,c0aee3ac,c6,bf,c2cd612c,...) at lookup+0x7b4
kernel: namei(d3cd7b44,c2cced54,c0b9c9a4,c0aee5fe,c2ed7030,...) at namei+0x34b
kernel: kern_unlink(c2ccecc0,c0aeea3b,1,628,0,...) at kern_unlink+0x40
kernel: vfs_mountroot_try(c0aeebf5,c0add4e3,c0ad63ce,1,c07dc120,...) at vfs_mountroot_try+0x470
kernel: vfs_mountroot(c0c000b0,4,c0ade7c2,260,0,...) at vfs_mountroot+0x418
kernel: start_init(0,d3cd7d38,c0ae00a9,30c,c2cccab0,...) at start_init+0x65
kernel: fork_exit(c0730210,0,d3cd7d38) at fork_exit+0xb8
kernel: fork_trampoline() at fork_trampoline+0x8
kernel: --- trap 0, eip = 0, esp = 0xd3cd7d70, ebp = 0 ---
kernel: lock order reversal:
kernel: 1st 0xc2cd1044 user map (user map) @ /usr/src/sys/vm/vm_map.c:3111
kernel: 2nd 0xc2e2d7c8 ufs (ufs) @ /usr/src/sys/kern/vfs_subr.c:2061
kernel: KDB: stack backtrace:
kernel: db_trace_self_wrapper(c0ae661b,d3cd79d0,c079eb5e,c0ae890b,c2e2d7c8,...) at db_trace_self_wrapper+0x26
kernel: kdb_backtrace(c0ae890b,c2e2d7c8,c0addd96,c0addd96,c0aeec99,...) at kdb_backtrace+0x29
kernel: witness_checkorder(c2e2d7c8,1,c0aeec99,80d,d3cd7a04,...) at witness_checkorder+0x6de
kernel: _lockmgr(c2e2d7c8,3041,c2e2d7f8,c0aeec99,80d,...) at _lockmgr+0x1e5
kernel: ffs_lock(d3cd7a78,c075955c,c0c04fb4,3041,c2e2d770,...) at ffs_lock+0x8a
kernel: VOP_LOCK1_APV(c0bb7440,d3cd7a78,c0add4e1,3,c2e2d7f8,...) at VOP_LOCK1_APV+0xa5
kernel: _vn_lock(c2e2d770,3041,c0aeec99,80d,0,...) at _vn_lock+0xf2
kernel: vget(c2e2d770,3041,c2ccecc0,4a9,c1445e00,...) at vget+0x109
kernel: vnode_pager_lock(c1445c80,0,c0b0520f,127,d3cd7be8,...) at vnode_pager_lock+0x1ad
kernel: vm_fault(c2cd1000,80d3000,2,8,80d3800,...) at vm_fault+0x1df
kernel: trap_pfault(5,0,c0b11f81,2c8,c2cccab0,...) at trap_pfault+0x118
kernel: trap(d3cd7d38) at trap+0x257
kernel: calltrap() at calltrap+0x6
kernel: --- trap 0xc, eip = 0x80480e5, esp = 0xbfbfeef0, ebp = 0xbfbfef10 ---


kernel: lock order reversal:
kernel: 1st 0xc35b96b8 ufs (ufs) @ /usr/src/sys/kern/vfs_subr.c:2061
kernel: 2nd 0xcd0f63bc bufwait (bufwait) @ /usr/src/sys/sys/buf.h:280
kernel: 3rd 0xc3945e28 ufs (ufs) @ /usr/src/sys/kern/vfs_subr.c:2061
kernel: KDB: stack backtrace:
kernel: db_trace_self_wrapper(c0ae661b,d60774e0,c079eb5e,c0ae8924,c3945e28,...) at db_trace_self_wrapper+0x26
kernel: kdb_backtrace(c0ae8924,c3945e28,c0addd96,c0addd96,c0aeec99,...) at kdb_backtrace+0x29
kernel: witness_checkorder(c3945e28,9,c0aeec99,80d,3,...) at witness_checkorder+0x6de
kernel: _lockmgr(c3945e28,2002,c3945e58,c0aeec99,80d,...) at _lockmgr+0x509
kernel: ffs_lock(d6077588,c075955c,c0c04fb4,2002,c3945dd0,...) at ffs_lock+0x8a
kernel: VOP_LOCK1_APV(c0bb7440,d6077588,c0add4e1,3,c3945e58,...) at VOP_LOCK1_APV+0xa5
kernel: _vn_lock(c3945dd0,2002,c0aeec99,80d,0,...) at _vn_lock+0xf2
kernel: vget(c3945dd0,2002,c2ec3aa0,50,0,...) at vget+0x109
kernel: vfs_hash_get(c2ed67d4,153400,2,c2ec3aa0,d60776e4,...) at vfs_hash_get+0xe3
kernel: ffs_vget(c2ed67d4,153400,2,d60776e4,c0b036f1,...) at ffs_vget+0x49
kernel: softdep_sync_metadata(c35b9660,0,c0b036f1,12f,118,...) at softdep_sync_metadata+0x5b2
kernel: ffs_syncvnode(c35b9660,1,c1456808,8d6,c0b049de,...) at ffs_syncvnode+0x3e2
kernel: ffs_truncate(c35b9660,1000,0,880,c2f95d00,...) at ffs_truncate+0x5fa
kernel: ufs_direnter(c35b9660,c3945dd0,d6077a24,d6077bcc,cd14b200,...) at ufs_direnter+0x923
kernel: ufs_mkdir(d6077b90,d6077b90,0,d6077b90,d6077ba4,...) at ufs_mkdir+0x8d8
kernel: VOP_MKDIR_APV(c0bb7440,d6077b90,d3d,d3b,0,...) at VOP_MKDIR_APV+0xa5
kernel: kern_mkdir(c2ec3aa0,bfbfea75,0,1ff,d6077d2c,...) at kern_mkdir+0x2b7
kernel: mkdir(c2ec3aa0,d6077cfc,8,c0ae909b,c0b97040,...) at mkdir+0x29
kernel: syscall(d6077d38) at syscall+0x2b3
kernel: Xint0x80_syscall() at Xint0x80_syscall+0x20
kernel: --- syscall (136, FreeBSD ELF32, mkdir), eip = 0x28149aeb, esp = 0xbfbfe83c, ebp = 0xbfbfe908 ---

2008年2月12日火曜日

[Linux] カーネル2.6系のアレ

Linuxカーネル2.6系にroot権限を奪われる脆弱性が発見される

コメントにあったように、試してみると確かに昇格した・・・!

katsuji@debian:~$ cat /proc/version
Linux version 2.6.18-5-686 (Debian 2.6.18.dfsg.1-17) (dannf@debian.org) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 SMP Mon Dec 24 16:41:07 UTC 2007
katsuji@debian:~$ id -u
1000
katsuji@debian:~$ ./exploit
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7e76000 .. 0xb7ea8000
[+] root
root@debian:~# id -u
0

exploit をみつけるひとは、なにをどうやってみつけるんだろう。。

2008年2月7日木曜日

2008年2月5日火曜日

2008年2月2日土曜日

[DNS] BIND

ひさしぶりにバッタ本を読んだ。
BIND なんて全然つかってなかったし。。

tinydns ラクチンだもん。

2008年1月22日火曜日

カメリア暗号

ふと、おうちの似非サーバのapache のSSLログをみてたら
カメリア暗号使ってるのが確認できた。
Firefox 3.0b だとカメリア優先でつなぎにいくのか?ワカラン。
ワカランと思ったけど、ぐぐったら案の定でてきた。知らなかった。
Firefox次期版がNTTと三菱電機の暗号化技術Camelliaを採用,2002年のAES以来5年ぶりの新技術
オープンソースWebブラウザFirefoxの次期版にNTTが開発した暗号化技術Camelliaが採用される。Firefox 3アルファ版(Gran Paradiso) Alpha7に実装された。Firefoxに新しい暗号化技術が採用されるのは2002年のAES採用以来5年ぶり。

以下のようなのがログに刻まれていた
TLSv1 DHE-RSA-CAMELLIA256-SHA

カメリア以外は
TLSv1 AES128-SHA やら TLSv1 DHE-RSA-AES256-SHA

なんだかカタカナでかくと間抜けなのは気のせいか。。
カメリア。Camellia.

2008年1月21日月曜日

[FreeBSD] 6.3-RELEASE

でた。
lagg(4) よさげ。man をチラ見
HISTORY
The lagg device first appeared in FreeBSD 6.3.

AUTHORS
The lagg driver was written under the name trunk by Reyk Floeter
. The LACP implementation was written by YAMAMOTO
Takashi for NetBSD.

BUGS
There is no way to configure LACP administrative variables, including
system and port priorities. The current implementation always performs
active-mode LACP and uses 0x8000 as system and port priorities.

WPA security does not currently work correctly with a wireless interface
added to the lagg port.

ここみると、7.0は来月のようだ

2008年1月11日金曜日

びみょーなPHPすくりぷと

があったので、ちびっと修正。ほんの一行。

原作者は見知らぬ人。
自分で修正できてしまうほどのヘボさ加減。
とりあえずの対応なので完全に解消はしてないけど、
プログラム書きが本業じゃないし。
今度不具合が起きるときはどんなときかは把握してるのでよいだろう。

コメントがいらないところにあってほしいところにない。
非道い。

いちいち、「〜〜〜〜〜〜。。」 と文末に "。。" があるのが謎だった。

こんなかんじ(勿論内容は違う)
// ほげをふがする処理。。

// アレをナニする。。

// すごく。。おおきいです。。

[Apache] とあるサーバのhttpd.conf

wc -l httpd.conf したら 1500行以上あった。非道い。

2008年1月5日土曜日

帰省して思ったこと

やっぱ寒い

軽自動車多い

パチンコ屋多い

なんちゃら宗教のCM多い. お金もってんだね

やたらと道路が新しくなってる

BigBoyができてる

バーミヤンができてる