カテゴリー
technology

MovableType の読み込み/書き込み機能の罠(bug)

MT 3.3 導入準備でもすっかといろいろいじっていたら、明らかに途中で切れているエントリをいくつか発見。小一時間ほどかかってわかったのが、バックアップファイル中に —–\n (ハイフン+改行)が入っている箇所で切れている状態でした。
Movable Typeの読み込みフォーマットによれば、「—–\n」各セクションの区切りとなっていて、確かに読み込みにデリミターとして認識されて利用されます。
自分のミスかと思ったが、アレ?まてよ。MTの管理画面で書き出しを実行したんだったな、と。まさか MT 側の問題とは思ってませんで余計に時間かかった。
はぁー、なんか以前もあったかも。さらに今利用中の DB 内でもすでにエントリが途中で切れている状態だったことも発覚。2年前のバックアップファイル(HTML)から —– を探しまくって行頭にスペース入れて修正したりして、変に時間を取られましたよ。げんなり。
問題のあったエントリ:
グランドゼロ
Debian の Apache2 で SSL セットアップ

カテゴリー
technology

DBIx::Class と mysql で utf8 使うとき

素で使うと mysql→perl 時点でマルチバイトが ? に変換されちゃうので、SET names utf8 をする必要あり。DBIC では以下のように実行すると吉。

my $schema = MyDB->connect($CONNECT_STRING, $USERNAME, $PASSWORD);
$schema->storage->dbh->do("SET names utf8");

ちょいはまったのでメモ。

カテゴリー
technology

Debian インストール日誌

インストールしたパッケージのメモ。
chkrootkit: rootkit がインストールされているかチェックするツール。導入と同時に毎日自動起動設定がされる。
pflogsumm: Postfix のログを解析して一覧にしてくれるツール。日付指定でその日のサマリーを生成してくれたりして便利。

カテゴリー
technology

PHP Warning: mime_magic: type regex BEGIN[[:space:]]*[{] application/x-awk invalid in Unknown on line 0

FreshReader を使いはじめてもう一ヶ月ほどたちますが、cron 設定していたクローラー実行時に CGI 版の PHP がいつの間にかこんな警告を出すようになってました。

PHP Warning:  mime_magic: type regex		BEGIN[[:space:]]*[{]	application/x-awk invalid in Unknown on line 0
気になって調べたら既知のバグで libmagic1 が使っている MIME 設定ファイルの記述ミスだとか。はて、アップデートはすぐでないのかい?ということでも手動で更新。 /usr/share/file/magic.mime の 273行目(testing)をコメントアウト。
#0      regex           BEGIN[[:space:]]*[{]    application/x-awk

はい、終了。これで毎時警告が出なくなりました、と。
■Debian Bug report logs: #357373 - mod_mime_magic: invalid type 0 in mconvert(). - Debian Bug report logs
ちなみに Debian の話です。ところでカテゴリ整理しなきゃ。

カテゴリー
technology

Postfix のコマンド操作

いろいろいじってたら無用な queue が溜まってたので、削除するためのコマンドを調べたり。メモメモ。

postfix check            → 設定ファイルチェック
postfix start            → 起動
postfix stop             → 停止
postfix abort            → 強制終了
postfix reload           → 設定リロード
postfix flush            → メールキューを手動配送
postconf -n              → 現在の設定を表示
postsuper -d <queue id>  → メールキューを削除
カテゴリー
technology

aliases.db から aliases の復活

/etc/aliases へ他のファイルを append するつもりが書き込んでしまいました。つまりは cat aliases > /etc/aliases。素人だな。

反省の意味をこめて aliases.db から aliases を復活させる方法をメモ。

カテゴリー
technology

JavaScript パフォーマンス改善メモ

今後のために JavaScript パフォーマンス改善ヒントのメモ。後でちゃんと読んで実践すること。
DHTML Dude:更なるパフォーマンス向上のヒント
DocumentFragmentの考察 – Personnel
最速インターフェース研究会 :: 日本語テキストをテーブルで表示するJavaScriptの高速化
Javascript – Benchmark – W3C DOM vs. innerHTML
DHTML and JavaScript Performance Tuning

DHTML and JavaScript Performance Tuning
まーひとまずこのくらいで。

カテゴリー
technology

Win32::OLE

Perl モジュール Win32::OLE を使うといろいろできるね!と思ってましたが仕事に関連して調べていたらほんとにいろいろできるね。すごい。

use Win32::OLE;
my $ie = Win32::OLE->new('InternetExplorer.Application');
$ie->{Visible} = true;
$ie->Navigate('http://www.asahi.com');

へー、IE を操作できますよ、と。では Outlook は?なんと CPAN に Mail::Outlook などというモジュールがあるじゃんか。

use Mail::Outlook;
my $outlook = Mail::Outlook->new();
my $folder  = $outlook->folder('Inbox');
while (my $message = $folder->next()) {
print $message->Subject(), "\n";
}

受信トレイ内のメイルの件名をリストできました、と。(注意: Outlook 起動中でないとサンプルは動きません)いろいろ妄想して眠れそうにありませんがまた次回にします。ねむー。
参考:
Rubyist Magazine “Win32OLE 活用法 第 5 回 Outlook”
ラクダのステーキ: OLEでIEを操作
Win32::IE::Mechanize – Like “the mech” but with IE as user-agent
はて、Visual Studio をインストールせずに単体で起動できる Object Browser は無いのだろうか?COM のインターフェースを調べるの面倒というかわかんねー。

カテゴリー
technology

Ajax を使った日本語 Full IME

ajax_full_ime.pngAjax によるほぼ完全な IME の実装「Ajax を使った日本語 Full IME」が出ました。しっかし仕事じゃなければ全然使えるスピードが出てますねぇ。難しめの言葉も問題ないし。というかそれは辞書の問題か。

きまぐれ日記
ただ、textarea の操作はバッドノウハウの塊です。キャレットの位置を取得する
一般的な方法はなく、ブラウザ依存です。Firefox では、キャレットの位置をピクセル単位で取得できないようです。固定長フォントにしてフォントサイズから適当にキャレット位置を計算しています。うんざりです。

今のところはバッドノウハウだらけなのですね。もし仕事で使うようなことがあれば、またクロスブラウザ対応で悩まされることになるのですね。いいんだか悪いんだか。

カテゴリー
technology

対象ファイルの内、指定した文字列が含まれるファイルのみリスト (find & grep)

またいつも忘れちゃうコマンドをメモメモ。
特定のディレクトリ以下の特定のファイルの内、指定した文字列が含まれるファイルをリストする。

find . -name ‘*.php’ -exec grep -l ‘検索文字列’ {} \;