2014-07-01から1ヶ月間の記事一覧
追記:下記は間違いで、正しくは2014-08-03 - 日々精進参照。 昔はRACBindを使ってやってたけど、バージョン2.3.1ではTwo way bindingのやり方が変わったっぽい。 以下のように書くとできる。 // RACBind returns a following terminal RACChannelTerminal *…
Jenkinsでビルドすると、パスワードの入力を求めるダイアログが表示されて鬱陶しい。。 これはJenkinsがcodesignする時に証明書にアクセスできないことが原因。 証明書をキーチェーンの「ログイン」から「システム」にコピーするとJenkinsからも証明書にアク…
2014-04-28 - 日々精進で照会した方法でJenkinsからキーチェーンにアクセスできるようにしていたのだけど、以下のコマンドでは-t 3600が指定されているので、1時間たったらまたパスワードを入力する必要があった。 security unlock-keychain ${HOME}/Library…
1.9.7をインストールすると掲題のビルドエラーが発生した。 バージョンを2.3.1にすると直った。 やっぱメジャーバージョンアップしてるからインストールすると色々壊れた。。直さなきゃ。
最近ようやくalfred workflowの便利さに気付き、workflowを探していたところ、packalというサービスがあった。 数百のworkflowが登録されていて、検索できるという素晴らしいサービス。イメージとしてはcocoa controlsみたいな感じ。 Home | Packal とりあえ…
手順は以下。NSWindowControllerのサブクラスを作ってそこに実装する ・Window閉じていいよフラグのプロパティを追加する ・self.window.delegate = self;しておく ・windowShouldCloseメソッドの中で、Window閉じていいよフラグがYESならYESを返す。そうで…
以下のようなコマンドでsymbolicateできる。が、なんかヘン。。symbolicateして表示されたメソッド名が間違ってるっぽい。 atos -arch armv7s -o アプリ名.app.dSYM/Contents/Resources/DWARF/アプリ名 0x00407a5fなんでもっと簡単にsymbolicateできないんだ…
以下を実行するとsshでログインできるようになる。 sudo apt-get install aptitude sudo aptitude install ssh sudo vi /etc/ssh/sshd_config # PermitRootLoginをnoにする参考:Ubuntuでsshdの設定をしてリモートから接続できるようにする - そ、そんなこと…
具体的には、以下のような挙動になる。 ・ウィンドウのグラデーションが濃すぎる ・タイトルバーを表示出来ない どうもNSWindowにNSTextFieldを配置していると起きるっぽい。 解決策はNSWindowのcontent borderをNoneにすること。 これである程度改善される…
以下でできる。 ・PlistのLSUIElementをYESにする。 ・下記コードを実行するとDockアイコンが表示される。kProcessTransformToForegroundApplicationをBackgroundに変えれば非表示になる。 if (![[NSUserDefaults standardUserDefaults] boolForKey:@"Launch…
表示イベントはNSWindowControllerの-(void)showWindow:(id)sender 非表示イベントはNSWindowDelegateの-(void)windowWillClose 名前が対称になってないし、メソッドが定義されているTypeが違うのが気になる。 参考:cocoa - How can I track opening and cl…
NSTextFieldのstringValueにnilを代入していることが原因。 UILabelはnil入れても大丈夫なのにな。。
self.alphaValue = 1;を実行すると、Viewが全然表示されず、10秒後に「CoreAnimation: warning, deleted thread with uncommitted CATransaction」というエラーメッセージが表示されるという現象が起きた。 原因はself.alphaValue = 1;をbackground threadか…
NSViewのalphaValueのAPIドキュメントを見ると、 Prior to OS X v10.6, views not managing a Core Animation layer did not support this method.と書いてある。実は裏でCoreAnimationが使われているらしい。 Launch Arguments & Environment Variables - N…
普通にthis.evaluateの中でconsole.logを実行してもコンソールには出力されない。 そのconsole.logはヘッドレスブラウザの中で実行されるので。 コンソールに出力させるには以下のようにする。 casper.start('http://google.com/', function() { this.evalua…
2014-07-04 - 日々精進でjsファイルを生成し、それをclientscriptとしてヘッドレスブラウザに渡す方法を書いたが、かなり遠回りなやりかただった。 そんなことしなくても、 this.evaluateの引数にオブジェクトを渡せばCasperJS本体からヘッドレスブラウザ内…
下記記事を見ていくつかMacアプリを新しくインストールした。 新たに殿堂入りすべきだと思うアプリ10選 - Macの手書き説明書 ・nvALT+SimpleNote SimpleNoteというサービスは初めて知ったけどメモを複数端末で共有したいだけなら良さそう。 Evernoteは職場か…
文字数数えるの大変だからイヤだな。。と思ってたら、twitter公式のライブラリがあった。 詳細は下記サイト参照。 参考:ツイートから@やURLなどを抽出するライブラリ twitter-text-objc - スーパーソフトウエア 世界最強のホットテクノロジー - アプリ開発…
IBでViewを右クリックし、nextKeyViewのOutletを次のTab順のViewに繋げればいい。 参考:cocoa - Tab Order in interface builder? - Stack Overflow
意外と簡単にできた。以下のようにAVAudioPlayerを使えばよい。mp3も再生できる。 NSString* path = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"]; NSURL* file = [NSURL URLWithString:path]; self.audioPlayer = [[AVAudioPlayer allo…
セルクリックイベントを捕まえるだけで苦労するのがOSX。修羅の国や。。 以下のNSTableViewDelegateメソッドがクリックイベントの代わりに使えるよという情報があったが、このメソッドは名前の通り選択可能かどうかを返すメソッドなので、すでにselect状態に…
普通はMenuを使ってコピー・ペーストなどのコマンドを実装するが、メニューバーアプリなどでMenuが使えない場合は以下のようにする。 ・NSApplicationのサブクラス(MyApplicationクラスとする)を作る ・PlistのPrincipal classに「MyApplication」を設定 …
普通にtail -f | jq '.'のようにjqに渡してもうまくいかなかった。 tailからの出力を1行ずつシェルで切ってjqに渡してやらないといけない。 以下のようにwhile read line...コマンドを使うと1行ずつ渡せる。 tail -f app.log | sed -r "s/\x1B\[([0-9]{1,2}(…
エラーの原因は、文字列はJSON形式になっていないこと。jqに渡した文字列を一旦ファイルに保存し、catで表示しても普通にJSON形式になっているように見えた。 stringsコマンドで表示すると以下のようにへんな文字列が頭にくっついていた。 strings file #=> …
ファイル・フォルダをブラウズしている時に.を打てば隠しファイルが表示される。 alfred便利だから使い方ちゃんと調べた方がよさそうだなぁ。 参考:Cheatsheet - Alfred v2 Support
IB上でTable Header Viewをhiddenにすることはできるが、そうすると Header Viewがあったところに隙間ができてしまう。 これを詰めるには、以下を実行すればよい。 [tableView setHeaderView:nil]; 参考:objective c - Hiding NSTableView header? - Stack …
原因は、showRelativeToRect:に渡すデータが間違っていたこと。 view.boundsを渡さないといけないが、view.frameを渡してしまっていた。 bounds渡すAPIって珍しいから間違えた。。
※追記 もっといい方法がありました。詳細は→2014-07-16 - 日々精進 CasperJSが今どの環境で実行されているかは2014-07-03 - 日々精進に書いた方法で、環境変数から取得する。 スクレイピングしたデータをHTTPで送信している場合、そのリクエストはCasperJS内…
以下のようにする。 system = require('system') console.log(system.env.PATH)参考:CasperJSで環境変数を参照する - さいたま産エンジニアの覚え書き
File Watcherでcoffeescriptのコンパイルを随時行う設定をしているが、なぜかコンパイルしてくれない。 しょうがないのでコマンドラインでwatchすることにした。 以下のコマンドを実行すると、カレントディレクトリからrecursiveに.coffeeファイルを探し、コ…