Photoshop用JSXで矩形選択していない状態でselectionのプロパティにアクセスすると謎のエラー
すごくニッチな内容です。
矩形選択していない状態で下記のスクリプトを実行すると、謎のエラーが起こってスクリプトが中断されます。
var selection = activeDocument.selection; var bounds = selection.bounds; // -> ここでエラー alert("Hi!"); // -> 沈黙
念のため、hasOwnProperty()
でプロパティの存在をチェックしてみてもtrue
が出る。
var selection = activeDocument.selection; alert( selection.hasOwnProperty('bounds') ); // -> true
最後にtry-catch
してみる。
var selection = activeDocument.selection; var bounds; try { bounds = selection.bounds; } catch(e) { alert(e); // -> エラー: 該当する要素はありません。 }
ないならundefined
返してください(切実)
解決策
try-catch
で回避するしか思い浮かばないです。
var selection = activeDocument.selection; var bounds; try { bounds = selection.bounds; } catch(e) {}
Adobe Extension Builder 3でCC 2014用の拡張開発環境を構築
Photoshop用の拡張を作ろうとしたら、CC 2014になってFlashベースのパネルがサポート外になってConfigureが使えないみたいなので(この影響でインストールできない拡張がいっぱい…orz)、Extension Builder 3で開発環境を整えてみました。
Java SE のインストール
Eclipseを動かすのにJava SEが必要なのでインストールします。
Eclipse のインストール
Eclipse Downloadsでダウンロードしてインストールします。エディションはStandardでOKですが、バージョンは3.6以上にしてください。 日本語環境にしたければPleiadesを導入してください。
Extension Builder 3 のインストールと設定
Adobe Extension Builder and Creative Cloud 2014の通りにインストール・設定を済ませます。
終わり
導入がいちいちめんどくさいですが、これでなんとか無事に出来ました!
Hexo+Github+Werckerでブログ構築
静的サイトジェネレータでブログを作ろうと思って、 Static Site Generatorsを見た感じ、
あたりが良さそうだと思い、少し触ってみたら、
- Metalsmithはコードをゴリゴリ書かないとブログを作れない
- Hexoはymlファイルを少し変更するぐらいで、ほとんどコマンド1発でブログが作れる
という感じだったので、Hexoで作ってみました。
今回は、ブログのソースをgithubリポジトリにUPして、werckerでビルド、github.ioリポジトリにデプロイする形にしてみました。
Hexo
インストールとブログの作成
まずは、公式サイトに載っている通りにインストール・ブログ作成します。
$ sudo npm install -g hexo $ hexo init blog $ cd blog $ npm install
テーマを変更する場合は、テーマ内の.git
ディレクトリを削除しておくこと。
テーマ内にはたいてい設定ファイルがあるのでサブモジュールにするのもダメです。
$ git clone https://github.com/hexojs/hexo-theme-light.git themes/light $ rm -rf themes/light/.git
設定
_config.yml
を好きなように修正します。
$ vim _config.yml
静的ファイルの生成
CSSやHTMLなどの静的ファイルを生成します。
$ hexo generate
HTTPサーバーを起動
HTTPサーバーを起動してブラウザで確認し、問題がないか確かめます。
$ hexo server
Github
- ブログソース用のリポジトリと、github.ioリポジトリ作っておきます。
- Authorized applicationsでPersonal access tokensを作成します。publicリポジトリなら、repoのチェックを外してpublic_repoにチェックを入れること。トークンは忘れないようにどこかに保存しておきます。
- ブログソース用のリポジトリの設定で、Collaboratorsにwerckerbotを追加します。
Wercker
wercker.ymlの作成
wercker.yml
をブログプロジェクト下に作成します。
box: wercker/nodejs build: steps: - npm-install - script: name: Install Hexo code: | sudo npm install -g hexo - script: name: Generate static files code: | hexo generate deploy: steps: - script: name: Get commit message code: | export COMMIT_MSG=$(git log --pretty=format:"%s" -1) - script: name: Configure git code: |- git config --global user.email "user@email.com" git config --global user.name "user" rm -rf .git - script: name: Deploy to github pages code: |- cd ./public git init git add . git commit -m "$COMMIT_MSG" git push -f $GIT_REMOTE master
アプリの作成・設定
Werckerでブログソース用のリポジトリを指定してアプリを作成した後、デプロイ先をCustom Deployで作成します。
GIT_REMOTEには先に取得しておいたパーソナルアクセストークンを使用し、https://{ACCESS_TOKEN}@github.com/{USERNAME}/{USERNAME}.github.io.git
のように指定してやります。
最後に
ブログソースをgit push
したらWerckerが自動でgithub.ioリポジトリにデプロイするので少し待ちます。
github.ioにきちんとファイルがpushされていたら終わりです。お疲れ様でした。
golangでUTF-8-MAC→UTF-8
UTF-8-MACをUTF-8に変換したくて四苦八苦していたんですが、UTF-8-MACはUTF-8を正規化したもので、iconvが独自に命名しているものとのことで、そこら辺を踏まえて調べてみたら、
この記事に正規化の方法が載ってたので、これを参考に
import "code.google.com/p/go.text/unicode/norm" func DenormalizeUnicodeString(str string) string { buf := []byte(str) buf = norm.NFC.Bytes(buf) return string(buf) }
こんな感じでいけました。
cgoを使用してiconvを使っても出来るんですが、クロスコンパイルが面倒なことになるので簡単な方法が見つかって何よりでした。
Google Chrome 64-bitでiCloudブックマークが使えない
どうもXmarksだとブックマークがおかしなことになるので、WindowsだけでもiCloudブックマークにしておこうと思って設定ポチポチしてて気付きました、Chrome 64bitだとiCouldブックマークが使えない・・・。
Chrome用の拡張自体はインストール出来るのですが、iCouldコントロールパネルでブックマークをONにしようとしても拡張がインストールされているのを認識してくれないみたいで出来ませんでした。
拡張のインストールパスの参照に失敗してるだけだと思うのでiCouldコントロールパネル側のアップデートを待つしかないっぽいですね。もしかしたらシンボリックリンクかなんかでいけるんだろうか・・・?
とりあえず仕方ないので32bit版に戻しました。。。