homebrewの最新バージョンでscreenがinstall出来なくなった時の対処法
こんばんわ!!
2日かけてバグと戦うような情弱エンジニアです。精進が必要です。
homebrewを新しくインストールし直したら、brew search
してもscreenが検索結果に出なくなりました。
今日はその対処法です。
utf-8パッチ付きのものをインストールすると、出なくなっていた絵文字等も表示されるようになります。
まずはtap
します。
brew tap rcmdnk/homebrew-rcmdnkpac
続いてインストールです。
brew install screenutf8 --utf8
これでscreenが無事にインストールされるはずです。
また、ターミナルを再起動すると所々おかしかった動作も正常に動作するようになると思います。
誤作動がある方は是非お試しください〜
AVFoundationを使ったビデオの処理で「Cannot Complete Export」エラーが出た(iOS9.2~)
こんばんわ!
平日の睡眠不足から、休日に22時間ぶっ通しで寝てしまったところ一時的に精神状態が鬱になった人です。
睡眠の取り過ぎも良くないようですね。
今日はiOS9.2になってからぶつかったバグについてのログです。
Apple先輩徐々に色々厳しくなってますね。
AVFoundationを使ったビデオのexportは映像と音声を分けて定義するのですが、
OSをiOS9.2にしてから今まで成功していたexportで以下のようなエラーが発生しました。
AVAssetExportSession Error -11820 Cannot Complete Export
エラー内容の通り、exportが出来なくなっていたんです。
調査してみると以下のコードに問題があることが分かりました。
AVMutableComposition* composition = [AVMutableComposition composition]; AVMutableCompositionTrack * composedAudioTrack = [composition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
[composedAudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, kCMTimeZero) ofTrack:[[video0 tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:nil];
ユーザが音声をミュートに設定していた場合、AVMediaTypeAudio
を呼び出していたにも関わらず
音声の再生時間をゼロ秒からゼロ秒に設定していたのが原因でした。
iOS9.2から、定義して使用しないようなコードを書くとexportエラーが起こるようです。
全くおっしゃる通りです!使わないものを定義してどうするんでしょうね!
という訳でミュート設定の場合のみ定義AVMediaTypeAudio
の定義をするようにしたら無事にエラーが起こらなくなりました。
非常に初歩的なことですが、こういう細かいところが大切ですしチェックされるようになったのだなと思いました。
綺麗なコードを書いていきたいですね。。
あとバージョンアップ毎に入念なチェックをしなければいけませんね!反省しました!!それでは!!
El capitanでpackageが全体的におかしくなった時の対処法
こんにちは!年収が4万円上がったのでマットレスを変えた人です。
3600円でした。(安)
今日はmacをel capitanにした時にrubyの挙動がおかしかったり、homebrewがinstall出来なくなったりした時の対処メモです。
私はrailsのアップデートをしようとした時に、rubyのあるディレクトリでpermissionエラーが出ていることが分かりました。
今回のアップデートから、/usr/bin
以下のディレクトリのpermissionが変わって、ログインユーザで使えるものが限られたようです。
この他にもhomebrew等でパッケージのインストールが出来なくなったり、ライブラリのアップデートが出来なくなっていました。
こんな時は、homebrewを一度アンインストールしてから再度インストールするとパッケージの使用先が全体的に綺麗になります。
アンインストールは以下
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
続いてインストール
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
前のhomebrewでインストールした系は全て消えているので、もう一度インストールし直します。 Rubyの例です。
$ brew install ruby
この時に、前にインストールした時に残っているファイルが存在している為にエラーが出ることがあります。
前回のインストールが必要ない場合はそのまま上書きしてしまいます。
$ brew link --overwrite ruby
こんか感じで完了です。
rails等のエラーが出ていたgemのインストールも、綺麗にインストール出来るようになります。
困っている時はぜひ試してみてください!
export archived project to ipa file on command line
おはようございまーーーす(小声)
注射の針が刺さる瞬間が見れない人です。
xcodeをバージョン7に上げてから色々と不具合が多いのですが、
今回はアーカイブしたプロジェクトをexportするところで突如xcodeが落ちる謎現象に包まれたので、
exportをコマンドから行うメモです。
やっぱりX.0系は触らずにX.1系になるまで待った方がいいようですね。
このexportにはxcodebuild
というコマンドを使います。
以下のリンクにman pageがありますが、xcode build --help
した方が見やすい上に詳しいです。
developer.apple.com
実際を使用したコマンドは以下のような感じです。
-exportOptionsPlist
オプションに関してはなくても大丈夫ですが、deprecated warnが出るので付けた方が安心です。
また、-exportProvisioningProfile
に関しては対象の.mobileprovisionのファイルパスを指定してもいけるようですが、
稀に一致するprovisioning profileがないよってエラーが出るので、名前で指定した方が安心です。
それでは、よいゆめを〜〜〜
ottoちょっとだけ使ってみた
こんにちは!「みそスープ」って呼ぶ日本人が許せないタイプの人です。
今回は最近でたottoを使ってみたメモです。開発環境編です。
ottoに関しての説明は以下にあるので省略しますね!(ニッコリ)
Otto by HashiCorp
まず、ottoコマンドを利用するためにバイナルファイルをダウンロードします。
ダウンロードしたファイルを解凍して、/usr/bin
や~/bin
に置くだけで準備完了です。
これだけでもかなりありがたいですね🙏
ottoファイルをセットしたらコマンドを確認します。
$ otto usage: otto [--version] [--help] <command> [<args>] Available commands are: build Build the deployable artifact for the app compile Prepares your project for being run. deploy Deploy the application dev Start and manage a development environment infra Builds the infrastructure for the Appfile status Status of the stages of this application version Prints the Otto version
コマンドの使い方がダラっと表示されます。
公式のドキュメントにはサンプルがありますが、今回は自分のRailsプロジェクトで触ってみたのでそんな感じで。
プロジェクトのホムーディレクトリに移動して、ottoでアプリケーションを動かすための準備をします。
$ otto compile
これによって、.ottoid
ファイルと.otto/
ディレクトリが作成されます。(この中にVagrantfile等が入っています)
この時点でどんなアプリケーションなのかを判断しているそうですね。
次にottoでvagrantを起動し、SSH接続します。
接続したらbundleを入れておきます。
$ otto dev #最初は時間がかかります。
$ otto dev ssh
$ bundle
あとはWebサーバの起動するだけです。公式ではrackup
を使っていますが、
今回は今までのプロジェクトをそのまま使いたかったのでrails server
しました。
$ bundle exec rails s
INFO WEBrick::HTTPServer#start: pid=10078 port=3200
こんな感じでWebサーバがスタートするので、あとは対象のポートに合わせてブラウザで動作を確認するだけ!
IPアドレスはotto dev
した時にサラッと表示されていますがぐちゃぐちゃして分かりづらいので、以下のコマンドで確認することが出来ます。
$ otto dev address 172.16.1.253
今回の場合だとhttp://172.16.1.253:3200/
で接続出来ます。
最後に、使い終わった環境は全てサクッと削除出来ます。
$ otto dev destroy
また、suspend等のvagrantコマンドを使いたい場合はotto dev vagrant
で利用可能です。
xcodeをアップデートしたらXVimとかのプラグインが動かなくなるアレ
こんにちは!忍びの者です。
カレー色のシャツを着てくるインド人の同僚が最近やっと心を開いてくれるようになりました。
今回はxcodeをアップデートした時に毎回プラグインが消えてしまうので、
復活方法のメモです。超自分の為です。
XVimを例に書いていこうと思います。
まずはアップデートxcodeのバージョンにXVimが対応しているかを確認します。
github.com
対応している場合、既にローカルに存在しているXVimディレクトリでmasterをpullしてmakeし直すだけです。
$ cd ~/Library/Application Support/Xcode/plugins/XVim // このディレクトリは適宜変更してください。
$ git pull origin master
$ make
xcodeを再起動するとプラグインに反応して「Load bundle」が「Skip bundle」を聞いてくるポップアップが表示されるので、
「Load bundle」を選択します。
楽勝ダナコレ
以上の方法で出来なかった場合、xcodeのバージョンに応じたUUIDをプラグインのplistに追加します。
UUIDは以下のコマンドで確認することが出来ます。
$ /usr/libexec/PlistBuddy -c 'Print DVTPlugInCompatibilityUUID' "/Applications/Xcode.app/Contents/Info.plist"
ちなみに、β版xcodeで使いたい場合は以下です。
/usr/libexec/PlistBuddy -c 'Print DVTPlugInCompatibilityUUID' "/Applications/Xcode-beta.app/Contents/Info.plist"
こうすると、0420B86A-AA43-4792-9ED0-6FE0F2B16A13
のようなUUIDが取得出来ます。
次に以下のファイルを開きます。
~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/XVim.xcplugin/Contents/Info.plist
すると、<key>DVTPlugInCompatibilityUUIDs</key>
というタグの中にUUIDが並んだ箇所が出てくると思うので、その並びに先ほどのUUIDを追加します。
保存をしてxcodeを再起動すると、先ほど説明したようなポップアップが表示されるようになります。
この辺一気にチェックしてアップデートしてくれる何かがあると便利そうですね〜〜〜
という訳で今回はこんな感じで。今日もご飯が美味しいです。
AVFoundationでカメラの明るさを調整しよう
こんにちは!IE9を使う人です。
英語公用語の社内でジャパナイゼーションを進めていることが上司にバレました。
さて、しばらく仕事でカメラアプリを作成していますが、今回はobj-cでの明るさ調整のメモです。
私自身にカメラの知識がなさすぎるので、もどかしいところが多いかと思いますがご了承ください(おじぎ)。
カメラの明るさ(露出度)を調整するには、カメラのオフセット(基準点からの差で表した値)、デュレーション(1カットの編集・特殊効果時間の長さ)、バイアス(000秒で撮影されたときに現れる映像)等が関係しているそうですが、
スライダーでISO感度をユーザに調整してもらうのが一番使いやすいかと思います。
ISOとは、国際標準化機構(International Organization for Standardization)の略で、写真感光材料の感光度を設定したものを言うそうです。
結局のところなんなんでしょうね。カメラって奥が深いんだなァ。
まず、使用する変数を準備します。(カメラ設定等は省略しています)
@property (nonatomic) AVCaptureDeviceInput *videoDeviceInput; @property (weak, nonatomic) IBOutlet UISlider *exposureSlider;
次にviewDidAppear
内でスライダーにISOの値をセットします。
- (void)viewDidAppear:(BOOL)animated { // デバイス情報を取得 AVCaptureDevice *device = [[self videoDeviceInput] device]; // sliderの最小値・最大値を設定 (ISOの最大・最小にする) self.exposureSlider.minimumValue = device.activeFormat.minISO; self.exposureSlider.maximumValue = device.activeFormat.maxISO; // ISOの中間値を計算して結果を変数に代入 float midISO = (self.exposureSlider.minimumValue + self.exposureSlider.maximumValue) / 2; self.exposureSlider.value = midISO; NSError *error = nil; // デバイスのロック if ([device lockForConfiguration:&error]) { // ISO初期値(中間値)でカメラを表示 [device setExposureModeCustomWithDuration:AVCaptureExposureDurationCurrent ISO:midISO completionHandler:nil]; // デバイスロックの解除 [device unlockForConfiguration]; } else { NSLog(@"%@", error); } }
viewDidAppear
よりも前のライフサイクル内でカメラ情報を取得しようとすると、
View自体がAVCaptureDevice
を完全に読み込む前にISO値を取得してしまう為、正しい値が取れなくなります。
また、デバイスのロックに関しては、デバイスの設定を変更する為に動いているデバイスのフォーカスや露出をロックする必要があります。
設定の変更が終了したら再度デバイスのロックを解除します。
続きましてスライダーが変更された時の振る舞いです。
- (IBAction)changeISO:(id)sender { // デバイスの取得 AVCaptureDevice *device = [[self videoDeviceInput] device]; UISlider *control = sender; NSError *error = nil; if ([device lockForConfiguration:&error]) { // 取得した値をISO値にセットしてカメラ表示を変更 [device setExposureModeCustomWithDuration:AVCaptureExposureDurationCurrent ISO:control.value completionHandler:nil]; [device unlockForConfiguration]; } else { NSLog(@"%@", error); } }
storyboard内のスライダーにIBActionを付けて値を取得し、ISOを調整します。
こんな感じで、以下のような結果になりました。
最初
暗くした
明るくした
うまくいきましたな。
ちなみに今回のこのカメラの調整はiOS8以降での対応だそうなのでちょっと注意です。
(2015/07時点でiOS8ユーザは8割超のようなので大きな影響はないかと思いますが。)
できなかったこと
本当は最初、初期値を取得する為にAVCaptureISOCurrent
を使用する予定でしたが、
maxISO
が3桁なのに対して30桁くらいの値しか取得できなかったので利用を断念しました。。。
これ使っている人がいたら是非教えてください〜〜〜