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

ファイルの新規作成時にテンプレートを適用する

Vim

vimrc に以下のような 1 行を加えることで、テンプレートからファイルを新規作成できる。やっていることは単に read しているだけだが、非常に便利。無駄なコピペ作業が無くなった。 :au BufNewFile *.html 0r $VIM/templates/template.html ヘルプは :he te…

テキストフィールド内のリンクエリアが広すぎる

Flash 8 で、テキストフィールドに <a> タグを書いたところ、空白部分もリンクになってしまって困った。以下のようなコードで再現できる。 this.createTextField("my_txt", 1, 100, 100, 300, 100); my_txt.border = true; my_txt.multiline = true; my_txt.wor</a>…

選択されたインスタンスに、ライブラリ内と同じ名前を付ける JSFL

ステージ上で選択されたインスタンスに、ライブラリ内と同じ名前を付ける JSFL を書いた。 /** * 選択されたインスタンスにライブラリ内と同じ名前を付ける */ var selectedItems = fl.getDocumentDOM().selection; for (var i = 0; i < selectedItems.lengt…

ATOK の推測候補モードが便利

ATOK の推測候補モードが便利。有効にすると、入力中の文字をインクリメンタル補完してくれる。無効状態でもタブを押せば補完できるが、インクリメンタルの方が圧倒的に快適。 推測候補モードを有効にするには「CTRL-変換」を押す (起動時に有効にすることも…

シングルトンをグローバル変数の代わりにしない

現在作業中の Flash 案件で、画面上にユニークなものを全てシングルトンにしていたら、案の定「これはひどい」コードになりつつある。免罪符として、コメントに「これはひどい」と記しておいた。結論を言うと、意思決定力が弱いのに、設計しながらコーディン…

ノーマルモードに戻るキーの流派

Vim

ノーマルモードに戻る方法はいくつかある。 ESC CTRL-[ CTRL-C 自分は CTRL-[ 派。ホームポジションで押せるし、左小指と右小指で小気味がよいから。ただ、焦っているときは ESC を連打する。

ウィンドウを最大化して起動する

Vim

Vim 起動時に、儀式的な行動としてウィンドウを最大化している。 :simalt ~x これを毎回入力するのが面倒なので、F12 にマップしたのだが、調べてみると、起動時に最大化する設定があるようだ。 au GUIEnter * simalt ~x vimrc に追加しておこう。

Realforce を買った

会社用に REALFORCE91UBK を買った。タイピングが非常に心地よく、いくら打っても疲れない。……気がする。

レイヤーを追加して this.stop(); を書く JSFL

デザイナから渡された .fla ファイルに「ラベルはついているが、stop() が書かれていない MovieClip」が大量にあった。これらの MovieClip をステージに配置した途端、アニメーションのループが始まってしまう。なんとしても、stop() を入れたい。 そこで、…

Reference 型が欲しい

Reference 型を使いたいシーンが多々ある。例えば以下のようなコード。 var hoge:Hoge = new Hoge(); var task:HogeInitTask = new HogeInitTask(hoge); これは、タスクで、Hoge 型の hoge を初期化するもので、タスクは任意のタイミングで実行される。タス…

Flash IDE の「ダウンロードのシミュレート」は使い物にならない

ダウンロードのシミュレートを行うと、グローバル変数やシングルトンがリセットされない。これは致命的。CS3 では解決したのだろうか。 5 1/2 blog のコメントを見ると、解決策が 2 つ上がっている。 System.capabilities.playerType で振り分ける delete 文…

行を補完する

Vim

インサートモードで CTRL-X を押し、続けて CTRL-L を押すと行補完を行うことができる。ヘルプは :he compl-whole-line ActionScript の長いパッケージ名を補完する たとえば、幾つか .as ファイルのバッファを開いた状態で、 import org.dyndns.bitmap. こ…

Align.vim のバグ

Vim

Align.vim に落とし穴が。 var a = 100; var hoge = (a == 100) ? "bar" : "baz"; このような、連続する = が行に含まれたコードを \t= で整列すると、== の部分が文字化けを起こし、文字コードによってはファイルを保存できなくなる。要注意。

略語で始まる変数の命名法

たいした問題ではないが、lowerCamelCase ルール下で、略語で始まるクラスのインスタンスの命名に数秒悩まされる。例えば HTMLParser クラスのインスタンス名。 var myHTMLParser = new HTMLParser(); var parser = new HTMLParser(); var htmlParser = new …

議論のレッスン

『議論のレッスン』を読んだ。議論という語感からディベートなどの討論を想像しがちだが、内容はもっとくだけていて、自分の言いたいことを正しく伝える/相手の主張を正しく理解するための方法を、身近な例や練習問題を通してわかりやすく解説している。 面…

改行が崩れ、大量の ^M が表示されるときの対処法

Vim

改行が崩れ、大量の ^M が表示されるときの対処法。 :e ++ff=mac カレントファイルの fileformat を mac にするという意。よく忘れるので文法で覚えておこう。

ランダムな平仮名の文字列を生成する

Ruby でランダムな平仮名の文字列を作る方法で悩む。別に、Ruby ではなく JavaScript 等でもいいのだが、せっかくだから Ruby で……と思っていたら詰まってしまった。 puts 12354.chr => RangeError Integer#chr は 0 から 255 の範囲しかとらない。ではどう…

起動時に SuperDrive Update 2.1 のエラーが出る

Mac

Macbook (OSX 10.4.10/C2D 2GHz) に最近当たったアップデートに、SuperDrive Firmware Update 2.1 というものがある。これが当たってから起動時にダイアログが出るようになってしまった。 アップデートできる装置が見つかりません このファームウェア・アッ…

コマンド入力の履歴を一覧表示する

Vim

Vim の終了時に q: と typo したら見慣れぬウィンドウが現れた。コマンドラインウィンドウというらしい。 このウィンドウには、過去数十件のコマンド履歴が表示されていて、Enter を押すとカーソル下のコマンドが即座に実行される。 何も実行せずにコマンド…

環境設定をどこに書くか

Flash で環境に依存する設定を行いたいときのベストプラクティスは無いだろうか。 というのは、Flash が CGI や、リモーティングなどの API に接続する際、その接続先 URI などの環境設定を、どこに持たせるかが悩みどころなのだ。ローカル、ステージング、…

リモート上のファイルを直接編集する

Vim

Vim からリモート上のファイルを直接編集できる。 :e http://yahoo.co.jp/ とおもむろに打ったら Yahoo トップページのソースが開いた。面白い。 :he netrw でヘルプを読める。ちなみに Linux 環境なら問題ないが、Windows の GVim だと、wget などのコマン…

ファイル末尾の EOL を削除する

Vim

Vim で編集したファイルの末尾には、必ず改行 (EOL) が入る。この EOL を削除するには、バイナリモードにして noendofline を設定する。 :set binary :set noendofline 以前、Flash の loadVariables から読むテキストを Vim で書いたが故に冷や汗をかき、今…

Call of Duty 4: Modern Warfare

Call of Duty 4 のプレイ動画が公開された。 Call of Duty 4 - The Bog Rescue Gameplay HD まるで映画のようだ!

VMware Server 上の CentOS でキーボードエラーが出まくる

VMware Server Console で CentOS を操作していると、以下のようなエラーメッセージが頻繁に表示されて話にならない。ターミナルエミュレータ経由なら問題無いが、VMware Tools を入れるときなど、VMware Server Console で作業する際に困る。 atkbd.c: Unkn…

コンウェイの法則

コンウェイの法則 (Conway's Law)。 ソフトウェアのアーキテクチャは、それを開発した組織の構造に似る。 2 つの開発グループが、同一インタフェースのモジュールを開発すると、グループ同士のコミュニケーションの質が、モジュール同士の親和性に反映される…

CASA Framework

CASA Framework が便利らしい。リファレンスを見ると、各種ローダ、ネイティブクラスの拡張、ユーティリティ、タスクの処理系が豊富なのがわかる。CASA は、アプリケーションフレームワークではなくクラスライブラリなので、一部の面倒な処理を CASA に委譲…

CentOS に Red5 を入れてみた

Red5 が面白そう。インストールしてちょっとさわってみた。 環境 CentOS 4.5 with VMware Server Java をインストール Java を JPackage から入れる。 cd /etc/yum.repos.d wget http://www.jpackage.org/jpackage.repo jpackage.repo をエディタで開いて、 …

コピペ用 .vimrc

Vim

自分のためにアップしておく。 colorscheme desert set nocompatible set autoindent set smartindent set ignorecase set showmatch set wildmenu set wildmode=list:longest set encoding=japan set fileencodings=utf-8,iso-2022-jp,cp932,euc-jp set ter…

サブネットマスクの恐怖

久々にヘマをした。というのは、会社で Netscreen の使い方を勉強していて、社内のネットワークを Untrust とし、MIP を設定して Untrust → DMZ (Web サーバ) の通過を試そうとした。1 対 1 の IP マッピングを設定するつもりが、何を血迷ったか Mapped IP …

SWF のヘッダ情報を読み解く

SWF ファイルヘッダの読み方を解説してみる。ヘッダの仕様は、File Format Specification PDF の 16 ページにある (Specification へのリンクはエントリ下部)。 用意するもの Stirling などのバイナリエディタ 基数変換ができる電卓 ヘッダからわかる項目 ヘ…