2005年1月31日月曜日

gtalkばぐばぐにょ



なんだか、galateaのSSMであるgtalkってよくおちる。


ソースみると、、あー。、、そーねー、、、なるほど。


てこ入れしないとだめかなぁ、みんなで遊べる逸品にしあげるには。


あと音声出力の最終段に周波数フィルタをつけて3D音声にしたり、


出力時に複数の音声をmixする作業をデバドラになげるんじゃなくて


自前でやったほうがつかいやすいよなぁ、。。。


結構いじるところ多いなぁ。。。orz


というか、先輩に話者適応の方法おしえてもらわなきゃ。。。きつっ


とかいいつつ、私は画像系の研究してるんだよね。。。なんだかなぁ





偽茶碗。(chasenのポストプロセッサ)



別に茶碗に高機能なのはもとめてないのね。


アルファベットがよめればチャットには使える!。javaなんて環境によって用意が


めどいのは却下だね


ということでつくってみた。gtalkよう偽茶碗。



http://rogiken.org/daemon/niseone.pl






ついでに



大量のバッファオーバーフロー系セキュリティホールがあったSSM(gtalk)に


投げやりにワークアランどパッチをあてて、FreeBSDに対応させたりした


コードも置いておきます。


FreeBSDでchaone(java)をつかうとうまくいかなくて。。。chasen.cがいじりかけです


なんかchaoneつかうとgetch()がEOFでかえってくるようになるのよね。


おかげでビジーループですよ。


ちなみに偽茶碗は大丈夫です



http://rogiken.org/daemon/SSM_hack.tar.gz






2005年1月30日日曜日

論文



こんなくだらない日記をかきつつも論文もちゃんと書いてる。。。つもり


さて、、、この研究結果何につかったものやら。


医療画像関係とかかなぁ。。。





スパム業者メールさらし



最近なにもかんがえずにスパム業者のメールを全文晒しているが。。。。


それは意図せず情報が漏れることになるのできをつけたほうがいいとおもう。


たとえば。例をあげるとこんな感じのURLを張ってあったとしよう。



http://~~~~7.com/index.php?m=bm9Ac3VjaC5lLW1haWwuYWRkcmVzcw$$



まぁ、だれがどーみてもBASE64エンコードなわけだ。


無論「==」が「$$」に置き換えてあるという違いはあるが、実はnkfの実装は


==じゃなくても、[a-zA-Z0-9\+\/]以外なら終了子になるので、使われるらしい。


まぁ、話しはともかくこいつをnkf -mBに通すと



bm9Ac3VjaC5lLW1haWwuYWRkcmVzcw$$


->no@such.e-mail.address



こんなかんじにメアド引数だったりする。


もし、base64をしらない人がメールさらしやってるとすると意図しない情報漏洩


がおきてるわけになるので、、、いやーんなかんじなんだろうなぁ。


まぁ、メアド程度ならいいけど。他の情報も載ってる可能性があるわけで。


まぁ、素人はURLの後ろの方の無意味文字列チックなのは伏せときなさい、ってこった。





gtalk on IRC



後輩をたきつけたら見事にIRCにつないで音声よみあげしてくれるrubyスクリプトを


書いてくれた。いや~持つべき物はできる後輩だね。





2005年1月29日土曜日

この日記



http://slashdot.jp/comments.pl?sid=237154&cid=0&pid=0&startat=&threshold=0&mode=nested&commentsort=0&op=%CA%D1%B9%B9


をみて激しくワロタので。



この日記はFireFox及びMozillaの各バージョンで利用することを想定して作っています。


それ以外のブラウザ及び、プラグインなどで変造されたブラウザでアクセスすることは。


想定外のアクセスであり、不正アクセス禁止法で訴えます。



とか自分のページにかいとくといいのかな?


でも、見た後に訴える宣言されてもなー。。。。新手の俺俺詐欺につかえそうだ。





音声合成



フリーの音声合成、認識、顔画像生成のツールがあるんだが。。。FreeBSDに音声合成だけ移植してあそんでみた



http://hil.t.u-tokyo.ac.jp/~galatea/index-jp.html



とりあえず。



set Text = <PITCH LEVEL="1.5"><RATE SPEED="0.8">ニョニョニョ</RATE><SILENCE MSEC="500"> <PRON SYM="ブ’ロッコリー"><VOLUME LEVEL="1.2">ブ</VOLUME>ロッコ<RATE SPEED="2.0">リー</RATE> </PRON><SILENCE MSEC="200"> <PITCH LEVEL="1.5">ニョ</PITCH></PITCH>
set Speak = NOW
set Text = <RATE SPEED="1.4">おー</RATE><PITCH LEVEL="1.2"><VOLUME LEVEL="0.7">い</VOLUME></PITCH>、ますだ<PRON SYM="クン">君</PRON>、<SILENCE MSEC="500"><PITCH LEVEL="1.7">チョッ</PITCH><RATE SPEED="1.5">ト</RATE>

set Run = EXIT



こんなかんじで音程とかかえて遊べる。。。わらいじにそうになった。



set Text = <PITCH LEVEL="1.3"><PITCH LEVEL="1.2"><RATE SPEED="1.4">おー</RATE><VOLUME LEVEL="0.7">い</VOLUME></PITCH><SILENCE MSEC="500">森岡<VOLUME LEVEL="0.7"><PRON SYM="クン">君</PRON></VOLUME>、<SILENCE MSEC="500"><PITCH LEVEL="1.6">チョ</PITCH><SILENCE MSEC="40"><RATE SPEED="1.5">ト</RATE></PITCH>


ちょっと、改良してみた、、、


これで某放置主義教官の特徴を再現できたはず


次は、HTSだっけなそれつかって、発話モデルの適用かなぁ。


萌え声でるといいな。。。(無理だって。。)


だれかもごもごした声でも萌えられるキャラ教えてください。





gtalkではまったこと




CHAONE: /usr/local/jdk1.4.2/bin/java -Dfile.encoding=EUC-JP -jar ../morph/chaone-1.1.0.jar

というふうに文字コード指定しないとはまるかも。


ちなみにコマンド引数に与えるのに、スペース区切りなのはいいのだが、スペース二個いれるとはまるぞ。うごかないぞ。





gtalk(galateaのSSM) FreeBSDぱっち



これでFreeBSDでもメカ嵯峨山の声を拝聴できます。


http://rogiken.org/daemon/galateaSSMforFreeBSD.tar.gz





2005年1月28日金曜日

認識率あがるし。



二次元DP相変わらすやってんのだが。


高速化だけならまだしも、認識率も向上した。


なんかね。。まだ発表してないないようだから書けないんだけど。


この手法はビーム探索などをかける探索問題に色々応用がききそうな予感。


まぁ、色々応用できたところで、この研究班はあと1ヶ月で解散なわけなんだが。。。orz





2005年1月27日木曜日

PostgreSQLファイルシステム。



といっても、ふつーにファイルを取ってくるだけなのだが。ちっこいファイルなら


NFSなんかつかうより遙かに速度が速いので重宝してるのだが。。。


研究室内でサブネットがきられててルータがかんでると遅い(;;)


TCPのスロースタートとかがもろにきいてるのかな。


こういうシステムのときは各hostにpgpool仕込むのがいいのかしら。


って今更。。。。





最近のはやり



最近/tmpいかにワークファイル展開して、計算して結果をDBに返すのがマイブーム。


ちょっとした変更するだけで、一気に全PCにジョブをなげれるぜよ。


不安定なNFS鯖のご機嫌を伺う必要もないっす♪





やっと結果でたー



二次元DPを使った文字認識じっけんで認識率を落とすことなく


速度を15倍程度に高速化することに成功。


ETL-9bデータベースの清音平仮名30クラス。各3パタンのの参照パタン(計90参照パタン)


まぁ、最も認識するまえのデータ準備処理がべらぼーに長いのだが。





管理者、もしくはroot



root様とか管理者とかアド民って。。なんか味気ないですよね。



ネットワーク管理者を管理人さんと呼ぼう!



これで少し愛着が・・・湧くわけ無いか。





オタクの定義




http://www.geocities.jp/houdou_higai/



まぁ、犯罪者とオタクをいっしょにするなというはなしなのだが、そもそもの原因はオタクの定義が曖昧すぎるのが原因な気がする。


だから、思考停止状態で原因を追及すると「オタク」がひっかかっちゃうのかと。


まぁ、正直いって報道番組みてるかぎり報道関係者、もしくは対象視聴者が


頭良いとはとうてい思えないのである意味仕方ないのかな。


条件付き確率のトリックに自分でハマっている人たちですから。


でも,ごく希にいるね犯罪者ちっくなのって。おいらもコミケに行ったことあるし


大学でアニメの上映会とか良くある環境にいたし、いまもいるけど。。。


基本的にオタクな人のコンプライアンスが極端に低いってことは無いってか


夜中に池袋にたむろってるのとかより高いように感じる。


ただ、それとは異質な存在がいたりもする。オタクですらない、てめぇたんなる犯罪者だろ!


みたいなの。


まぁ、そういう人は普通のオタクな人達ともあまりうまくやってけないんだけど。


正直奈良の事件があったとき、まさか奴がやったんじゃ?って本気で心配した。orz


取りあえず、自分達の子供は自分で守りましょう。


やう゛ぁい人が意外な職業についたりする時代ですから。





2005年1月26日水曜日

OpensslでCAを作るときにCRL配布ポイントを指定するほうほう



openssl.cnfに



[ v3_ca ]
.....
crlDistributionPoints = URI:http://hoge.hoge/moge.crl




俺Sign



仲間内で俺Signをやってみることにした。


なんだかその場の雰囲気で、私が認証局、友達の自宅鯖のSSL証明書をつくる係に。


取りあえずわかったのはCRLリストってちゃんとブラウザに設定しないと


証明書に書いてあるだけじゃデフォルトでよみにいかないのね。


まぁ、そんなもんか





2005年1月25日火曜日

OpenVPN設定ツール




http://rogiken.org/daemon/openvpn_conf.tar.gz

OpenVPN2.0になって一台のサーバに複数のクライアントというVPN接続が


できるようになったのだが。。。SSLをつかわなきゃいけなくてめどい。


なので、OpenSSLがインストールされているUNIX系ようの設定ツールをつくってみた



./setup.sh


./make_host.sh server-host server


./make_host.sh client-host client



でサーバ用とクライアント用の鍵ができる。





OpenVPN速度出せるのはうれしんんだが、delayが大きくなる文tcp windowを大きめに


してやらないとぐずるのが嫌げ。。。なんかうまい方法ないのかにょ~。





2005年1月24日月曜日

spamメール



相変わらずエロスパムメールがやまない今日この頃。


しかし、彼らはなぜメロンだとかレモンだとか。ドメインをかえて同じサイトを運営


しているのだろう。。。謎だ。


しかも今時DNS/tcpでlsさせてくれるし。不思議ちゃんです。


来たスパムに対してちゃんと名前ひいたり、ぐぐったりとかしてると


不思議ちゃんな構成なサイトが意外と簡単にみつかるのかも。


まぁその他色々つっこみどころ満載で・・・


取りあえず、お前らwebサイトアンチパターンを地でいってどうする。





肩こり防止



最近かたこり防止のため、デスクワークの時に酒をのむようになった。


良い感じだ、イタリア人とかフランス人が昼飯に酒を飲む気持ちがわかった。


すげーかたこらねー





SETIはPS3で!



PS3につまれると言われているCELLというCPUがあることを教えてもらった。



http://www.blachford.info/computer/Cells/Cell3.html



えっと。。。利用用途は。。。「ゲーム、ビデオ、SETI」・・・・はいっ?


SETI@home on PS3推奨ってこと?


それはともかくこいつの開発環境があれば。。。リアルタイム音声変換なんて


ちょちょいのちょい何だろうなぁ。。RTLinuxなんかで頑張らなくても。。。


いーいな、いいいな、お金持ちーっていーいな♪





2005年1月23日日曜日

もじぴったん



当然のごとく 音楽のほうを先にしったのだが。。。


なんでこんなに萌え萌えな音楽で、ふつーのゲームを作るのかなぁ。(ぉぃ





2005年1月21日金曜日

宗玄ウマー



生原酒っての飲んでるんだけど、ウマー。


以外と空気に触れさせてから飲むのもウマー。


あけてしばらく立つと、アルコールっけが抜けてのみやすー。香りは死んでないし。


いいかんじじゃん!


やっぱり酒は能登だね!。。。来年から京都なのにどうしよう。


でもね、悲しきかな能登では酒蔵が潰れそうな勢いで大変な状況なのですよ。


でかいところはまだ良いけど、小さい酒蔵でおいちいところもあるのに。


みんなで買い支えしよう!。





フラット系 モテ君




http://www.motehimote.com/section1/s1_2.html

友人のblogに載っていたのでやってみた。まぁ、結果としては表題の通りなんだが。。


典型的な理系オタクってみんなフラット系になるよーな気がするが?


依然に、質問内容と軸の対応が明示的にわかる質問に意味があるのか謎だけど・・・・


本当の心理テスト作ってる人ってどうやって作ってるんだろ。





2005年1月20日木曜日

続wiki SPAM



コメントスパムも対応した方がいいのかなぁ?


実装するとなるとHuman checkをPOSTデータにも対応させる必要がでてきて


それを現実的やるには、クッキーが無いときは



書き込み->認証->ボタンを押してもらう->本来の書き込みスクリプトにもどる。



という状態遷移しかおもいつかない。「ボタンを押してもらう」のふぇーずは


javascriptで自動化できるかもしれないが、うーんめどい。


とおもったけどhuman_check関数のなかでvarsをクッキーGETすればいいのに気がつく。


いまとおなじUIでコメント欄も対応できるかも。


ということでHumancheckは各プラグインに"human_check()"と埋め込むだけでコメント欄系


のもいけそうな感じです。


需要がありそうなら実装しようかな。


その前に修論かかなきゃ>俺





2005年1月18日火曜日

女の子のためのおたくガイド




http://cruel.org/freeware/geek.html

ひさしぶりに見つけて読んで見たけど。



ある種のナラティブで心理的転移を経験して、それに基づいて自分の相互作用をモデル化しようとするんだな。・・・・



そんな文章理解できる時点で、その文章を読んでいる女の子もかなりの確率でおたくだと思う。


つまり、「おたくなおんなにおたくがおすすめ?」 orz





わたしがjavaを嫌いな理由



がここにありそうなきがしたのでメモ。あとで考えよう



http://cl.aist-nara.ac.jp/~daiti-m/text/worse-is-better-ja.html




ともあれ



なんか作りたいね~。。。論文書くのいやいやですよ。


明日はパーツやさんにでもいくかな





2005年1月17日月曜日

えいじあんファミマ!




http://d.hatena.ne.jp/zot666/20050115

なんだか、ちゃんとしたビジネスになってて面白い。


これが加速してたんなるニッチ産業を飛び出した日が見てみたい。


店員は地味な統一された制服を着るのじゃなくて、おもいっきり


店を演出するためにそれぞれの服を着る。


小説に出てきそうなかんじですな





どうしたDポ!



webサイトの造りはそれなりによかったDポ。。。


なぜかここにきてPic@nicの会員サイトのセキュリティやばくないか???


メールにパスワード書いておくるは。電話番号(ID相当)は3けたしか伏せないし。


本人確認で本人しかわからないことになってるのはたった4桁の数字だったり。


Dポなんかweb部門を安い外注にでもまかせるようになったのかんなぁ。。。orz





スーパーユーザ



立派なスーパーユーザになるべく、午後三時にご飯たべた。



http://www.ec.ss.titech.ac.jp/~kohsuke/imazeki/imazeki/download.html




emacsにteraterm越しに日本語を打つ方法




(set-keyboard-coding-system 'euc-jp)
(set-terminal-coding-system 'euc-jp)




2005年1月16日日曜日

全角入力Only



たまにみる住所は全て全角で入力してくださいなサイト。。。。


せめてスペースぐらいはゆるそうよ。。。。すげーミスに気がつき難いんですが。


てかいまどき全角文字ではまる処理系すくないんだから


a-zA-Z0-9とかもゆるしてやってほしい。





2005年1月15日土曜日

糞ソフト公開



昨日飲み会してて、就職後の自分の書いたソフトのライセンス問題の話しになった。。。


どんなくだらないソフトでも学生のうちに公開して、会社のライセンスに汚染される


可能性をゼロにしない危険なのね。。。。めどーい。





2005年1月13日木曜日

三大がっかり





  • 北海道の時計台

  • シンガポールのマーライオン

  • 農ドル



http://nodol.com/pc/

トップのCGに釣られて中身を読むとがかーりできます。


うーんこの絵師にはこんなサイトでくすぶってないで、農民ブームをおこしてほしいところ。(ぉぃ)





2005年1月12日水曜日

チキン南蛮の発祥をしらべてたら




http://www.apamanshop-yamaguchi.com/35036401/2004/12/_15221.html

チキン南蛮男はけーん。いがいといるのねそういうひと。


ちなみに、私が高校のときの国語の先生は麻婆丼しかたまないことで有名でした。





OpenVPNセットアップツール



OpenVPNのセットアップが思いのほかてこずったので、セットアップ支援スクリプトを


作成してたりする。


OpenVPN 2.0系でマルチクライアント環境を作るときに必要となる


鍵を作成して、各ディレクトリに各マシン(含サーバ)に必要なファイルをさくさくと


作ってくれるツールを作ってるのね。


いやね、計算完了待ち時間がながかったのさ~。





2005年1月11日火曜日

アニメ



今日は研究がすこしだけすすんだ。


アニメ見ながらだとなぜか研究とかコーディングすすむんだよねぇ。。。


修羅場感を演出するのかね~やっぱりアニメとか。





続アニメ



それで思い付いたのだが、新しい工数管理手法。



工数はアニメのクール数でカウント。

ちなみにピクセルワイズ法の2次元DPの実装は3クール分でした。orz


やっぱり俺のコーディング速度遅い。





M3-64a



ある建物の名称なんだが。。。M3-otaににてない?M3-おたですよ。


「えむさんおた」きっとM2やM4じゃだめましてやM1.6なんてもってのほかって感じの


M3ネジマニアですよね。



いや、メールに書いてあって誤読したけです。すいません






2005年1月10日月曜日

OpenVPN 2.0をつかってみる



うーん、マルチクライアントでは公開鍵方式onlyになるのね。


とりあえずあるCAが証明しているという事実が認証の要因なのね。(たぶん)


各クライアントにある鍵を盗まれた時の対策としては、各クライアント用の


署名済み鍵のexpire dateを短めに設定すればいいのかしらん??


ID:passwordみたいに、あるユーザがクラックされたので有るユーザのキーだけ


変更とはいかないのか。。??うーんほんとか?





お湯割り



日本酒(原酒)のお湯割りのみながらコーディング。


外は雪だし。なんだか幸せです。この学校ならでわですな。





続OpenVPN



目標は家のマシン(へぼ光回線)にあるアニメをsambaでファイル共有してアニメを


再生すること。Mediaplayer classicじゃあまりうまくいかないのよねぇ~。。。


まぁ、原因としては簡単で、Mediaplayerがreadシステムコールをだして、すぐにデータが


くることを前提としてるんだけど。ディレイが大きい回線で帯域もそこそこなもんだから


次の再生までにデータの準備がまにあわない。


まっ、windows mediaplayer 9はそこんところうまくいってるみたいで。


いいかんじです。





まぁ。肝心のOpenVPN環境でのチューニングにかんしては。


鯖がわ、クライアント側両方でTCPの窓サイズを十分な余裕ができるサイズにしてあげるだけ。


それだけでかなりの速度がでるOpenVPN偉大です。





2005年1月9日日曜日

すばやい警報システム



構築が「すばやい」のか、警報が通達されるのが「すばやいのか」・・・・わからないけど



http://www.nikkei.co.jp/news/main/20050109STXKA000509012005.html

テレビ、ラジオに警報を流す義務をつけるだけだとだめなのかなぁ?


東南アジアってメールは普及しててもテレビはメールほど普及してないのかな?





itbdns



itbdnsっていうDDNSサービスだとMXホストを別に登録できるみたいだね。


これがあれば、二台の別々のPCでML鯖たてて、自宅鯖でもそれなりの信頼性確保できるかもね。



1. MXレコードに別々の2台の自宅鯖をとうろく
2. 全く同じ設定のML鯖をたてる
3. 1日に何回か、お互いの鯖同士で過去ログの同期をとる。

新規開発は過去ログ同期だけですね。楽ちん





スパム対策考 for ML



MLのスパム対策もwiki SPAMの応用でできるかな~と寝ながら考えてみた。



方法1:メールアドレスがセッションキー
qmailみたいな拡張メールアドレスを使えるMTAをつかって。
ML-hogehoge@hoge.comになげるとML部分がMLしめしていてhogehoge部がセッションキーになっていればいい。

セッションキーはwiki SPAM対策のプログラムのremote_addrをみているところを、Fromアドレスでもみるようにすればいいかな。

流れ的には

1.メール投稿
2.セッションが切れているかチェック。セッションが切れていれば以下の手順で
 人間チェックを行う。(投稿されたメールは一次保留)
 #当然セッションが切れてなければ、投稿完了。
2.セッションキー付きメールアドレスでML鯖が人間チェックを送ってくる
 (人間チェックはwebでもメールでも返信できるようにするんだろうなぁ)


でもこれには大きな問題があって。。。自動メールアドレス収集機能つきのメーラーだと


アドレスブックがふくらむふくらむ。。。。たまったもんじゃないね。


それに、From詐称されてるときにバウンス検知しなきゃいけないから質問おくるのも


気を遣うね。(たぶん、セッション切れてるのに何度も送ってくるやつはブラックリスト入りとか)


ちなみに。本文とかsubjectにセッションキーをいれればという話しもあるけど。。。


人間が確実に編集する領域にキーをいれるとこわされそうというか


じゃまくさくていやなのよね~。


なんかいいヘッダあるかしら。


#無論、MLは原則登録制で、web経由のみanonymous化にしてwebに人間チェックというてもあり





2005年1月8日土曜日

outbound 25 port 遮断



wakwakとplalaはSMTP直繋ぎを禁止するらしい。


うーめどいなぁ。ちゃんとSMTP認証してそとにださないといけないのか。


自宅鯖な人には訃報ですな。


まぁSPAMがへって嬉しいというひともいるだろうけど。。。。


最近は海外のすぱむのほうが多くて大きな意味はなさげ。


まーメールはあまり使わない方向になりつつあるのでどーでもよくなる日もちかいのかも。





ということで



プロバイダのsmtp鯖を使うようにしてみた。wakwakはSMTP認証だとかやかましい事を


いわないので良い感じだ。流量が大きいとspamerだと認識するらしい。


サークルのML程度に反応しなければかなり良い対策なのかもしれない。


biglobeは。。。。senderプロバイダからもらったメアドにしなきゃいけないので


MLにつかえねぇ。。。まぁ25番ポートつぶすよていまだ無いみたいだからいいか





2005年1月7日金曜日

つかれた



今日は朝から腐れたUPSをはずして配線のやりかえ。。。


うーつかれた。。サーバルームはほこりっぽいし。うるさいし。暑いし(ぉぃ





wiki SPAM対策



あー下でかいた対策ちょっといけてないね。


やっぱりデザインは統一させたほうが。


せっかくpukiwikiにはプラグイン機構があるので。index.php?plugin=hogehoge


でよびだしてそこでクッキー発行処理を行えば良い。


よゆーのよっちゃんでかけそうですねそれぐらい。





wiki SPAM対策



なんだか、反応があるととってもうれしいですね。


唐揚げでやってみました。さて、、身内のwikiに導入する準備でもしようかな。


auth.inc.php内のhuman_check関数を




function check_human(){
global $system_salt;
global $humancheck_timespan;
$ip=$_SERVER{"REMOTE_ADDR"};
$uri=$_SERVER{"REQUEST_URI"};
$uri_hash=md5($system_salt.$uri);
$uri= urlencode($_SERVER{"REQUEST_URI"});


$location="Location: index.php?plugin=humancheck&humancheck_u=".$uri."&humancheck_uh=".
$uri_hash;
if(! isset($_COOKIE{"human"}))
header($location);

$tmp = preg_split('/:/',$_COOKIE{"human"});
$utime=$tmp[0];
$hash=$tmp[1];
if($utime + $humancheck_timespan < time() ||
$hash != md5($system_salt.$ip.$utime))
header($location);
//認証できたのでtime extended!
$utime=time();
$hash=md5($system_salt.$ip.$utime);
setcookie('human',$utime.':'.$hash,time()+$humancheck_timespan);
}

// 編集不可能なページを編集しようとしたとき
function check_editable($page,$auth_flag=TRUE,$exit_flag=TRUE)
{
global $script,$_title_cannotedit,$_msg_unfreeze;

if (edit_auth($page,$auth_flag,$exit_flag) and is_editable($page))
{

check_human();
return TRUE;
}
if (!$exit_flag)





てな感じにして。


human_check.phpをpukiwikiのプラグインとして書き直して。


plugin/humancheck.inc.phpとして書いて見ました



<?php

function plugin_humancheck_action()
{
global $system_salt;
global $vars;
global $humancheck_timespan;
$uri_head=$_SERVER{"PHP_SELF"};
$ip=$_SERVER{"REMOTE_ADDR"};
$uri=$vars{"humancheck_u"};
$hash_uri=$vars{"humancheck_uh"};

$check_data=array(
'「唐揚げ」をローマ字で書いてください', '
karaage',
'「萌え」をローマ字で書いてください' , 'm
oe',
'「萎え」をローマ字で書いてください' , 'n
ae');

$nof_question=count($check_data)/2;
//本当は時間ごと、IPごと等で出る質問内容をいくつかに制限しておいて
//そのqidが着ているかをここでチェック

$qid=$vars{"humancheck_qid"};
#人間チェックにパスして、URI改竄もない
if($qid >-1 && $qid < $nof_question && //質問IDが適切かチェック
$vars{"human"}==$check_data[$qid*2+1] && //正解かどうかチェック
strlen($uri_head)>0 && //以下URLいり攻撃チェック
substr($uri,0,strlen($uri_head)) == $uri_head &&
$hash_uri == md5($system_salt.$uri)){
$utime=time();
$hash=md5($system_salt.$ip.$utime);
setcookie('human',$utime.':'.$hash,time()+$humancheck_timespan);
header("Location: ".$uri);
}

$qid= time() % $nof_question;
$question=$check_data[$qid*2];

$out_uri=htmlentities($uri);
$content = <<<EOD
<h1>人間チェック</h1>
以下の質問に答えてください<br>
$question
<form action="./index.php" method="POST">
<input type="hidden" name="plugin" value="humancheck">
<input type="hidden" name="humancheck_qid" value="$qid">
<input type="hidden" name="humancheck_u" value="$out_uri">
<input type="hidden" name="humancheck_uh" value="$hash_uri">
<input type="text" name="human">
<input type="submit">
</form>
EOD;

return array(
'msg'=>'Human Check',
'body'=>$content
);
}
?>


さらにpukiwiki.ini.phpに



$system_salt="何か推測されない文字列"; //ハッシュをとるときのソルと
$humancheck_timespan= 3600; //human checkの頻度(一回の投稿はこの時間内におえなければいけない)



じつは高々こんなもののために2時間以上かかってしまった。。。orz


やっぱり俺へたれだ。まぁ、実験の計算完了待ちの間だからいいだけどねぇ。。


期間限定で下記URLにテスト実装のものをおいてみました。


http://nosi.dip.jp/test/pukiwiki/index.php


うまくいくようなら、本家に提案したいけど、pukiwikiのコミュニティわかりにくっorz





SPAMバウンス



よく女性のふりをしてエロサイトの広告を投げてくるのがあるが。


それに、他のエロサイト広告のメールアドレスをFromにして返信したらどうなるんだろう。


実は興味深いかも





2005年1月6日木曜日

radio 307にて



Yoh-Chu-Sha (Larva House) - 12.februar platz




  • 発見!


http://www2.odn.ne.jp/cak11490/larva/audio/feb12platz.html


ないしょさん向けな音楽だ





wiki SPAM対策



wiki SPAM対策として、崩れた数字を表示させて人間かどうかチェックするというアイディアを言っちゃったので。


言い出しっぺの法則でさっくり書いて見た。


でも、、、崩れた数字で~~って特許とられてないか心配で実装が止まってる。


まぁ、萌え絵3種からえらばせてもいいか。


pukiwiki 1.4.4 の


lib/auth.phpのところに



function check_human(){
$system_salt="ablacatabra";//将来的にはpukiwiki.iniへと
$uri= urlencode($_SERVER{"REQUEST_URI"});

if(! isset($_COOKIE{"human"}))
header("Location: human_check.php?url=".$uri);

$tmp = preg_split('/:/',$_COOKIE{"human"});
$utime=$tmp[0];
$hash=$tmp[1];
if($utime + 3 < time() ||
$hash != md5($system_salt.$utime))
header("Location: human_check.php?url=".$uri);
}


こげな関数たして


check_editableのところで



function check_editable($page,$auth_flag=TRUE,$exit_flag=TRUE)
{
global $script,$_title_cannotedit,$_msg_unfreeze;

if (edit_auth($page,$auth_flag,$exit_flag) and is_editable($page))
{

check_human();
return TRUE;
}


~~~~~以下省略~~~~~


と言うふうにパスワード突破で承認するまえにだすようにする。


そんでもって以下のようなhuman_check.phpを用意すればOk



<?

if($_POST{"human"}=="yes"){
$system_salt="ablacatabra";//将来的にはpukiwiki.iniへと
$utime=time();
$hash=md5($system_salt.$utime);
setcookie('human',$utime.':'.$hash);
header("Location: ".urldecode($_POST{"url"}));
}

if(isset($_POST{"url"}))$url=$_POST{"url"};
else $url=$_GET{"url"};
$url=urldecode($url);
?>
<html>
<body>
Aar you human?<br>
<form action="./human_check.php" method="POST">
<input type="hidden" name="url" value="<? print htmlentities(urlencode($url)) ?>">
<input type="text" name="human">
<input type="submit">
</from>
</body>
</html>


setcookieのところで本当はpathを指定してpukiwikiディレクトリ以下からしかクッキーをとれないようにしなきゃいけないんだけど。


とりあえずは省略


あと、md5のところでハッシュのキーがutimeだけだけど。本当は乱数も追加したいね。





続google遊び



ノーガード戦法どころか。これはハニーポットか?と思うほどのサイトってあるんですねぇ。。


問題は消費者がどうやってそういう悪徳サイトに引っかからないようにするかだ。


ふとおもったが、犯罪被害者のふりして名簿横流ししてるやつとかいそうだな。


YBBの例でいくなら。わざとセキュリティをあまくしておいて。甘いことを


外の人におしえてお金をもらう。みたいな。。。





追記:wiki SPAM対策



数字をくずして。が特許取られているとしても。身体性を利用した認証とかすればいいのかな?



「西の反対はなんでしょう?ひらがなで入力してください」



とか、この絵は女の子でしょうか?男の子でしょうか?


とか。





2005年1月5日水曜日

忘却の彼方



C++の文法が忘却の彼方になりつつあるこに気がついて鬱。


多重継承。。でぐぐりました。もうだめぽ。





投稿時の認証



http://d.hatena.ne.jp/yumeno/20050105


今年は本格的にwiki SPAM対策を考えた方がいいのかなぁ?とおもいつつ。


まぁよくあるのは崩れた文字の画像をを表示させて入力させるものとかあるし。


別に、萌えきゃらの絵をだして。このキャラの名前は?とn択問題にするもよし。





それとは別にUNIX風のugo+rw形式の認証構造を持つのも悪くはないかな?とおもいつつ。


無論これはwikiの誰でも書き換えられるの哲学に反するという指摘も有るけど。


全てのページを書き換えられる必要性はそー多くはないんじゃないかなとおもう。


たとえばサイトポリシーとか、、、。


いやね、これじつは会員制ポータルサイトというかグループウェアというか。。。


みたいなものにwikiがあると便利だよね~という話になって。。。そこからきてるん


だけどね。。。





PHPLibの認証回りをPEAR AUTHとの整合性もたせるように書き換えればかなりいけるのかなぁ。。。。


認証ルーチンを関数ひとつ追加するだけでできるようにしないといろんな


アプリケーションに追加するのは難しくなるからねぃ。





2005年1月4日火曜日

なんだかDNS



DNSがもたつくなーとおもいつつ放置してたけど。


どうもdnscacheは性能劣悪みたいだね~。


設定簡単だから気に入ってるんだけどなぁ。


ログはきでロックされてしまわないように、マルチスレッド化すればいいのかなぁ?





信頼デキナイソフトベンダ



web系に限っていえば。。。ぐぐるさまに



filetype:inc
filetype:inc~
filetype:php~

と引っかけるだけで見つかっちゃうようなのは信頼できないかと。


ってさ。。ぐぐるさまに見つかるってことはリンク張ってたんだよね??


なんでこんなもんいちちリンク張って公開してるの?????


わっけわかめ。





続信頼デキナイ



だめだ。。だんだん信頼できなくなってきた。


何とかアクセス禁止法に触れないように。ぐぐる様の結果からたどれる所にしか行ってない


けど。。。。やばーいんじゃないの?


何よ



masterpassowd.txt

とかさ。


何とかアクセス禁止法に努力義務あるのに。。。クライアントさんはちゃんと


セカンドオピニオンをつけて、義務違反しているソフトベンダを訴えたほうが身のためだとおもう。



いくら何でも自社管轄のサイトをぐぐってないのは怠慢すぎ。






2005年1月2日日曜日

テスト



うー・・・今更ながらテストケースをかいておけばよかったと思う今日この頃。


まぁ、しつこいぐらいにエラー検知ルーチン入ってるからまだ救われてる物の・・・


ほんまにうごいとるんだろうか。俺のコード。


てか、実験に使うプログラムぐらいさっくり書けるようになりたいです。はい。


そして今日もコード肥大化。





2005年1月1日土曜日

新年早々なんだか



おみくじがてらやってみました。


http://www.charamil.com/



裏:wild smart feeling
表: smart
とでました。

SMART
このタイプの特徴は・・・
●基本的に『文句言い』です。
●奔放で独創的。で、少しわがまま。
●ふやーっとモノを考えるのが好き。
●話好きだけど、お互い
 あまり詮索しすぎない距離が好き。

てなことで、劇物注意らしいです。





風邪



うーー初詣いったら予想どおり風邪をひいたようだ。あたまいて~。


神事にでるとだいたい風邪ひくのね。神事ってなんで寒いところでやるだろう。





ふとみつけてしまった




http://www.asahi.com/dokagaku/



朝日新聞と科学?????カナーリ科学面がお寒い新聞社だった記憶があるけど。


今から持ち直しさせるのかなぁ?まぁ、1プロジェクトが本社誌面に影響する


とは限らないけど。





うーん



歯磨き粉をさがしてるときは洗顔フォームが目につき。洗顔フォームを探してるときは歯磨き粉がみつかる。


きっと私の机にはトラップがあるにちがいない。