日々精進

新しく学んだことを書き留めていきます

2013-05-01から1ヶ月間の記事一覧

ベータ版の配布のベストプラクティス

mac

・QuincyKit for Macでクラッシュレポートを送信させる ・HockeyApp、Sparkleで配布 HockeyAppはクラッシュレポートを集めたりもできるっぽい。便利そう。 参考:http://support.hockeyapp.net/discussions/questions/394-best-practices-for-beta-testing-m…

EC2でsudo nodeを実行するとcommand not found

EC2はパスが特殊だからっぽい。 以下のようにシンボリックリンクを作成すれば直る。 下記パスはnvm使ってる場合。 sudo ln -s /root/.nvm/v0.10.13/bin/node /usr/bin/node sudo ln -s /root/.nvm/v0.10.13/lib/node /usr/lib/node sudo ln -s /root/.nvm/v0…

nodeのインストールを速くする方法

nodeをソースコードからビルドすると結構時間がかかる。EC2のマイクロインスタンスだと数十分かかる。 nvm経由でインストールするとビルド済みバイナリをダウンロードしてくれるようで、すぐにインストールできる。 インストール時のコマンドは以下サイト参…

80番ポートをlistenするとwarn: error raised: Error: listen EACCES port 80

well known portはrootユーザでないとlistenできない。 sudo nodeすればlistenできるようになる。 参考:http - Node.js EACCES error when listening on most ports - Stack Overflow

Objective-Cのsocket.ioクライアントライブラリ

iOS

socket.IO-objcを使ってみたけどなかなか良さそう。 CocoaPodsで問題なくインストールできた。 pkyeck/socket.IO-objc · GitHub

variable not available

iOS

デバッガで変数の値を見ようとするとvariable not availableとなる原因は、ビルド設定でバイナリの最適化を行っていること。 最適化レベルを下げると値を見れるようになる。 参考:objective c - lldb error: variable not available - Stack Overflow

S3のテキストファイルを楽に編集する方法

aws

テキストをダウンロードして編集してアップロードして・・・というのをブラウザでやるのがめんどかったのでより簡単な方法を調べてみた。 以下のソフトを使うと簡単にできる。 CloudBerry Explorer for Amazon S3. Free S3 Browser for Windows AWSのフォル…

指定秒後に引数付きでメソッドを呼び出す

NSInvocationを使うと引数も渡せる。 setArgumentで引数を渡す時になぜかメソッドの実引数を渡すとエラーになった。 ローカル変数に代入し直すと直った。なぜ。。 - (void)requestImageWithUrl:(NSURL *)url callback:(void (^)(NSImage *image))callback { …

メニューのショートカット設定方法

mac

Macにメニューの項目に自由にショートカットを割り当てる機能があった!しらなんだ。。 環境設定>キーボード>キーボードショートカット>アプリケーション でショートカットを追加すればいい。 https://discussionsjapan.apple.com/thread/10116298?start=…

インスタンスタイプとそのスペック

aws

一覧表は以下。帯域が低とか中とか曖昧な書きぶりになっているのが気になる。。 インスタンスタイプ - Amazon EC2(スケーラブルなクラウド上の仮想サーバー) | アマゾン ウェブ サービス(AWS 日本語)

chromeのセキュリティ証明書のチェックを無効にする方法

mac

なりすましを防げなくなるので危険なので注意。これやったらセキュリティ証明書のエラーが出なくなる。 起動オプション - Google Chrome まとめWiki

elastic beans talkが動いてくれない

aws

elastic beans talkを使ってnodeアプリを動かそうとしたけどなかなか動いてくれなかった。原因は以下。 ・デフォルトではnginxが動いている。nginxと一緒に使うことを想定してなかったので動かなかった。とりあえずwebサーバは使わないよう設定した。でもweb…

80番ポートでhttpとwebsocket両方のリクエストを処理する

socket.ioを使えばできるらしい。 apache - Is it possible to use port 80 for both HTTP and web socket traffic? - Stack Overflow ロードバランサを使っていれば以下のようにしてもOK。 ・LBへのリクエストは80番ポートで受ける ・LBはnodeサーバの3000…

macでポートスキャン

mac

最初からツールが入ってるらしい。便利。 http://sprout-t.net/article/show/mac-osx-portscan

elastic beanstalkはspot instanceを使ってくれない

aws

今のところspot instanceを立ち上げてくれる機能がないらしい。まじか。。早急に対応してほしい https://forums.aws.amazon.com/thread.jspa?threadID=78265

iOS6でアプリを上書きインストールしようとするとエラー

iOS

・現象 バージョンの違うアプリをiPhoneに上書きインストールしようとすると、以下のエラーが出る。 could not change executable permissions on the application iOS5では上記エラーがでないが、iOS6では出る。 上書きインストールでなく、新規インストー…

ec2起動時にスクリプトを実行する

aws

下記記事通りやるとchkconfig --addがエラーになった。 EC2で起動時やterminate時にシェルを実行する | Developers.IO これはprocessnameが設定されていないこともしくは優先度が100になっていたことが原因。 ↓のようにprocessnameを設定し、優先度を99にす…

呼び出し禁止メソッドを呼ぼうとするとコンパイルエラーにする

サブクラスでイニシャライザを実装する場合、 親クラスのイニシャライザを使用禁止にしたいことが多い。 普通は使用禁止にするメソッドを呼ぶと例外を出すようにすることが多いと思うが、以下のようにするとコンパイルエラーにすることができる。 - (instanc…

websocketで接続出来ないと例外が発生する

wsモジュールを使って接続しようとしてできないと以下の例外が発生する。 events.js:66 throw arguments[1]; // Unhandled 'error' event ^ Error: connect ECONNREFUSED at errnoException (net.js:768:11) at Object.afterConnect [as oncomplete] (net.js…

自身のpublic dns nameを取得する方法

ec2

httpでInstanceMetadataを取得できる。 下記を実行するとPublic Dns Nameを取得出来る。IPはどのEc2インスタンスでも同じ。 curl -s http://169.254.169.254/latest/meta-data/public-hostname参考:https://forums.aws.amazon.com/thread.jspa?threadID=777…

コマンドのPathを調べる方法

coffeeなどのコマンドの実行ファイルが実際どこにあるかを調べるにはwhereを使う。 where coffee

80番ポートをlistenするとError: listen EACCESエラーになる

80等の特権ポート(well-known portと同義?)をlistenするにはsudoで実行しないといけないらしい。 参考:http://rockf.es/blog/2012/02/02/node/

画面回転ロックが設定されていても強制的に画面を回転可能にする方法

iOS

iOSが認識している端末の向きを縦に固定し、加速度センサを使って端末の向きを判定しAffintransformで画面を回転させる。 参考:iphone - iOS device orientation disregarding orientation lock - Stack Overflow iphone - Rotating Accelerometer output t…

cronからコマンドを実行するとcommand not foundになる

原因はcronから実行する場合とシェルから実行する場合では環境変数が違うから。 実行するシェルスクリプトに.bashrcなどを読み込むコマンドを追加しないといけない。 参考:役立つかもしれないメモ cronからshellの呼び出し

clang: error: unable to execute command: posix_spawn failed: Resource temporarily unavailableエラー

XCodeを再起動したら直った。なんだこりゃ。。 iphone - Xcode not compiling any project? 'clang failed with exit code 255' - Stack Overflow

複数のSetterから一つのプロパティに値をセットできる場合の注意点

以下のように複数のsetterからvalueプロパティに値を代入できる場合。 @interface PropertyViewModel : NSObject @property(nonatomic, strong) NSString *key; @property(nonatomic, strong) NSString *value; - (NSInteger)integerValue; - (void)setInteg…

localTimeZone, systemTimeZone, defaultTimeZoneの違い

iOS

defaultTimeZone:各アプリ毎に違う値を設定できる。 systemTimeZone:システム環境設定で設定しているTimeZone localTimeZone:defaultTimeZoneがValueObjectを返す(値が変わらない)のに対してlocalTimeZoneはdefaultTimeZoneへの参照を返す。defaultTime…

webstormでcoffeescriptの自動コンパイル

file watcherを使うとファイルが変更される度に自動でコンパイルしてくれる。 こんな機能あったとは。今まで自分でcoffee -wcしてました。 File Watchers in WebStorm/PhpStorm 6 (a.k.a. “Background Tasks”) | WebStorm & PhpStorm Blog

nodeでグローバルな定数を使う方法

Object.definePropertyを使えばいいらしい。なるほどー。 javascript - How do you share constants in NodeJS modules? - Stack Overflow

mochaのテストファイルをrecursiveに探す

以下のようにfile.walkSyncを使うとrecursiveにファイルを探すことができる。これ便利だなあ。 Mocha = require('mocha') require "should" require "long-stack-traces" path = require "path" fs = require "fs" file = require "file" _ = require "under…