2018/02/28

wxPython の SetBackgroundColour に RGB を指定する方法


`SetBackgroundColour`Colour とイギリスのスペルなので注意 の引数に文字列や `Colour` オブジェクトを指定している例はよく見かけるのですが、RGB でしたい時はどうするのだろうと思っていました。

```python
panel.SetBackgroundColour('blue')
panel.SetBackgroundColour(wx.Blue)
```

2018/02/22

measureText と getTextBounds の違い

Android の [android.graphics.Paint](https://developer.android.com/reference/android/graphics/Paint.html) にはテキストサイズ計測用のメソッドが2つ用意されています。
`Paint#measureText(String)` と `Paint#getTextBounds(String, int, int, Rect)` ですが、これらの違いを調べてみました。

2018/02/20

信頼できない ZIP ファイルは ZipInputStream で開いてはいけない

@Java 1.8.0

`ZipInputStream` から取得した `ZipEntry` の `getSize()` は `-1` になることがあります。

```java
`highlight: 6;
    private void read(InputStream is) throws IOException {
        ZipInputStream zis = new ZipInputStream(is);
        ZipEntry entry;
        while ((entry = zis.getNextEntry()) != null) {
            // getSize() が -1 になることがある
            Log.d(TAG, entry.getName() + "'s size is " + entry.getSize());
        }
    }
```

2018/02/16

BitmapDescriptorFactory.fromResource() で "IBitmapDescriptorFactory is not initialized" が起こる場合の対処方法

@play-services-maps:11.8.0

2018/02/15

モニタをつないでいない Ubuntu の Vino に接続する

@Ubuntu 16.04 LTS

[Vino](https://github.com/GNOME/vino) はそもそも画面をミラーリングするアプリケーションなので、画面出力をしていないマシンにつなぐことは出来ません。

しかし、バックグラウンドで GUI アプリケーションを動かしておきたい場合、モニタ無しで VNC 接続したいこともあります。
そんな時は、ダミーのグラフィックドライバをインストールすることで接続出来るようになります。

> 参考
>
> [Vino - ArchWiki](https://wiki.archlinux.jp/index.php/Vino#.E3.83.98.E3.83.83.E3.83.89.E3.83.AC.E3.82.B9.E3.82.B5.E3.83.BC.E3.83.90.E3.83.BC.E3.81.A7.E5.AE.9F.E8.A1.8C)

2018/02/14

Android の emulator で物理キーボード入力が出来るようにする

以前はデフォルトで使えたと思うのだけど、いつの間にかデフォルトオフになっていたのでメモ。

2018/02/13

Windows 10 上の Ubuntu から COM ポートにアクセスする方法

このご時世にシリアル通信というのも何ですが、組み込み関係等では現役だったりしますとはいえ、シリアル通信ケーブルを使うのではなく、USB がほとんどですが。

私は Linux 上の `screen` をよく使います。ただ、諸事情により Windows で開発しなければならない場合もあります。

そんな時は、[Tera Term](https://ja.osdn.net/projects/ttssh2/) を使っていたのですが、[Windows 10 では Linux が動くようになった](https://ja.wikipedia.org/wiki/Windows_Subsystem_for_Linux)ので、Windows 10 上でも `screen` が動くか試してみました。

2018/02/10

Android Studio で Don't remind me again for this project を押してしまった場合の回復方法

Android Studio を使っていると Gradle plugin のアップデートを勧められることがあります。その際、"Don't remind me again for this project" を押してしまうと、2度とこのダイアログが出なくなってしまいます。

2018/02/09

コマンドラインで gradle を実行すると com.android.tools.build:gradle が見つからないエラー

既存の Android プロジェクトを Android Studio 3.0.1 で読み込んだところ、
Android Studio ではビルド出来るのに、コマンドラインでは以下のようなエラーが出るようになってしまいました。

```console
`gutter: false;
$ ./gradlew tasks

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'MyApplication'.
> Could not resolve all files for configuration ':classpath'.
   > Could not find com.android.tools.build:gradle:3.0.1.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.1/gradle-3.0.1.pom
         https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.1/gradle-3.0.1.jar
     Required by:
         project :

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

BUILD FAILED in 0s
```

2018/02/08

Raw Disk Image file を Ubuntu でマウントする方法

Ubuntu 16.04 LTS 上で VDI を Raw Disk Image に変換したもので確認。

> 参考
>
> - [filesystems - how to find the type of img file and mount it - Unix & Linux Stack Exchange](https://unix.stackexchange.com/questions/82314/how-to-find-the-type-of-img-file-and-mount-it/156480#156480)
> - [Convert .vdi to .img · GitHub](https://gist.github.com/hightemp/11196851)

2018/02/07

Android Emulator で公式に Google Play が使えるようになっていた

いつの間にか2017年4月なので、もう1年近くも前だ…、公式に Google Play がインストールされた Emulator が出ていたようです。

> 参考
>
> [Android Studio Release Updates: Google Play System Images: Android Studio 2.3.2 and Emulator 26.0.2 are now available in the Beta Channel](https://androidstudio.googleblog.com/2017/04/google-play-system-images-android.html)

2018/02/03

その国にいるのに「お住まいの国でご利用いただけません」と出てしまう場合の解決方法(Google Play Store)

2019/4/15 追記
コメントで、Android の Google Play アプリから設定する方法を教えていただき、追記しました。
2018/10/02 追記
知人のアカウントで再度試したところ、Google ペイメントセンターの新しいプロファイルが反映されるまで数日かかるようです。 それまでは、以下の方法でも解決出来ませんでした。

なお、新しいプロファイルが反映されたかどうかは、ブラウザで [Google Play](https://play.google.com/store) を開き該当のアプリを検索してみると、検索に出てくるかどうかでわかります。
[Google Play Store](https://play.google.com/store) の国情報を変えるには [Google ペイメントセンター](https://payments.google.com/payments/home) で新しいプロファイルを作成すれば良い。 という情報は各所で見られます。 ただ、私がその設定をして丸2日待っても情報が反映される様子がありませんでした。 何度アプリを起動しても、「このアイテムはお住まいの国でご利用いただけません」と表示されてしまいます。
2018/02/01

.desktop ファイルの Exec に環境変数を含める方法

2018/8/3 追記
`desktop-file-install` を使う方法に書き換えました。
参考: [.desktop ファイルを作ったのに Unity のランチャに表示されない場合の対処方法 | 穀風](https://kokufu.blogspot.com/2018/08/desktop-unity.html)
`.desktop` ファイルを `desktop-file-install` でインストールすると、Unity の検索に出てくるようになります。 > 参考 > > [Unity のランチャにカスタムアプリを登録する(コマンドラインで) | 穀風](https://kokufu.blogspot.com/2018/01/unity.html) ```text `title: "myapp.desktop"; [Desktop Entry] Type=Application Name=My Application Exec=/home/username/bin/myapp Icon=face-angel Terminal=false ``` インストール ```console `gutter: false; $ desktop-file-install --dir="${HOME}/.local/share/applications" myapp.desktop ```