new PDO('sqlite:~') 実行時にデータベースファイルが勝手に作られる

原因

PDO SQLite の仕様。

https://stackoverflow.com/questions/40618805/php-pdo-sqlite-connection

自動作成を無効にする方法

そんなものはない。

対策

データベースファイルの有無を確認してから、new PDO() を実行するようにする。

if (file_exists('a.sqlite3')) {
    $pdo = new PDO('sqlite:a.sqlite3');
}

Linux カーネル 3.20 以降のバージョン番号の付き方

調べてみた。

公式なドキュメントは無い模様。

What are Kernel Version number components (w.x.yy-zzz) called? - Ask Ubuntu より

Then, pretty much arbitrarily, Linus bumped the version to 3.0. And that ended all of that semantic versioning's applicability to Linux versions. And when 3.20 was due, Linus switched to simply incrementing w whenever x got large enough that he ran out of fingers and toes to count it.

それから、ほぼ恣意的に、Linus はバージョンを 3.0 に上げました。 これで、Linux へのセマンティックバージョニングの適用はすべて終わりました。 そして、3.20 が来たとき、Linus はマイナー番号が手足の指の数を超えたら、シンプルにメジャー番号をインクリメントすることに切り替えました。

nvidia/cuda コンテナーで screen コマンドのシェルを bash に変更する

デフォルト (/bin/sh) だと、[BackSpace] も [Delete] も化けるから困ってた。

方法

テキストエディターをインストールする

# apt install -y vim

テキストエディターで ~/.screenrc を開いて、次の行を書く。

shell /bin/bash

vboxmanage getproperty machinefolder する方法

方法

"list systemproperties" サブコマンドを実行して、出力結果から "Default machine folder:" を探す。

$ vboxmanage list systemproperties | grep "Default machine folder:"

参考文献