Start Developing iOS Apps (Swift) を見ながらチビチビ進めています。Swift は末尾にセミコロンを書かない言語なので慣れません。書いてもいいみたいですけど。
チュートリアルを進めていくと、ビューに配置したコントロールを「Control-drag」してソースコード上にドロップ、という操作が出てきて、これが VNC 経由ではできないのでモニタを繋いで入力を切り替えて、ととても面倒なことになっていたのですが、右クリックしたコンテキストメニューからできることに5分ほど前に気づきました。
さて本題。Work with View Controllers の節まで来たところで、書いてある通りにやってもタップジェスチャーが通知されないという問題に遭遇しました。試しにストーリーボード上に UITapGestureRecognizer を配置するのではなく、ググるとヒットする以下のようなコードで書いてみてもやっぱりダメです。
override func viewDidLoad() { super.viewDidLoad() let gr = UITapGestureRecognizer(target: self, action: "tapped:") photoImageView.addGestureRecognizer(gr) } func tapped(gestureRecognizer: UITapGestureRecognizer) { print("tapped") ... }
何があかんのや。
ちなみにこれより前の節にある、ボタンが押されたことをハンドルするとかテキストフィールドの編集状態を delegate で受け取るとかいうことは問題なくできています。
「グラーフ」「ツェッペリン」「嵐」「萩風」「鹿島」「改二甲」「弾着」「景雲」「えくさ→江草」「コロネハイカラ島」「バニラ湾」を追加しました。
なお、「つぇっ」は入力しづらいので、「ツェッペリン」の読みとして「つぇっぺりん」の他に「ぜっぺりん」を収録しています。
ところで、この辞書には単語として「Bismarck」「Littorio」「Italia」「Roma」「Libeccio」は収録していますが、「Prinz Eugen」「Graf Zeppelin」は収録していません。これは2単語であるために読みをどうするか決めかねているからです。何かいい案はありませんかね?
uOP$ に乗ってるかどうかの違いなんじゃないの、と指摘されました。uOP$ のことすっかり忘れてました。Sandy Bridge の uOP$ の解説記事はこんなのがあります(英語)
Read the rest of this entry
命令ベンチマークツールでループ中の命令数を増やすとスループットが下がる件にからんで、パフォーマンスを計測する方法一般についてちょろっとググったら、Linux の perf コマンドを使う記事を見つけました。ってこれよく見たら x86/x64 最適化勉強会で聞いたはずじゃん。
これの 3.2 の「アーキテクチャの理解」のところで、命令列が長いと IPC が下がる、というようなことが書いてあります(マイクロアーキテクチャは同じく Sandy Bridge)。
まあ、他の人のところでも同様のことが起こる、ということが(より詳細なデータとともに)分かっただけであって、なんで長い依存列があると遅くなるのかはよく分からんのですが。
最近、命令ベンチマークツールをもうちょっと汎用的に組めるように作りなおしているのですが、さっき試しに計測したら Sandy 上で pmovzxbw のスループットが 0.5 と出てきました。以前のツールで測った時は 1 になっていました。あれれと思って Intel の最適化マニュアルを見たところ、0.5 が正しいようです。あとよく見たら palignr も正しくはスループット 0.5 で、これまた以前のツールでは間違った値が出てきています。
Read the rest of this entry
そういえば調べてませんでしたが、動作することを確認しました。
なお、Windows 10 をアップグレードインストールした場合、アップグレード直後は使えないことが予想されます(Windows 10 に限りませんが)。これは、Ut Video Codec Suite は DLL をシステムディレクトリにインストールしているからです。改めて Ut Video Codec Suite を(再)インストールすると使えるようになるはずです。