日々精進

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

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

search pathを設定する方法

自分で作ったクラスをrequireで読み込むとき、相対パスを書くのが面倒なので search pathを設定できないものか、と思っていたらやる方法があった。 process.cwd()はプロジェクトのルートディレクトリ(多分nodeのプロセスのカレントディレクトリ)の絶対パスを…

backbone.jsのcollectionオブジェクトにpushしたら_byIdがundefined

pushのタイミングで以下のエラーが出た。 TypeError: Cannot read property '#<Ohlc>' of undefined色々調べたら、コンストラクタの最初でsuper呼べと書いてあったので呼ぶと直った。↓のような感じ。 exports.OhlcCollection = class OhlcCollection extends Backb</ohlc>…

constractorとinitializeの違い

constractorはコンストラクタの引数がプロパティに代入される前に呼ばれる。initializeは代入後。 久々にBackbone.jsを触ったら色々忘れてるなぁ。勉強し直さなくては。 参考:javascript - What's the difference between initialize and constructor on a …

makeでエラー

IT

makeをたたくと以下のエラーメッセージが出た。 Makefile:120: *** commands commence before first target. Stop.原因はコマンドの前にスペースが入っていたこと。タブに変更すると直った。 これはわかりづらい。。

OS X Lion(10.7)でNSWindow・NSWindowControllerにweak参照をすると落ちる

mac

weak参照ができないクラスがいくつかあるというのは知ってたけど、 OSのバージョンで挙動が違うとは。。 NSWindow・NSWindowControllerにweak参照をするとLionではアプリが落ちるがMountain Lionでは落ちない。 解決策はweakをunsafe_unretainedにしてdeallo…

インスタンスのネットワーク帯域は保証されない

aws

他のインスタンスの影響を受けるらしい。これはちょっと不安だなあ。 EC2ネットワーク帯域の保証について - IT初心者SI営業のネタ帳

aws-sdkを使ったクラスをMochaでテストするとうまく動かない

aws-sdkを使ってSNS経由でメールを送信するクラスを実装し、Mochaでテストするとメールが送信されず困った。 原因は非同期処理なのにdoneを使っていなかったのでレスポンスが返ってくる前にテストが終了してしまっていたこと。 しばらく触ってないとこんな初…

socket.ioの接続数が増えるとエラー

EC2だと700〜1000接続ぐらいでエラーが出てそれ以上接続数が増えない。サーバ側で出るエラーメッセージは以下。後で調査する。 debug: fired close timeout for client AV0UBEHqIjWeD0bb28jn info: transport end (close timeout) debug: cleared heartbeat …

tokyoのリージョンコード

aws

tokyo regionのリージョンコードはap-northeast-1なんだけど、なかなか覚えられない。 素直にtokyoにしてほしかったなぁ。。 参考:Regions and Endpoints - Amazon Web Services

ec2をAMIから立ち上げたらiptableがリセットされる

aws

iptableが設定されているEC2のAMIを作り、そのAMIからインスタンスを立ち上げるとiptableの設定が消えていた。 iptableの設定はインスタンス立ち上げ時に実行されるようにしないとだめか。。

リクエストが送信されない

requestモジュールを使ってリクエストを送信したところ、サーバにリクエストが届かない現象が起きた。 原因はプロキシサーバ経由でないとインターネットにアクセスできない環境なのにプロキシを設定していないこと。 以下のようにプロキシ設定してやればOK。…

sourcemapすごい

sourcemapはcoffeescriptで書いたコードにブレークポイントを貼ったりステップ実行したりできるようにする機能。coffeescript以外のAltJSでもいけるかも。 今までなんで使ってなかったんだろ。。これ超便利。 導入の仕方は下記に詳しく書いてあるのでハード…

macでnpm install -gしたパッケージを実行するとcommand not foundになる

下記コマンドでcoffee-scriptをインストールした後、coffeeを実行するとcommand not foundになった。 npm install -g coffee原因はパッケージのインストール先にPathが通っていないから。 以下を実行してPathを通せば直る。 export PATH=/usr/local/share/np…

sparkle frameworkの日本語対応

mac

sparkle frameworkはMac アプリの自動更新機能を手軽に実装できるFW。 とっても便利なんだけど、公式サイトからダウンロードしたバイナリはバージョンが古いっぽく、日本語対応されていない。 Githubのmasterには日本語用Xibも入っているので、Cloneしてビル…

クラムシェルモード

mac

机が狭いのでクラムシェルモードでMacを起動し、本体は閉じておこうと思ったのだが、 なぜか本体を閉じるとスリープモードになってしまう。 InsomniaXというソフトを使うと無事クラムシェルモードにできました。 参考:クラムシェルモードにしてみた!! : A…

svnでcommitしようとしたらout of dateエラー

svn

out of dateエラーが出たらUpdateしてからCommitすればいい。 参考:svn で out of date と競合が発生した場合は update してから commit する | ウェブル

macで複数ファイルの文字列一括置換

mac

AppCodeには複数ファイルの文字列一括置換機能はないっぽい。残念。。 なのでTextWranglerというアプリでやった。とりあえずこれで良さそう。 参考: Mac で複数ファイルの一括置換ってどうしてます?パート2 « LANCARD.LAB|ランカードコムのスタッフブログ

NSTextFieldをautolayoutすると高さが1行分になる

mac

contentCompressionResistanceをRequiredにしてもXIB上で設定した高さを維持してくれない。 なぜ。。と思っていたらNSTextViewというクラスを見つけた。 複数行にわたるテキストを扱う場合はNSTextViewを使うべきらしい。 もしやと思ってNSTextFieldをNSText…

XCode5 developer previewをインストールするとcocoapodをupdateできなくなる

sudo gem update coocapodを実行すると以下のエラーが出る。 ERROR: Error installing cocoapods: ERROR: Failed to build gem native extension.これはXCode Command Line Toolがインストールされていないことと、 デフォルトのXCodeがpreview版になってい…

Objcの定数

.hに FOUNDATION_EXPORT NSString *const MyFirstConstant; FOUNDATION_EXPORT int const MyFirstConstant = 1.mに NSString *const MyFirstConstant = @"FirstConstant";のように書く。defineは使わないようにする。 参考:cocoa - Constants in Objective …

グローバルショートカットキーを設定する

mac

どのアプリをアクティブにしてても有効なショートカットキーを設定できるライブラリ。 これのおかげでショートカットキーが簡単に実装できました。感謝。 shpakovski/MASShortcut · GitHub

NSUserDefaultsとsqliteのどちらにデータを保存すべきか

NSUserDefaultsは学習コストが低いのがメリットだけど、それ以外はsqliteの方が勝っているよとのことらしい。 参考:iphone - What are the limitations of NSUserDefaults? - Stack Overflow

簡単に言語設定を変更する方法

詳細は↓。これテストする時便利だった。 iOSアプリのローカライズの動作チェックとかが簡単になるかもしれないやり方 - iOS プログラミングメモ - iPhoneアプリ開発グループ schemeのArguments Passed On Launchに以下を追加すればよい。 -AppleLanguages "(…

HTTP通信時のCFDataのメモリリーク

socket.io-objc v0.3.3でxhr-polling通信を行うとメモリリークが発生する。 CFDataが解放されずどんどんたまる。 これはNSURLCacheがCFDataをキャッシュしていることが原因。 下記を通信が終わったタイミングで実行するとCFDataが解放される。 NSURLCache *s…

sparkle frameworkでアプリの更新をするとエラーが出る

mac

sparkle frameworkで新バージョンのアプリをダウンロードし、インストールしようとすると、以下のエラーが出た。 Sparkle Error: An error occurred while installing the update. Please try again later. Sparkle Error (continued): Couldn't find an app…

コード検索エンジンohlohが便利

IT

使い方がよくわからないメソッドの名前で検索するとサンプルコードが見つかるので便利。 Kodersの名前が変わったやつっぽい。 Open Hub Code Search

WebViewでリンクをクリックしたらSafariを起動させる

mac

self.webView.policyDelegate = self; と以下のコードでSafari起動できる。 - (void)webView:(WebView *)aWebView decidePolicyForNewWindowAction:(NSDictionary *)actionInformation request:(NSURLRequest *)aRequest newFrameName:(NSString *)aFrameNam…

long pollingでsocket.ioサーバに接続しているクライアントがあるとログが出まくる

以下のようなメッセージが出まくり、1,2日でログが8GBぐらいたまってしまうという現象が起きた。 debug: setting request GET /socket.io/1/xhr-polling/xIPscInKp3pX77b0NeGy?t=1377280474574 debug: setting poll timeout debug: clearing poll timeou…

タイムゾーンをJSTにする

ec2

以下を実行すればOK sudo cp /usr/share/zoneinfo/Japan /etc/localtime参考:EC2 のタイムゾーンを UTC から JST に変更する | TECH BLOG

定数の書き方

NSString * const kSomeConstantString = @""; ↑だとポインタのアドレスが固定値になり、他のオブジェクトを指すことが無くなる。 ↓は間違った例。これはNSString定数へのポインタになる。 元々NSStringはimmutableなので意味ない。 const NSString * kSomeC…