だいぶ読んだので紹介。会社のDB設計者(DBそのものを作っている人)が勧めてくれた名著です。データベースがどのように内部で動いているか解説しています。言葉による説明でコードはなく、データベース製品によらない一般的な説明です。オプティマイザとか、インデックスとか、JOIN方式がどのように設計されているか詳しいです。SQLの書き方とか、モデリング技法も書かれているので、守備範囲は広く、データベースにまつわることが一通りかかれています。
たぶん大学1-2年の教科書だと思います。書き方は詳しいのですが、淡々としているので、読むのはつらいです。内容も高度な部分があるので、理解できない部分が多々ありました。しかし、データベースにまつわるkey phrasesに親しめました。たとえば、インデックスのデータ構造のひとつにISAMというものがあり(B+ treeの変種)、MySQLのそれの由来はここか、とか。
mod_rubyを試してみる。しかし、エラーで動かず。Apacheのログを見ると、
[mod_ruby] ... loading from unsafe file ... (SecurityError)
mod_rubyは認識されているようだ。何事かと思っていろいろググったら、world writable directoryがあるとこうなるようだ。
大量のFAQ。大丈夫な人は大丈夫だと聞きますが。
開発版はタダのこともあるので、安さというよりは、パッケージにして売ってしまうソースネクストのビジネスモデル(商魂)が凄い。
ところで、この開発版、クラサバできないので、一般的な開発向きではないかも。Webのback endならOKなのだろうか(ライセンスの詳細がわからないので不明)。
すいません、java-packageがそうなんですね。もとはといえば、どのパッケージにBug/Wishlistレポートしようか分からないことから探索が始まったので、自分的に納得です。既にbugreportsもありました。
Fowlerさんも「I've had the devil of a time finding out which one is the right one to use」と書かれているが、彼の書いた内容は概ね正しい。
以下、消すのもなんなので、残しておきます。
FowlerさんもDebian/Javaに苦労しておられるようだ。私もjdk-1_5_0-linux-i586.binを入れようと、mpkg-j2seを試したのだが、Javaは入るものの、Debian的にいくつかうまくいかない。
ただ、mpkg-j2seのStatusがはっりしないので、誰かが直しているのか、直さないといけないのか、別の手段が推奨なのか、よくわからない。
いきさつは、次のようだと思われる:
不安な点は、
とらねこさん、いかがでしょうか。
FAQ追加ありがとうございます。
ところで、この制限はどうしても必要なのでしょうか。errorでなくて、warningにとどめて欲しいと思うのですが(riskを知っててworld writableにしているはずだし)。mod__rubyの制限ではなくて、RubyやApacheの制限なのでしょうか。
素晴らしい! こういう使い方がmod_rubyの奥深さを示していてgreat。
今朝の新聞で知りました。おめでとうございます。本社移転など、どうりで華々しいわけです。益々のご発展、期待しています。
方々で被害が言われていますが、私のところも、ここ1ヶ月くらいで、かなりひどくなりました。SPAMを越えて、もはやDoS Attackです。SPAMの完全撲滅は無理なので、多少のSPAMは許容せざるをえないとは思うのですが、DoSとなると悪質です。Referer/Commentによって自然にコミュニケーションが加速した牧歌的なblog時代が終わってしまったようで、悲しい。
現在、各人が同じような設定をしている状況ですが、防御側もteam化して、black listなり、logicなりをすみやかに共用できる体制が必要かもしれません。一時期メールがSPAMによって機能低下したように、blogもそうなりかねません。メールはBayesian Filterの発明で復活したので、そのような発明がblogにもあるのかどうか。
というようなことは誰もが思っているでしょうから、既にactionはあるのでしょうか。ただ、DoSを防ぐとなると、tDiaryレベルでは効果が薄く、できればApacheレベルやmod_rubyレベルで対応したいので、簡単にとはいかないでしょうが。
同僚とお昼を食べつつした話題。ワクチンソフトを入れないとメールが使えないように、SPAM Filterソフトを入れないとWebサーバが負荷に耐えられない日が来るかも。
どうりで近年その名を耳にしないわけです。
来年行ってみたいなぁ。個々のテーマはリンクを読んでもらうことにして、気に入った一言:
「気の効いた一言」(Jim Weirichによる) "I loved Java at one time too. I just grew up."
かずひこさんの努力を生かすためにも、mod_rubyの練習をかねて、ちょっと書いてみました。といっても、shugoさんのパクリなのですが。
iptablesやApacheレベルで設定したいのですが、rubyで書きにくく、deployしにくいので、mod_rubyでtry。
reject-spam.rbをRubyパスに置いて(たとえば、/usr/local/lib/site_ruby/1.8/i386-linux)、
<Directory "/home/hoge/public_html/diary/">
RubyRequire "reject-spam"
RubyAccessHandler RejectSpam.instance
</Directory>
とすればOK。TestCaseはこれ。
ただ、きちんと機能しているか不安(というか、確認してない時は動いてないと思った方がよい)。debug messageの出し方が難しい(Apache::Serverのログか、Syslogかなぁ)ので、きちんと落としているのか確認できない。SPAMが来ているのかも、よくわからないし。Apache::Connection#remote_ipで、source ipを取れると思っているのですが。
IPによるマッチングよりも、Referer文字列によるマッチングの方がよい気がしました。IPだと白か黒か一見分かりませんが、Refererの方であれば、人間が見てすぐに分かりますので。
かずひこさんリストがどのように作られているのか興味あります。おそらく、既存のフィルタをかいくぐってきたものだと思うので、「既存のフィルタ」部分も反映させないといけない。
フィルタのない裸状態のサーバをおとりとして用意して、そこに溜った上位20は自動的にBlack Listにするとか。
DoS Referer SPAMは悪質で、Apacheのステータス(403や404)に関わらず続けてくるので困ります。そこで、Black ListにはFORBIDDENを返すのではなく、1MBくらいのdummy HTMLを200で返してあげるというのはどうでしょう。みんながそう返すようにしたら、向こうの回線がパンクすると思うのですが。
_ かずひこ [いくつか気づいたリファラから IP のリストを作って、次にそれらの IP からのアクセスのリファラを集めて作っていま..]
_ arton [ADSLだとこっちの上りが先にパンパンになってしまいそうな気がするんですが。(被害者が同一局に複数いる場合)]
_ はんばあぐ [数字に根拠はなくて、100KBでも10KBでもよくて、Statusを返すだけでは軽すぎるかなと。ただ、向こうも、デー..]
_ matobaa [ステータスを返すまでにいくらかスリープする、というのはどうでしょう? 向こうのロジックにもよりますが、その間こっちは..]
_ はんばあぐ [Apacheプロセス数が増えるので、その分のメモリの余裕がサーバにあれば可能です。うちではだめです(T.T)。]
_ matobaa [うーん、いいアイデアだと思ったんだけどなぁ。だめですか、残念です。]
_ arton [Apacheの手前にプロクシというかフィルタを置いて、そこで該当するIPアドレスからsynを受けたらackだけ立てて..]
_ tach [htaccess で referer 文字列マッチではじいて,そこでできた error.log を parse して..]
_ tach [apache で wait を噛ませるというのは DoS の隙を作ることになるため,避けた方が無難です. ab -..]
_ matobaa [そうか、勉強になります。]
It's an acronym for As Far As I Know.
DAOといっても、デザパタのそれではなく、VBの話です。
リンク:ODBCにまつわるトラブル集
DAO/JetによりAccessと接続しているプログラムをODBC経由に切り替えるだけで、 簡単にSQL ServerやOracle用に変更できるとの誤った認識があります。 DAO/Jetは、SQLパススルーを指定しないでODBCデータソースに接続すると、 SQL文をすべてDAO/Jetが解釈してODBCデータソースに渡します。
なるほど。そのほか:VBでデータベース
MicrosoftでAccessの電話サポートをされていた なぼさんによるAccessのバッドノウハウ集や小咄。バッドノウハウもここまで貯めれば脱帽です。
ちょうどpostされていました。とりあえずの対策は、Debianではgsfonts-x11 packageを削除だそうです。
http://www.marlow.dk/site.php/tech/madwifi
注意:
http://newbiedoc.sourceforge.net/system/kernel-pkg.html#THIRDPARTY-KERNEL-PKG
auth_param digest program /usr/lib/squid/digest_pw_auth /usr/local/etc/digpass auth_param digest children 5 auth_param digest realm Squid auth_param digest credentialsttl 2 hours # acl password proxy_auth REQUIRED # http_access allow password http_access deny all
/usr/local/etc/digpassファイルの書き方は、
user1:pass1 user2:pass2
で、すべて平文で書きます(htdigestコマンドを使うわけではない)。
自分へのbenchmarkとして受けてきました。うーん、不満足な結果です。実力を出し切ったという充実感というか達成感がありません。たぶん実力がないのだと思ふ。。。
Hibernateが素晴らしいのは言うまでもないのですが、本として素晴らしい。まさにHibernateのBibleです。逆に言えば、ORMについての豊富な知識とここまで考え抜く力がないとHibernateを生み出すことはできないのですね。
ちょうど一年前、XDoclet commiterのBrianと話をしましたが、そのとき、「Hibernateはassociationが書きやすい」と言っていた気がします。その意味がやっと分かりました。当時彼らはEJB Session Bean + Hibernateをbest practiceとしてやっていました。今は何をstandardとしてやっているのでしょうか。
良書100冊特集につられて買ってみました。Java部門で、Mikiさんの「JBoss入門」も推薦されています!
まつもとさん(Ruby作者として)やたださん(別の特集でtDiaryに関して)のインタービューが載ってました。
さすがNスペ、素晴らしい。中国では戸籍が2種類あるなんて知りませんでした。都市戸籍と農村戸籍です。今回は中国の貧富の差がテーマでしたが、制度的にもそうなっているなんて。上海に農村戸籍の人々が出稼ぎにでてきても(その低賃金が中国の競争力となっている)、その子供は満足に教育が受けられません。公立学校は都市戸籍の子が優先されるからです。
農村部の娘さんが、8万円の大学入学金を払えずに困っている場面がありました(村の女子では5年ぶりの快挙)。農村部の家庭は年収1万円に満たないのです。一方、上海の超エリート(私立)校(小学校だったかな)の入学金は50万円(だったはず)。
そういった貧困層は2億人にのぼるそうです。都市部への人口移動はここ数年で1億人。
うーん、すごい。
へぇ〜。
ところでヌーベルブログのURL:2004_10_18_101153.htmlの最後の数字ブロックはどういう意味なのでしょうか。spamよけの乱数かな。いや、時分秒のようです。
_ ま2 [>Personal JavaはEon Of Life "End Of Life"ですよね。つまらないツッコミですみま..]
_ はんばあぐ [ども。修正しました。]
_ zunda [手元では、.htaccessに SetEnvIf User-Agent "わるい子" BadRobot SetEnv..]
_ はんばあぐ [イタチごっこになるのは仕方がないかも。ただ、皆が探したログの結果を共有できたらなぁ(人によって判断基準が違うが)。あ..]
_ hase@mame [これからもよろしくどうぞ。 面白いお話がありましたら、是非新宿の豆ナイトで♪]
_ matobaa [かずひこさんトコのWikiにリストが。]