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

ShockwaveFlash OCX を使う

Delphi (や .NET 系) のアプリケーション内に置かれた ShockwaveFlash OCX との通信方法などをまとめておく。こういった技術は、Flash プロジェクタでは賄えないような、ちょっとしたデスクトップアプリケーションを作るには良いかも知れない。 基本は文字列…

抽象メソッドの実装洩れを防ぐ

インタフェースと違い、抽象クラスの抽象メソッドは、サブクラスでそれを実装していなくともコンパイルエラーとならない。そもそも ActionScript に抽象メソッドという概念が無いため仕方がないと思っていたが、万が一の実装洩れを防ぐための解決策があった …

Advanced ActionScript 3 with Design Patterns

『Advanced ActionScript 3 with Design Patterns 』では、最初のパターンとして MVC パターンを紹介している。Moock 本の MVC パターンの解説に比べ、非常に簡潔にまとまっていると思う。Moock 本ではコードと説明が冗長で、設計は優れているものの実用的で…

RMagick のインストールメモ

仕事で使えればと思い、RMagick をインストールした。 RubyForge から rmagick-1.13.0-IM-6.2.9-0-win32.zip をダウンロードし、解凍する。 ImageMagick-6.2.9-3-Q8-windows-dll.exe を実行し、インストールする。"Update executable search path" にチェッ…

Flash コンテンツをデバッグするための Firefox extention

Flash をデバッグするための Firefox extention を Alessandro Crugnola(SEPY の開発者) が配布している。Flash デザイナや開発者は是非とも入れておきたい。 FlashTracer FlashTracer は、Firefox から trace の出力を見ることを可能にする extention。デバ…

ビットマップに対してはリンケージの設定を自動化できない

仕事で、ライブラリに存在する複数のビットマップのリンケージ設定をすることになった。jslf で一括処理すればよいと高をくくっていたが、ビットマップに対しては linkageExportForAS にアクセスできない現象に遭遇した。Google でリサーチしてもそれらしき…

プロジェクトを終結させる

プロジェクトライフサイクルである「計画」「実行」「終結」のうち、「終結」とは何を意味するのだろう。ウェブサイト制作のプロジェクトであれば、ウェブサイトの設計を行い (計画)、実装をし (実行)、納品する (終結)。これでよいのだろうか。 実行フェー…

Vim の Ruby インタフェース

Vim

Ruby スクリプトの結果を手軽に Vim のバッファに適用できないものかと調べた結果、Vim には Ruby/Python/Perl インタフェースなるものが実装されていることを知った。詳しくは、:he ruby (和訳) にある。 主に使用するコマンドは以下の 2 つ。 :ruby {comma…

すぐれた意思決定―判断と選択の心理学

「すぐれた意思決定」を読んだ。ひとえに意思決定と言っても、意思決定するための意思決定、すなわちメタ判断から、直感、推論、組織で行う意思決定に至るまで非常に幅広い。それら全ての意思決定の背後には、必ずバイアスや罠が存在しており、正しい意思決…

ファイル管理をツールに任せる

会社の PC に TortoiseSVN を入れた。あくまで個人のバックアップツールとしてだが。ともかく、面倒な部分を信頼できるシステムに任せてしまうのはすこぶる調子がよい。ストレージには余裕があるので、画像ファイルや fla ファイルなどのバイナリも管理して…

wmode を transparent に指定すると Firefox でボタンが押せなくなる

先日、Flash ムービーのボタンが押せなくなる不具合に遭遇した。wmode を transparent に指定していたことが根本の原因のようだ。 発現環境は、Windows の Firefox のみ。wmode が transparent に指定されていることに加え、幾つかの条件が重なることで発生…

HTML の閉じタグを自動挿入する

Vim

closetag.vim を導入すれば、HTML の閉じタグの自動挿入が可能となる。初期設定のキーバインドは <C-_> となっているが、日本語配列のキーボードでは <C--> と入力すればよい。が、僕はキーバインドを <C-]> に変更した。リンク先の変更を加えれば、タグ内にカーソルが移動</c-]></c--></c-_>…

Align.vim を使った、コードレイアウトの自動化

Vim

連続する代入文は = の列を揃えるとコードの可読性が上がる。しかし、列を揃える作業は時間を取る上に、整列させたとしても、ある変数名の長さが変わる度に、他の行のスペースの数を調整しなければならない。 そこで、Align.vim を使う。Align.vim は、面倒…

ビット演算を使う

普段の仕事ではビット演算を使用する機会が無い。Flash 8 以降で凝った画像処理をするには必要なのだが、それはさておき……。身近な所では、偶奇を判定する方法にビット演算が使えそうだ。 通常「2 で割った余りが 0 ではない」数字を奇数と定義する。 functi…

Joel on Software

「ジョエル・オン・ソフトウェア」を読んだ。ブログを書籍化したものなので、全体的に軽快な口調で書かれていて読みやすい。辛辣な意見や強引な例え話が笑いを誘う。 前半は、プロジェクトの進め方や仕様書の書き方など下流のトピックが多めで、後半は、Amaz…

text-objects でショートカット

Vim

Development Environment Conference 以降、個人的に活躍しているのが text-objects だ。ビジュアルモードとカーソル移動で行っていた作業が大幅に楽になった。詳しくは、:he text-objects。または、オライリーの「入門 vi」170p に解説がある。 では、覚え…

true/false を切り替える

Vim

先日参加した Development Environment Conference で、secondlife 氏が Ctrl-a、Ctrl-x で true/false をトグルしていたのが気になったのでキャッチアップ。 デフォルトでは、Ctrl-a、Ctrl-x の機能は数値の増減のみだが、プラグインを入れることで文字列の…

You Are Here の実装方法

CSS

メニューを ul 要素と CSS で実装し、メニュー内のアイテムで、現在表示中のものをハイライトさせる際、パターン化された方法として 2 つ挙げられる。 一方は、li 要素の class に here 等を明示的に指定する方法 (here 法)。もう一方は、body 要素にコンテ…

removeEventListener の拡張

EventDispatcher.removeEventListener の第 2 引数には対象リスナへの参照が必要だが、ある関数内のローカル変数としてリスナを作成し登録してしまうと、関数を抜けた後、つまり参照を失った際に、そのリスナの解除が困難となる。 幸いにも (というか実装上)…

多重起動を防ぐ

Vim

エクスプローラなどからテキストファイルを開いた際、デフォルトの設定では Vim が多重起動してしまう。既に立ち上がっている Vim 内にファイルを読み込ませるには、Vim をサーバとして起動すればよい。 まず regedit で、以下のキーに移動する。 HKEY_CURRE…

ソフトウェアかんばんを用いた作業の見える化

長期的なスケジュールはカレンダーに、短期的な ToDo はキーボードに、それぞれポストイットを貼り付けていた。しかし、キーボードのポストイットはタイピングの際に邪魔、且つ、すぐに剥がれてデスクに散って見失うという物理的な諸問題が目立ってきた。 書…

Adobe のサイトが重い

Adobe のサイトが重い。製品ページは特に顕著だ。重いというのは、ページが完全に表示されるまでにかかる時間ではなく、ページが完全に表示された後の操作感のことを言っている。全体的にレスポンスが悪く、リンクにマウスを載せるなどのアクションを起こす…

実行中のキューイング処理を中断する

連続する一連の処理を行う方法は、コマンドのキューイングを使うことで落ち着いているが、処理中のキューを中断するインタフェースを設計していなかった。つまり、一度引き金を引いたら弾を撃ち尽くすまで止められない、という状況だった。 なので、早急にコ…

Flash Resource Manager を Flash 8 に対応させる

普段、ActionScript のリファレンスは LiveDocs を活用しているが、そのレスポンスの遅さには閉口だ。かといって IDE のヘルプを使う気にはなれない。そこで登場するのが、Flash Resource Manager である。しかし、Flash Resource Manager は、デフォルトの…

自分のペースでゆったり学ぶ TCP/IP

「自分のペースでゆったり学ぶ TCP/IP」を読んだ。TCP/IP モデル、ネットワークの基本的な知識が身に付く良書である。技術書なのにも関わらず、まるで児童書のような構成で、読了後にはすっかり癒されてしまった。

コンポーネント指向 Flash

Flash を GUI の要素としてではなく、データ通信コンポーネントとして利用する動きがある。JavaScript には実装されていない Socket 通信などの機能を Flash の API を間接的に用いることで、より表現に幅を持ったサイトの制作が可能になるからだ。また、Fla…

曖昧性を含むプロジェクト

先月くらいからだろうか、ある社内プロジェクトのメンバとなった。そのプロジェクトはマトリクス型組織を採用しており、異なる部署から、複数の人間が関与している。しかし、マトリクス型組織が故に、曖昧性や複雑性を感じずにはいられない。プロジェクトの…

参照渡しはシンボリックリンクを渡すようなもの

関数の引数に Object 型の変数を渡すと、それは参照渡しとして評価され、さも実体かのように操作できる。しかし、関数内部で参照値そのものに別のオブジェクトを代入しても実体には反映されない。参照値はシンボリックリンクのようなものだからだ。 function…

FlashPlayer のガーベジコレクタについて

先日、「デストラクタを定義する」というエントリを書いた。丁度 Grant Skinner が、FlashPlayer のガーベジコレクタについての有用な記事を書いている。概要を意訳してみる。 Flash デベロッパが ActionScript 3 に移行するには、ガーベジコレクタの動作の…

人月の神話―狼人間を撃つ銀の弾はない

「人月の神話」を読んだ。ブルックスの法則は「遅れているプロジェクトへの人員追加はさらなる遅延をもたらす」として有名。では、プロジェクトが成功するための本質とは何だろうか。ブルックスは 1 つの結論を出している。 成功のためには、プロジェクトに…