メモの日々


2005年05月01日(日) [長年日記]

  • ずっとFFTをやっている。算術士になれたけど、遅い。

[fs] 31位 時価総額7億7420万 トップと62fp差

7節は84fpとなかなか。ダメだと思っていたのだけれどキャプテンアラウージョの活躍で踏みとどまれた。31位なんてすごいなあ。トップの留萌蹴球隊とは差が開いているけど、2位となら31fp差しかない。商品ゲットは夢ではない。

次節。無難に実力者を揃えたつもりだけれど、独走許すまじで鹿島の選手を使えない(使わないだけだけど)のが辛い。

GK川口 能活磐田7730万ジュビロのDF陣で信頼できるのは川口だけ
DF斉藤 俊秀清水6300万今年は堅守
DF駒野 友一広島5180万調子いいみたいなので
DF金沢 浄F東京8470万連敗中だがそろそろ勝つはず
MF三都主 アレサンドロ浦和5560万勝たないと
MF阿部 勇樹千葉6220万やっぱ阿部に戻す
MF遠藤 保仁(C)G大阪1億260万調子出てきた。頼みます
MF森崎 和幸広島4480万依然としてボーナス稼いでる
MFゼ カルロスC大阪3680万鹿島をやっつけろ
FWアラウージョG大阪7830万ガンバの攻撃を支えてる。大黒に負けんな
FWハース千葉5110万チャンスメイクするしシュートも打つ

[security][web] 「クロスサイトリクエストフォージェリ(CSRF)の正しい対策方法」 (高木浩光@自宅の日記)

高木さんによるCSRF対策の解説をメモ。

[security][web] 「セッション固定攻撃」 (鳩丸ぐろっさり)

上の高木さんの日記の脚注にあった「Session Fixation攻撃」というのを知らなかったので検索して見つかったページをメモ。セッションIDの管理に問題があると成立してしまうようだ。

ところが何を思ったものか、世の中にはログインする前にセッション ID を発行するという訳の分からないシステムが存在していて、ログイン時には「正しい ID・パスワードと共にセッション ID が送られてきたら、そのセッションをログイン済みとして処理する」という動作をしていることがあります。これにより、以下のような事態が発生します。

  1. 攻撃者がシステムにアクセスし、セッション ID を取得する。ログインしていないがセッション ID は発行される。
  2. 攻撃者は、正規ユーザがそのセッション ID を使ってログインするように仕向ける
  3. 正規ユーザがそのセッション ID でログインすると、そのセッションは「ログイン済み」となる

ミドルウェアが提供する認証機能にバグがあったり使い方を間違えることで発生するのかな。なにやらPHPで起こりがちなようなので気をつけないと。

やること

  • リンク元のスリム化
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • オーブンレンジ用べんり棚
  • ブラウンの安い電動歯ブラシ買う
  • 蛍光灯を捨てる
  • 健康保険料
  • 定期券

2005年05月07日(土) [長年日記]

  • GWだが書くことがない。

[php][security] 「PHP と Web アプリケーションのセキュリティについてのメモ」

PHPでのセキュリティ上の注意点がまとまっているページがあったのでメモ。star_dust の書斎より。

[fs] 33位 時価総額8億1050万 トップと65fp差

9節は93fpで良かったけれど順位は下がってしまった。怪我で出場しなかった金沢を使ってしまったのが悔やまれる。キャプテン遠藤駒野森崎が10fpオーバー。

次。ファンタジーサッカー対象外の試合が挟まると選ぶの難しいなあ。結果としてあまりメンバー変わらなかった。川口→吉原、金沢→相馬、三都主→長橋、ゼカルロス→名波と変えた。新潟エジミウソン、FC東京ジャーンは使おうとしてやっぱりやめたので活躍しないで欲しい。順位が上だと冒険できなくなるなあ。

GK吉原 慎也川崎F3710万川口でもいいんだが三浦淳を恐れて交代
DF斉藤 俊秀清水6300万山西にも惹かれたがまだ我慢
DF駒野 友一広島5960万調子よいから
DF相馬 崇人東京V1010万調子いまいちな感じだが期待を込めて
MF長橋 康弘川崎F3060万ボーナス稼いでいることを知ったので
MF名波 浩磐田5620万前節出ておらず出場するのかちと心配
MF阿部 勇樹千葉6220万今度こそレッズに勝つのだ
MF遠藤 保仁(C)G大阪1億1290万名古屋DF陣に怪我人が多いので
MF森崎 和幸広島4480万依然としてボーナス稼いでる
FWアラウージョG大阪9000万怪我が心配だが出るよな
FWハース千葉5110万エジミウソンより波がないと思ったから

やること

  • リンク元のスリム化
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • オーブンレンジ用べんり棚
  • ブラウンの安い電動歯ブラシ買う
  • 蛍光灯を捨てる
  • 定期券

2005年05月10日(火) [長年日記]

  • GW中にFFTクリアした。マルチエンディングではないらしい。後半は強い仲間が加わり楽勝になってしまうのがちょっとね。ダンジョンとかは行っていない。
  • 結局PHPのコーディングはしないかもしれぬ。テストして問題点を指摘するだけでいいみたい。
  • 初めてMySQLに触った。

[web][howto] Apache2でリバースプロキシ

リバースプロキシの設定方法を調べたので一応メモ。マニュアルだとここ。

ProxyPassディレクティブとProxyPassReverseディレクティブで設定すればよい。

ここの説明も見たのでメモ。

やること

  • リンク元のスリム化
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • オーブンレンジ用べんり棚
  • ブラウンの安い電動歯ブラシ買う
  • 蛍光灯を捨てる

2005年05月13日(金) [長年日記]

[mobile] 「Mobile Utility」

FOMAで動くSSHクライアントがあったのでメモ。まりりWebより。無償なのはβ版だけなのかな。

iアプリをダウンロードしたサーバが中継してSSH通信をする。

iアプリで通信を行う場合、そのセキュリティの1つとしてダウンロードしたサーバのみとしか通信が出来ないという制限があります。また、通信はHTTP又はHTTPSに限られており、直接SSHプロトコルを通す事は出来ません。

そこでMobile Utilityでは、ダウンロードしたサーバを中継サーバとし、その中継サーバを介す事で携帯電話とリモートコンピュータ上の通信を実現しています。

[fs] はてなダイアリーへ

最近書くことがあまりなくて日記の話題がファンタジーサッカーばかりになるのが気に入らないので、ファンタジーサッカー関連ははてなダイアリーに書くことにしてみます。

やること

  • リンク元のスリム化
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • オーブンレンジ用べんり棚
  • ブラウンの安い電動歯ブラシ買う
  • 蛍光灯を捨てる

2005年05月16日(月) [長年日記]

[howto] SSHによるポートフォワーディング (2)

以前にメモしたのとは逆向きのトンネルが必要になったのでメモ。今回は、

ホストA -----> ホストB

とホスト2台だけで考える(3台あっても一緒だと思うけど、環境がないので試せない)。で、ホストAからホストBへは接続できるが、ホストBからホストAへは接続できないとする。

このとき、次のようにすればホストBからホストAへ接続できるようになる。

ホストAにて、

% ssh -R 10022:localhost:22 ホストB

を実行してホストBにログインしておく。すると、その後ホストBにて

% ssh -p 10022 127.0.0.1

とすればホストAのSSHサービスへ接続でき、ログイン可能になる。

バックドアになりかねないので運用には注意。

やること

  • リンク元のスリム化
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • オーブンレンジ用べんり棚
  • ブラウンの安い電動歯ブラシ買う
  • 蛍光灯を捨てる

2005年05月23日(月) [長年日記]

  • 最近はテストとか環境設定とかばかりしている。
  • テストしているプログラムはバグだらけでパフォーマンスもかなり悪い。実装に問題があるわけだけれど、実装のお願いの仕方にも大いに問題がある感じ。

[shell] シェルをviモードで使うようにする

シェルのコマンドライン編集にはemacsモードを使っていたが、emacs使いではないのでviモードに変更してみた(viが得意なわけでもないのだけれど)。

bashの場合は .inputrc ファイルに

set editing-mode vi

と書き、tcshの場合は .cshrc ファイルに

bindkey -v

と書けばいいみたい。

[java] 旧バージョンのJVMでも動くようにコンパイルする

J2SE 5.0 環境でコンパイルしたClassファイルをJRE 1.4 環境へ持っていったら動かなかった。

javacのマニュアルを見ると

javac -target 1.4 Example.java

のようにすればよさそうだがこれだと

javac: ターゲットリリース 1.4 がデフォルトのソースリリース 1.5 と競合しています。

というエラーになってしまった。そこで

javac -target 1.4 -source 1.4 Example.java

と指定したらコンパイルでき、生成されたClassファイルはJRE 1.4 環境でも動作した。

でも、マニュアルを読んでいると-bootclasspath オプションと -extdirs オプションも必要そうなことが書いてある。ブートクラスパスと拡張機能ディレクトリってなんだ?

[java] ブートストラップクラスと拡張機能クラス

についてはクラスの検索方法というドキュメントに説明があった。

ブートストラップクラスは、Java 2 プラットフォームを実装しているクラスです。ブートストラップクラスは、jre/lib ディレクトリの rt.jar と他のいくつかの JAR ファイルに格納されています。これらのアーカイブは、システムプロパティ sun.boot.class.path に格納されているブートストラップクラスパスの値によって指定されます。このシステムプロパティは参照専用なので、直接修正しないでください。

拡張機能クラスは、Java プラットフォームを拡張するクラスです。拡張機能ディレクトリ jre/lib/ext 内の .jar ファイルはすべて拡張機能と見なされ、Java 拡張機能フレームワークを使ってロードされます。拡張機能ディレクトリ内でどこにも属さないクラスファイルは、見つけることができません。これらのファイルは、.jar ファイル (または .zip ファイル) 内に含まれている必要があります。拡張機能ディレクトリの位置を変更するためのオプションはありません。

ふむ。

[java] -bootclasspath オプションと -extdirs オプションの使いどころ

まだよくわかんないんだけど。ブートクラスパスはブートストラップクラスの位置を指定するパス、拡張機能ディレクトリは拡張機能クラスが存在するディレクトリ、ということだろう。

で、J2SEのバージョンアップに伴ってブートストラップクラスや拡張機能クラスの仕様が変わっている可能性があって旧バージョン用のプログラムがコンパイルできないことがあるからその場合はjavacの -bootclasspath オプションや -extdirs オプションを使って旧J2SEに付属しているクラスを指定する、と理解すればいいのかと思ったけど、「機能リリースおよびメジャーリリース (1.3.0、1.4.0、5.0 など) では、ソースレベルの上位互換性は保証されるが、下位互換性は保証されない」ということでソースレベルの上位互換性が保証されるならそういうことではないのか。

もう一度javacのマニュアルを見直す。

Java 2 SDK の javac は、デフォルトでは、Java 2 SDK のブートストラップクラスに対してコンパイルを行うので、Java 2 SDK ではなく JDK 1.4 のブートストラップクラスに対してコンパイルを行うように指定する必要があります。これは、-bootclasspath および -extdirs を使って指定します。この指定を行わないと、1.4 VM には存在しない Java 2 プラットフォーム API に対応したコンパイルが行われるため、プログラムの実行時に障害が発生することがあります。

「実行時に障害」と言っているのでバイナリの互換性のことを言っているのだろう。-target オプションで1.4向けのバイナリを作るように指定しても、それだけでは1.4に付属しているブートストラップクラスや拡張機能クラスと組み合わせたときに正しく動作しないことがあるってことだなあ。なんでそうなるのだ?わからん。

とにかく、マニュアルを読むと上に書いたような

javac -target 1.4 -source 1.4 Example.java

じゃダメで

javac -target 1.4 -source 1.4 -bootclasspath jdk1.4.2/lib/classes.zip Example.java

としなければいけないように思われる。でも単にこれだと

致命的エラー: クラスパスまたはブートクラスパスでパッケージ java.lang を検出できません。

とエラーになってしまいコンパイルできない。コンパイルするにはJDK1.4.2に付属するclasses.zipが必要そうだ。そうだとするとJ2SE5.0だけでは1.4向けのバイナリは作れないってことになってしまう。

5.0と1.4の両方の環境をいじれれば調べられそうだけれど、手元にはないからよくわからないまま終わり。

[java] -bootclasspath オプションと -extdirs オプションの使いどころ (2)

単純にこういうことかなあと思った。

「-target 1.4 -source 1.4」というオプションは付けるが「-bootclasspath」オプションは付けずにコンパイルすると、ソース中に5.0で新たに追加されたブートストラップクラスを利用している箇所があってもコンパイルできてしまうと。この場合、1.4環境にClassファイルを持っていくと動かないと。だから、5.0で追加されたブートストラップクラスや拡張機能クラスを使っていないことが分かっている場合は「-bootclasspath」オプションは付けなくても大丈夫と。

試せてないから分からないけど、正しい気がする。

やること

  • リンク元のスリム化
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • オーブンレンジ用べんり棚
  • ブラウンの安い電動歯ブラシ買う
  • 蛍光灯を捨てる

2005年05月24日(火) [長年日記]

  • 職場の自販機で売っている水がCRYSTAL GEYSERからVittelに変わってた。CRYSTAL GEYSER大人気でよく売り切れになっていたのに、なんで変えたのかな。
  • 「品質向上」のための作業は、むしろ消費エネルギー量を増加させる方向に働くと思うのです。

[soft] やよいの青色申告05新バージョン

が少し前に送られてきた。買ったやつはVer.9.0.1で、その後に「確定申告版」として送られてきたのがVer.9.1.1で、今回来たのがVer.9.2.1となっていた。

Ver.9.2.1は「データコンバート機能付き」とのことだが、バージョンアップした方がいいのだろうか。何が変わったのかがはっきり書かれた資料を見たいが見当たらない。ウェブサイトでも見つけられない。

[book] 陰摩羅鬼の瑕 (京極夏彦)

陰摩羅鬼の瑕(おんもらきのきず) (講談社ノベルス)(京極 夏彦) 少し前に読了。事件の謎に関しては面白みがなかったけれど、京極堂が語る林羅山の話などはチョット面白かった。「神も仏も、幽霊も祟りも、何もかも ― そんなものは全部嘘です」という台詞が気に入った。この当然の事実は学校で教えるべきだ。3.5点。

[howto] 「Screen Glossary」

ScreenについてのWikiがあったのでなんとなくメモ。

やること

  • リンク元のスリム化
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • オーブンレンジ用べんり棚
  • ブラウンの安い電動歯ブラシ買う
  • 蛍光灯を捨てる

2005年05月25日(水) [長年日記]

  • 今日はたくさん作業をしたけど何も成果がなかった。失敗失敗。
  • FedoraとかPHPとかMySQLとか慣れないものばかりを扱わねばならない。慣れないものばかりのおれが悪い。

[unix][windows] coLinuxをインストール(できた)

3月はうまくいかなかったけど、今日はできた。Windows 2000へcoLinux0.6.2をインストールし、「coLinux 用 インストーラ」を使わせてもらってFedora Core 3を起動できるようにした。

Fedoraのイメージをインストール中に、2回Windowsが固まった。原因は分からない。

「coLinux 用インストーラ」を使ってFedoraをインストールするときは、Vine Linuxの Vine\base\stage2.img が必要になるのね。これが分からず結構悩んだ(ちゃんと書いてあるんだけど)。

[unix] FedoraのMySQLはバージョン3系みたい

MySQLのことはよく知らないんだけど、今はバージョン5系の開発が進んでいるようだ。なのにFedoraのパッケージにはバージョン3系しか見当たらない。で、Fedoraでバージョン4系のMySQLをインストールする方法のようなものを見つけたのでメモ。

[unix][php] FedoraのPHPでShift-JISでの出力ができない

PHPのソースにはEUCが使われているがHTMLに変換したときにはShift-JISになって欲しい。自分でビルドしたPHPではそれができるのだがFedoraのパッケージにあるPHPだとその動作ができない。設定に誤りがあるのだと思ってphp.iniのmbstring.〜の所を色々変えて試したけど、どう設定してもEUCのまま出力されてしまいShift-JISに変換されなかった。FedoraのパッケージのPHPではできない、という結論で正しいのだろうか。

(追記)

正しくなかった。Fedoraのパッケージでも文字コードの変換はできた。

phpinfo()を使ってPHPの情報を表示してみると、変換できるPHPはconfigureのオプションが「--enable-mbstring」となっていたがFedoraパッケージのPHPは「--enable-mbstring=shared」となっていた。また、変換できる方にはmbstringの情報が表示されるがFedoraの方は表示されなかった。どうやらmbstringという機能を使うには別のライブラリが必要だということのようだ。

yum list を実行してFedoraのPHPパッケージの一覧を見直すと、ちゃんとphp-mbstring.i386というパッケージがあった。これをインストールしたら文字コードの変換ができるようになった。

やること

  • リンク元のスリム化
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • オーブンレンジ用べんり棚
  • ブラウンの安い電動歯ブラシ買う
  • 蛍光灯を捨てる

2005年05月26日(木) [長年日記]

[web][windows][soft] ieHTTPHeadersを使った

Firefoxでは正しく動くのにIEでは正しく動かない、しかもプロトコルはHTTPSなのでパケットをキャプチャしても調べられない、という状況になったので、去年メモしたieHTTPHeadersを使おうとした。

が、インストールしてもIEのメニューにieHTTPHeadersが表示されない。ドキュメントに

Troubleshooting

I've had reports about installation problems, and more specifically, there is no ieHTTPHeaders options in View\Explorer Bar. This seems to be related to the registration component for the explorer bars (which I have no control over). The following steps seems to work around the problem:

1. Uninstall ieHTTPHeaders
2. Reboot Windows (sorry)
3. Re-install ieHTTPHeaders

とあったので、ieHTTPHeadersをアンインストールしてWindowsを再起動してから再びieHTTPHeadersをインストールしてみたけど、やはりメニューに表示されない。

仕方ないのでSくんのPCにインストールしてもらった。すると、メニューにieHTTPHeadersは表示されるが使おうとするとIEのウィンドウが閉じてしまう、というおかしな症状になってしまった。うーん、Sくんごめんなさい。

で、試しにおれのPCでieHTTPHeadersをインストールしたままWindowsを再起動してみたら、メニューに表示されるようになり使えるようになった。

HTTPSでもキャプチャできるので便利。

やること

  • リンク元のスリム化
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • オーブンレンジ用べんり棚
  • ブラウンの安い電動歯ブラシ買う
  • 蛍光灯を捨てる
  • 家賃
  • 健康保険料

2005年05月27日(金) [長年日記]

  • パスワードを表示してしまうシステムに違和感を持たない人が後を絶たない。
  • ちょっと違うか。管理者なら他人のパスワードを見れても問題ないと考える人が後を絶たない、だ。

[howto][db] 2つ目のMySQLインストール時のmysql_install_dbの実行

既にMySQLがインストールされているサーバへ別バージョンのMySQLをインストールしていた。2つ目のMySQLに対しmysql_install_dbコマンドを実行しても必要なテーブルが作成されず困った。

マニュアルに、mysql_install_db の実行に関する問題とう章があるがここにある症状とは違う。

/etc/my.cnfが存在しているとmysql_install_db(あるいはこのスクリプトから起動されるプログラム)がこのファイルを読み込んでしまい、うまく動作しないようだ。一旦/etc/my.cnfのファイル名を変更することでmysql_install_dbの実行がうまくいった。

mysql_install_dbに与える引数で読み込むmy.cnfファイルを制御できるのかもしれないけど、分からなかった。

あと、複数MySQLの実行に関するウェブページをちょっとメモ。

やること

  • リンク元のスリム化
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • オーブンレンジ用べんり棚
  • ブラウンの安い電動歯ブラシ買う
  • 蛍光灯を捨てる
  • 家賃
  • 健康保険料

2005年05月28日(土) [長年日記]

[javascript] 「[javascript]nazono」

自作のJavaScriptライブラリを公開してくれている。JavaScript使う予定なのでちょっとメモ。ASIPの徒然なるままにより。

[web] 「webアプリケーションテストツール seleniumがヤバすぎる」 (2nd life)

テストツールSeleniumを紹介している記事をメモ。導入してみたいなあ。

[life] 図書館へ行く

  • 漂流街 (馳星周)
  • 新ゴーマニズム宣言11 (小林よしのり)
  • サッカーマガジン 2005.4.19 「勝った。だから考えよう日本代表のこと。」

を借りた。ウィルコム端末値段変わらず。

やること

  • リンク元のスリム化
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • オーブンレンジ用べんり棚
  • ブラウンの安い電動歯ブラシ買う
  • 蛍光灯を捨てる
  • 家賃
  • 健康保険料

2005年05月29日(日) [長年日記]

[javascript] JavaScriptで定期的にHTMLを書き換える

2年ぶりにJavaScriptを使った。今回は、JavaScriptを使ってHTMLの内容を定期的に書き換える処理を行いたい。

JavaScriptのことは何も覚えていないので、まず参考になるサイトを見つける必要がある。JavaScriptの言語仕様やAPIについては

を見るのがよさそう。HTMLにJavaScriptをどのように埋め込めばいいのかについてはHTMLの仕様書内に説明があった。

HTMLの書き換えはDOMを使えばできそうで、仕様書内の

を参照すればよさそう。あとここも見た。

JavaScriptでのタイマー処理は標準では規定されていないようで、

を参照した。

で、出来上がったのはこれ。1秒毎にテーブルの内容を書き換えるだけ。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja-JP">
<head>
<title>1秒毎にテーブルの内容を書き換える</title>
<link rel="stylesheet" href="/kenichi.css" type="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript">
<!-- JavaScript start
var timerId;

function init() {
  timerId = setTimeout("modifyTable()", 1000);
}

function finish() {
  clearTimeout(timerId);
}

function modifyTable() {
  var myTable = document.getElementById("myTable");
  var cell = myTable.rows.item(0).cells.item(1);

  var v = cell.firstChild.nodeValue;
  cell.firstChild.nodeValue = parseInt(v) + 1;

  timerId = setTimeout("modifyTable()", 1000);
}
// JavaScript end -->
</script>
</head>
<body onload="init()" onunload="finish()">
<h1>1秒毎にテーブルの内容を書き換える</h1>
<table id="myTable">
  <tr>
    <td>Time</td><td>0</td>
  </tr>
</table>
</body>
</html>

やること

  • リンク元のスリム化
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • オーブンレンジ用べんり棚
  • ブラウンの安い電動歯ブラシ買う
  • 蛍光灯を捨てる
  • 家賃
  • 健康保険料

2005年05月30日(月) [長年日記]

[web][javascript] XMLHttpRequestリンク集

XMLHttpRequestを使ってみた。サイトをいくつかメモ。

リファレンス

解説

(追記)

  • Ajax (そめえだ.blog Memo) Ajax関連のリンク集

やること

  • リンク元のスリム化
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • オーブンレンジ用べんり棚
  • ブラウンの安い電動歯ブラシ買う
  • 蛍光灯を捨てる
  • 家賃
  • 健康保険料