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