DIST.3 「Photoshop and me」にLT参加してきました。

DIST.3 「Photoshop and me」に「Photoshopで繰り返してる作業に効く!JSX自動処理!」というタイトルでLT参加してきました。

DIST.3 「Photoshop and me」 – connpass

LT参加の皆さん、登壇されたザ・マーズナレッジ株式会社のイシジマミキさんのPhotoshopにまつわる色々なお話が聞け、とても勉強になりました。

自分のLTに関しては、LTは5分という短い時間だったため急ぎすぎまして、50秒あまるという状況に(苦笑)

ついでに以下のURLも紹介させていただきました。

1ft-seabass.jp.MEMO – ある画像を決めた矩形で切り取るPhotoShopの自動処理(JSX)

1ft-seabass.jp.MEMO – PhotoShopの自動処理スクリプト JSXを作成するときの参考リンクをまとめておく

Photoshopはほんとに多機能で、他ツールと連携とも組み合わせながら、何かを行うために様々なアプローチがあると思っていて、登壇者の方々はいろいろな角度から、その事をおっしゃっていました。そして今後も、自分の滞ってるワークフローがあれば、随時見直して無駄や不便を減らし、JSX・機能・ツールでどんどん解決できたらなと思っております。

続きを読む →

IntelliJ IDEAでNode.jsプラグインをインストールする話

IntelliJ IDEAでNode.jsプラグインをインストールする際のメモです。

プラグインのインストール中、いつのタイミングでNode.js専用のコードヒントが出てくるかが、いまいち分からなかったのでキャプチャとってみました。

※執筆時点はIntelliJ IDEA 12でご説明します。バージョンが違うことで挙動が違うかもしれませんので、ご注意下さい。

続きを読む →

Node.jsでFunction.bind関数で非同期処理がだいぶ書きやすくなった話

皆様お疲れ様です。最近、Node.jsを書くことが多いのですが、Node.jsに標準で入っているFunction.bind関数を利用することで非同期処理がだいぶ書きやすくなった話を書いておきます。

Node.jsでは、性質上、非同期処理主体になるので、Functionのネストが深くなってしまい結構コードが追いにくくなります(自分で)。しかも、あまり深くなっていくと、自分の意図しないタイミングで動いてしまうこともあり、悩ましい。

もちろん、ネストせずに関数の参照で移すこともできなくはないですが、結局JavaScriptのスコープに影響を受けてしまうので、それはそれで組みにくくなるので苦しいところです。

asyncモジュール

こういう悩みで調べていくと、asyncモジュールを使えばいいという話があります。
これをつかうと並列で書けるのですが、若干癖があるので、複数人で開発している時に共有したり、ましてや自分が1年後メンテする際にちょっと苦労しそうな印象があるので、万能というわけではありません。(とはいえ、とっても便利です。)

Function.bind関数

導入が長くなりましたが、Node.jsに標準で入っているFunction.bind関数を利用することで非同期処理がだいぶ書きやすくなった話を書いておきます。

Function.bind関数はDelegate(委譲)のような振る舞いをする機能で、コールバック関数でthisをスコープとして実行できる機能です。

this.test.bind( this );

function test(){
  // thisのスコープとして動く
}

では早速やってみましょう。

続きを読む →