日々精進

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

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

メニューバーに表示しているViewの横幅を変更するときの注意

mac

メニューバーに表示しているViewをinnerView、innerViewを含むNSStatusItemをitemとすると、 以下のコードだとメニューバーに何も表示されなくなる。 [innerView setWidth:30]; innerView.item.length = innerView.frame.size.width; 原因はitem.lengthが変…

ftpを使えるようにする

aws

道はなくても進むのだ。: Amazon EC2 (Amazon Linux) での vsftpd インストールと設定 基本的に↑のサイト通りやればいいんだけどいくつかハマッたとこがあるのでメモ。 ・service vsftpd startでエラーが出る suにならず、sudoでそれまでのコマンドを実行し…

private ip addressをstaticにする

aws

EIPを使えばいいらしい。なるほど。 EC2 - 動的プライベートIPアドレスをどうにかする | code up

ec2のモニタリングのCPU使用率とtopコマンドで調べたCPU使用率が異なる

aws

ec2のモニタリングの方の値が正しいらしい。なぜかは以下に書いてある。 EC2 monitoring: the case of stolen CPU | Axibase

crontabでcasperjsを実行できない

aws

以下のようなコマンドをcrontabで実行しようとしたが、うまくいかなかった。 casperjs script.jsこれはcrontabからコマンドを実行する時の環境変数がターミナルから実行する時と違うことが原因。 以下のようにすると実行出来た。 PHANTOMJS_EXECUTABLE=/usr/…

ec2でnode.js+websocketを動かしたけど外部から接続できない

aws

ec2でnode.jsサーバを動かした時に外部から接続できない問題の切り分けにwscatが役に立った。 WebSocket の動作確認に wscat が便利すぎる件 - tricknotesのぼうけんのしょ けどまだ原因調査中。。

ec2にssh接続できない

EC2インスタンスを作ってすぐにSSH接続しようとすると以下のようなエラーが出た。 $ ssh -i tmp.pem ec2-user@ec2.ap-northeast-1.compute.amazonaws.com ssh: Could not resolve hostname ec2.ap-northeast-1.compute.amazonaws.com: nodename nor servname…

iMac 2011 midを自作フュージョンドライブ化

mac

以前からやりたいと思っていたフュージョンドライブ化が完了した。 参考にしたサイトは以下。 iMac(mid2011)27インチに内蔵SSDを増設 | necobit.com(ねこびっと) ここで高価なSSD取り付け部品を買わなくてもいいことを知ったことが大きかった。ありがとう…

透明なテーブルヘッダとセルが重なったときにセルを非表示にする方法

iOS

↓のサンプルコードまるコピペでいけた。素晴らしい。 iphone - How to mask UITableViewCells underneath a UITableView Transparent Header - Stack Overflow

SparkInspectorをインストールしたらエラー

iOS

SparkInspectorをインストールしたら以下のビルドエラーが出るようになった。 'SparkInspector/SparkInspector.h' file not found with <angled> include; use "quotes" insteadこれはXcodeを再起動したら直った。謎。。</angled>

GHUnit導入手順メモ

iOS

私的メモです。 ○GHUnit導入手順 参考サイト:http://morizyun.github.io/blog/ghunit-xcode-45-ios6-tdd-unit-test/ ・CocoaPod経由でインストール ・GHUnit用ターゲットの追加 ・不要なファイルを削除 ・main.m修正 ・テスト対象のファイルをGHUnit用ター…

Podfileで一つもインストールするライブラリが指定されていない場合、以下のビルドエラーが出る。 ld: library not found for -lPods何でもいいから一つ以上のライブラリをCocoaPod経由でインストールすると直る

magical recordのオプション設定時の注意

MR_ENABLE_ACTIVE_RECORD_LOGGINGなどのpreprocessor macroを設定することで、ログを出力しないなどの設定が出来るが、 アプリ側の.pchファイルに定義しても設定が反映されない。 マクロはCoreData + MagicalRecord.hがインポートされる前に定義されなければ…

iOSアプリでよくあるエラー

iOS

↓のようにLdから始まるエラーメッセージが出たときはFrameworkが足りないことが原因のことが多い。Ld /Users/Max/Library/Developer/Xcode/DerivedData/ImpromptuTimer-cbcnsujnixygrxfhtvkovhnpqamb/Build/Products/Debug-iphonesimulator/ImpromptuTimer.a…

Reactive Cocoaのパフォーマンス

RACBindでプロパティをBindするのは結構CPUTimeを食う。 以下の条件で実験したらBind処理だけで10%ぐらいCPUTimeを消費していた。 ・2.7GHz Core i5 ・32オブジェクト ・各オブジェクトのプロパティ6つをBind ・約1秒おきに新しいオブジェクトが出来てBindさ…

Spark Inspectorがすごい

iOS

iOSアプリのレイアウトを作る時に超活躍しそう。これはすごい。Buy Now! Spark Inspector Store

ボタンが押せない時に確認すること

ボタンが押せない、ドラッグ出来るはずの要素がドラッグできないといった時は以下を確認すること。 ・ボタンがSuperViewの外に出ていないか ・ボタンの上に他のViewが重なっていないか ・User Interaction EnabledがNOになっていないか

Reactive CocoaでViewを更新する時はthrottle:0する

Reactive CocoaでViewとViewModelをBindすると、ViewModelのプロパティを変更する度にViewの更新ロジックが実行されるのでパフォーマンスに問題が出やすい。 特にTableViewは以下のようにViewModelの配列のどこかを変更されたら都度reloadとしていると一回の…

ネットワークが不調だとAppCode2の動作が重くなる

AppCodeをバージョン2にしてから動作が激重になって非常に困っていたが、ネットワークが不調でほとんどネットにアクセスできない状況だったのが直ったらAppCodeの動作がすごく軽くなった。 バージョン1だとこんなことはなかったんだけど。。 CPU使用率が100…

NSManagedObjectのサブクラスに追加したプロパティにアクセスするとselector not recognizedエラーが出る

確かにプロパティがあるのに、アクセスするとそんなセレクタ無いよというエラーが出る。なぜ。。 以下のようにsynthesizeを追加したら直った。不思議すぎる。 @interface CurrencyPair() @property(nonatomic, strong) CurrencyPairSettingViewModel *create…

NSBeginAlertSheetで表示したアラートのボタンをクリックしたらEXC_BAD_ACCESSが出る

mac

アラートが消える時に実行させる処理をブロックで渡していたが、そのブロックが実行される時にはもうdelegate先のオブジェクトが解放されているため起こっていた。 クラス変数から参照を張ってdidDismissが実行されるまではdelegate先のオブジェクトが解放さ…

クラス変数の初期化

クラス変数の初期化は+(void)initializeメソッドの中で行う。 このメソッドはクラスに最初にアクセスする時に実行される。

Reactive CocoaでプロパティをBindする時の注意点

・RACBindはprimitive型でないプロパティ同士でないとBindできない RACBind(model, name) = RACBind(self.name); ・RACとRACAbleでつなぐと無限ループになるのでdistinctUntilChangedを付ける必要がある。 RAC(self, sortOrder)= [RACAble(model, sortOrder)…

NSTableViewでCellのセンタリング

mac

view based table viewでCellを縦方向にセンタリングしたかったが、 微妙に下の方が広くなって困った。 結局cellとして使うviewの中にラベルなどを配置してpaddingして対応した。 Cellの位置を調整できたらいいんだけど、NSTableViewDelegateメソッド内でvie…

Viewのデバッグに使えるメソッド

UIViewにはrecursiveDescriptionというprivateメソッドがあり、これを呼ぶとsubviewのツリー構造とそれぞれのdescriptionを出力してくれる。 os xにはrecursiveDescriptionはないが、_subtreeDescriptionで似たような情報を出してくれる。 recursiveDescript…

reactive cocoaでシグナルをcombineLatestするときの注意

下記記事でstartWith:nilを付けると書いたが、 2013-04-02 - 日々精進 こっちのほうがスマートだし同じ動きになる。ので、こちら推奨。 - (RACSignal *)changeSignal { return [RACSignal combineLatest:@[ RACAbleWithStart(self.id), RACAbleWithStart(sel…

ReactiveCocoa勉強資料

・学習リソースを紹介してくれている。 ReactiveCocoaのまとめ資料 - Qiita ・特に下記記事が参考になった。実際にRACを使ったコードが見れて解説も丁寧なので勉強になる。 How I Wrote Vinylogue for iOS With ReactiveCocoa - twocentstudios

CocoaPodを使ったプロジェクトでテストコードを実行するとlexical or preprocessor issue header not foundエラーが出る

これはテストプロジェクトのheader search pathsが正しく設定されていないことが原因。 メインのプロジェクトの方はCocoaPodが正しく設定してくれているのでそれを移してくれば解決する。 参考:header - three20 and xcode4.3 : lexical or preprocessor is…

ReactiveCocoaで複数のシグナルをまとめたシグナルを作る

モデルのプロパティのどれかが変更されたらビューを更新するようにしたい。 そういう場合はこんな感じでcombineLatestでシグナルをまとめる。startWith:nilを付けないと、一度目の変更ではシグナルが発生しないので注意。 - (RACSignal *)changeSignal { ret…

NSTableViewのヘッダをカスタムビューにする

mac

NSTableHeaderCellのサブクラスでdraw系メソッドをオーバーライドすればいい。 参考:Cocoaの日々: [Mac] NSTableView - ヘッダのカスタマイズ [1] NSTableHeaderCell