miau's blog?

| 1 |

2006年 9月 04日 (月曜日)

LL Ring

- Events on miau's blog?
Lightweight Language Ring

8/26(土) に行ってきました。
今更ではあるけど、折角なので軽く感想とか。

イベントの詳しいレポートなんかはトラックバックを見たほうがいいです。

トラックバックをお寄せください ? Lightweight Language Ring
[Read More!]
23:04:36 - miau - No comments - No Trackbacks - Permalink

2006年 9月 05日 (火曜日)

ブラウザの戻るボタンで・・・

- General on miau's blog?
結構前のことですが。
ある Web フォームで submit を行った後、ブラウザの「戻る」ボタンで入力画面に戻るとフォームの内容が消えてしまう、という指摘を受けたことがありまして。
手元で確認してみると、確かにその通りの現象が。

んー・・・?普通「戻る」ボタンを押した場合、入力値とかはブラウザにキャッシュされるわけで。そういう現象は起こり得ないような。
no-cache とかそのへんの問題かなー?
と色々調べてみたんですが、解決の糸口が見つからず。

仕方ないのでぼーっと画面をいじってると、「戻る」を二回押すとフォームの値が復活するっぽいことが判明。
で、ふとフォームの入力に bookmarklet 使ってることを思い出しまして。
ためしに bookmarklet を使わずに入力してみると、「戻る」一回でちゃんと値が入力されてました。

よくわからないけど、bookmarklet の URL もちゃんと history に残ってるみたい。で、bookmarklet の URL ではフォームの値は保持されない、と。
知ってたらどうってことなかったんだけど、知らなかったのでやたら時間かかりました。

ちなみに Firefox ではそういう現象は起きないっぽい。
今家で動作確認すると、IE なんだけど bookmarklet の URL でもフォームの値が消えたりはしないみたい。IE7 のせいかなんなのか。
23:02:16 - miau - No comments - No Trackbacks - Permalink

2006年 9月 07日 (木曜日)

Google Code Jam 2006

- General on miau's blog?
Google Code Jam 2006

また Qualification Round で撃沈しました。
とりあえず軽くレポートでも。
[Read More!]
08:34:14 - miau - No comments - No Trackbacks - Permalink

KanjiTranslator 1.4

- General on miau's blog?
改行コード変換ツールとか - miau's blog?

以前このアイテムを書いたときに、KanjiTranslater 1.3 というのを紹介しました。インターフェイスは気に入ってるんだけど、何やらエラーが出て使えなかったわけですが。

その後も文字コード変換で困ったりしてて、職場の人に「いいツールありますよ」と紹介されたのがこれだったり。どうやらバージョンアップしてて、このエラーが解消されているようで。
# いつの間にか ter が tor になってるし。

文字コード変換ツール「KanjiTranslator」

そんな感じでお薦めです。
あとは文字コード指定で「変換しない」とか選べたらなお嬉しいんだけど。
13:17:57 - miau - No comments - No Trackbacks - Permalink

2006年 9月 08日 (金曜日)

DB_DataObject の escape()

- General on miau's blog?
思い切り誤解してた。

マニュアルに、

Similar to Pear DB's quote it will escape a value, without the quotes,
so it can be used with a LIKE query.

って書いてるんだけど、LIKE で使う「%」や「_」はエスケープしてくれない。
自前でエスケープするしかないっぽい。


(追記)
さらに誤解してた。
PostgreSQL では LIKE のエスケープ文字がデフォルトで「\」になってるので、わざわざ ESCAPE '〜' とか書かなくていい。つまり、「%」を検索するには hoge LIKE '%\%%' と書けばいい、と。ここまではマニュアルでちゃんと読んでた。

でも、「\」自身を検索するには、hoge LIKE '%\\\\%' と「\」を 4 つ繰り返す必要があるらしい。ここ、ちゃんとマニュアルに書いてたんけど、見落としてた。(テストのときに初めて気づいた)
よく考えると、シングルクォート文字列の解析フェーズと LIKE パターンの解析フェーズが別なので、二回エスケープが必要に決まってる。

そんなわけで、

$hoge = mb_ereg_replace('\\\\', '\\\\', $hoge);
$hoge = mb_ereg_replace('%', '\\%', $hoge);
$hoge = mb_ereg_replace('_', '\\_', $hoge);

$tbl->whereAdd("hoge LIKE " . $tbl->escape($hoge) . ");

みたいな処理になる、と。
'\\\\' を '\\\\' に置換してるように見えるけど、ここも第1引数がパターンを表すのに対して、第2引数が普通の文字列を表すからこうする、と。ここもハマった。
12:12:00 - miau - 2 comments - No Trackbacks - Permalink

2006年 9月 13日 (水曜日)

PHP の Cookie まわり

- General on miau's blog?
ちょっと前に出た問題。

先日 Web サイトのリニューアル案件があったんだけど、旧コンテンツからの Cookie を引き継ぐ必要がありました。
ちなみに Cookie の名前は「www.example.com.hogecode」とか。わざわざ名前にドメイン名入れてるってことは Cookie の仕組みわかってないんじゃないかなー、なんてことを思いつつ、新サイトでも同名の名前で Cookie を使おうとしたんですが。

setcookie("www.example.com.hogecode", "hoge");

としたものが

$_COOKIE["www.example.com.hogecode"]

でなぜか取得できない。
[Read More!]
09:13:19 - miau - No comments - No Trackbacks - Permalink

shebang

- General on miau's blog?
Shebang (Unix) - Wikipedia, the free encyclopedia

先日ミーティング中にこれについて説明しようとして。

「えーと・・・あの一行目に書くやつ。英語ではしぇばん?とか書くんですけど日本語では何ていうんでしょうね?というか読み方『しぇばん』でいいんですかね?まぁシャープびっくりで始まる行・・・」

みたいなしどろもどろな説明になって恥ずかしかったので、調べてみた。

#!を何と読む - いなた屋 - livedoor Wiki(ウィキ)

色々あるっぽいけど、発音聞いた感じその他で「シェバング」を個人的に採用。日本語で説明する場合も「シェバング行」でいいや。
20:08:11 - miau - No comments - No Trackbacks - Permalink

2006年 9月 14日 (木曜日)

FFFTP で tail(挫折)

- General on miau's blog?
ffftp quick hack をさらに hack - miau's blog?

これ作ったときに、さらに追加したい機能として

○最後の n byte を表示
 巨大なログファイルの末尾だけを見たいような場合に。
 レジューム周りの機能をうまく流用すればできないかな、とか。

というのを書いたんですが、仕事中待ちが発生したので試してみました。

インターフェイスをいじるのは面倒だし、まずは「ビューワ2でリモートファイルを開いた場合、先頭の n バイトをスキップしてダウンロードする」という処理にしてみよう。
これだけならかなり簡単で、main.c の 1740 行目付近?を

if (App == 1) {
MainTransPkt.Mode = EXIST_RESUME;
MainTransPkt.ExistSize = 1;
} else {
MainTransPkt.Mode = EXIST_OVW;
MainTransPkt.ExistSize = 0;
}

に書き換えるだけ。

で、実際に動かしてみると・・・

FFFTP:エラー
このホストはリジュームをサポートしていません。
上書きしますか?

とか言われた。メインの開発機で使えないなら実装してもあまり意味ないな。やめ。
08:47:53 - miau - No comments - No Trackbacks - Permalink

2006年 9月 20日 (水曜日)

VMware Player メモ

- General on miau's blog?
以前メモったつもりが忘れてたみたいなので。

イメージの作成には EasyVMX! を使うと楽。

EasyVMX!: Create Virtual Machine

OS の bootable CD があれば特に .vmx いじらなくてもすぐにインストールできる。

でも CD ドライブが複数ある場合(Daemon tools を使ってる場合も)、CD-ROM ドライブとして別のドライブが認識されたりしてハマることが。

ide1:0.fileName = "F:"
ide1:0.autodetect = "FALSE"

みたいな感じでドライブを明示的に指定すれば OK、と。


早速 VMware Server 使えとツッコまれた。そういえばそういう記事も見覚えあるような無いような。
情報収集怠ってるのがバレバレですね。
23:47:19 - miau - No comments - No Trackbacks - Permalink

2006年 9月 22日 (金曜日)

Solaris ワカンネ

- General on miau's blog?
今メインの開発機は Solaris なんですが、今まで AIX とか Linux とか半端に勉強してるもんで、コマンドが色々わからなくて困ったりします。先日も top コマンドが無くて困ってたんですが、ググったらすぐ発見できた。

Solaris Workshop

「なんで Solaris には "top" が無いんだよ!!」という分かりやすいタイトルがなんとなく気に入りました。

他にも「Linux で言うところの○○コマンドって無いのかな」みたいな機会は多いので、いいページを探してたんですが・・・それっぽいの発見。とりあえずメモメモ。

Unix Porting - Unix Cross Reference

ついでに Sleipnir の履歴にいつまでも残ってたこれも貼っとこう。

各ディレクトリの役割を知ろう(ルートディレクトリ編)(1/2)

Solaris どうとかじゃなくて *nix 全般に弱すぎな気が。情報処理試験が終わったら LPI でも受けるかな・・・。
00:33:36 - miau - No comments - No Trackbacks - Permalink

2006年 9月 23日 (土曜日)

萌ディタの文字コード自動認識

- TextEditor on miau's blog?
【萌える】 萌ディタ スレッド part2【エディタ】 を眺めてると、こんなレスが。

170 :名無しさん@お腹いっぱい。:2006/09/14(木) 14:42:22 ID:BqLw+oOq0
認識能力が貧弱なんじゃなくて
実は英語の生asciiコードみたいに、sjisかeucかく別が付かないとき不便
わかんないならとりあえずsjisなんだろうと思って開いて、間違っていたとき
にeucで開きなおせるとかの法がいいかな

utf32対応とか縦書きとかの贅沢機能以外は、ほぼ完成しているように見える
からデバッグとUIの改良かな必要なのは

家では萌ディタをメインのエディタとして使ってるけど、確かにその通り。
でも「どちらともみなせる場合自動的に Shift_JIS にする」くらいなら簡単に改造できるんじゃない?と思ったのでやってみた。
[Read More!]
11:56:02 - miau - No comments - No Trackbacks - Permalink

2006年 9月 24日 (日曜日)

patch for PerlScript 5.8.x.xxx

- TextEditor on miau's blog?
patch for PerlScript 5.8.7.813 - miau's blog?

以前こんなパッチ作りましたが、最後に追記してあるように 5.8.7.815 とか 5.8.7.817 とかだとパッチ適用に失敗します。変更箇所は同じなんですけど、CRC チェックに引っかかるのが原因。
今日 WDiff 触ったので、ついでにこのパッチの CRC チェックを解除しようと思ったんですが・・・「CRCエラー発生時」を「中止する」から「無視する」に変更した場合って単純に処理がスキップされるんですね。「CRC が違っても無視してパッチ当てる」意味かとばかり。

じゃあ WDiff 以外の方法でパッチ作るしか・・・というところでふと思ったんですが、ファイル中のバイナリ値を置換するだけなら Perl でやればいいですよね。コマンドラインから

cd /d C:\Perl\bin
perl -Mopen=IO,win32 -pi".OLD" -e"s/\xFF\x74\x24\x18\xFF\x15\xE8\x90\x1C\x28\x59\x8B\xF0\xFF\x74\x24\x10\x8B\xCB\x8D\x46\x02\x50\xE8\x64\xFF\xFF\xFF\x8B\xF8\x85\xFF\x74\x14/\x57\x57\x57\x57\x6A\xFF\xFF\x74\x24\x2C\x57\x57\xFF\x15\x74\x90\x1C\x28\x8B\xF0\x57\x8B\xCB\x40\x50\xE8\x62\xFF\xFF\xFF\x8B\xF8\x90\x90/" PerlSE.dll

こんな感じで実行。旧ファイルが PerlSE.OLD にバックアップされるので、そこそこ安全なはず。
改行コードが勝手に変更されるのを防ぐのに use open IO => ':win32' っぽいことやってるけど、本当にこれでいいのかちょっと自信なし。間違ってたら教えて下さい。>詳しい方

ちなみに
・ActivePerl 5.8.7.817
・ActivePerl 5.8.8.819
・ActivePerl 5.8.8.820
では動作確認済み。気が向いた方は他のバージョンでの確認もお願いします。

検証用スクリプトはこんな感じ。

# ああああああああああああああああああ
# ああああああああああああああああああ
# ああああああああああああああああああ
MsgBox('PerlSETest - OK');

PerlSETest.pls とかいう名前で保存して、Explorer から実行してください。
メッセージボックスが出たらパッチがちゃんと当てられてる感じ。パッチ当ててない場合は、たぶん何も起きない。(変なエラーになる可能性もあるけど)


(2007/01/30 追記)5.8.8.820 でも動くっぽい。


(2007/09/29 追記)

もっと楽に実行できるバージョンも作ってあります。

patch for PerlScript 5.8.x.xxx(PerlScript版) - miau's blog?
01:23:47 - miau - 1 comment - No Trackbacks - Permalink

2006年 9月 25日 (月曜日)

eval() の文字数制限

- W41CA on miau's blog?
どうでもいいメモ。PCサイトビューアで eval() する場合、その文字列長は 2^18 = 262144 付近まで OK。

今作ってる bookmarklet の動作がおかしくて、eval() に文字数制限があるのかと疑ったけど・・・これだけ長い文字列を eval() できってことは違うっぽい。


(2006/09/26 追記)
原因判明。どうも eval() 内でループ用変数を置き換えてるのが問題っぽい。

(function() {
var l = document.scripts.length;
for (var i = 0; i < l; i++) {
eval(document.scripts[i].text);
}
})()

みたいなことをやってたんだけど、eval 内部で l とか i とかが変更されていた、と。

(function() {
var l = document.scripts.length;
for (var i = 0; i < l; i++) {
Function(document.scripts[i].text).apply(window);
}
})()

こんな感じでよさげ。
window は省略できそうだけど、まぁいいや。
19:28:04 - miau - No comments - No Trackbacks - Permalink

2006年 9月 26日 (火曜日)

URL の文字列制限

- W41CA on miau's blog?
またどうでもいいメモ。PCサイトビューアで使える URL の文字長は 1024 文字までっぽい。そろそろブックマークレットの限界が見えてきた。
ちなみにクリップボードは 234 文字くらい?
08:21:31 - miau - No comments - No Trackbacks - Permalink

2006年 9月 28日 (木曜日)

exuberant ctags で SQL のタグ生成

- General on miau's blog?
気がついたら ctags日本語対応版 が更新されてた。

ctags5.6J1 (2006/06/12)
 ・5.6対応リリース

何が変わったんだろう?ということで、Change Notes 見てみると・・・大して仕事には影響なさそう。でも、

* Fixed incorrect tag for first field of table [SQL].

の一文が気になった。
へー、SQL もタグ生成できるんだ。ちょっと試してみよう。
[Read More!]
05:53:46 - miau - No comments - No Trackbacks - Permalink
| 1 |