思いつきは、したらばのこのスレから。
いわゆる、2chの規制に巻き込まれた人の行き着く先である。

何を思いついたか、の前に説明を。
konata.netの隠し機能?として、2chのリバースプロキシがあったりする。
これは、xxx.2ch.net へのアクセスを規制している会社から2chにアクセスするために、
xxx.2ch.net/ を www.konata.net/xxx/ のURLを経由してアクセスするものである。
もちろん、踏み台にされては困るので、Apacheの設定でアクセス元は特定のIPに限定してある。
あいかわらず、無駄な知恵は回るのである。

閑話休題。
で、思いついたのは、規制に巻き込まれた人にこのリバースプロキシを開放するのはどうだろうか?ということ。
今のところ、konata.netの入っているvectant.ne.jpは2chに規制されていないのでリバースプロキシを使うことで、書き込みが出来るようになる。
(IDは恐らく同じになるけれど)

ここで、問題になるのがアクセス制限。
無制限に開放してしまえば、いずれ荒らしの標的になるのは目に見えている。
また、IPを晒してもらってApacheの設定ファイルを書き換えるのは手間だし、スマートじゃない。
いわゆる、IP制御と連投規制のような機能が必要になる。

以下、考えたこと。

【.htaccessを使う】
無理。Proxyディレクティブで存在しないディレクトリにファイルを置けるわけが無い。

【mod_dbdを使ってDBで動的に、接続IPを許可する。】
案としてはいいのだけれど、Basic認証かDigest認証に限定されるのでIDとパスワードが必要になる。
これはユーザーがめんどくさい。
加えて、自分もIDとパスワードを入力する羽目になるのは嫌。

というわけで、apacheのモジュールを作ることにした。
参考にしたのは「DSAS開発者の部屋:apache module 開発事始め」の一連の記事。

詳細は次回に続く

連休に入る直前の4/28日にMSから届いたメールでVS2010のリリースが近いことを知る。
んで、らいつべバルーンなんかで使っているVC2008はExpress版。

今回も、まずは導入してみんべ。
ということで、Webからインストーラーを落としてくる。
たしか、2008の頃は、ISOイメージで配っていたような気がするんだけれど。

で、特に詰まる箇所も無く、2010のインストールが完了。
2008時代に作ったプロジェクトはそのまま放置で自動でコンバートとかはやってくれないらしい。
2010で2008のプロジェクトを開くとコンバートしますか?と聞いてはくれるのだけれど。

とりあえず、起動。
と、スプラッシュウィンドウに次の一文が。
「このソフトウェアの使用は、評価目的に限ります」
あれ……

2008の時はそんなこと言わなかったよな?
商用利用もOKだったはずなんだけど。

そりゃ、Pro以上を売りたいのは判らないでもないんだけど。
決してお安くないツールなわけで、大半の人は元を取れるかというとそんなことも無いわけで。
だからこそ、無料のExpressに流れたサンデープログラマは少なくないと思うわけで。

なんだか、出鼻をくじかれた格好になってしまった。
VC++で、今でもWin32APIガリガリ書いたプロジェクト使えるのかとか、インテリセンスがパワーアップしたとか、.Netの4.0とか確かめたかった事があったはずなのに、なんだかどうでも良くなってしまった。

(さらに…)

今まで、konata.netのサイトマップはこのBlogの方はNucleusのプラグインで、
ラノベを語れの方はDBから登録本の数だけ自前で吐くPHPスクリプトで、
それぞれ自動で作っている。
が、問題はそれ以外の静的なページで作ってたり、放置していたりするらいつべバルーンや、FreeBSDのページの方。

今まではどうしていたかというと、TOPページだけ、自分でサイトマップを書いていた。
けど、面倒くさいし、そもそもサイトのマップになっていない。

というわけで、スクリプトを組むことにした。
取りあえず、決めた仕様は以下。
・任意のディレクトリを再帰的に処理
・決めた拡張子のファイルだけサイトマップに追加

大まかなイメージが出来上がれば後は作って試すばかり。
で取りあえずできたのだけれど、テンプレートとして使っているhtmlや、インクルードしているphpファイルも引っかかってしまった。

そこで、次の仕様を追加
・設定した名前のディレクトリ(cssとか)は見ないようにする。

今度はいい感じにサイトマップが作れるようになった。
更新のたびにスクリプトを実行させるのは面倒くさいので、cronに登録。

これで、htmlを作っておけばサイトマップは自動で作れるようになった。
が、サイトのアクセスアップにどの程度効果があるかは疑問。

思いつきで作っているWebサイトでメール送信のために Qdmail というPHPのライブラリを使っているのだけれど、コマンドラインからPHPファイルを実行させると、”No recipient addresses found in message header” というエラーが出てきてしまう。

んで、携帯に送りたいメールが届かない。

このメッセージを出しているのは Postfix のsendmailラッパーで、postfix-2.6.5 のソースをgrepにかけてみると出しているのは一箇所のみ。
んで、 rcpt_count というのが関係しているらしい。
Googleさまにお伺いしてみるも、英語ページをたどっても、Postfix2.5あたりからこれに関する変更が入ったということしかわからない。
ちなみに、Windowsマシンからのメールはきちんと送信できるし、エラーも出ない。

たぶん、RCPT TO あたりを処理している際のメッセージだということは想像つくのだけれど。
Qdmailのソースを眺めて適当にRCPT TOを吐かせるとメールは届く。
が、内部を把握してないライブラリを変更するのもアレなので、SMTP送信に切り替えることにした。
これで、メールは送れるようになった。

が、エラーは出続ける。
fatal=致命的とか言ってるくせになんでメール送れるんだよ(´・ω・`)

こうなると後はWiresharkあたりで通信を覗いて見るしかないんだが。
めんどくさいなぁ……
でも、気味悪いしなぁ……

携帯のHTMLメールでGoogleやAmazon広告を送るのは厳しそうなので、当初の目論見が外れた今、積極的にやる理由はなかったりする。
が、気になるんだよ。畜生め。

久方ぶりにWebサイト製作を再開しようとeclipseを起動。
んで、とりあえずでアップデートも実行。
ぽろぽろと更新が見つかったまではいい。
深く考えずに実行を押したところもまぁいい。
再起動かけますか?で再起動かけたのも私は悪くない。

が、再起動の途中でエラー吐いて落ちるのはどうよ?
eclipseconfiguration1254653668112.log を見ろって何ですか?
中を開いたらExceptionのスタックトレースがあるだけ。

で、私にどうしろと?
こんなの見て対処できるのは開発者だけだって……
こういうところ不親切だよなぁ……

当然、私にはそんな技量と余裕はない。
で、結論。

この環境作ったときのバックアップから復旧。
ファイルの数が多く、時間がかかるものの、それでも最初から環境作り直すよりはよっぽど早く環境の復旧完了。
いや~、バックアップって作っておくもんだね。

こりゃ、当分eclipseのアップデートはやらんほうがいいな。