バグ報告の仕方
バグ報告が上がってきたときに、いまいち要領を得ない場合がまれに良くあります。
自分がバグ報告をする場合はなるべくそうならないようにしたいので、気をつけている事をメモとして残しておきます。
- 再現方法を詳細に書く
必ず再現する場合はその再現手順をステップ毎に書きます。
このとき重要なのは相手がその再現手順を読んでちゃんと再現ができることです。
必ずしも再現しない場合は発生時の状況を細かく伝えます。
- 実際の結果と自分が想定した結果を伝える
自分が正しいと思う結果と相手が思う正しい結果は必ずしも同じとは限りません。
ですので、「想定した結果はXXですが、実際の結果はYYになりました」
といった感じで自分が考える正しい結果を伝えます。
- 勘違いがないように根拠を示す
自分では不具合と思ったが、仕様を確認してみたら不具合では無かったという事もありえます。
また実際に不具合なのに相手が仕様を勘違いしているケースもあります。
何故自分が不具合だと思ったかの根拠を示すことでお互いの勘違いを無くすことができます。
以上
PRO TREK Smart(WSD-F20)の初期化方法(ロック解除パターンを忘れた場合)
故あってPRO TREK Smart(WSD-F20)の中古を(合法的に)入手したのですが、
ロック解除パターンが設定されていたため、そのままだと初期化してペアリングができませんでした。
付属のマニュアルと公式サイトを見ましたがどうにも初期化方法が見つからず、
色々ネットで調べたら初期化方法が分かったのでメモがてら覚書を残しておきます。
- 電源をオフにする(電源ボタン長押し)
- TOOLボタンとAPPボタンを押しながら電源をオンにする
- モード選択画面になります
- "RECOVERY MODE"を選択し電源ボタンを押します
- DEAD ANDROID画面に入ります
- TOOLボタンと電源ボタンを同時に押します
- リカバリーモードになります
- "wipe data/reset factory"を選択し電源ボタンを押します
- "Yes"を選択し電源ボタンを押します
以上で初期化が完了します。
※追記 2018/06/20
時計を使用する - Wear OS by Google ヘルプ
Wear OSのヘルプにちゃんと対応方法載ってました。
Mac+AtomでPlantUMLを使う
MacでPlantUMLを使おうとしたときに少しつまずいたのでメモを残しておきます。
PlantUMLを素で使うこともできますが、Atomエディターを使うとリアルタイムに図が反映されて便利そうなのでAtom+plant-uml-viewerを利用することにしました。
参考: AtomとPlantUMLで爆速UMLモデリング - Qiita
Graphvizのインストール
PlantUMLはGraphvizを利用します。
最初にMacPortsでGraphvizをインストールしたところ図がうまく表示されないことに気づきました。
原因はGraphvizのバージョンです。2.38以下でないと図が正常に表示されません。
参考: Frequently Asked Questions
Graphviz 2.38 を簡単にインストールする方法が見つからなかったので、
ソースからコンパイルしてインストールする方法をとりました。
Graphviz 2.38をソースからコンパイル
Graphviz 2.38: graphviz-2.38.0.tar.gz - Google 検索
Graphviz 2.38 Patch: graphviz-2.38.0-consolidated_fixes-1.patch - Google 検索
# tar.gzを展開 tar xzvf graphviz-2.38.0.tar.gz # パッチの適応 patch -p1 -d graphviz-2.38.0 < graphviz-2.38.0-consolidated_fixes-1.patch
コンパイルに必要なツールのインストール(Optional)
ここでGraphvizのコンパイルに必要なautoconfとautomakeがインストールされていなかったのでインストールしました。sudo port install autoconf automake
これでコンパイルの準備が出来たのでコンパイルを試すのですが、エラーが発生しました。
pangoft2が見つからないとエラーが出ました。(pango自体はインストールしている)
checking for pangoft2... no
configure: error: Package requirements (pangoft2) were not met:No package 'pangoft2' found
色々試してダメだったので、pangocarioをオフにしてコンパイルすることにしました。
# Graphviz 2.38をソースからコンパイルの続き ./autogen.sh --with-pangocairo=no ./configure --with-pangocairo=no make sudo make install
以上でGraphviz 2.38のインストールは完了です。
Atomのインストール
https://atom.io/ からダウンロードしてインストール
AndroidスマホでFGOの動作が遅い理由
FGOはさておきUnity製ゲームではAndroidでの動作が遅い理由
いきなりタイトルがすり替わっていますが、今回はFGOで使われているUnityエンジンについてのお話をしたいと思います。
Unityエンジンは非常に強力なゲーム開発ツールなのですが、以下のような制約によりAndroidスマホでは動作が遅くなります。
- (ほぼ)シングルスレッドでしか動作しない
- 64bitアーキテクチャに対応しておらず32bit(互換モード)でのみ動作する
現在のところUnityエンジンの(多くの)APIはメインスレッドでのみ動作するようになっています。
この制約で動作に一番影響がでてくるのは画像等のリソースロードだと思うのですが、シングルスレッドでしかロードできないためマルチコアのCPUを積んだスマホでは半分以下の性能でしか動作しません。
俺のiOSスマホはサクサク動いてますけど?
いやいや、iOSスマホではもっとましに動いているんだから、Androidでももっとましになるはずでしょ?と思った奥さん、じつはiOSスマホのアプリはAndroidと違い64bit対応しているんですよ。
(シングルスレッドでしか(ほぼ)動作しないのは一緒)
さらにiOSとAndroid OSではアプリの動作方法について違いがあり、iOSアプリはOS上で直接実行されるのにたいして、AndroidアプリはVM*1という仮想マシン上でアプリを動かすことも動作の遅さの一因となっています。
というわけでUnity製のゲームを遊ぶのであればiOSスマホがおすすめですよというお話でした。
ScalaでListをArrayにコピー
val list = List("a", "b", "c") var array = new Array[String](list.length) for( Pair(i, c)