システム・PC

いろいろと

今日はOpenIDについてずっと調べ物。

OpenIDはconsumerとIdP側の二つがあるんですが、自分が興味があるのは IdP側のほうで、コードも多少書いて実験してみたり。

で、consumerは世の中にあるOpenIDでログインできるサイトが山ほどあるので、 運営者には悪いけど、実験のために使わせてもらっていたのですが、 DH鍵交換のところが、どうしても上手く動かない。

仕様書をなんども見てはみたものの、どうにもこうにも。

この鍵交換は、安全でない経路上で安全に鍵を交換するアルゴリズムなので、 IdPだけでは、デバッグは困難。

ということで、実際にconsumer側にどんな値がわたされているのか 調べないとどうにもならんということになりいろいろ調べてみたら、

Railsにプラグインがあるらしい。これなら簡単に動きそう。 しかもテンプレを自動生成してくれるプラグインもある模様。

これ幸いと入れてみたのですが、これがバージョン0.1。 しかもRailsのバージョン1がベースらしく、2だと全く動かないという。

なんか、Railsのプラグインってこんなのばっかりというイメージがありますねぇ。 なんというか

「楽しいところだけ、作って飽きたらもうやらない」

みたいな?

まぁ別にRailsに関わらず、フリー系全体がそんなプロジェクトが溢れかえって いるというイメージもありますが、なんというかRails Rails騒いでいるわりに こんなんなの?なんて思ってしまいますね。

大改良中

blogのシステムを大改良中。

というわけでテスト。

<!-- -->

HTMLやXMLのコメント中(<!-- -->)に --(ハイフン2個)を書いてはいけないのね。 知らんかった。

このページにはコメントでRDFが埋め込まれているんですが、タイトルに--とか入っていると、コメントが解除されたと判定され、RDFのXMLタグが見えまくり。

これをなんとかするにはRDFをそもそもコメントの中にいれないといいわけですが、 古いブラウザにも一応対応するため、-を&#45;と書きなおすことで対処。 めんどくさー

PantherはMacにあらず。

いろいろあってxcodeをいじり始めたのですが、MacOS X の10.3ではどうにもならないものが多すぎることが判明。

10.3系はSafariも1.Xまでしかupdateできないし、 分かってはいたけれど、10.3と10.4の間にある壁はでかいですな。

iBookではTigerが動いているけど、弊社の最速マシンはずーっとPantehr。あげるといろいろややこしいので、放置してたんですが、これを機会にTigerにあげますか。Leopardにいかないところがミソ。

%

剰余演算(割ったあまりを求める。%とかmodという演算子が使われることが多い)における、割ったあまりという定義は自明なようだけど、負の数を割ったあまりとなるとちょっとややこしい。

CやJavaですと、

-12 % 7

は-5になります。

一方perlやrubyでは

-12 % 7

は2になります。どちらも数学的には同じ剰余類になる数なので、挙動としては問題ないと思いますが、個人的には剰余の結果は0~6であって欲しいなと思います。(つまりperlやrubyのほう)

やはり代表元が0~6固定のほうが気持ちいい。

結局のところaをbで割ったあまりというのは

a = q * b + r

で 0 <= b < r となってるのが自然だと思うんですよね。負の時だけ rの範囲が変わるのはあまり気持ちよくありませんし、実際使用する場合も条件文を入れないといけないから扱いにくいかなぁと。

## % 7 (C)# % 7 (perl)
922
811
700
666
555
444
333
222
111
000
-1-16
-2-25
-3-34
-4-43


何故ならもしC言語での仕様だとすると7で割った余りは大きい数からカウントダウンしていくと、6,5,4,3,2,1,0,6,5,4,.. の繰り返しで続いてくるのに、0のところで不連続となってしまいます。ここは6,5,4,3,... とカウントダウンしていってくれたほうが便利です。

ちなみに割った余りというのは整数(特に正の数の場合)だから自明なわけで、ガウス整数とか二次体の整数とか考えると、rの範囲とかがすごく複雑になっちゃいますね。 負の数に拡張する比じゃない?

メモ)SafariでJavaScriptのデバッグをする

ターミナルから以下のコマンドを実行

defaults write com.apple.Safari includeDebugMenu 1

Windows版のやりかたはしらん

2.0.2化完了

今回移行のトラブルのポイントはRails1.Xでサポートされていたpaginateというメソッドが使えなくなったためのようです。

これは標準でscaffoldを作成すると、使うメソッドなので、過去にscaffoldでお気楽に作ったページが全部アウトだったわけです。

まぁたしかにdeprecatedとかでてたけど、こうもバッサリなくなっているとは知らなんだ。

同様の機能を有する(らしい)will_paginateというのをプラグインで入れればいいのですが、これがコントローラのメソッドじゃなく、モデルへメソッドを追加するので、バリバリカスタマイズしてると書き換え箇所は結構多いです。(ついでいうと微妙にポリシーが違う)

テンプレートから簡単に生成できることがウリなのに、ひとつ前のバージョンで生成されたものがアウトで、しかも書き直しが必要というのはどうよ?と思うのは私だけでしょうか?

羽田空港でイーモバイル中

ちょっと前に契約したD02HWとThinkPad(not レノボ)を使って通信中。

下り1.9Mには十分ご満足

しかしThinkPadは名機ですね。

しばらく会社の本棚の肥やしになっていたのですが、やはり使いやすい。 壊れるまで愛用してみようかしら?

PC昇天

メインで使っているAMD64のPCが昇天。もういったい何度目でしょ?w

とにかく動作が不安定で、Windowsも途中でコケルし、BIOSビー、ビーとBeep音が鳴って起動しなくなることもあります。

というわけでケースを開けていつも通りコンデンサを確認。目視では問題ないっぽいです。 ファンも回っているので熱の問題でもない模様。さて、これはいったいどこに問題が?

とネットで調べると、このBeep音の症状はメモリらしいです。

そこで試しにまず起動したときにメモリチェッカを起動してみました。 するとやはり途中でハングアップします。

次にメモリを全部抜いて電源を入れてみると、ビー、ビー、ビーと同じように断続的に音がなります。これはやはりメモリに原因がありそうですね。

そこで、メモリを別なスロットに指し直してみたら、問題なく起動。メモリチェッカも通ったし、Windowsもめでたく起動しました。

どうも接触不良かなんかだった模様です。

さて、このケースですが、このPCを作るとき、大きいケースは勘弁ということで、かなりコンパクトにしたんですが、これが悪かったようで、中の配線は超キツキツ。 そんなんで当然メモリにもケーブルが当たっており、構造的に問題があるようです。というわけで、本日アキバでちょっと大きめのケースを購入してきました。 こちらのケースに全部乗せ換えてこれでしばらくは安泰でしょう。 そして、その結果、ケースが余ったわけですが、現在我が家では、メモリとグラボとMBと電源とキーボードとマウスとモニタが余ってて、ついにもう一個PCがくめてしまう状態になってしまいました。さて、どうするか? 個人的にはこれ以上PCがあってもしょうがないので、捨てたい気分ですが

Mongrel + RoRでこまった(つづき

ruby18を pthreadオプションをつけてコンパイルしたらRoRがcore連発。

うほっ