2004/08/28(土)Ruby動かすまで

Rubyで書いたCGIを動かすにあたり、Apacheの設定は特に追加しなくても通りました。

注意点として、Samba経由だとサクラエディタで保存時に改行コードをLF(Linux)にしないと、

bad interpreter

といわれて怒らります。Sambaの設定で変えられると思うんですけどね。

なおもちろん実行属性が必要なので、Sambaだけでは無理。WinSCPを一緒に立ち上げながら作業すると良いでしょう。なお、Internal Server Errorでログに

malformed header

と出るときは、"Content-Type:html/text; charset=Shift_JIS"の出力忘れだ!

ええい! ……思わずShift_JISにしてしまったけど、何で統一するのがベストなんだっけ。WebだとUTF-8だっけか。

2004/08/24(火)備忘メモ

2004/08/24 07:00 PC(Linux)
ど忘れ防止のメモです。
[Linux]
Ctrl+Z での中断プロセスは、fg/bgで再開。
kill -9 id で超強制終了。-HUPって互換あるんだっけ?
[emacs編]
・バッファ窓
C-x 1 1つに
C-x 2 2つに
C-x o 窓移動
C-x b 表示切り替え

・検索
C-s/C-r 前方・後方

・編集
C-Space マーク開始
C-W カット
C-Y ペースト
C-k 1行カット
Esc C コピー(いくらなんでもEsc Cは…… 割り当て直した方が良い気がする)

・Undo/取消
C-x u Undo(今回C-zに割り当てました。2動作はどうよ?)
C-g Cancel(意外とよく忘れる)
DynamicMacroとか便利そうなのは分かるんだけど、キー体系が複雑になると恒常的に使い続けない限り忘れ去っていくに決まっているのさ。Windowsじゃもう、Sakuraで決定してるからどうにもね。

2004/08/24(火).emacsいじったが……

2004/08/24 06:00 PC(Linux)
emacsがあまりに使いにくいままだったので、色々いじってみようと思い立つ。
があああああ、一部ギブアップ。
以下 .emacsへの追加部分。
;;選択範囲の表示
(transient-mark-mode t)

;;UndoをCtrl+Zで
(global-set-key "\C-z" 'undo)

;;全域選択をCtrl+Aで
(global-set-key "\C-a" 'mark-whole-buffer)

;;Home/Endはファイルの最初/最後
(global-set-key "\e[1~" 'beginning-of-buffer)
(global-set-key "\e[4~" 'end-of-buffer)

;;時間表示
(display-time)

;;桁表示
(column-number-mode 1)

;; show-paren
(show-paren-mode t)
(setq show-paren-style 'mixed)
(set-face-background 'show-paren-match-face "gray10")
(set-face-foreground 'show-paren-match-face "SkyBlue")
基本的にはWindowsライクになるようにした。
show-parenはかっこの対応関係を見やすくするもの。

さらに、html-helper-modeをdselectでインストールしておいた。

敗北したのは[Ctrl + Home/End] や[Ctrl + ↓]に割り当てが出来なかった点。探しても情報が出てこないし(googleで探しにくいのは分かってもらえると思う)、自分でも考えられる限り試してみたがダメだった。エラーか認識してくれないか、どちらか。

設定にもあるが、Putty + xtermでは home -> \e[1 , end -> \e[4 となる。ここら辺に秘密がありそうだが…… 攻め方としては、

emacsに端末設定を割り当てる方法がある?
端末の文字認識自体をいじる?
.emacsに書く方法が何かしらある?

、のいずれかだろう。xtermのバージョンが古いのではないかという節もある。

調べている途中でadd-hook 'term-setup-hookなんてのを見つけたが、効果無しである。

emacsについては一度総ざらいしなければならないのだろう、もううんざりだが。

2004/08/23(月)eperl ? embperl?

eRubyと同様に、html等に埋め込めるPerlを調べてみた。

さて、まず規格乱立である。この時点でやる気をなくさせる。

eperlとembperlが比較的メジャーなようだが余りWEBドキュメントがない。うーむ。

而して、Rubyとなると見やすいリファレンスが見つかっておらずまだ導入にためらいがある。

Perlポケットリファレンスはそこそこに使えるんだよなあ……

2004/08/22(日)Delphi ListView挙動色々

・ListView.Canvas.Brush.Color

等を変更した場合、

ListView.Canvas.Refreshしないと反映されないことがある。再現性は不明。とりあえず、心に留めてテスとしながら作っていくほか無いようだ。

・ListViewにはDoubleBufferedプロパティがある。結構ちらつきに効きます。こんなの知らなきゃ分からないですよ。

・Brush.Style を bsCross等にして、ListView.Canvas.FillRectするとなぜか十字線の隙間が真っ黒に!
Pen.StyleをpsClear(透明)にして、Canvas.Rectangleするしかなさそう…… 何だろうこの仕様。

・ListViewのデフォルトの表示に何か付け足そうと思ったら、すなおにListView1.CustomDrawItemを全部書いた方がよい。なぜかというと、ListView本来の描画に重ね書きするのは存外に難しいのだ。この際、OwnerDraw := True, OwnerData := True, で、OnDataには何も書く必要はない(OnDataは本来のListViewの表示にオリジナルのデータを載せたいときのもの)。CustomDrawItemで、DefaultDrawをFalseにしておく。

・OwnerData等の時、OnSelectItemで送られてきたItemのItem.Indexを取るとAccessViolationするようだ。仕様は不明だが、OnMouseDown等で座標から辿るか、ListView1.Focuced等で逆から辿ることで代用する。

・ListViewでOnColumnClickが2回連続で発生してしまっていた問題。原因はListViewのWndProc(ウィンドウプロシージャ)をオリジナルの物で上書きしていたから。これは、確か多値チェックを実現するために導入したはずだったが、現在は必要なくなっていた。この部分を削除すると正常に1回発生に戻った。他のイベントが正常だったため原因の切り分けに時間がかかった。起こらないようにするための手法は分かっていない。WINDOWS APIをよく理解していない所為で、本来なら真っ先に勉強しなきゃいけないのだが、今そんな時間がない。分からなくてもやっていくしかない。

2004/08/22(日)ハードディスクパスワード

2004/08/22 04:00 PC(全般)
体験ではなく、ちょっと興味がわいて調べてしまったのでメモ。

IBMノート等などで設定できる、ハードディスクパスワード、スーパーバイザーパスワードはHDD基盤、マザボ上のフラッシュロムなどに書き込むらしい。どういうことかというと、電池抜いてほったらかしとかでは解除できないということだ。

現実的にこれらを解除する方法は、BIOSの逆アセンブルかブルートフォースアタックしかないだろう。

要するに安いからってジャンクに手を出す前に、一歩立ち止まって考えようということ。まあ普通の人はやらないでしょうけども。

2004/08/19(木)ShellTreeView!

エクスプローラっぽい画面であるところのShellTreeView。

Delphi付属のサンプルタブにある時点でなにやら怪しい気がしますが、6の頃からどうもバグとかがあって評判は悪いです(こういうところがDelphiがメジャーになれない理由)。

んでー、RootプロパティがTRoot型=Stringなのですね。これだと、どうやってマイコンピュータとかをトップにするのか分かりません。実用上というか、初期設定はデスクトップなのでマイコンピュータにしたいだけなのですが…… リファレンスガイド本見ると、rfMyComputerとかで設定できると書いてあるのですが、出来ない気配ですん。で、非常に情報が少ないのもDelphiのマイナスポイント。ML探してもようとして見つかりません。しゃあないので断念です。VCL_BAに書いてないと手が出ないな……

DirectoryListBox,DriveComboBoxを使うことにいたしましょう。いや実際速度的な話ならこちらの方が圧倒的に早いです。アイコンイメージを読み込まないですし、検索にも行かないので。問題かなと思うのは、長いディレクトリで横スクロールバーが出ないと。うーん。

2004/08/18(水)ComicStudio印刷ミス多発

2004/08/18 16:00 お絵かき
環境設定に於いて、印刷タブ

・モノクロ印刷時に省メモリモードを使用するのチェックを外す
・プリントバッファに転送時に省メモリモードを使用するにチェック

をしないとちゃんと印刷されない気配。

両チェック無し 印刷されず、プリンタ空転
上だけチェック 同上
下だけチェック 正常
両チェック 全面黒印刷

なんだかなあ。

2004/08/17(火)imp-550の怪

2004/08/17 04:00 家電
iRiver製MP3&CDプレイヤー SlimXことimp-550。

ACアダプタに挿して、充電モードにしても充電されていない事件が多発。ちょいと調査。

・現象 アダプタに挿して、再生->停止長押し->充電モードに移行後1分程度で充電画面が消えてしまう。確認してみると、これ以降充電は行われていない。

・試験
1.ファームウェア1.7,1.50b,1.4と試して全部アウト。
2.load default効果無し。
3.再生していると充電はしている。
4.以前は間違いなくこの状態で充電できた。
5.charge functionをdischarge & charge on(放電してから充電)にすると、充電まで問題なく完了。ただし、charge functionの設定は1回ごとに(?)消える。

・搦め手
ガム型2次電池の充電器を捜索。
1.専用充電器だとSony製(BC-9HM,BC-7HT)を発見。9HMが急速充電器。それ以外の仕様が見つからず、2本同時に充電できるかも分からない。その他のは、ほとんどがMD等の付属品。ただ、メーカー製のガム型電池はそれぞれサイズが微妙に異なるらしく、人によってはビニル被膜を剥かなきゃ入らないとかいう記事をいくつかみかける。値段はそれぞれ3k前後。

2.Saitek製、ニュースーパーチャージャーとかいうガム電池対応にも対応した充電器発見。ただしバカ高い。8k前後する。

3.太陽光発電のもの発見。ただこれは結局電池をもう1セット買えということだから本末転倒。どうかと思う。

搦め手全滅。結局、毎回放電設定にするのが正解くさいのです。同様の症状は掲示板でもよく見かけ、大抵iRiverに修理を求めるという対策。iRiverの対応は宜しいらしいので、悩みどこですが、私の場合その他の不具合が出てないのが実は当たりのような気もしてるので、うかつに修理・交換に走ると後悔する羽目になるやもしれません。いやもう、多いんですよ掲示板見てると。故障報告が。

しばらく騙し騙し使ってみます。あと、fw1.7は変な報告が多いので1.50bにしてあります。