2007-01-01から1年間の記事一覧

JavaScript で SWF ファイルを読み書きする

3to2 に触発され、JavaScript で SWF ファイルを読み込んで中身を書き換えるデモを作った。 JavaScript で SWF を読み書きする (Firefox 限定) 主な仕組み XmlHttpRequest で SWF バイナリを読み込む (参考) SWF を解析する (3to2 などを参考) Base64 エンコ…

作図用プラグイン DrawIt! を入れた

Vim

DrawIt! を入れた。 +--------+ +------+ |hogehoge|---|foobar| +--------+ +------+ このような図を簡単に描くことができる。ディレクトリツリーを描くときにもよさそうだ。 \di でドローモードにして適当に描いていても楽しい。

レジスタの内容をコマンドとして実行する

Vim

そろそろ Vim スクリプトを覚えようと思い、マニュアルを読んでいて知ったこと。 :@ が便利。 :@ の後にレジスタを指定すると、そのレジスタの内容ををコマンドとして実行してくれる。 例えば、スクラッチに :let i = 1 :while i < 5 : echo "count is" i : …

続 Firefox の CTRL-H を BackSpace にしたい

以前、Firefox の Ctrl-H を BackSpace にしたが、Firefox をアップデートしたら設定が無効になってしまった。 Google 検索した結果、Keyconfig という拡張が良いらしい。 随分長い間メンテナンスされてないようにみえて、入れてみるとバージョンは 20060828…

Fiddler で HTTP 通信をデバッグする

Fiddler には HTTP 通信を確認する以外にも、実務で役立つ便利な機能がある。 ブレークポイントの設定 任意のリクエストまたはレスポンスに、ブレークポイントを設定できる。 例えば、Google にアクセスし、コマンド入力エリアに以下を入力する。 bpu /searc…

JavaScript の辞書ファイル

JavaScript の辞書ファイルを導入した。 作者の cooldaemon 氏に足を向けて寝られない。

ハーズバーグの動機づけ・衛生理論

ハーズバーグの動機づけ・衛生理論 F.ハーズバーグは仕事に対する満足をもたらす要因と不満をもたらす要因が異なることを示し、 前者を動機づけ要因、後者を衛生要因と呼んだ。動機づけ要因を与えることにより、満足を高め、 モチベーションを向上させること…

Fiddler を Firefox で使う

Fiddler を Firefox 使うための手順は以下の通り。 Firefox で "オプション" -> "詳細" -> "ネットワーク" タブを開く 接続設定ウィンドウを開く "自動プロキシ設定スクリプト" の欄に以下ように PAC ファイルへのパスを入れる (<USERNAME> は任意の値) file:///C:/Doc</username>…

行末の ^M を削除する

Vim

改行は崩れないが function hoge() {^M return 100;^M }^M このように、行末に制御コードの ^M が現れる場合の対処法。 :%s/^M//g ^M の部分を CTRL-V CTRL-M で入力する。ヘルプは :he i_CTRL-V :he i_CTRL-M もっと厳密に置換したい場合は、「Tip #26: Get…

カーソル下のファイルを開く

Vim

開きたいファイル名の上にカーソルを移動し、gf を入力すると、そのファイルを開くことができる。 ヘルプは :he gf 例えば、HTML を編集中、読み込んでいる JavaScript ファイルを開きたい場合、 <script type="text/javascript" src="path/to/hoge.js"></script> src 文字列の中のどこでもよいので gf を入力する。 また、C…

setInterval/setTimeout を使った非同期ループ

以下のような巨大なループを実行するとブラウザがフリーズする。 for (var i = 0; i < 100000; i++) { //... } alert("done"); フリーズを回避するには、for ループを、setInterval/setTimeout に置き換えればよい。Flash ならば onEnterFrame イベントも有…

カーソル下の単語を調べる

Vim

プログラミング中に、操作ミスで SHIFT-K を押したら、ヘルプが立ち上がった。 :he K を読むと、SHIFT-K でカーソル下の単語を引数に、任意のプログラム keywordprg を走らせることができるようだ。 keywordprg が設定されていない場合は、カーソル下の単語…

Internet Explorer Developer Toolbar "を" デバッグする

IE Developer Toolbar Beta 3 - Now Available Internet Explorer Developer Toolbar - Get it Now! Get it Now したのはいいが、IE 6 でバグがでる。 毎回 Just-In-Time デバッグのダイアログが出てしまい、使い物にならない。 Microsoft Script Debugger …

Function.length

"JavaScript Method Overloading" を読んで、Function.length の存在を知る。 Function.length には、関数に明示的に定義された引数の数が入る。 var hoge = function(foo, bar) { console.log(arguments.length); // => 1 console.log(arguments.callee.len…

ヤバい経済学

『ヤバい経済学』を読んだ。原題は Freakonomics であり、厳密には経済学の本ではない。 よって、"マクロ" も "ミクロ" も出てこない。もちろん、それらを期待して読むわけがない。 翻訳が変わっていて、「ハッカーと画家」のような若者語り口調で、構えずに…

Image オブジェクトを appendChild すべきではない

Safari 1.x/2.x では、以下のコードは動かない。Safari 3.x では動く。 document.getElementById("hoge").appendChild(new Image()); なので、代わりに createElement を使う。 document.getElementById("hoge").appendChild(document.createElement("img"))…

論理学がわかる事典

『論理学がわかる事典』読んだ。 以前から、ロジカルシンキングや、議論術、詭弁には興味があったが、それら、実践的なものに比べて、論理学は抽象的というかアカデミックというか。哲学や言語学、数学に通ずるものがある。自分としては、論理記号がそんなに…

IE 7 から IE 6 にダウングレードする

IE 7 を入れたら最後、ダウングレードできないと思いこんでいたが、簡単に IE 6 に戻すことができる。 [スタート] ボタンをクリックして、[コントロール パネル] をクリックします。 [プログラムの追加と削除] をクリックします。 [プログラムの削除] をクリ…

アンカーエレメントの href を書き換えると IE で表示がおかしくなる

以下のような HTML がある。 <body> <a id="hoge"></a> <script type="text/javascript"> document.getElementById("hoge").innerHTML = "hoge@foo"; document.getElementById("hoge").href = "http://google.co.jp"; </script> </body> これを IE で表示した際 hoge@foo ではなく http://google.co.jp になってしまうバグに遭遇した…

完全にマッチする単語を検索する

Vim

ignorecase と smartcase がセットされた状態で hoge Hoge HOGE この中から hoge だけ検索したい。そんな場合には、\C オプションを使用する。 /hoge\C \C は、検索パターンの中のどこに記述してもよい。 ヘルプは :he /ignorecase

TortoiseSVN のキーボードショートカット

TortoiseSVN のコンテキストメニューには SVN 更新(U) SVN コミット(C)... という項目がある。これらの括弧付きの文字はキーボードショートカットを示すものかと思いきや、そうではないらしい。 U や C を押しても何も起こらない。 また、キーボードショート…

Chalice for Vim

Vim

Chalice for Vim を使ってみた。面白い。 が、生産性を下げるけしからんプラグインのため、職場の PC には入れないでおこう。

Vim のイースターエッグ

Vim

Vim のイースターエッグ。 :help 42 :help holy-grail :help! これ以外に無いか探していたら、面白い物があった。 クレジットを表示する、イースターエッグらしいイースターエッグ。 Easter Egg # 3 (Credit Listing in VIM) On the command line edit a fil…

自動的に補完候補を表示する

Vim

自動補完候補表示の設定を追加した。 候補を出す際に CTRL-N、CTRL-P を押す必要がなくなり、かなり快適になった。

ExternalInterface で通信するデータの型に注意する

ExternalInterface で通信するとき、型に注意すること。 new Date("2007", "10", "7"); このコードは JavaScript で有効であり、ActionScript ではエラーになる。 年月日を文字列で渡してしまい、動かなくて困った。

AirMac の SSID を変更した

Mac

「ユビキタス社会の歩き方(5) [重要] 自宅を特定されないようノートPCの無線LAN設定を変更する」を読んで、これはまずいと思い AirMac の SSID を変更した。

ExternalInterface で大量のデータを渡すとクラッシュする

How to Speed Up Flash 8's ExternalInterface ExternalInterface を使って、Flash から JavaScript へ 30000 文字前後の巨大な文字列を渡したら FlashPlayer 8 がクラッシュした。 ちなみに、FlashPlayer 9 では問題ない。 原因は、ExternalInterface が内…

Subversion の svn:externals

Subversion の svn:externals という機能を知る。日本語では外部定義というらしい 。svn:externals を使うと、任意のディレクトリに、まったく別のリポジトリの、あるディレクトリへのリンクを貼ることができる。例えば、あまりよい例ではないが、Papervison…

ピーターの法則

『ピーターの法則』を読んだ。法則については、Wikipedia を参照。 ピーターの法則を知ったからといって、人生に大きな変化をもたらすわけではない。だが、キャリアを考える際の判断材料にはなる。また、仮に上司がまったくの無能であれば「嗚呼、これがピー…

AjaxPages を大量に使うと重い

現在走っているプロジェクトでは AjaxPages を使っているのだが、これがどうにも遅い。 1 つのスレッドで 10 前後のテンプレートを処理するのは無理があったか。 テンプレートファイルの取得 (ここが Ajax たる所以) テンプレートのパース これらの処理のう…