コマンドラインで接続先ホストとパスワードを設定して、自動でログインできるようにする
UltraVNCの起動ショートカットをコピーして、リンク先のところに起動オプションを設定する
"C:\Program Files\uvnc bvba\UltraVNC\vncviewer.exe" 192.168.0.7 -password unkounko
IPアドレス -password パスワード
Windowsでマイクの音量調整は「マイク」ではなく「サウンド」でおこなう
「設定」を起動し、システム から サウンドを開く
「設定のサウンド」の下の方の 関連設定 から サウンドコントロールパネル を開く
「コントロールパネルのサウンド」の「録音」を選択し、マイクのプロパティを開く
「マイクのプロパティ」 の「レベル」を選択すると、マイクのゲインを変更できる。
上のスライダーで音量を調節できる。 足りないときは マイクブースト で大きく変更できる
適用ボタンを押さずに即時適用されるので、別途「ボイスレコーダー」などを起動しておいて 音量を確かめながらの調整が可能
なにかここまで一気に飛べるショートカット機能か、マイク・スピーカー・カメラの設定を一手にできる設定ソフトがほしい。
時刻をミリ秒まで欲しいんだけど、CLOCK_REALTIME_COARSE って精度十分だっけかなぁ
というのを調べる話
clock_getres() で、どれだけ細かく時間が測定できるかがわかる
#include <time.h> #include <stdio.h> int main() { struct timespec ts; clock_getres(CLOCK_MONOTONIC_COARSE , &ts); printf("CLOCK_MONOTONIC_COARSE : %ld.%09ld seconds\n", ts.tv_sec, ts.tv_nsec); clock_getres(CLOCK_MONOTONIC, &ts); printf("CLOCK_MONOTONIC : %ld.%09ld seconds\n", ts.tv_sec, ts.tv_nsec); clock_getres(CLOCK_REALTIME_COARSE , &ts); printf("CLOCK_REALTIME_COARSE : %ld.%09ld seconds\n", ts.tv_sec, ts.tv_nsec); clock_getres(CLOCK_REALTIME, &ts); printf("CLOCK_REALTIME : %ld.%09ld seconds\n", ts.tv_sec, ts.tv_nsec); return 0; }
man clock_gettime (2): クロックと時間の関数
実行例1:そのへんのパソコン
$ /tmp/a.out CLOCK_MONOTONIC_COARSE : 0.004000000 seconds CLOCK_MONOTONIC : 0.000000001 seconds CLOCK_REALTIME_COARSE : 0.004000000 seconds CLOCK_REALTIME : 0.000000001 seconds
実行例2:そのへんのARMボード
$ /tmp/a.out CLOCK_MONOTONIC_COARSE : 0.010000000 seconds CLOCK_MONOTONIC : 0.000000001 seconds CLOCK_REALTIME_COARSE : 0.010000000 seconds CLOCK_REALTIME : 0.000000001 seconds
というわけで CLOCK_REALTIME_COARSE ではミリ秒を得られなかったので、仕方ないので CLOCK_REALTIME を使う。
Linuxでバイナリファイルをダンプするツール
パッケージ coreutils に入ってるツール
man od (1): ファイルを 8 進数やその他の形式でダンプする
オプション | 意味 | 備考 |
---|---|---|
-Ax | -A でオフセット(左端のやつ)の表示を指定 x ←16進表記 |
未指定時は8進表記 |
-tx1z | -t でフォーマットを指定 x1 ←16進で1バイトずつ x4 ←16進で4バイトずつ z ←テキスト表示 |
リトルエンディアン |
-v | 重複行を省略しない | デフォルトは省略する |
$ od -Ax -tx1z -v /tmp/test.bin 000000 78 56 34 12 01 02 03 04 30 31 32 33 34 35 36 37 >xV4.....01234567< 000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >................< 000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >................< 000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >................< 000040 e3 81 82 00 82 a0 82 a2 >........< 000048
$ od -Ax -tx4z /tmp/test.bin 000000 12345678 04030201 33323130 37363534 >xV4.....01234567< 000010 00000000 00000000 00000000 00000000 >................< * 000040 008281e3 a282a082 >........< 000048
パッケージ xxd に入ってるツール
man xxd (1): 16 進ダンプを作成したり、元に戻したり。
オプション | 意味 | 備考 |
---|---|---|
-g1 | -g 16進で表示するバイト数を指定 1 ←1バイトずつ 4 ←4バイトずつ |
|
-e | リトルエンディアンで表示 | デフォルトはビッグエンディアン |
-a | 重複行を省略する | デフォルトは省略しない |
$ xxd -g1 /tmp/test.bin 00000000: 78 56 34 12 01 02 03 04 30 31 32 33 34 35 36 37 xV4.....01234567 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000040: e3 81 82 00 82 a0 82 a2 ........
$ xxd -eg4 -a /tmp/test.bin 00000000: 12345678 04030201 33323130 37363534 xV4.....01234567 00000010: 00000000 00000000 00000000 00000000 ................ * 00000040: 008281e3 a282a082 ........
パッケージ bsdextrautils に入っているツール
man hexdump (1): ASCII, 10 進, 16 進, 8 進でダンプする
オプション | 意味 | 備考 | |
---|---|---|---|
-C | 1バイトずつ表示するよう指定 | ||
-v | 重複行を省略しない | デフォルトは省略する |
$ hexdump -Cv /tmp/test.bin 00000000 78 56 34 12 01 02 03 04 30 31 32 33 34 35 36 37 |xV4.....01234567| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000040 e3 81 82 00 82 a0 82 a2 |........| 00000048
出力フォーマットを自分で作ればできるけど、すっげー大変なので省略
①②③、㌔㍉、㎞㎜ などは EUCJPに無い文字が EUCJP-MS, EUCJP-WIN にはある。
これらの文字を含んだテキストは iconv で変換可能
iconv -c -f EUCJP -t utf8 /tmp/kishu.txt
iconv -c -f EUCJP-WIN -t utf8 /tmp/kishu.txt
髙(はしご高)、﨑(たつ崎) などはEUCJP-WINには無いが CP51932 にはあるらしい。
iconvは CP51932 に未対応なので、PHPを使ってみる
#!/usr/bin/php -q <?php $euc = file_get_contents($argv[1]); $utf8 = mb_convert_encoding($euc, "UTF-8", "CP51932"); print($utf8);
やったぜ
/tmp/hogeディレクトリに出力しようとしてエラーとなる
$ mkdir -p -m777 /tmp/hoge $ mysqldump -uhoge -ppiyo fuga --tab=/tmp/hoge mysqldump: Got error: 1: "Can't create/write to file '/tmp/hoge/SEQUENCE.txt' (Errcode: 2 "No such file or directory")" when executing 'SELECT INTO OUTFILE'
mysqldumpでエラーになる問題 - 揮発性のメモ2
昔は原因がわからなかったが、ようやく理解できた。
systemd には PrivateTmp とかいう機能があり、/tmpディレクトリなどをサービスごとに隠蔽することができる。
/tmp/systemd-private-xxxxxxxx-mariadb.service-xxxxxx
みたいな長い名前のディレクトリがあって、その中にそのサービスの仮ファイルとかが置かれる。
この場合、/tmp/hoge を作ったものの MariaDB から見える /tmp には当然そのディレクトリは無いので エラーとなった。
よって、/tmp以外の適当な場所( /work とか)を指定すれば良い