遂に自分のパソを手に入れた! Shuttleのキューブ型ベアボーン「SN25P」をベースにしたBTOパソコン。ショップはツクモ。
構成決定の流れ: (Athlon64 → Socket939) + PCI-Express → nForce4 → SN25P
を制限ユーザーで起動するとレジストリ関連(?)のエラーが出たり、(その影響なのか知らんが)「Hi Sample Rate 2 Channel」が選べなかったりしてたのだが、Shuttleから Audioのドライバをダウンロードしてきてアップデートしたら直った。そのかわり、「拡張設定」タブの一部の設定でチェックボックスのチェック状態が現在の状態を反映しない。
したら「keyboard is locked out unlock the key」と表示されて WINDOWSが起動する前に止まってしまう。メッセージの意味は「ボタンが押しっぱなしになってるから離せよ」ってことみたいだがそんな事にはなってない。
たいしたエラーでもないので「Standard CMOS Features」→「Halt On」を「All」から「All, But Keyboard (キーボードを除く全てのエラーでブート中止)」にしてやりすごす。
約32GB以上のパーティションは XPでは FAT32でフォーマットできない。(NTFSでフォーマットするしかない)。98や Meでならできるってんだから NTFSを使わせるために制限してるとしか考えられない。
Home Editionではファイルの簡易共有機能が常にONになってて(OFFにできない)、ファイルのプロパティにセキュリティタブが表示されない。ゲストアカウントOFFで、普段は制限ユーザーで使おうと思ってる人間には簡易が簡易ではなく理不尽な苦労が多い。(移動はできるが削除はできないフォルダ。削除できないフォルダ。削除できないファイル)。エクスプローラで所有者を表示するようにしたら理由がわかった。制限ユーザーは自分が所有してないフォルダやファイルは削除できないのね。それじゃあ、と所有者を制限ユーザーの方に譲渡しようと思ったらフォルダやファイルをコピーするしかなさげ。(セキュリティタブがないから)。
制限ユーザーでは Program files 以下に書き込めないから。
制限ユーザーは自分のところのスタートメニューフォルダにしか書き込めないので間違いはないが、管理者権限でインストールするとショートカットを「All Users\スタート メニュー」に登録するプログラムと「ユーザー名\スタート メニュー」に登録するものがあって混乱の元。(All Usersに登録するものの方が多い)。ユーザーとは区別される"管理者"なのか、管理者権限を持つ"ユーザー"なのか、区別したいところ。
標準ユーザー(Pewer Users)グループが何故無い? 制限ユーザーにはできないことが多すぎるから、初心者にこそ制限ユーザーはおすすめできない。(起動できないアプリ⁑すら存在する現状ではね)。
Webページが縦長で一画面に収まらないときはスクロールバーが表示されて、キーボードからは[Space]や[PageDown][PageUp][Home][End][↑][↓]キーで操作できるのは InternetExplorerでも Firefoxでも同じ。
じゃあ、その中にさらにスクロール領域があったら? CSSで overflow:scrollが指定してあったら?
IEでは内側のスクロールエリアの中にフォーカスがある場合、キーボードの入力は内側のスクロールバーに対する操作になる。Firefoxでは常に一番外側のスクロールバーが移動する。Firefoxではスクロール内スクロールをキーボードで操作できない。
サクラのWebメールは 1021×768では上下に収まりきらないので、メールを読もうとするとメール本文がスクロール内スクロールで表示されてしまう。Firefoxではキーボードでスクロールできない。マウスは使いたくない。マウスを使って、四角い矢印をクリックするのもバーをドラッグするのも、どちらも最初に小さい目標をポインティングする操作が必要で大層めんどくさい。
それとは別にサクラのWebメールってインターフェイスがイマイチだね。
全部の操作をボタンにして並べてしまったらいいのに。それとメール表示画面には「次のメール」「前のメール」といったナビゲーションが必要 (受信箱とのいったりきたりを減らすために)。
コンパイルができなくて以前挫折した SQLite。今回も sqlite3-rubyの DBD(database driver)のコンパイルはできなかった。でも sqlite3-rubyには DL(dynamic link?)を使った DBDも用意されてて、これを使うのにコンパイルは必要ない。依然として SQLite自体のコンパイルは必要だが。
以下、メモ。
http://www.sqlite.org/ の downloadから
sqlite-3.2.2.tar.gz (1385618 bytes) A tarball of the complete source tree for SQLite version 3.2.2 including all of the documentation.
と書かれてるものを。どうせなら新しいものをってことでバージョンナンバーが 3で始まる SQLite3をダウンロードする。
予め Linux用にコンパイルされた soファイルもダウンロードできるけど、これを使おうとすると 'libc.so.6' が見つからないとか言われるので横着せずにソースコードをもらってくる。(/usr/lib に libc.so.4はあるんだけど……)
ソースをディレクトリごとサーバーにアップする。READMEに、別にディレクトリを掘ってそこで作業するといいって書いてあるので buildというディレクトリを READMEのあるフォルダに作る。
ライトプランではシェルログインができないので telnetや SSHで
cd build ../configure
というわけにはいかない。困ったので buildフォルダに index.rbを置いて、実行可能にして、中身を下のようにして CGIの要領で実行した。
#!/usr/local/bin/ruby begin cmd = [ 'sh ../configure --enable-utf8', 'make' ]; print "Content-Type: text/plain\n\n"; cmd.each{|c| puts "% #{c}", `#{c}`, $?.inspect, ''; } rescue Exception => e puts e.message; puts e.backtrace.join("\n"); end
何も問題なく大量の *.oファイルと *.loファイルの他に sqlite3(コマンドラインツール)ファイルや .libs/sqlite.so.8などが作られた。.libs/libsqlite3.soという、FFFTPからは矢印付きのフォルダとして表示されるファイルもできてる。シンボリックリンクとかいうものか?
するとインストールが完了するわけだけど、どこにインストールするのかを多分 configureの時に指定しないといけなくて、それをしてないので成功しないかもしれない。そもそもインストールとかしてもいいの?レンタルサーバーに。
必要なファイルは既にできあがってるので結局、make install はせずに、libsqlite.so.8を libsqlite.soに改名して、SQLiteを使う Rubyスクリプトと同じフォルダにコピーして使ってる。
rubyforgeから sqlite3-rubyをダウンロードして展開する。SQLiteと似た感じで
ruby setup.rb config ruby setup.rb setup ruby setup.rb install
とするとコンパイルからインストールまで完了するのだけど、SQLite関連のファイルがインストールされてないので sqlite3.hが存在しないと言われてしまう。それに ruby.hだとか Ruby関連のファイルも必要そうだし、そんなの(/usr/includeとかに)見当たらないし、全部ローカルに用意するのも なんだかなぁ だから諦めた。
lib/ の中の sqlite3.rbと sqlite/* と sqlite/driver/dl/* を、libsqlite3.soと同じように(SQLiteを使うRubyスクリプトから)見えるところに置いておけばなんとかなる。
いや、なんとかならない。
require 'sqlite3' db = SQLite3::Database.new('hoge.db')
とすると libsqlite.soが見つからないといわれる。インストールしてないからだ。だもんで
require 'sqlite3' module ::SQLite3 SQLITE3_LIB_PATH = File::dirname( __FILE__ ) end db = SQLite3::Database.new('hoge.db')
として、カレントディレクトリにある libsqlite3.soを読み込ませてる。