MacPortsでpTeXを入れる

http://miko.org/~tatyana/tech/OSX/Beginning_OSX.html#ptex
variantsは +utf8 だけ指定。
というか最初何も指定しないでインストールしてしまって文書をコンパイルしようとしたら酷いことに。
でもupgrade時にvariantsを変えたのが良くなかったのかactivate時にエラーが出たので-fオプションを付けて無理矢理activate。

DOMのwhichプロパティ

OperaでASCIIキーボードだとkeyCodeで「→」と「'」の区別が付かない(JISだとshiftKeyで苦し紛れに区別はつく)。のでEventオブジェクトのプロパティ眺めてたらwhichプロパティを発見。
http://developer.mozilla.org/ja/docs/DOM:event

Opera 9.24

  • keydownでは常にkeyCodeと同じ値。
  • keypressでは(確認した限りでは)矢印, PageUp/Downだとゼロ、それ以外のキーだとkeyCodeと同じ値。

Safari 3.0.4

常にkeyCodeと同じ値。keydownではキーコード、keypressではASCIIコード。

Firefox 2.0.0.9

  • keydownではkeyCodeと同じ値。
  • keypressではcharCodeが出るキーはcharCodeと同じ値。keyCodeが出るキーのうちEnter, BSなどの一部のキーのみkeyCodeの値、その他はゼロ。

IE6

未定義。

矢印キーはこれでどうにかなってもDelと「.」の区別はつかない気がするんだけど、みんなどうしてるんだろう。別にDelは使わないからいいんだけど。

JavaScriptのキーボードイベント

現時点での話なので将来的に変わる可能性が大あり。
ちゃんと検証してないのでどうなっても知りません。

Safri 3.0.4

  • keydown, keypress 共に連続して呼ばれる。
  • keydown時にもcharCodeが入る。本当にキャラクタのコード。
  • keypress時のkeyCodeはcharCodeと同値。なのでキャラクタのコード。
  • keydown, keypressのどちらかでpreventDefaultすれば文字入力は阻止できる。
  • keyIdentifierが定義済。Unicode数値実体参照か文字。
  • 矢印、Deleteキーを叩くと6万台のcharCodeが入る。代わりにkeyIdentifierを見た方が良さげ。

Firefox 2.0.0.9

  • keydownは押した最初の1回のみ。
  • keydownでpreventDefaultしても文字入力は阻止できずにkeypressでpreventDefaultしないとだめ。
  • keydownのcharCodeは常にゼロ。
  • keypressで非文字キーだとkeyCodeにキーボードのコードが入ってcharCodeはゼロ。文字キーだとkeyCodeはゼロでcharCodeにASCIIのコードが入る。
  • window.eventがundefined。

Opera 9.24

  • keydownは押した最初の1回のみ。
  • keydown, keypress共にどんな文字であろうがkeyCodeのみ使用。
    • keydownのkeyCodeは基本的にキーコードだけどShiftキーを押すと(多分)ASCIIコード。
    • keypressのkeyCodeは基本的にASCIIコードだけど非文字キーは(多分)キーコード。
  • charCodeはいつでもundefined。
  • keypressでpreventDefaultしないと殺せない。keydownだろうがkeypressだろうがフォーム部品への文字入力自体は殺せない気がする。ブラウザへの伝播は殺せてそう。

IE6

  • keydownが連続して呼ばれる。
  • keypressは文字キーの場合のみ連続して呼ばれる。非文字キーだと呼ばれない。
  • keydownでreturnValue=falseをするとキー入力の阻止と同時にkeypressの呼び出しも阻止される。
  • keydownのkeyCodeは必ずキーコード。Shiftを押しててもControlを押しててもキーコードそのまま。
  • keypressのkeyCodeはASCIIコード。ASCIIコードが取れないキーだとそもそもkeypressが呼ばれないので必ずASCIIコード。
  • W3C DOMではないのでpreventDefaultなんてものはない。

JavaScriptの開発環境探し

クラスとか覚えられなくなってきて支援が欲しくなってきたので

Dashcode

Dashboard Widget作成用ツール。JavaScriptデバッグができるらしい。
でもIDEDashboard以外に転用が効かない形なのでさすがに使いづらいか。
一応補完機能はあるけど大した解析はしてなさそう。

Xcode

んじゃあと開いてみた。
JavaScriptの色づけはできる。
でもやっぱりローカルで動くアプリの開発ツールなのでスクリプト書くだけにはいろいろ邪魔。

Aptana

なんか盛り上がってるらしいEclipse系のAjaxらへんのIDE
Eclipse入れなくてもスタンドアロンで動くらしいので入れてみたけど実にEclipseEclipse慣れてるならいいのかなぁ。
正直MacではいかにもJavaっぽいインタフェースは使いにくい。SmartSVNは使ってるけど。
あと全部英語。
支援はそれなりにしっかりしてるっぽい。
慣れればそれなりに役立ちそうだけど慣れるまでが正直苦行だ。

JsDoc Toolkit

IDEでの支援はとりあえず諦めてドキュメント作成の検討に。
だいたいJavaScriptで書いてあってRhinoで動かしてるらしい。なのでJava必須。
それなりなものができるけどそれほど賢くはない気がする。

JSDoc

JavadocJavaScript版。Perlスクリプト
出力もものすごくそれっぽい。
変換も早い。


というわけでとりあえずJSDoc使ってみようという結論。

環境移行記録

  1. ホームディレクトリ内のファイルを適当にコピー
  2. iPhotoiTunesのライブラリをコピー
  3. キーチェーンをコピー
  4. ATOK 2007をインストール
  5. Mailディレクトリとcom.apple.mailをコピー
  6. VMware Fusionをインストール
    • VMのイメージをコピー
  7. SteerMouseをインストール
    • SteerMouse.prefsをコピー
  8. Safariのブックマークをコピー

(作業マシン移行)

  1. Cookieをコピー
  2. xGesturesをインストール
    • what.xGesturesのprefをコピー
  3. SafariStandをインストール
    • SIMBLもインストール
  4. CatearSelectorをインストール
  5. .bashrc, .bash_profile, .emacs.elをコピー
  6. Carbon Emacsパッケージをインストール
  7. 秘密鍵をコピー
  8. SmartSVNをインストール

(ここでhttp://veadardiary.blog29.fc2.com/blog-entry-990.htmlを見る)

  1. The Unarchiverをインストール
  2. Perianもインストールしておく
  3. SizzlingKeysもインストール
  1. Adiumをインストール
    • Application Support/Adium 2.0をコピー
  2. プリンタユーティリティをインストール
  3. MacPortsをインストール
  4. pTexをインストール