>

2016年4月26日火曜日

"iTunes Matchはこのデバイスのミュージックライブラリに置き換わります" というダイアログはOKしてよい。

iPhoneでiTunes MatchをONにしようとすると出て来る
"iTunes Matchはこのデバイスのミュージックライブラリに置き換わります"
というメッセージ。なんとなく今まで貯めてきたCloud上の自分のライブラリがiPhoneの少量の曲で上書きされてしまうと解釈してしまいそうだが、そうではない。正しくは"iTunes Match「が」このデバイスのミュージックライブラリに置き換わります"という意味で今使っているiPhoneのライブラリがiTunes Matchのたくさんの曲で上書きされるという意味らしい。

※このメッセージの意図はiTunes MatchをONにするとiPhoneだけに保存されている曲は消えてしまうのでそのような曲がある場合はあらかじめバックアップをとっておく必要があるという注意喚起のようである。


2016年1月17日日曜日

Amazon EC2を安全に使うために最低限やっておくこと。

※2015/12/25現在の情報です。
自分の家のPCにGeForceがないのでAmazon EC2でやってみることに。
Amazon EC2でGPUが使えるインスタンスを起動すると大体1時間に1ドルくらいかかるのでインスタンスの停止し忘れとかは非常に怖い。そういうことがないように最低限やっておくべき設定のメモ。


実際のインスタンスでCUDAが使えるようにする設定方法はすでに様々な記事があって例えば
http://sla.hatenablog.com/entry/chainer_on_ec2
この辺を参考に構築できます。

Amazon AWSの請求金額の総額が一定金額を超えた時にアラートメールが来るように設定する。


https://aws.amazon.com/jp/
上記URLからAmazon AWSのコンソールにサインイン。
サインインすると表示されるコンソール画面の一番上のメニューバーから自分のアカウント名をクリックするとドロップダウンメニューが表示される。その中から、「請求とコスト管理」をクリック。

請求情報とコスト管理ダッシュボード
にて
アラートおよび通知
というセクションがありこの文章中に「初回請求アラームの設定」というリンクがあるのでクリック。(下図)

「アラームの作成」をクリック(下図)

あとは表示されるダイアログに従って通知の閾値にする金額とe-mailアドレスを設定してアラームを作成する。必ずまずは$1とかの低額に設定してEC2を利用してあえてその閾値を超えさせてみて通知メールが実際に届くことを確認する。そして忘れずに閾値の金額を適切な値に再設定する。



2015年9月24日木曜日

xCode7.0にしたらAVAudioPlayerの初期化処理で"Call can throw, but errors cannot be thrown out of a property initializer"というエラーが出るようになった件

エラー伝搬を無効にして良いなら下記のようにtryの後に!をつけることでエラーを回避できる。
let myPlayer:AVAudioPlayer = try! AVAudioPlayer(contentsOfURL: url)

xCode7.0にしたらNSUserDefaults.registerDefaultsで'NSMutableDictionary' is not convertible to '[String: AnyObject]'と言われるようになった件

NSUserDefaults.registerDefaultsで引数にNSMutableDictionaryのインスタンスを[String : AnyObject]にキャストして渡していたコードがXCode7.0にアップデートしたらエラーになった件。

原因は多分NSMutableDictionaryの[String : AnyObject]へのキャストが認められなくなったからと思われるので次のようにNSMutableDictionaryを使用せずに指定することで回避。
        
myNSUserDefaultsObj.registerDefaults(
            [
                "key1" : myObj1,
                "key2" : myObj2
            ]
        )

2015年8月29日土曜日

iTunes ConnectのマイAppのバンドルID(Bundle ID)を変更する。

iTunes Connectで登録したマイAppのバンドルIDはそのアプリがストアで公開される前であれば変更できます。(幾つかのサイトで変更できないといった記述が見受けられたがそれは誤りです。)
下記の通りiTunes ConnectのマイAppから当該Appを開いてメニューから その他>このAppについて を選択するとバンドルIDを変更できるダイアログが開きます。


2015年8月10日月曜日

iPython notebookでpyplotを使って表示する画像のサイズを変更する

iPython notebookで画像として可視化しながらデバッグするときに画像のサイズが変更できないで少し困った。以下のfigureという命令でfigsizeを指定することで変更できることが分かったのでメモ。
import matplotlib.pyplot as plt

plt.figure(figsize=(12,12))

iPhoneからWindows PCへの画像、動画の取り込み

iPhoneの写真、動画をWindowsのPCに取り込む時にエクプローラからやろうとすると「予期しないエラーのため、ファイルをコピーできません。」とか「エラー 0x80030001: 要求された処理を実行できません。」とか言われて困ることがある。

この回避策について色々調べてみても肝心のアップルもほとんどやる気がなくてこんなことを言っている。
https://support.apple.com/ja-jp/HT204597

結局今の時点で出来る回避策としてはiPhoneをPCに接続したときに表示される自動再生のダイアログから「画像とビデオの読み込み-Windows使用」を選択して読み込むくらいしかないみたい。その際、このプログラムを開くと出てくるダイアログの読み込み設定をクリックしてファイル名は元のファイル名のまま保存しておいた方が何かとよいと思われる。

iCloudやら容量の大きいiPhoneを買わせたいためかiPhoneで撮影した画像やら動画を外部ストレージで管理するのはかなり面倒な仕様になっている。なお残る懸念として以下がある。WindowsからiPhone内の画像の削除ができないので、仮にPCに取り込んだとしてもその後iPhone内の画像を削除するのが面倒。一括で削除するUIがない。頑張って選択して削除するとゴミ箱という名のアルバムに入るので、そこでまた削除をする。なお、ゴミ箱の中を一括で削除することは可能。
  • 今回のようにWindowsの画像とビデオの取り込みをした後に、iPhone内の画像を削除するときに一部のファイルを残したりすると次回以降の取り込みの際に、二度取り込んでしまうか不安。もしかしたら「画像とビデオの取り込み」のアプリ側で一度読んだ写真は読み込まないようフラグを立ててくれているのかもしれないがその情報もWindowsマシンを移行したら確実に消失されるので面倒なことになりそう。(詳細は未確認)
以上を踏まえて自分の運用はiPhoneで撮影した画像は全てGoogle Photoにアップロードした上でさらにWindows PC(正確にはバッファローのNAS)に保存。Google PhotoとWindows PCにコピーが完了したらiPhoneからは全て削除するようにしている。

なお、今回確認した時点でのバージョンは
iOS 8.4
iTunes 12.2.16
Windows 7