棚からパルチャギ

日々の雑記、ニュース拾いとか

2007. 10. 20

攻殻機動隊っぽいインターフェースのリソース監視ツール「Amberjack」
うああ、このデモ画面はカッコ良すぎる!
Muninなんかよりも、こっちを入れれば良かったですよっ。というか、入れましたよ。 一応、「このソフトはネタなので本番環境で使わないでくだちい」ということらしいので、Muninと併用で。 表示データをサーバからJSONで取得したりとか(これは、ただやりたかっただけみたいですけどw)、 画像を切り出してアニメーションさせたりとか、技術的にもちょっと面白いことしてるので勉強になります。 簡素なグラフでも事足りるとはいえ、やっぱり見た目も重要ですねー。気分的に。

セットアップのメモ。お遊びなので適当ですけど。
GNU Javaではうまく動かなかったので(jarファイルのクラスを読めない?)、Sun Javaで。
# mkdir /var/amberjack # cd /var/amberjack # wget http://www.jumperz.net/tools/jumperz_net_090.jar # wget http://www.jumperz.net/tools/amberjack.conf # # mkdir -p /path/to/wwwdir/amberjack # vi amberjack.conf www_dir=/path/to/wwwdir/amberjack
cronで定期的に実行するようにセットする。改行してるけど、実際は1行。
# crontab -e */5 * * * * /usr/java/j2sdk1.4.2_16/bin/java -classpath /var/amberjack/jumperz_net_090.jar net.jumperz.app.MAmberjack.MAmberjack /var/amberjack/amberjack.conf all > /dev/null 2>&1
あとは、Apacheのhttpd.confでwww_dirにAliasを設定してあげればおけ。
法政大学で古橋秀之・秋山瑞人講演会
ここで冬眠中の秋山瑞人を呼んでこれるのかー。さすが母校(…は別に関係ないのかも)。
どちらの作家にも興味があるので、ちょっと行ってみたいなあ。 学生時代の活動よりも、現在やこれからの活動のほうが気になるところですけど、 そういうネタはないんでしょうか。「E.G.ファイナル」は結局どうなってしまったのかが、一番気になる…。
乙一さんによる「ジョジョの奇妙な冒険」ノベライズ発売決定
うはー、ついに出るですか! 11月26日発売予定。
ジョジョのノベライズとしては考えうる限り最高の人選で、個人的には一番好きな第4部が舞台とくれば、否が応でも期待が高まります。 構想・執筆2000日以上という気合の入れ方も、ディモールト(非常に)良いっ! ハードカバーというのはちょっと気になりますけど、でもそんなの関係ねー。 発売日が待ち遠しいです(>_<)

ところで、「JOJO×乙一」って書くと、なんかカップリングみたい。
今日の浪費
「BLACK LAGOON」7巻。
かなり大き目の事件になってきたのでそろそろクライマックスなのかと思ったら、 後書きによるとまだ折り返し地点なんですねー。 メイド編になってから萌えどころが増えて、女性キャラが異常に可愛く描かれるようになってる気がしないでもないです。 レヴィのシャワーシーンと、ロリメイドの水着は、血まみれ必至な次巻のために、せめてものサービスカットなのかっ。

「ヨルムンガンド」3巻。
発売当初からですけど、「BLACK LAGOON」とセット販売にしてうまく売っているような。 「オーディナリー±」のほうが好きだったので連載再開しないかなあ、と思っていたらコミックス発売クルー。 というか、講談社連載作品が小学館から発売されるんですね。 全1巻てあたりに連載再開の夢が絶たれた感じで激しくションボリック。

「新暗行御史」17巻。
ようやく完結。後半の展開は結構グダグダでしたね。 本誌掲載時とは違うエンディングを収録って、連載時は車田正美的な終わり方でもしたんでしょうか…。 この作者さんの絵は嫌いじゃないので、次の作品も読んでみたい気はします。

2007. 10. 19

雑記
左に寄ってたり、段組崩れたりしてた恥ずかしいレイアウトを直したりとか。
秋葉原で打合せの帰りにHEYの前通ったら『デススマイルズ』稼動してた! 寄りたかった(>_<)
Muninでアラートメールの送信 (メール送信編)
続き。
監視項目が閾値を超えた場合のメール送信先設定。

【メール送信の設定】
設定ファイル(/etc/munin/munin.conf)に記述する。設定項目は以下の4項目。
contact.(contact).command 実行されるコマンドを記述。
contact.(contact).text コマンドにパイプで渡される文字列を記述。
contact.(contact).max_messages 同時に送信される報告の最大数。
1だと各報告は個別のメールで送信される。 未設定の場合は、同時に検出された内容が(監視ノード毎に)1つのメールにまとめて送信される。 デフォルトは未設定。
contact.(contact).always_send 送信される障害レベルを設定。「warning」「critical」のいずれか、または空白区切りでどちらも記述する。 デフォルトは「critical warning」。

設定例。
contact.email.command mail -s "Munin ${var:group}::${var:host}" email@example.com contact.email.max_messages 1 contact.email.always_send warning critical
contact.(contact).textはメールで送信される文字列の変更。
/usr/share/munin/munin-limits で定義されている初期値(%default_textのdefault)を解読すれば編集できるけど、結構面倒なのでデフォルト推奨。 文字列内で使用可能な変数や制御構文はmunin-limitsの書式を参照。


システム管理者(admin)にはwarning以上、上司(manager)にはcritical以上が報告されるような設定例。
contact.admin.command mail -s "Munin ${var:group}::${var:host}" admin@example.com contact.manager.command mail -s "Munin ${var:group}::${var:host}" manager@example.com contact.admin.always_send warning critical contact.manager.always_send critical

全体/グループ/ノード/プラグイン単位で、それぞれ送信先や送信の可否を個別に設定可能。
何も指定しない場合、デフォルトで全ての送信先が有効になる。
contact.admin.command mail -s "Munin ${var:group}::${var:host}" admin@example.com contact.web_staff.command mail -s "Munin ${var:group}::${var:host}" web_staff@example.com contact.db_staff.command mail -s "Munin ${var:group}::${var:host}" db_staff@example.com

contacts admin adminに通知を送信する(全体設定)
[WebSvr;] contacts admin web_staff WebSvrグループの場合は、adminとweb_staffに通知
[DbSvr;] contacts admin db_staff DbSvrグループの場合は、adminとdb_staffに通知
[WebSvr;foo.example.com] (WebSvrグループ → adminとweb_staffに通知) address 10.1.1.101 use_node_name yes
[WebSvr;bar.example.com] address 10.1.1.102 use_node_name yes contacts no 通知しない
[DbSvr;baz.example.com] (DbSvrグループ → adminとdb_staffに通知) address 10.1.1.103 use_node_name yes load.contacts no LoadAverageの警告は通知しない
[qux.example.com] (指定のない場合は全体設定が反映 → adminに通知) address 10.1.1.104 use_node_name yes


ちなみに、commandにはメール以外のコマンドも記述できるので、ファイルにログ出力するような設定も可能。
contact.log.command > /var/log/munin/alert.log
Muninでアラートメールの送信 (監視項目の設定編)
鯖のリソース監視をMRTGからMuninにしてみた。
アラートの送信方法が、公式ドキュメントの情報だと分散しているので、個人的まとめ。
OSはCentOS4.4。Muninはyumでさっくりインストールです。初期設定等は割愛。
# yum --enablerepo=rpmforge install munin munin-node

【監視項目の閾値を設定】
各プラグインで監視できる値について、レベル(warning/critical)とその上限値・下限値がそれぞれ設定できる。 現在インストールされているプラグインは /etc/munin/plugins 以下を参照。
$ ls -1 /etc/munin/plugins
cpu
df
forks
hddtemp_smartctl
if_err_eth0
if_eth0
interrupts
iostat
load
memory
...
munin-run にプラグイン名を渡して実行すると、プラグインで取得できる値が列挙される。
$ /usr/sbin/munin-run cpu user.value 1962350 nice.value 2526264 system.value 912873 idle.value 5334455082 iowait.value 307709 irq.value 16025 softirq.value 0


閾値の設定は /etc/munin/munin.conf の監視ノードの定義に記述。 書式は以下の通り。
[plugin].[field].(warning|critical)    value
フィールド名はさっき表示した項目名の「.value」より前の部分。
warningにすると警告検知の閾値、criticalにすると重障害検知の閾値が設定される。
[foo.example.com] address 127.0.0.1 use_node_name yes load.load.warning 5 LoadAverageが5未満でwarning load.load.critical 10 LoadAverageが10を超えるとcritical cpu.user.warning 90 userのCPU使用率が90%を超えるとwarning df._dev_hda1.warning 80 /dev/hda1の使用量が80%を超えるとwarning hddtemp_smartctl.hda.warning 41 HDD(hda)の温度が41度を超えるとwarning
閾値の設定は「:」で区切って、上限値と下限値を設定する。省略した場合は、無制限となる。
「:」を使用せずに数値を記述した場合は、上限値のみが設定されたのと同じ。
hddtemp_smartctl.sda.warning 10:40 HDD温度が10~40度の範囲内でない場合はwarning apcupsd_ww.timeleft.critical 30: UPSの電源供給時間が30分を切ったらcritical memory.apps.warning :300000000 アプリケーションのメモリ使用量が300MBを超えたらwarning memory.apps.warning 300000000 ↑と同じ

ちなみに、閾値のデフォルト値はmunin-run configで確認できる。
$ /usr/sbin/munin-run load config ... load.warning 10 load.critical 120
各設定値はmunin-node起動時に設定ファイルに書き出されるので、こんなコマンドで一括確認できるかも。
$ cat /var/lib/munin/datafile | grep 'warning\|critical'

munin-limitsの挙動を見る限りでは、閾値を全ノード(ホスト)に一括して設定することはできないので、 デフォルト値から変更したい場合はホスト毎にいちいち記述する必要がある。 どうしてもという場合は、プラグイン自体を編集するしかないっぽい。
$ /usr/sbin/munin-run load config ... load.warning 10 load.critical 120
munin-run config で表示される値がechoで直接記述されているので、それを書きなおす。 munin-node起動時に、その出力値が解析されてデフォルト値としてセットされる。なんか珍しい仕様。。。
$ cat /etc/munin/plugins/load ... echo 'load.warning 10' ←この辺を直接編集する echo 'load.critical 120' ←この辺を直接編集する

2007. 10. 17

SF好きになった君のルーツ
自分の場合は、NHK-FMで放送されていた青春アドベンチャーがきっかけかなあ。
『ヴァーチャルガール』、『夏への扉』、『ランドオーヴァー』あたりを聴いて、 早川文庫の肌色だったり水色だったりの背表紙に興味を持った気がします。 「ニューロマンサー」を読んだのは、メガCD版シャドウランの発売当時で、サイバーパンクが(自分の中で)プチブームだったので。 思ったよりも漫画やアニメからは影響受けてないのは、 科学的考証に基づいた作品とそうでないもので、なんとなく線引きしている感じがしますね。 攻殻機動隊みたいなものも中にはありますけど。

関連:サイエンス・フィクション SFアニメはSFか? - Wikipedia
ニコニコ効果
サヤウタ Amazonのエロゲランキングで「沙耶の唄」が上位にランクインしているのは、 ひっそりと再評価されつつあるのかと思ったんですが、これはニコニコ動画の「サヤウタ」の影響なのではないかという妄想。 Amazonさんのほうは確認した限りで、25位(10/15 22:00)→30位(10/15 23:00)→9位(10/16 11:00)→19位(10/16 23:00)みたいな感じ。

ニコニコ市場にはエロゲが貼り付けられないので直接購入リンクに飛んでいるわけではないし、 実際の購入数がどれだけも分からないんですが、発売から何年も経っていてこの時期に売れているというのは、 動画を見て興味を持った人が購入したと思ってもいいのかなー、という気がします。

それにしても、プレイ動画のほうも再生数10,000超えばかりだったりするので、 脳味噌いじられちゃった人は着々と増えている予感。 個人的にも好きな作品なので、ひっそりとでも普及し続けているのはなんか嬉しいですね。

2007. 10. 15

いろいろな形に変形できるペーパークラフト
これはいいですねー。 途中までは蛇のおもちゃみたいなものが出来上がると思ってたんですが、 完成形が予想以上に美しくて感動でした。 自分で作ると、テープ貼る順番間違えて悲しいことになる予感がしますが…。
『魔法言語 リリカル☆Lisp』 フリー公開
ノベルゲーム風のLispチュートリアル。
通販や即売会で配布されていたようですが、フリー公開になったとのこと。 NScripterの標準命令だけでLispインタプリンタが実装されてるというのが素敵すぎです。 Lispは一度真面目に勉強したいですねー。さしあたってはコレでw
SubversionのRuby Binding覚書
Subversion1.4.5にしてRuby Binding対応しようとしたら、意外と時間とられたのでメモ。
  • rb_hash_foreach()が必要なので、Ruby1.8.2以降が必要
    configure: WARNING: The detected Ruby is too old for Subversion to use
    configure: WARNING: A Ruby which has rb_hash_foreach is required to use the
    configure: WARNING: Subversion Ruby bindings
    configure: WARNING: Upgrade to the official 1.8.2 release, or later

    $ make swig-rb
    /usr/local/src/subversion-1.4.5/libtool: line 1272: none: command not found
    • WARNING見落とすと、libtoolがおかしなことになっているのでmakeできない
    • RHEL/CentOS4用に出回っているRPMパッケージは1.8.1だったりするのでソースからインスコ
  • --with-ssl付けてconfigureするとmake check-swig-rbでコケる
    $ make check-swig-rb
    /usr/local/src/subversion-1.4.5/subversion/bindings/swig/ruby/.ext/svn/ext/core.so: /usr/local/src/subversion-1.4.5/subversion/libsvn_ra_dav/.libs/libsvn_ra_dav-1.so.0: undefined symbol: SSL_load_error_strings - /usr/local/src/subversion-1.4.5/subversion/bindings/swig/ruby/.ext/svn/ext/core.so (LoadError)
    • neonは事前にインストールしておく
    • neonのconfigureには--enable-shared
    • subversionのconfigureには--with-neon
    • neonは0.25.5推奨とか書いてあるけど、対応リストでは0.26.4まで大丈夫(0.27系はまだ)
  • make check-swig-rbでbdb関連のエラーが2つでるのは無視しても無問題
    Svn::Error::FS_UNKNOWN_FS_TYPE: subversion/libsvn_fs/fs-loader.c:130 Failed to load module for FS type 'bdb'
    • Berkeley DBがインストールされていないと表示されるけど、bdb使わない場合はスルーしても大丈夫
    • --without-berkeley-db付けても回避できないので諦める
  • make install-swig-rbの最後に表示される、ライブラリの追加を忘れない

2007. 10. 14

pixiv
この週末は、pixivでひたすら画像収集してました。

pixivや画像系Tumblrのせいで、HDDの画像枚数が急激に増えている気がします。 以前はネットで見つけた画像も、作家さんやジャンル毎なんかで細かく分類して保存していたんですが、 だんだん面倒になってとりあえず未整理フォルダに突っ込むようになってから、 酷いときには1日1000枚以上のペースで増えていくので困りものです。 だいぶカオスなことになってるんですが、いつか整理する日がくるのかなあ、あれ。

それはさておき、pixivの同時接続制限は結構不便ですね。 画像の詳細ページに複数セッション貼ろうとすると、有効なセッション以外はトップページにリダイレクトされる仕様っぽいです。 知らずに一覧からゲシゲシと開いていくと、何故かほとんどがトップページになっていて、何度も泣きを見ました。 元画像が何だったか分からなくなるのが一番困るので、せめてリクエストしたURLへのリンクが置いてあるだけのページとかに飛ばしてくれると嬉しいんですけどねー。 クローラー対策にしても、トップへのリダイレクトは無駄にトラフィック増やすだけでナンセンスだと思うんですが…。


ちなみに、似たような機能ってApacheモジュールにないのかと探してみたんですが、 mod_limitipconnとかmod_bwshareがそんな感じですね。 IPアドレスで接続数の制限したり、帯域制限したりできるっぽいです。 ユーザ単位での制限だったり、制限超過時のステータスが503だけ(当然か)だったりなので、 pixivみたいに細かい制御はできないですけど、公開アップローダみたいな場所では使えそうです。
「Subversion」の意味
subversionの語源は、suvbert「(国家や社会秩序を)破壊・転覆する」という意味の名詞形です。
sub + versionの連係だと思っていると恥ずかしい思いをする時がきますよ。

Subversion r7@ム板   via. 世界開放流
わ、普通に sub + version だと思ってましたよ。微妙に意味不明ですけど。

造語ではないってだけで、破壊や転覆みたいな意味よりも、 subvertの名詞形がちょうどversionと被るので洒落てみたという感じですね。 実際、開発スタイルはCVSを使っていたときと比べてもだいぶ変わって、subvertされてる気もしますけど。

公式のドキュメントではそれっぽい記述が見つからなかったので、由来については結構どうでもいいんでしょうか。

  [ 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 ]