7 月 18

以前「Mozilla Firefox 3 - Tab Mix Plus が使えなかったので使えるように」で、せっかく Tab Mix Plus を使えるようにしたのに、
Firefox 3.0.1 でまた使えなくなった・・・。

Tab Mix Plus のレビューを読んでみたら、対策が書いてあったので、それで使えるようになりました
参考にしたのはここ

まず、エクスプローラで↓のディレクトリへ移動
C:\Documents and Settings\\Application Data\Mozilla\Firefox\Profiles\pa9e5v5a.default\extensions\{dc572301-7619-498c-a57d-39143191b318}

そこに、install.rdfというファイルがあるので、それをエディタで開いて以下の変更。

変更前:

  <RDF:Description RDF:about="rdf:#$Otko01"
                   em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
                   em:minVersion="1.0"
                   em:maxVersion="3.0" />

変更後:

  <RDF:Description RDF:about="rdf:#$Otko01"
                   em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
                   em:minVersion="1.0"
                   em:maxVersion="3.2" />

maxVersion3.0 から 3.2 に変えただけ。
maxVersion4.0 とかにしておけば当分平気と思われるけど、 なんとなく参考にした例に合わせてみた。

やっぱり Tab Mix Plus のない Firefox なんて考えられない。

それにしても、ここ最近、調子が悪すぎる・・・ orz。

7 月 01

現在使用中の 窓使いの憂鬱 の設定ファイル。

窓使いの憂鬱は Windows 上のキーバインドを主に emacs ライクなキーバインドにするためのソフト。
Windows Vista では普通には動作しないらしく(Windows の昨日の一部を制限される代わりに使用することは可能らしい)、次にPCを買い換えるときは Windows 卒業な予感・・・。

    設定:

  1. HOME HHKL2 Emacs (Happy Hacking Keyboard Lite2 で使用するとき用)
    -DUSE109;-DHHKBLite2
  2. HOME Let’s note CF-Y2 Emacs (Let’s note CF-Y2 で使用するとき用)
    -DUSE109;-DLetsNoteCFY2
    設定ファイル:(環境変数 HOME に指定したディレクトリ直下に以下の3つのファイルを配置)

  1. .mayu
  2. .emacs.mayu
  3. .emacsedit.mayu

以下、設定ファイルの内容をそのまま引用。
emacsedit.mayu はデフォルトのままかも。
※一部うまくいっていない設定もあった気がします。

    普通の設定(と思うこと)以外でやってること

  • 無変換を Ctrl に割り当て
  • 変換を Ctrl に割り当て
  • 半角/全角を Alt に割り当て
  • カタカナを Alt に割り当て
  • 左Alt を Windowsキー に割り当て
  • 右Alt を Applicationキー に割り当て
  • ;(セミコロン)を Enter キーに割り当て
  • Ctrl-;(Ctrl + セミコロン)を ;(セミコロン) に割り当て
  • C-i を Tab キーに割り当て
  • C-g を ESC キーに割り当て
  • C-d を Del キーに割り当て
  • C-h を Backspace キーに割り当て
  • emacs の elscreen ライクな C-z でタブ関係の処理をする設定
  • などなど・・・

Continue reading »

6 月 22

メモ代わりに今使ってる AddOn 達。

  • AutoAuth
    ベーシック認証とかのパスワードを記憶してくれて、いちいち認証のダイアログが出てこないようにしてくれる。
    ダイアログが出てくると、それに処理を持って行かれてしまうのでかなり便利。
  • ColorZilla
    表示されているページ上の文字色・背景色・画像の色などを調べられる。
    人のサイトのデザインを参考にする場合に意外と便利だけど滅多に使わない。
  • Delicious Bookmarks
    del.icio.us というソーシャルブックマークを使うとき便利。はてぶ派の人には関係なし。
    簡単に del.icio.us にブックマークが出来るボタンが出来る。
    個人的にはメインのブックマークは del.icio.us にするようにして、よくアクセスするブックマークのみを Firefox のブックマークでするようにしてる。
    ツールバー上にブックマークツールバーを表示するようにして、そこによく使うブックマークを配置。
  • DownThemAll!
    ページ内の画像やリンクなどをまとめてダウンロードできる。
    面白い画像を集めてるサイトなどの画像を一括で保存するときなどに使う。
    今までは個別でダウンロードしていたけど、どこで拾ってきた画像なのか分からなくなることが多かったので、
    DownThemAll! の「別名で保存」を「*url*_*subdirs**name*.*ext*」の様にして、どこで拾ってきたのかがすぐ分かるようにして管理。
    画像全体の管理は、Google の Picasa2 を使ってまとめて管理。
  • Fierr
    Firefox のページを開けなかったときのエラー画面を、ちょっとカッコよくしてくれる。
    ただそれだけ。
  • Firebug
    HTML や CSS をちょっとずつ編集しながらデザインを変更するときに便利。
    あと、JavaScript のデバッグをしたりするときにも。
    ただ、Firefox 2 時代、これを使っているとものすごく Firefox が重かったので、デフォルトで無効にしている。
    開発をしたり、参考にしたサイトが現れたときのみ有効。
  • FireGestures
    マウスジェスチャーを使えるように。マウスの右ドラッグで←とかの線を描くと「戻る」、リンク上で↑で新しいタブでリンクを開く、
    とかのある程度マウスだけでサクサク操作ができる機能。
    もともとは、 All-in-One Gestures を使っていたけど、Firefox 3 に対応していないので乗り換え。
    JavaScript で独自の動作を作ったりも出来て便利。
    All-in-One Gestures では標準であった画像を拡大とかの JavaScript も FireGuestures のサイトにあるので導入。
  • Gmail Space
    Gmail をファイル置き場に使える。バックアップとか、出先でも見れるようにとかそんな時用。
    最近両方使ってないけど、Windows の場合エクスプローラにGmail をドライブとして追加できる Gmail Drive を使う方が便利かもしれない。
  • Greasemonkey
    猿。
    JavaScript で色んな機能を追加できる。
    主に Stealth Kiwi という、Web での調査中(?)に脱線して帰ってこないときにしかってくれるのを使うために導入してます。
    仕事と関係ないサイトを 30分 Web を徘徊したら、1時間30分は Web 徘徊禁止とかが出来て便利。
    Greasemonkey を無効にすると簡単に黙らせることが出来るのが玉に瑕。
  • Html Validator
    ページのソースを表示したときに、HTML の構文チェックをしてくれる。表示がおかしいときは、ページ作成中に便利。
  • IE Tab
    Firefox ではどうしても見ることが出来ないサイトを IE で見ることが出来るので便利。
  • NoScript
    JavaScript を、こちらで指定したサイト以外無効に出来る。
    JavaScript を多用したサイトに行ったときにはいろいろと面倒だけど、悪意のあるサイトやトラッキングから守ってくれる。
  • Resizeable Textarea
    これは便利すぎる。 textarea のサイズをドラッグで無理矢理広げることが出来る。
    メールやコメントを書くときに textarea を広げられるのは非常に便利。
  • Scrap Book
    ブックマークに登録する感覚でページを保存できる。ウェブ魚拓のローカル版。
    消されても後で見たい情報、ネタ、新聞記事などをページ毎保存できて、しかもブックマークのように管理できる。
    実際保存したサイトを見るかと言われたらほとんど見ないけど、自己満足で保存することはよくあります。
  • Stealther
    クッキーとか、こちらからサイトに対して送信している情報を遮断できる。
    一時的にクッキーの情報を消してアクセスしたいときとか、たまに使用。
  • Tab Mix Plus
    もはやこれがないと Firefox の価値が半減・・・。タブ関係の機能強化ツール。
    全快終了時のタブを記録しておいて復元できるセッションや、
    ブックマークを新しいタブに開かせる機能、ロケーションバーからのURL入力を新しいタブで開く、タブの多段表示、
    その他細々かゆいところに手が届いて素晴らしいです。
    ただ、Firefox 3 では、 2008/06/22 現在、Firefox Add-ons から普通には更新できなくなっているので注意
  • User Agent Switcher
    ブラウザの種類によって挙動を変えるサイト様に、他のブラウザのフリをするときに使用。
    携帯のフリをしてみたりとか。
  • Web Developer
    Web 開発に便利なツール。
    form の hidden の情報や、name 属性などを目に見えるようにしたり、その他いろいろページやデザイン作成中に便利な機能満載。
  • ラインマーカー
    よんでるサイトに、線を引いたり色を付けたり出来る。たまに便利。
    ページ内をあっちこっち移動しながら読んでるときとかに便利。
  • 中止ボタンがしいたけに見えて困る
    中止ボタンが椎茸になる素晴らしいアドオン。

他にもあるけど、今、主に使っているのはこんな感じ。

あと、 lolifox という Firefox (2008/06/22 現在 Firefox2) のクローンも併用。
Firefox のアドオンがそのまま使えて、ほぼ Firefox なのに設定の保存先などの管理が全く別なので、
Web 系の開発をしたりするときに重宝。
余計なアドオンを排除してサクサク動かしたいときや、ほぼまっさらの状態の Firefox で見たときのページを確認できたり非常に便利。

6 月 19

Firefox 3.0 でページ内のインクリメンタル検索をしようとしたところ、できない・・・。
編集メニューの「検索」を選んだ場合も、C-F をおした場合も同様。

正常なら C-F を押した後、Firefox のステータスバー付近にインクリメンタル検索用のバーが表示されるはずなのが、
Firefox が無反応で検索用のバーが表示されない。

いろいろ調べた結果、/Find Bar/ というアドオンが悪さをしているらしい。

環境:
Windows XP SP2 + Firefox 3.0 + /Find Bar/ 1.0 でこの症状。

解決策:
/Find Bar/ を泣く泣く無効にする。

6 月 19

Firefox 3.0.1 にアップグレードして、Tab Mix Plus が再び使えなくなった場合はこちら

Firefox 3 にバージョンアップしたら、今まで使っていた AddOn が使えなくなっていて途方に暮れる・・・。

All-in-One Gestures が使えなくなったので、 FireGestures に乗り換えてみることで解決。

Tab Mix Plus は他に代わりが見つからず途方に暮れる・・・。
Tab Mix Plus のレビュー をよく読んでみたら、Firefox 3 で使用可能な Tab Mix Plus が↓の URL に存在する模様。

wondersz1 - 日時: 2008年 6月 18日
http://tmp.garyr.net/tab_mix_plus-dev-build.xpi

Firefox3 は予想よりもだいぶサクサク動くけど、Tab Mix Plus が使えないと思いの外不便でした。
ブックマークを新しいタブで開くが使えないと・・・ orz。

「このアドオンには安全な更新方法が用意されていません。」と表示されて、普通のアドオンの更新で upgrade できない、アドオンもいくつかあったのもワナ・・・。
一旦削除してからインストールし直せばいいのに気づくのにだいぶ時間を使った気がする。

Mouseless Browsing も復活しないかな・・・。

5 月 11

emacs(Meadow 3.00-dev) の elscreen と iswitchb と mcomplete が便利でよかったんだけど、いつの頃からか、
C-z b(elscreen-find-and-goto-by-buffer) をしたときに、ミニバッファが↓の様になって、うまくいかない事件が発生。
[No match] [No match] [No match] [No match] [No match] …

調べてみると、*Message* バッファに次のエラーが。(数値の部分はその時々で変わる)
Error in pre-command-hook: (args-out-of-range 41 63)

ウチちの環境でこのエラーを再現する方法:

  1. emacs を起動。 (elscreen, iswitchb, mcomplete が使える状態)
  2. C-z b *Message* と入力しようとする
  3. [No match] [No match] … と出て、全くバッファ名にマッチしなくなる
  4. *Message* バッファに Error in pre-command-hook: (args-out-of-range 41 63) が出てる
  5. *Message* [No match] [No match] [No match] [No match] とかいう名前のバッファが新規作成される

ちなみに、 C-x b などでバッファを選ぶと問題ない。 C-z b の時だけ。

原因究明:
pre-command-hook とか言われても、どの hook がダメなのかさっぱりだったので、いろいろ追っかけて、elscreen と mcomplete の連携がうまくいってないことが判明。
ずっと、iswitchb が原因と思って iswitchb.el をデバッグしてたのに・・・。

mcomplete.el の 1093 行目付近の以下の箇所を修正。
修正前:

(mapcar #'(lambda (f) (put f 'mcomplete-mode '(:mode off)))
        '(iswitchb-buffer iswitchb-buffer-other-window
          iswitchb-display-buffer iswitchb-buffer-other-frame

          ido-find-file ido-find-alternate-file ido-write-file
          ido-insert-file ido-switch-buffer ido-insert-buffer
          ido-kill-buffer ido-find-file-other-window
          ido-find-file-other-window ido-switch-buffer-other-window
          ido-display-buffer ido-find-file-other-frame
          ido-switch-buffer-other-frame))

修正後:

(mapcar #'(lambda (f) (put f 'mcomplete-mode '(:mode off)))
        '(iswitchb-buffer iswitchb-buffer-other-window
          iswitchb-display-buffer iswitchb-buffer-other-frame

          ido-find-file ido-find-alternate-file ido-write-file
          ido-insert-file ido-switch-buffer ido-insert-buffer
          ido-kill-buffer ido-find-file-other-window
          ido-find-file-other-window ido-switch-buffer-other-window
          ido-display-buffer ido-find-file-other-frame
          ido-switch-buffer-other-frame

          elscreen-find-and-goto-by-buffer
          ))

どうやら、mcomplete は、 iswitchb とかと競合しないように気を遣っているようだけど、elscreen は眼中になかったらしい。

4 月 30

php-mode.el を修正。

↓の様なインデントをサポートするように改造。

$a = array(
    'aaaa' => 1,
    'bbbb' => 2,
);

あと、もともと入っていた template という、ウィザード形式の入力支援が苦手だったので、全部その処理をしているところをばっさり削除。
便利な入力支援は yasnippet を使うことにする方がいいかも。
http://code.google.com/p/yasnippet/

4 月 21

ひさしぶりに、 SQLite を触ってみたら変なエラーが出たのでメモ。

    環境

  • Windows XP SP2
  • FedoraCore7 on coLinux
  • SQLite 3.4.2

perl から sqlite を操作しても、 sqlite3 のコンソールから直接操作しても、cofs 上の database ファイルは扱えなかった。
※ファイルの作成はできるけど、 CREATE DATABASE とかの操作をすると
disk I/O error(10) at dbdimp.c line 403

解決策は、データベースを保存する場所を、cofs じゃない場所にしただけ。
tmpfs 上、ext3 上にデータベースを作成した場合はOKだった。

#!/bin/perl

use strict;
use warnings;
use DBI;

my $dbname;

$dbname = 'test.db'; # OK:ext*,tmpfs NG:cofs
unlink($dbname) if (-e $dbname); # テストだから毎回新規作成したい

unless (-e $dbname) {
    my ($dbh, $sql, $rc);

    $dbh = DBI->connect("dbi:SQLite:dbname=$dbname", "", "", {PrintError=>0});
    die "Error: $DBI::errstr\n" unless ($dbh);

    # cofs の時は CREATE のタイミングで↓のエラーが発生する
    # disk I/O error(10) at dbdimp.c line 403
    $sql = "CREATE TABLE users (id integer primary key, name varchar(32), age integer)";
    $rc = $dbh->do($sql);
    print "$DBI::errstr\n" unless ($rc);
}
4 月 11

ペペロンチーノを作る。

使う Makefile の中身:

INSTALLDISH = /dish
PAN  = /tmp/fryingpan
POT  = /tmp/pot
CUP  = /tmp/cup

all : peperoncino

install :
	mv ${PAN}/* ${INSTALLDISH}

peperoncino : source boiled-pasta consomme.o
	split -d -b 100cc ${POT}/water.o water-
	mv ${POT}/water-00 > ${CUP}
	mv consomme.o ${CUP}
	rm ${POT}/water*
	find ${POT} -name "pasta-*" -exec mv {} ${PAN} \;
	fry -t 1m ${PAN}

source : garlic.o red-pepper.o olive-oil.o
	split -d -b 2 garlic.o garlic-
	mv   garlic-* ${FRYINGPAN}
	split -d -b 15 red-pepper.o red-pepper-
	mv   red-pepper-* ${FRYINGPAN}
	mv   olive-oil.o ${FRYINGPAN}
	fry  ${PAN}

boiled-pasta : water.o salt.o pasta.o
	mv water.o ${POT}
	boil  ${POT}
	split -d -b 150 pasta.o pasta-
	mv pasta-* ${POT}
	mv salt.o ${POT}
	sleep 6m

garlic.o :
	cat /dev/garlic > garlic.o

red-pepper.o :
	cat /dev/red-pepper > red-pepper.o

olive-oil.o :
	cat /dev/olive-oil > olive-oil.o

water.o :
	cat /dev/water > water.o

salt.o :
	cat /dev/salt > salt.o

pasta.o :
	cat /dev/pasta > pasta.o

consomme.o :
	cat /dev/consomme > consomme.o

clean :
	rm -R ${INSTALLDISH}/*
	rm -R ${PAN}/*
	rm -R ${POT}/*

作って食べる:

% ls
Makefile
% make
% make install
% eat /dish/*
4 月 09

AutoHotkey
M-Space (Alt+Space) で Launchy を起動していたけど M-Space 他の機能に割り当てたい気がしてきたので、何かのランチャーがやってたみたいに Shift を素早く2回押しで起動するようにする。

窓使いの憂鬱でしようと思ったけど、「Shift キーを素早く2回押し」の「素早く」の部分ができないっぽいので、AutoHotkey を導入。
AutoHotkeyを流行らせるページ の説明が詳しかった。

AutoHotkey を導入する前に、Launchy を起動させるホットキーを Win+Space に変更する(他のホットキーと被らないように)。

  • まずは、ここから AutoHotkey のインストーラを取ってきてインストール。
  • D:\Settings\AutoHotkey というディレクトリにスクリプトを置くことにして、 D:\Settings\AutoHotkey\MyAutoHotkey.ahk というファイルを作成。
  • #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
    SendMode Input
    
    ~Shift up::
    if(A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < 180)
    Send,#{Space}
    return
    
  • AutoHotkey のショートカットを作成して、 リンク先を↓の様に変える。
  • "C:\Program Files\AutoHotkey\AutoHotkey.exe" "D:\Settings\AutoHotkey\MyAutoHotkey.ahk"

  • あとは、このショートカットをダブルクリックすれば、素早く Shift 2回押しが Win+Space に変換されて、Launchy が開くようになる。
  • このショートカットをスタートアップに登録しておけば便利。
  • (ホントは、ショートカットを作成しなくても、MyAutoHotkey.ahk をダブルクリックするだけでいい。)