Programming

先日twitterでの質問に、ちょろっと修正コードだけ書いて答えたんだけど、その補足。

AfterEffectsでいくつかのスクリプトを使用すると、グローバル変数や関数がコンフリクトを起こすことがあります。
特にAfterEffectsではスクリプトが終了しても、グローバル変数自体はそのままメモリ上に残っているため、現在実行中のスクリプトがなくてもコンフリクトが発生する可能性があります。これらを避けるためにスクリプト自体を即時関数にしてしまうという方法があります。(割と手っ取り早くできてしまうので乱発したくなるかもしれませんが、個人的にはコードの視認性や保守性からあまりオススメしません)


javascriptpatbookco.jpg以前紹介した「JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス 」(関連記事)と双璧をなすオライリーのJavaScript本「JavaScriptパターン ―優れたアプリケーションのための作法」。この本も200ページちょいで、この手の本にしては薄いのですが内容は非常に濃いです。


タイトルのまんまの記事ですが、NukeなどでPythonを書くときの注意メモ。Pythonのグローバル変数は関数内からでも簡単にアクセスできちゃうのですが、ちょっといい加減なコード書くとすぐに変数のスコープのせいで意図しない結果になったりするので注意。


After Effects スクリプティングメモ」更新しました。同様の記事をblogの方にもエントリーしておきます。なんでこんなことではまっちゃうのか、自分でも嫌になりますが。でも案外、人から頂いたスクリプトもグローバル変数関連がちゃんと処理されてなかったりするので、結構これではまる人多いんじゃないかなと思ってます。「AE再起動すると治った(あるいは動かなくなった)」ってのは大抵これの問題。

ブログにまで書いて恥さらす必要があるのかはわかりませんが...



JavaScript: The Good Parts

January 13, 2011
JavaScriptTheGoodParts.jpeg
先日本屋に立ち寄ったときにちょっと『JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス』を手に取ってパラパラ立ち読みしたら面白くて椅子に座って読み始め(ジュンク堂だった)、止まらなくなったのでそのままレジに行って買ってしまいました。

ちょっと前からこの本がいいという評判は聞いていたのですが、手にとって観る機会もなく、たぶんWeb向けの応用集とかそういう類いの内容だと思っていたのですが、読んでみたら全然違った。

読者ターゲットは『他の言語、特にCやC++などを使用経験がありJavaScriptでハマってしまって「なんでこうなるの!」と叫んだことのある人』向けです。半分冗談ですが、半分は本気。例えば私がはまった罠としては、変数のスコープが処理の外にもはみ出すというもの。こういった事象に対しての注意事項や回避策などが書かれてます。逆に他のプログラム言語も使用したことがなく、JavaScriptで初めてプログラミングを始める人にはまったく役に立たない感じの書籍。

著者の厳格なポリシーに基づいて書かれているために、かなり極端な例もないわけではありませんが、コードの行数が2000行を超えたあたりからこの書籍の存在価値があがると思います...根拠はないですけど。特に巻末の付録「ひどいパーツ」と「悪いパーツ」は面白かった。180ページ弱の薄い本ですが、内容は非常に濃くてじっくり頭から読んで行きたい感じの書籍です。


JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス
Douglas Crockford
オライリージャパン
売り上げランキング: 12103


After Effects スクリプティングメモに1項目(だけ)追加しました。「Footageが画像ファイルかどうか調べる 」です。
要は、After EffectsのFootage Itemって言っても、それがTGAやMovなどの画像ファイルとして読み込んだものなのか、AEが生成したCompやSolidかわからないので、それをどうやって判定しようかというものです。ついでに静止画かどうかの判定も行なっています。右の「Pages」からご覧ください。