トップ 最新 追記

TPRG: 迷走メモ書き

[Donate to CCjp]
2000|12|
2001|01|02|03|04|05|06|07|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|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|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|07|08|11|12|
2009|01|02|
2010|04|06|09|

2007-02-01

_ [misc] 2月です

はい。いつも通りですね。

手軽に書けるネタから少しでも書いていこう……

_ [comp][draft] fail2ban で効率良くコネクションを切断する

ログを監視して、特定のアタックパターンを見付けたらアクションを起こす fail2ban と言うツールがあるんですが、これはディフォルトでは

iptables -I <fail2ban-targetchain> -s <banned-ip> -j DROP

みたいなコマンドラインを発行する。

アタック元が少ない場合はこれで問題ないのだけど、 パケットを突然叩き落とす様になるので 同時に多数のアドレスを遮断すると問題が起きる。

TCPスタック的には単にクライアントが応答しなくなったように見えるので、 タイムアウトまで待機する。 従って、短い時間に多数のクライアントから攻撃を受けた場合、 そのサーバの接続上限まで全てがタイムアウト待ちのコネクションで 埋めつくされる事になる。

これを防ぐには何とかして TCP をリセットするしかない。

"-j DROP" をやめて "-j REJECT --reject-with tcp-reset" にすると、 拒否された接続元には RST が飛んで即座に切れるが、サーバ側は分からないので やっぱり待ってしまう。

そこでさらに、サーバ側に届けば切れるようなパケットは通すようにしてみる。 具体的にはこんな感じ。

iptables -I <fail2ban-targetchain> 1 -s <banned-ip> -p tcp
     --tcp-flags RST,FIN NONE -j REJECT --reject-with tcp-reset

RST を受け取ったクライアントが RST+ACK を返す事を期待して 素通りする様にしている。 サーバには突然変な RST+ACK を受け取る事になるので、 何れにしろ TCP 接続は リセットされる。FIN が付いているのはおまけ。

やってみた所大体巧く言っているようだ。 TCP スタックまで弄っている様な物には対処できないけど、 そういうのはあまりなさそう。


2007-02-02

_ [misc] しかし

予断が良くないんだよな。と言うわけで適当に書こう。

_ [misc] 賞味期限と捏造そして失言

結局のところ、単に誰かに責任を押しつけたいだけか?  それはいつか酷くなって自分に返ってくるだろうに。 避ける手段があるとすればコミュニティ毎滅亡するくらいか。

ただ、流れとして今みたいになってしまっているのは空恐ろしい話だ。

_ [comp] 片手間マシンでやるにはそろそろきついかな?

公開してから殆どほったらかしのMozShot なのだけど、なんだか徐々に使ってくれている人もいるみたい。

……のは良いけれど、流石に何でも屋マシン1台が片手間で捌くには そろそろ限界かもしれん( webalizer, Requeset Stats )。 かといってマシン増やす気も余りないので、どうしたもんか。 でも一番問題なのは、残ってる課題が全然手に付かない事。

  • ruby でちゃんとしたプロセスマネージャを書く
  • 広域分散を可能にする

最初のは cron やら shell script で何とかなってしまっていて、 今書き直すだけの余裕がないし、後のはアイデアが足りない。

大抵リンクの隣にでも貼るわけですが

使ってくれているところ全部見たわけでもないけれど、 TM FACTORY が使って くれた時は嬉しかった。 (ポップアップなのが良いと言ってるんじゃないよ。)

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

_ tmfactory [いつも勝手に使わさせていただき、本当にありがとうございます。 MozShotはほぼリアルタイムでサムネイルが更新され..]

_ sugi [おお。わざわざありがとうございます。 負荷に関しては……全体でやらないと効果が薄いので、余り気にしなくても大丈夫で..]


2007-02-05

_ [misc] Libretto L5 を復活させてみたけど

HDDがおかしいのか本体の異常なのか、 希に「ふぃーん」とか音を立てて HDD が停止するなぁ……。 kernel が IDE reset を送ってる時に、一か八か HDD の辺りを 強く叩いてみたら回り出した。恐々。

頼むから1週間だけ動いてくれよ。


2007-02-11

_ [misc] 昨日帰ってきました

行くと書き忘れてましたが、 1週間スリランカへ旅行していました。 今は寝たり休憩したりで一段落したところですが。

いやはや。楽しかった。 連れて行ってくれたSさんと、同行者の(やはり)Sさんに 心から感謝を。詳細は後で追記ー

先に小ネタから。

_ [url] Thought on Music

(有り難いことに訳して下さっている方がいる: Steve Jobs の公開書簡(仮訳) - maclalalaweblog )

そりゃFairPlayへの批判を交わす目的もあるだろうし、 DRMを解除する根拠として「沢山CD売ってるからいいだろ」 というのはいくら何でもどうかとは思うけれど。 (大体からして、音楽会社はCDにDRMを掛けようと必死に見える。 有り難いことに今の所成功してないけど。)

思惑がどうあれ、こういう文書がAppleからある程度のインパクトを持って出たと言うのは嬉しい。

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

_ Settor92 [Most of them don't have to be displayed at 100% but at the..]

_ Ganry33 [You can by a pad or print some out. , ]

_ GanjaBoy52 [Thus the semantic map model has the status of a heuristi..]

_ Bob85 [However, under the right circumstances E. , ]


2007-02-13

_ [misc] 今度は

日本に帰ってきて風邪を引いたらしい……。 取り合えず少し寝て復帰。

_ [url] 【RSA Conference 2007】スパマーを追跡---インドから正体不明の薬が届くまで

どこから手繰ったのか忘れてしまった。

ここまでして、そんなに高くも無さそうな薬を売って儲かる物なんだろうか。 まあ問題は、周りに物凄く迷惑だと言う事ではあるのだけども。

_ [music] Apocalyptica来日!

日本で聴けるとは思ってなかった。これは行かねば。

_ [misc] とどかない

ああ……双見さんサイト消してしまったか……

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

_ KENZ [む、風邪ですか。お大事にデスー。]

_ rare [http://dic.sstp.jp/dr.cgi?key=691 による情報が正しければ、移転した模様です。 …..]

_ sugi [む。そんな所に情報が。 index.html は存在してる(NotFound と書いてあるファイルが置いてある)ので..]

_ sugi [ちなみに風邪は普通に仕事できる位には軽いです。ありがとうございます。]


2007-02-14

_ [misc] デブサミ2007

ちゃんちゃらおかしいわ

有り難く行ってきました。

今年も目黒雅叙園。うーん。やっぱり会場としては向いてないと思うけどなー……。

それは兎も角、目的の羽生さんの講演は非常に興味深かったです。 (感想はあとで)

そして会場でthinkpadの電池尽きかけの時に、このサーバのapacheが (mozshotとも共用のせいで)死にかけている事に気付くも、 殆ど何も出来ず。

_ [misc] ( ゜Д゜)・・・

今から見てみると改めて凄いな。流石にこれを1台で捌くのは無理……。

どうしようも無いので (kotozute|yadochou|eq-img|iroguro|irojiro|afkey|x-tokio)\.com と fonq\.net を deny してあります(今は既に外してある様ですけども)。 必要なら自分ところで動かして下さい。どうぞよろしく。

死んでる間、ご迷惑をおかけしました。 > 方々

そして何より忙しい中、設定作業してくれたtach師に感謝します。

しかし、いい加減どうするか考えないとだめですな……。 自分にとっては既に目的を終えているので、 後は細々やっていきたいところではあるのだけど。


2007-02-15

_ [misc] 正気度判定@d-u

この判定に失敗した場合、 あなたは5分で罵倒と皮肉に溢れた素晴らしいドラフトを書き、 次の10分で大いなる愛をもって訓戒と皮肉に満ちたものに直し、 更に30分後には天を仰いでドラフトを破棄する。

そして 1D3 ポイントの正気度を失う。

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

_ Henrich [釣られ過ぎクマー]

_ sugi [メールドラフトは書いてませんが、これ書くのに同じくらい使ったので見事に釣られています(’’]

_ Pol80 [Yes sir, you read me right. , ]


2007-02-18

_ [comp][deb] Debian on HP ProLiant ML110 G4 install fail

kernel panic

多目的サーバということで買ってしまったのだけど、 テストを兼ねて x86_64でインストールしようとして嵌まる。 CPU は Intel Xeon 3040 で普通に em64t のはず。

sarge の amd64 インストーラーだと起動してすぐ kernel panic。 swapper で落ちてるが私では全然分からん。 etch RC1 の方は最初の言語選択が出た途端に刺さる。 "video=vga16:off fb=false" でもだめ。mem= でメモリ絞っても駄目。 多分裏でpanicしてる? トレースを出す方法はあるんかな??

ひとまず断念。

レポートはあがってないな。 報告しておくべきか。しかし情報をどうやって取ったら良いのか分からないが……。

2007-02-25 追記

Wikiの追記とBTSにレポートした

ともあれ、何故かキーが入力できないだけで panic はしていない。シリアル経由ではインストールできた。 インストール後に tty0-6 を有効にするとちゃんとキーが入る。 勿論dpkg-reconfigureでダイアログを表示したりしても動く。 謎だなぁ。

2007-04-24 追記

どうも内部的にはUSBで繋がってるようだ。Lo が付いてる時だけかも知れないけど。

_ [prog][ruby] Rails 勉強会@東京 第15回

参加してきました。本当に適当なメモだけ。

前半: Rails1.2の変更点 + REST の話

Resource Scaffold の比較

変更点
  • Resource
    • route の書き方が変わった (Separator 定数駄目 ; . , /)。glob で捕まえればいいけど。
  • Deprecated 色々
    • @param, @id(?)
    • foreignkey
    • pagenation 2.0で無くなる?)
      • http://errtheblog.com/post/929
  • multibyte (non-UTF8 が駄目駄目)
  • auto loading (壊れてる)
  • prototype.js が新しくなった (一部JavaScript 直書きのを直す必要あり。ElementToggleの2引数とか。ヘルパー使っているならあまり考えなくて良い)
  • rake target の増加、厳密化(migrate → db-migrate?)
  • script 増加中
    • braek pointer 便利だよね (1.9でないと動かないけど)
  • rails1.2 だと gettext は 1.9 必須
  • LoginEngine, *Engine 系動かなくなった。対応まだ暫くあとだろう
  • form_start / form_end が無くなった。 <% form().do |a| %> ... <% end %> を使う
    • form_for もあるけど。 form_for(:hoge, Hoge.new) {|f| }
    • http://www.loudthinking.com/arc/2006_10.html
  • assert_select が素敵 (View のDOMスキャンをするテスト)
    • dom_id / dom_class plugin と組み合わせると素晴らし
さらに雑談: ブラウザから開発
  • rake test がブラウザからみたいなぁ
  • エラーメッセージを押したら編集出来るとか
REST話
  • 1.2 から scaffold_resource が良くなった
    • model, controller, helper, view, test, migrate, css 生成。 routes も書き換わる
    • controller はコンパクトになった。でも respond_to がダサいけど
  • perform_filter 組み合わせると実に良い。本体に入って欲しいよね

後半: Agile Model Deriven Development with Rails

基本的に右の2冊の内容を踏まえた AMDD の紹介。

……なのだが、このぶっ放しというか、 コンテキストへの逆らいっぷりはある意味感嘆するべきものがある。

何れこういうのも消え行くのだろうな。 良いとも悪いとも思わない。

  • 最初に IceBreak で 自己紹介
    • 妹になんて呼ばれたいですか(寸評付き)
  • いきなりまとめ
    • 不要な物は要らない
  • 何故 AMDD
    • Rails はモデルの面倒を見てくれない。最初に DB ありき…… って言うのは本当か?
  • Ambler の本2冊を元に - Refactoring Databases, Agile Database Technique
  • BDUF - Big Design UpFront
    • DB を先にかっちり決めてやる方法とか
    • 必ずしもうまくいかない
    • 変化に対応しにくい
    • データだけがシステムじゃない
  • AMDD とはモデルを漸進的に変えてゆく(変えられるようにしておく)手法
    • そもそも最初にそんながちがちに決める必要は無いのだ
  • DBをうまく変えてゆくにはどうしたら良いのか、と言う話
    • 勇気/自信を持ってやれるようにツール/システムで色々サポートを
    • とは言え、何か凄いツールが出来たわけでもない
    • イテレーションを回す
    • 移行スクリプト
    • バージョン管理
    • 下位互換も確保しつつ View/Trigger
    • テストテストテスト!
  • ではRails で AMDD をどうやるか ……は間に合わなかったので電波ソングをどうぞ
    • 予約特典が
  • 結論
    • まあ Rails だと割と普通にやってる事でもあるよね
    • migration がフレームワーク側にあるし
  • 質問無いですか
    • 無い様なのでふぃぎゅ@のデモをもう一度
    • デモの流れる中、止めずに質疑。シュールだ。シュール過ぎる。隣ではビリヤードやってるし。
      • やっぱりこれだけ考えないといけないというのは、 つまりDBの変更というのはコストが掛かると言う事でもある
        • そう。何処にでも適用できる訳ではないが、 今まで手法が全然無かったところに切り込んだ一つのケース。 やろうと思わなければ出来ないよ。
      • これで見積もりは出来ないよね
        • いや、どうせ見積もりなんてもっとざっくりしたものじゃない。それなら出来る。

最終的には2冊読め! と言う。

_ [misc] とどかない ちょっとまっててー

Yeah!

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

_ Henrich [http://wiki.debian.org/HP/ProLiant ]

_ sugi [おお。ありがとうございます。 追記/報告しとく事にします。]

_ uyaowjpkb ovsrdtl [zjqtvxw novtuga pnwvxsq cvij gxwzrpcy igxatkbpr twaj]


2007-02-26

_ [deb][comp] Debian AMD64 on ML Proliant

動いた!

fog:~# uname -a
Linux fog 2.6.18-3-amd64 #1 SMP Mon Dec 4 17:04:37 CET 2006 x86_64 GNU/Linux

でも他に色々やらないといけないので暫くほったらかし……

前の話には追記しときました。

_ [misc] さあどうした? まだRBLが落ちただけだぞ

CAPTCHAを出せ!! Hash Busterを無効化しろ!! 分散フィルタ網を構築して立ち上がれ!! ゾンビを見つけて反撃しろ!!
さあ夜はこれからだ!! お楽しみはこれからだ!!
ハリー!! ハリーハリー!! ハリーハリーハリー!!!

……ネタにツッコむのも無粋ではあるが、 氏曰く「奴隷と競争する物は奴隷になる」 との事なのでどうかなぁと。

まあしかし、単純な関係モデルの方が目的を見失わないのでやりやすいのは確かなのだよね。

_ [url][comp] クラスタ/グリッド ファイルシステム

FUSE で手軽に使えそうなやつを後で試すメモ。

  • GlusterFS
    • GNU Gluster project の一部
    • メタデータサーバを持たないため Single Point of Frailure が無い
  • Gfarm ファイルシステム
    • IPA の人がやってる
    • POSIX 互換はまだ不完全?

安定性を求めるなら素直に OpenAFS(もしくは、ローカルなら GFS) を使うのが正解なんだろうけど。

_ [book] とびつきひめ読本+まじあん

夢を捨てきれない人のための本。

もしこのとびつきひめ読本を読んで「オレもゲーム作ゆ!」と1人でも思って頂けたのであれば、有り難き幸せ。

[CHAPTER 06 - あれこれより引用]

前半は攻略記事、後半はゲーム制作過程の紹介。 企画から始まってデータの加工、自作ツールの紹介、ゲームエンジンの話とプログラムTipsまで。物凄い詰め込み様に見合う駆け足で。

しかし……これを一人で作ったって言うのか。 ゲーム中の絵と音楽は他の人だけれど、描けない訳でもなさそうだ。 「絵素材の作業量を減らすため仕方なく3Dになった」と何度か 書いてあるけども、それにしたって凄まじい作業量。絵の加工はどっちに しろ必要で、幾つかムービーも作らねばならんし、 ツールプログラム書いてメインエンジン書いて、 何よりゲームのルール調節をして、 ポスターなんかのデザインやって販売して、 そしてこの本を書いておまけにもう1つゲーム作った、と。

うーん。凄まじい。

もう一つ信じがたいのはこの本の価格。192ページ全てフルカラーにマット加工のやっぱりフルカラーなカバー、中にCD-ROM付きで1800円って一体どうやったら可能なんだろうか。店が3割取るとしたら1260円。これで赤字を出さずにいけるとは想像出来ない……。

ちなみに、 ゲーム自体はこんな感じ



Tatsuki Sugiura <sugi@nemui.org>