一个骗子黑客

Lie付 Hacker.jp

github Atom の packageを複数のマシンで同期する。

Atom複数のマシンでPackageを共有したいときは、

apm stars --install

を使う。

apm staratom.ioのパッケージにスターを付けるためのapmコマンド.

同期させたいapmパッケージに対して、atom.io上でstarを付けておくと、 apm stars --installで一括インストールが出来る。apm stars -iでもよい。

実際にapm stars --installを実行するとこんな感じ

apm stars -–install
Installing Sublime-Style-Column-Selection to /Users/st44100/.atom/packages ✓
Installing angularjs to /Users/st44100/.atom/packages ✓
Installing atom-jshint to /Users/st44100/.atom/packages ✓
Installing autoclose-html to /Users/st44100/.atom/packages ✓
・・・

ちなみにapm starrd --installでも大丈夫。apm starredapm starsへのエイリアスみたい。

apmコマンドから、packageにstarしたい場合は

apm star <package-name>

atom.ioに行かなくてもstarできる。

(追記)

apm star こっちにまとめたよ

http://qiita.com/st44100/items/e9202cc9c8fb361e1175

npm chalkはこう使う

npm chalk

コンソール出力に色づけできる、chalk。

こんな感じにチェーンで呼べるので、呼ぶ場所で都度呼んでもいいんだけど、

console.log chalk.blue.bgRed.bold('Hello world!')

coffeescript

こんな感じで

chalk = require 'chalk'


print = (msg, type = 'log')
    _c = chalk
    switch type
        when 'warn' then _c = chalk.yellow
        when 'error' then _c = chalk.red
        when 'log' then _c = chalk.gray

    console.log _c(msg)

print('Hello, World!')

とかやると楽。

呼び出すタイプでスタイルを決めておいて、利用する形です。 複雑なチェーンであればあるほど、楽になる。

git管理下から指定ファイルサイズ以下のファイルを見つける

gitの管理下にある画像ファイルのなかで、指定ファイルサイズ以下の変更を見つけたい時はこんな感じ。

  • 1000byte以下の画像を見つける
git diff-index --name-status ^HEAD -- | grep -E '\.(png|jpg|gif)$' | cut -c3- | xargs -I {} wc -c {} | awk '$1 < 1000 {printf "%s / %sB\n", $2, $1}'
  • ファイル数をカウントするときはwc -l追加して、
git diff-index --name-status ^HEAD -- | grep -E '\.(png|jpg|gif)$' | cut -c3- | xargs -I {} wc -c {} | awk '$1 < 1000 {printf "%s / %sB\n", $2, $1}' | wc -l

全然使い道わからないけど、commit前に多き画像を追加しそうだったら警告するとかに使えるかも

git diff-index --name-status ^HEAD -- | grep -E '\.(png|jpg|gif)$' | cut -c3- | xargs -I {} wc -c {} | awk '$1 > 10485760  {printf "%s / %sB\n", $2, $1}' | wc -l

Titanium mobile SDK 1.8.0.1でSystemExit:65が出るとき

Titanium SDKを1.8.0.1にした時だけ、下記のようなエラーがでてビルドできなくなった時の対処方法。
nightly buildのSDKを使ったら問題ないのに、1.8.0.1の正式リリース版だけ出てた

[ERROR]
[ERROR] Error: Traceback (most recent call last):
File "/Library/Application Support/Titanium/mobilesdk/osx/1.7.0/iphone/builder.py", line 1306, in main
execute_xcode("iphoneos%s" % iphone_version,args,False)
File "/Library/Application Support/Titanium/mobilesdk/osx/1.7.0/iphone/builder.py", line 1066, in execute_xcode
output = run.run(args,False,False,o)
File "/Library/Application Support/Titanium/mobilesdk/osx/1.7.0/iphone/run.py", line 39, in run
sys.exit(rc)
SystemExit: 65

みたいなエラーが出る時。
フォーラムだとこんなのも出てた。
http://developer.appcelerator.com/question/129878/get-an-error-when-compiling-under-1801

とりあえずフォーラム129878みたいにui/ui.jsを使っていたので、リネームしてみてもダメだった。
SystemExit: 65が出るのは、色んな原因が有るみたい。

変なのは、空っぽの新規プロジェクトを作って、Resource以下に問題のプロジェクトのコードを置いただけでも同じエラーがでること、app.jsではincludeもrequireもしてないのに。

ビルドパスに問題のあるファイルが一つでもいるとダメみたいなので、ファイル毎にチェックしていった。
結果わかったのは 複数行コメント / * 〜 */のなかでTi.APPとかTi.Blob、Ti.APIみたいな文字列があるとダメみたいだということ。

Titaniumはビルド時に大きなJSファイル分割を行うみたいなんだけど、この時
/^Ti\./
みたいなところで分割してるみたい。それが複数行コメントにたまたま要るとダメみたい。
なんか変な感じがするけど、とりあえずこれでビルドは通った。SDK1.8.0.1の正式版にだけ出てるので、単純にこのバージョンのバグなのかな。