水底

ScalaとかC#とかネットワークとか

プログラムを変更せずに標準出力ごとにタイムスタンプを付ける方法とPythonでのサンプル

プログラムの実行時間を計測したいけどプログラム自体には手を加えたくないor加えられないということがあると思います。プログラム全体の実行時間の計測時間であれば time コマンドで簡単に行なえますが、より内部的に計測する場合の一つの手段として、標準出力のタイミングをチェックするという方法があります。 そんなときに便利なコマンドのメモです。

例えばこんな感じに。

[2019-05-18 17:11:14] 0
[2019-05-18 17:11:15] 1
[2019-05-18 17:11:16] 2
[2019-05-18 17:11:17] 3
[2019-05-18 17:11:18] 4
続きを読む

GPU Passthroughの最前線

TL;DR

今のところ、デスクトップ向けGPUであれば多くの環境で動くが、モバイル向けGPUの場合はゲストOSがWindowsだと比較的新しいGPUが利用できない。

そもそもGPU passthroughとは

GPU搭載のマシンで、VMから直接オーバーヘッド無しでGPUを利用できるようにする技術の総称です。私の場合は、ノートPCでLinuxをホストとし、QEMU/KVM上に建てたWindowsからGPUを利用しようとしています。が、一筋縄では動かすことができません…

なお具体的な設定方法は巷にたくさん転がっているため、この記事ではまとめていません。

続きを読む

同一ディレクトリに複数のDockerfileを置くときの命名方法

結論から

xxx.Dockerfile とするのが良いです。Dockerfile-xxxDockerfile.xxx といった命名とは違い、多くの環境で Dockerfile として認識されるため、例えばGitHubではシンタックスハイライトが有効になります。

e.g. 同じTensorflowプロジェクト内のDockerfileでも異なる。前者はDockerfileとして扱われているが、後者は認識されていない。 (もしかしたらGitHubのアップデートで変わるかもしれませんが…)

論理削除について再考、そしてイベントソーシングへ

TL;DR;

殆の場合において論理削除は不要。素直にRDBの機能を使うかイベントソーシングパターンを導入する。

なんで今更論理削除の話を?

散々議論されていて皆さん飽き飽きしている話題だと思いますが、今一度個人的にまとめたかったからです。 実際にできる/できないではなく、テーブル設計的にあるべき姿かどうか・実装運用時にどうなるかに重きを置きます。何度か論理削除を利用したプロダクトに関わった経験に基づく個人的な感想です。PostgreSQLベースです。

続きを読む

DockerHubとDockerCloudの使い分け

DockerHubがアップデートされたのでこんな面倒なことはする必要がなくなりました。

DockerHubがまともにアップデートされなくなって暫く経ちましたが、例えば「--build-arg が使えなくて困ってる…」なんて方もいるのではないでしょうか。そんな方向けの記事になります。

TL;DR;

DockerCloudでautomated buildしよう

続きを読む

ChromeからFirefoxに乗り換えたらOperaが最高だった話

Opera最高か!!?!?となったのでその経緯とおすすめポイントをメモ程度に。

TL;DR

Operaがデスクトップ・モバイル両方で速度面、機能面で完璧だった。

f:id:amaya382:20180829004615p:plain

続きを読む

ansibleで環境変数の利用

認証情報を 雑に 渡したかった (※環境依存であまりよくないので, 良い子はansible vaultやファイル分割で扱いましょう).

ローカル (Controller host) の環境変数

"{{ lookup('env', 'XXX') }}"

リモート (Remote host) の環境変数

"{{ ansible_env.XXX }}"

なんかネット漁っても上記2つを混同しているものが多かったのでメモ.