2005年1月アーカイブ

RADEON 9600XT購入

前々からどうもGeForce4 Ti4200のカードがおかしいのかドライバがおかしいのか、OS自体からコケてしまうようなことが多かった。思わぬ臨時収入があったので、この際思い切ってグラフィックボードを買い換えることにした。うはあ、へへへ、金ないのに。BF1942しかやらないからGeForce4 Ti4200でも十分なのに。不具合なんか金で返せるんだっ!どうだ、まいったか>不具合

まぁそんなわけで、Sapphire RADEON 9600XTを購入。田舎に住んでるもので結構高かった。そんなことはいい、要するに世の中金なんだ。ってことで、早速家に持ち帰りPCに装着、OS再インスコ決行。各種開発環境やらドライバやらソフトやら入れまくって、5時間くらいで再インスコほぼ完了。ささ、ベンチだベンチ。金でベンチスコアも解決だっ。

ってことで、手始めにHDBENCHを実行。・・・下がってる(ぉ) まぁいい、今のVGAは3Dがすべてだ。3DMark 2001SE, 03, 05, FFBenchv2, v3を実行。どうだ、このスコア、まいったか!!・・・・ってあんま変わらん(を) というか、3DMark 05はウワサ通りクソ重いんすが。まぁGeForce4 Ti4200からRADEON 9600XTだから現実はそんなもんか。そんなに快適な環境ほしけりゃ、もっとかねだしてRADEON 9800XTかえってことですな。やっぱ世の中金だ。

NVIDIAと比較していろが全然違うことに驚き、CATALYSTからDNAにドライバを変えてさらにコントラストが全然違うことに驚き、そして何よりお金がすべてであるということを知って、ちょっと大人になった(かもしれない)週末でした。

音声認識+アドレス帳

よく考えたら、ケータイで音声認識利用してアドレス帳を呼び出すだけのVアプリがないわな。まぁ端末自身で対応してたりするやつもあるから、あえて作る必要もないのかなぁ。

実用面を考えると、わざわざVアプリを起動してまで使おうと思ってもらえるだけのアプリにする必要がある。なので、起動早く・起動後即認識モード・認識結果の画面から簡単にメール送信or電話かける操作ができる、というかなりシンプルなアプリでいいんだろうか。

赤外線通信はプロトコルなどを考えるのがめんどいのでパスするとして、カメラやデータフォルダ・アドレス帳・メールフォルダ・音声認識あたりの拡張APIをうまく組み合わせれば、まだまだおもしろそうなアプリを作れるような気がする。そんな可能性があることに気づくのが遅すぎだとかいわないでね。。拡張API自体は1年以上前に公開されてるし。

jpgraph

●公式
http://www.aditus.nu/jpgraph/
取ってきて解凍、srcにあるファイル一式(Exampleを除く)を/usr/local/lib/phpにでもコピっとけばいい。
Exampleにあるファイルは「require '../hogehoge'」となってるので、パス指定間違えないように。
Apacheを通してWeb経由でPHPファイルサンプルを動かせば色々みれる。

●日本語が化ける
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
とかのフォント指定を
$graph->xaxis->title->SetFont(FF_GOTHIC,FS_NORMAL);
と変更、でもエラーはいたのでソースを調べていくと

jpgraph.php:56
-DEFINE('TTF_DIR','/usr/X11R6/lib/X11/fonts/truetype/');
+DEFINE('TTF_DIR','/usr/X11R6/lib/X11/fonts/TrueType/');
VineLinux3.1だからなのか知らんけどディレクトリ名が違った。

jpgraph.php:2729
-$f = MBTTF_DIR.$f;
+$f = TTF_DIR.$f;
MBTTF_DIRなんていう定義はどこにも見あたらなかったんですが・・・

jpg-config.inc:77あたり
-DEFINE('MINCHO_TTF_FONT','ipam.ttf');
+DEFINE('MINCHO_TTF_FONT','kochi-mincho-subst.ttf');
-DEFINE('GOTHIC_TTF_FONT','ipag.ttf');
+DEFINE('GOTHIC_TTF_FONT','kochi-gothic-subst.ttf');
そんなttfフォント名なかったし入れるのもめんどかったので、既存のものを適当にマップ

jpgraph.php:2699
-FF_MINCHO => array(FS_NORMAL=>PMINCHO_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' )
FF_MINCHOの定義が2つあるんですが・・・後にあるやつの設定は明らかにおかしい、ってことで後にあるやつをコメントアウト、

で、やっとエラーがとれた万歳。
でも、苦労の甲斐なく変更しても日本語は化けたままですた、もう日本語あきらめ。

参考
http://tec-tech.org/index.php?PHP%2FJpgraph%2F%A5%D5%A5%A9%A5%F3%A5%C8%A4%CE%C4%C9%B2%C3

PHPと文字コード

PHPは標準環境として、自動文字コード変換機能がある。てけとーにechoとかしとけば、実際の出力は文字コード変換されたものとなっているというものっぽい。便利なのかありがた親切なのかよくわかりません。

  • mb_http_output -- 出力文字コード指定。'pass'を指定すると変換しない。
  • ob_start("mb_output_handler") -- mt***の関数をオーバーロードして文字コード自動変換するらしい。
  • mb_internal_encoding -- PHPスクリプト自体の内部文字コードを指定するらしい。
  • mb_convert_encoding -- 文字コード変換した文字列を返す。
一回ちゃんとドキュメント読まないとダメかな。

Movable Typeデータベース内検索

このMovable TypeはMySQLデータベースで動かされているんですが、Movable Type標準でついてくる検索スクリプト「mt-search.cgi」で検索すると、せっかくのRDBMSであるのにもかかわらずあり得ないほど検索に時間がかかるんですよね。というわけで、検索スクリプト作ってみました。

作ってみた感想としては、うーんうーん文字コードに悩まされるというか。。PHPはあまり使ったことがないのでわかんないことだらけです。まぁおかげで早い検索スクリプトができたんでよしとしましょう。あ、仕様で最大15件くらいまでしかヒットしないように制限してますのであしからず。

サイト内検索としては、Namazuがとても有名ですが、NamazuだとRDBMSとの連携が全くできないんですよねぇ。RDBMSの中でtextやvarcharとして登録されている項目を日本語検索できる用に拡張したNamazu用のモジュールなんてないんやろか、と贅沢を言ってみる。。

パスワード地獄の回避法ないの?


「パスワード地獄」でGoogle検索するといくつかヒットしますね、たいていは2つの意味に使われているようです。
  • 管理しなきゃいけないユーザIDとパスワードの対が多くなって管理できなくなること。
  • ドラクエI/IIに代表される、復活の呪文の呪縛と復活の呪文のメモ取り間違いによるプレイデータ損失
で、前者をさらに分けると以下の2つになります。
  • IDとパスの対が膨大になり記憶しきれなくなること。
  • IDやパスに使える文字数や文字の種類(数字・大文字小文字・全角半角・記号など)が制約されていること。
ここでは前者の前者、つまりIDとパスの対が膨大で管理しきれなくなることについて語ろうかと。

EZTVで、銀行のキャッシュカード盗難に関する特集がされてたんですね。ゴルフ場で貴重品を預けていた、貴重品入れは暗証番号で鍵をかける、マスターキーがあれば暗証番号がわかる、中あけてキャッシュカードを取り出し偽造コピーを作って元に戻しておく、貴重品入れの暗証番号と銀行のATMで使える暗証番号を同じにしている人が多いためそのまま引き出せる、そんな話です。暗証番号の管理に落ち度があると銀行が補償に応じてくれないという規定だそうですが、暗証番号やパスワードみたいなものはもはや管理しきれないくらいに多いですよね、大変です。

パスワード地獄から逃れるためにはどうすればいいか、その問いに対する意見の記事がありました。([@IT] パスワード地獄から解放される日) 2002年頃の流れとして、シングルサインオンを紹介しています。つまり、どでかいすべての認証を行う専門の中央サーバをどっかにおいて、認証を課したいサイトはその専門の中央サーバに認証を委託し、OKかダメかの結果を通知してもらう、てなもんです。有名どころでは、Microsoftの「.NET Passport」ですね、「Liberty Alliance」の方はあまり広まっていないと思います。

.NET Passportは、MSNメッセのアカウントからクレジットカード決済まですべて、メールアドレスとパスワードだけで管理してしまおうというある意味トンデモなシステムでした。もう過去形でいいでしょう。鳴り物入りで登場したんですが、ご存じの通り、野望を縮小しました。([ITmediaニュース] “Webのパスポート”になれなかったMS Passport) 一元管理するという思想には無理があったようで。

で、私が注目するパスワード地獄の回避方法は、指紋認証ですね。Microsoftが指紋認証付きマウスを販売したりしてますが、これまた指紋だけですべてのIDとパスワードの認証をかいくぐってしまうというのも、やはり抵抗があります。そこで、以下のようなものを提案してみようかと思います。
  • 「パスワードジェネレータ」 --- 認証を課したい側が指定した文字列(固定)をA, 指紋から生成した十分に長いビット列をB, AとBを入力とし十分に長いパスワードCをハッシュとして生成する機器。
  • パスワードジェネレータを携帯し、認証が必要なサイトでパスワードを入力する際にパスワードジェネレータで生成したパスワードを入力する。
このようにした場合の利点など。
  • Aがサイトごとに異なればCも変わるので、サイトごとにCがかぶる心配がない。
  • ハッシュ値なのでCからBがばれることがない、ジェネレート自体はネットワークに依存しないのでBが漏れる心配もない。
  • AとA'を提示すれば、CをC'に変更する(パスワードの変更)が可能。
  • Cの転送方法は、SSLなど他の技術と組み併せるべし。
今のところ思い浮かぶ欠点
  • 指紋が漏れると大変。指紋は日常生活の中であらゆる場所にタンパク質として残ってしまうので、けっこう漏れやすい。
考えてみるとこれ結構やっかいだなぁ。AはユーザIDとして各ユーザが管理すべき?でもそれだと結局パスワード管理しないといけないのと変わんないしなぁ。パスワードジェネレータに個別IDのxを割り振り、a, b, xからcを生成すればいい?でも、パスワードジェネレータ自体が盗難されたら意味ないしなぁ。

こうして、らるるの週末は過ぎてゆくのでした。

UserAgent: ichiro/1.0 (ichiro@nttr.co.jp)

http://crenazumina.picolix.jp/archives/000239.html

ichiro は,NTTレゾナント社が開発している,新しい検索サービス用の情報収集システムです.マルチメディア情報の検索も行うため,画像等の収集もさせて頂いています.

先日まで,gazz/5.0 を名乗っておりましたが,運営主体の移動により,ichiro/1.0 に名前を変更させて頂きました.

gooラボがらみという噂も。

Win32+ActivePerl+MySQL

Windows上から別マシンで動いているMySQLにアクセスする場合、ActivePerlではDBI/DBD-mysqlモジュールが提供されてる。
ppmで「install DBI, install DBD-mysql」するだけ。
リモートから操作する場合、MySQL上であらかじめ「grant all privileges on *.* to rarul@192.168.1.2 identified by 'passwd' ;」とかしてリモートアクセス用ユーザを追加すること。

Excelとかから使うならMyODBCがいいですな。

Vine Linux 3.1 CUPS設定メモ

[VineLinux.org] CUPSによる印刷環境の設定方法と使用方法
/etc/cupsd.confが設定ファイル、
Apache風の記述によりWeb形式で制御できる、
http://localhost:631/でアクセス。
他のLANマシンからアクセスする場合は、Allow From箇所を変更

かつてはうまく印刷できてたんだけど、Vinelinuxのapt-getでいくつかのモジュールをアップデートした結果、印刷できなくなってしまった模様。印刷できたのは2004年11月頃、んで今2005年1月やってできんかった。環境は、Samba経由でWinマシンからのみLinuxマシンにつながれたdj955cプリンタ(USB)を使うというもの。細かい初期設定はVinelinuxのドキュメントページへ。

http://lists.samba.org/archive/samba/2003-August/072289.html
print_job: Unsupported format 'application/octet-stream'!
Hint: Do you have the raw file printing rules enabled?

と/var/log/cups/error_logに出た場合、/etc/cups/mime.typeのapplication/octet-streamの行のコメントを解除。

で、/etc/init.d/cups reloadで再読込。

これでも、Samba経由でWinから利用しているプリンタ、うまく印刷してくれない・・・


同じく、/var/log/cups/error_logより
Unable to convert file 0 to printable format for job 4!
Hint: Do you have ESP Ghostscript installed?
Hint: Try setting the LogLevel to "debug".

http://www.turbolinux.co.jp/dcforum/DCForumID11/4382.html
ppdのファイルを消せとのこと、/etc/cups/ppd/ディレクトリにあるファイル「dj995c」(人によって違うはず)を削除して/etc/init.d/cups reloadで再読込。

今度こそうまく印刷でけた。

オンラインゲームの作り方

[BroadBandウォッチ] JANOG、ネットゲームの“作り方”を実演
本当なら「ピックアップニュース」の方で取り上げるべき内容なんですが、結構古い記事(2003年7月)なので、メモ帳に書いておきます。具体的な数字や具体的な検討事項などが伺える記事です。

Movable Type 3.121-ja導入

Movable Type 3.1にアップグレードしました。

Movable Typeはバージョン3からは、シックスアパートによりライセンス体型化された製品となってます。まぁ具体的にいえば、商用だったり複数の投稿者を設定したり4つ以上のWeblogを作ったりするのに、金を払う必要があるように変わったわけです。おかげで某所ではアップグレードできずに(ゴホゴホっ

アップグレード方法は以下のような感じで。シックスアパートでID登録した後アップグレード用のアーカイブをダウンロードしてきて、既存のMovable Typeのあるディレクトリに上書きコピーします。それから、私の場合は2.661からだったので、mt-upgrade30.cgi・mt-upgrade31.cgiの順に変換CGIを実行。これだけで完了。・・・( ゜д゜)ホントにこれだけ?なんか逆に怖いんですが。アップグレードは何事も問題なく終了っと。

ただ、期待していた管理画面や再構築時の速度向上は望めませんでした。体感速度では変わらずといったところ。うーん、アップグレードした意味がないという感じです。ちなみに管理画面のスクリーンショットです。エントリの作成日が、新規エントリーのページにアクセスした時刻になっちゃってるのがいまいちです。ここは、投稿前に日付を空にして保存ボタン押してやれば、MT側が勝手に登校された時間を挿入してくれるみたいなので、これからはそうします。

ケータイ版自動時刻あわせアプリ

アプリゲット掲示板より「電波時計がほしい!まぁ一週間に一回あわせる時計」さすがに電波時計は無理ですが、ちょうどパソコンなどに使われているNTPのようなやつなら作れなくもないかなぁということで検討開始。ちなみに「電波時計」とは、標準電波を自動検出し、また自動的に時計のずれを修正する機能を持つ時計のことです。さらに余談ですが、ビデオデッキなんかではNHK教育の12時正午の時報を検出して時計のずれを直すやつもあったりすますよ。

で話は戻ってケータイです。NTPは通常UDP: 123を使うそうです。当然ケータイでそんなの使えるわけもありません、今のケータイでは事実上インターネットへはHTTPのみです。で調べてみるとこんなページ(JST Clock, www2.nict.go.jp)がありました。JavaScriptからはパソコンの時刻変更はできないため「ずれ」を表示するスクリプトだそうな。

ケータイからこんなサイズ5KBもあるページにアクセスするのははばかるところですが、いいこと思いつきました。HTTP/1.1のメソッドである「HEAD」を使えばヘッダのやりとりだけできるんですよね、しかも相手サーバはレスポンスとしてDateフィールドを返してくれる。リクエストが相手に届くまでの時間とレスポンスが相手から帰ってくるまでの時間が等しいと仮定すると、端末上でリクエストを出す直前の時刻Aとレスポンスが帰ってきた直後の時刻Bの中間の時点がDateフィールドの時刻が書かれた時点と一致なるわけです。(A+B)/2とDateフィールドの時刻を比較して、ずれ分だけ端末の時刻がずれているというわけで修正可能ですね。

やったー完成、と思いきや、ここで致命的なことに気づくわけです。Vアプリ・・・に限らず現在のケータイ端末全般では、Javaから端末上の時刻を変更することができないんですね。orz。こうしてらるるの1日は過ぎてゆくのでした。

時間・時刻・時点・時計、使い分けがややこいの。

Oracle, PostgreSQL, MySQL


比較表
http://ml.postgresql.jp/pipermail/pgsql-jp/2004-December/018007.html
機能PostgreSQL 8.0Oracle 10gMySQL 4.1.7
トランザクション
アーカイブログ
行ロック
外部キー
サブクエリ
ストアドプロシジャX[3]
ビュー
トリガ
スキーマ
ルール
継承
ドメイン
情報スキーマ
マルチバイト対応
ユーザ定義データ型
コンポジットデータ型
テーブルスペース
レプリケーション△[1]
分散データベースX[2]

[1]:サードパーティソフトの併用で利用可能
[2]:次期バージョンで実装予定
[3]: MySQL 5.xで実装予定

やっぱMySQLのマニュアル完読する必要ある?

ポケベル入力信者

少し前に周りの何人かに聞いたアンケートで、「ポケベル入力方式」が実は2割程度しか認知されていなくて、しかも実際に使ってるのは1割もいないということを知ってしまった。ドコモはムーバ(PDCシリーズ)の全機種でポケベル入力(2タッチ)をサポートするよう仕様として盛り込んでいるというのは有名な話ですが、ことFOMAに限ってはFとD(富士通と三菱)は対応してなかったりと、ポケベル入力方式信者としてはもはや選ぶ機種がなくなってくる危険すら漂う今日この頃です。

いわゆるマルチタップ・かな入力方式と比較してポケベル入力方式の方が効率がよいのを改めていう必要もなく(遠藤諭のケータイ出たとこレポートとかどうぞ)、これだけ「デフォルトがマルチタップ」というインパクトの強さが影響しているのもどうかなぁとか考えさせられるわけです。まぁ世の中、早打ちよりも効率打ち優先となっちゃってるししゃーないかなぁと思うわけですが、V601Tのポケベル入力時の予測変換精度を見ても、やはりポケベル入力をデフォルトとしてもいいじゃないかとかとかとも思わされてしまうわけで。

現に、enjornoではポケベル入力の改良版が「簡単入力」として搭載されてたり、P252iで「二コタッチ」が特徴として紹介されてたり、これからの老人ケータイ市場(言葉が悪い)での簡単入力方式としては、ポケベル+予測変換も十分にありだと思うんですよ。だから、とりあえずポケベル入力方式が消えちゃうのだけは勘弁してください。

とかとか思いながら、mixiのポケベル入力のコミュニティに登録したりしてたら、文章が長くなりすぎちゃいました。ケータイと文字入力・変換にどうでもいいことを書いておきました。

(余計なことを書くのに3時間も時間をとられてしまったorz)

stViewerのソースコード公開

stViewerの紹介ページでソースコード公開しました。利用時の制限もかなり緩いものにしているつもりなので、似たようなアプリを作ろうと思っている人の助けになれば幸いです。

他にもソースコードを公開しているアプリはあるんですが、正直あまりいいソースを書いているという自信はないんですよね。これまでにあまり大きなアプリを作ったことがないという経験にもよるんだと思いますが、こういう業をやっていこうと志しているからには、まだまだ努力しなきゃいけない点が多いと感じてます。

最近感じるのは、プログラマの2層化が進んでいるんじゃないかということです。昔に比べりゃ遙かにプログラミングしやすい環境が整いました。かくいう私もアセンブラなんて知らない(=触らない)世代。Cが高級言語だなんていう時代はもはや大昔、たとえば.NET環境でC#でちょちょっと数十行書けばWindows上のWebブラウザまで作れちゃうこんな時代です。

逆に言えば、ライブラリ化が進んだ恩恵にあずかっているとでもいえるのでしょう。DNSやTCPに限らず、今やHTTPやHTMLまでクラスとしてカプセル化されてます。下の層まで理解した上でライブラリ使うんなら全く問題ないんですが、そうではなくてメソッド何でもありの便利な上位クラスだけで何でも力業で解決しちゃう(コストなんて知らず)なんていう例を結構見ます。それだけプログラミングしやすい環境があるということなんですが、それはいいことなのか悪いことなのかもわかりません。

結果として、ライブラリを使う人と、ライブラリを作る人の、2つの層ができてるんじゃないかと思います。前者はこれまでプログラムなんてあまり触ってこなかった人たちで、今後もプログラム作りが本業にはならないでしょう。プログラマってなんなんでしょうね。

SSH2対応TTSSH

SourceForge.jp: Project Info - SSH2対応TTSSH
TeraTerm Proの拡張モジュールであるTTSSHのSSH2拡張をやってるのとUTF-8対応版のTeraTerm Proを作ってるのの2つある模様。

Webブラウザの作り方

  • OSの仕事
    • ファイルシステム
    • ファイルの読み込み低レベルAPI
    • TCPプロトコルスタック
    • DNS問い合わせ(DNSのAPIはOSが提供するが名前解決はWebブラウザアプリがやるのかな?)
  • Webブラウザの仕事
    • プロトコルへの対応(http://, file:///, ftp://, mailto:, telto:)
    • ファイルフォーマットへの対応(HTML, XML, CSS, JS, JPEG, GIF, PNG, TEXT)
    • HTML Parser
    • Rendering
    • ナビゲーション(イベントやハイパーリンク)

メモ帳を作りました。

この日記があまりにも意味不明だとか今にも苦情がきそうな勢いに感じたので、意味不明なものを書くための場所として「らるるのメモ帳」をスタートさせました。チラシの裏として使うので、メモ帳にはあまり期待しないでください。

これにより、このらるるんちの日記がますます更新されなくなることでしょう。

情報とは何かを考えさせられました

My Life Between Silicon Valley and Japanは、「梅田望夫」というおっさん方のはてなダイアリーです。一般的にはCNET Japan Blog書いてた人といえばわかりやすいかも。

毎回読むほどではなくていってみればさぼってたんですが、改めて読むといろいろと考えさせられることが多いというわな。とりあえずスクラップ
参加型ジャーナリズムのための技術革新
http://d.hatena.ne.jp/umedamochio/20041213/p3
「コンテンツ消滅」とリアル経済活動onオンラインゲーム世界
http://d.hatena.ne.jp/umedamochio/20041215/p2
Is Google Good?
http://d.hatena.ne.jp/umedamochio/20041218/p5
ソニーPSP
http://d.hatena.ne.jp/umedamochio/20041220/p3
高速道路論への反応
http://d.hatena.ne.jp/umedamochio/20041223/p2
12/30 必読記事・論考(IT)
http://d.hatena.ne.jp/umedamochio/20041230/p3
CNET Japan連載を終えての感想(1)
http://d.hatena.ne.jp/umedamochio/20041230/p2
CNET Japan連載を終えての感想(2)
http://d.hatena.ne.jp/umedamochio/20050101/p1
CNET Japan連載を終えての感想(3)
http://d.hatena.ne.jp/umedamochio/20050105/p1
ゲームの本質
http://d.hatena.ne.jp/umedamochio/20050103/p4
アンディ・グローブ インタビュー
http://d.hatena.ne.jp/umedamochio/20050106/p5

全部読んでないとこもあるんで後で読みます。個人的なメモ
●はてなだと1日に1つという区切りがあるため、こんなに長いエントリだとまとまりが悪い
●英語は全部とばしたのはもったいなかったかも。

このアーカイブについて

このページには、2005年1月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2004年12月です。

次のアーカイブは2005年2月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.9.0