ゎぃゎぃのおもちゃ箱

一般的な社会人の遊び場所

Synology NASで作成したDockerコンテナの実行コマンドを変える

やりたいこと

Synology NASのパッケージのDockerからコンテナを作成し、 後から「実行コマンド」を変更したくなった事はありませんか?

一度コンテナを作成した場合、GUI上で実行コマンドを変える方法が見当たらなかったのでCLIからなんとかしました。

やり方

事前にSSHNASにログインして、管理者権限になっておく。

$ sudo su -

対象のコンテナのハッシュ値を取得しておく。イメージ名から探すこと。

# docker ps -a
CONTAINER ID   IMAGE    COMMAND    CREATED    STATUS    PORTS                                                                    NAMES
{Hash値 短縮}   {イメージ名}    {コマンド}  {作成日}   {ステータス}    {}

Dockerパッケージ自体を停止する。 コンテナの再起動だと、停止・起動時に変更した設定値がリセットされれるため。

# synopkgctl stop Docker

対象のコンテナの設定ファイルを変更する。 実行コマンドの変更であれば、以下で対応可能だった。

# cd /volume{#}/@docker/containers/{Hash値}
# vim config.v2.json
"Args":["aaa","aaa"]
"Cmd":["aaa","aaa"]

Dockerパッケージを起動する。

# synopkgctl start Docker

まとめ

Synology NASのDockerパッケージを使っている日本人があまりいないため、 テキトーにググってもなんともならないのがつらいですね… 少しでも参考になれば嬉しいです。

推しが結婚した速報

推しの結婚

ということで雑にお祝いツイートをしたら、その半日後…

推しが結婚してました。

それもお相手は、なんとヒゲドライバーさん
以下の記事によると、当時は童貞だったみたいです

噂によると小澤亜李さんのオタクは童貞さんが多いらしいので、
ヒゲドライバーさんは唯一の勝ち組のようです

二人の繋がりの復習

ヒゲドライバーさん作曲で、小澤亜李さん歌唱の曲を列挙すると

  • ウラオモテ・フォーチュン (2014-08-27 野崎くん)
  • ロンロンヘ ライライライ! (2015-07-29 ひなビタ♪)
  • 最高速 Fall in Love (2015-08-19 モン娘)
  • Da-Da-Dash! (2015-08-19 モン娘)
  • カロンが食べたい feat.小澤亜李 (2017-06-21)
  • Purple Rays (2017-07-19 リステ)
  • Yes, We Are!!! (2019-10-02 リステ)

となります。

また、2017年12月にはヒゲドライバーさんら?主催のDJイベントにボーカルとして小澤亜李さんが登壇していました。
web.archive.org

お気持ち表明

はよ結婚しろってずっと言ってきてたので、純粋におめでとうという気持ちです。
ただ、その瞬間は突然過ぎてビビってます。
今考えてみると、いくらでも見抜くタイミングはあったのかなって思います。

また、Twitterで「小澤亜李」というワードで盛り上がるのが久しぶり過ぎて、
違う世界にきたんじゃないかって気持ちです。

ということで、今日はマカロンを食べましょう
soundcloud.com

ソニーのヘッドホンWH-CH510でサイドトーン機能をオフにした話

f:id:yy_kuso:20200614105221p:plain

事の発端

私は普段ヘッドホンを使いません。
しかし、オンライン飲み会などでパソコンで通話することが増えて、
スピーカーの音をマイク側が拾わないようにヘッドホンを付ける必要がでてきました。

そこでソニー製なのに安価なWH-CH510を買いました。

パソコン(Windows10)にBluetooth接続して使ってみると、
なぜか自分の声やキーボードのタイピング音がヘッドホンから聞こえてきます。

説明書をみても、マイクの音を消す方法が載っていません。
取扱説明書ダウンロード | サポート・お問い合わせ | ソニー

Windowsにおける、マイクの音を音声出力デバイスに流す機能「このデバイスを聴く」もオフになっています。

なぜだろうか…

原因

このヘッドホンに搭載れている「サイドトーン機能」というものが有効になっているからみたいです。
この機能は、外出中スマートフォンで通話したりする際に外部の音を取り込んだりするのに使われるみたいです。
ソニーのヘッドホンによっては、ヘッドホン上のボタンなどでオンオフできたりするらしい。

今回のヘッドホンWH-CH510には、そのようなボタンはないので、ソフトウェア側で制御する必要があるみたいです。

解決方法

「windows10右下のタスクバー内のスピーカーアイコンを右クリック」

サウンドの設定を開く」

サウンドバイスを管理する」

「出力デバイスから『WH-CH510 Hands-Free AG Audio』を選択して無効にする」

「もし『WH-CH510 Stereo』が無効になっていれば有効にする」

「戻って、出力デバイスを『WH-CH510 Stereo』にする」

そもそもこいうヘッドホン(ヘッドセット)についてるマイクってゴミだから使わないよね()

オンラインカジノと税金問題【ネット記事はデタラメばかり?】

f:id:yy_kuso:20191125054910p:plain

日本にカジノ誘致とか話題になる中、そういえばオンラインカジノで稼いだ金の課税ってどうなってるんだと思ったので ネットで調べてみたらデタラメ記事ばかりだったので自分なりにまとめてみました。

オンラインカジノ 税金」 とかで検索した結果くらいは軽く読んだ上でこの記事を読んでください。

基本的な話や計算方法については飛ばしていきます。

免責となりますが、以下の内容は素人が適当にぐぐった結果ですので、ちゃんと自分でも調べて考えてください。

一時所得か雑所得か

よく議論の場に出される「ハズレ馬券は経費にできるか?」問題ですが、国税庁による見解が載ってますのでご覧ください。 www.nta.go.jp

システムベット等を用いて長期的に見て利益を上げられるようにしてるとかであれば、 言い方によっては雑所得っぽくできるかもしれませんが、 基本的には一時所得になると思ったほうがいいですね。

そもそも、わんちゃん雑所得にするぞって考えの人はギャンブルしないほうがいいですよ。

一時所得の算出方法の間違え

まず確認として国税庁による一時所得の算出方法の式

総収入金額-収入を得るために支出した金額-特別控除額(最高50万円)=一時所得の金額

月日ごとに計算する?

ネット記事を見ると大体こう書いてあります。

ベット額 配当額 利益
5月 10万 20万 +10万
6月 40万 0万 -40万
7月 20万 50万 +30万
8月 20万 40万 +20万
9月 50万 30万 -20万

この場合、損失が発生した6・9月分のベット額は【収入を得るために支出した金額】に含めることができないので、

(20+50+40)-(10+20+20)-50=10万が一時所得の金額!

果たしてこれはほんとにあっているのでしょうか? ほんとに月ごとの換算をしていいの…?

おそらくダメだと思います。なんなら日ごとの算出でもアウト 1 。 .

ここで競馬に照らし合わせ考えていきましょう。

オンラインカジノにおけるベットは、競馬においては馬券購入に値すると思います。

競馬の利益を一時所得として申請する場合は、1レースごと、もっと言うならば馬券の払戻金に係る投票額のみが経費となります。

つまりはオンラインカジノおいても1ゲームごと、さらにはベットごとに算出する必要があります。

もし、これが許されるのであれば、モンテカルロ法マーチンゲール法とかを使って「月ごとでは損失はでてないけど勝率自体は低いかな~」って人が 損失が出たベットすべてを【収入を得るために支出した金額】に回すことができてしまうのです。

正しい算出方法

したがって、正確には以下のように算出します。

年月日 時間 通番 ベット額 配当額 利益
2019-11-25 12:10:00 1 1万 2万 +1万
2019-11-25 12:11:30 1 4万 8万 +4万
2019-11-25 12:13:00 1 3万 0万 -3万
2019-11-25 12:14:30 1 2万 0万 -2万
2019-11-25 12:14:30 2 3万 6万 +3万

もしこの人が月ごとに算出したら、ベット額13万、配当額16万で堂々と損失発生時のベット額5万を経費に回してしまいます。 ベットごとに分けることによって、損失分を経費に回すことができなくなります 2

損失時に経費計上できるケース?

少しでも配当を受けていれば、【収入】を受けたと言えるということで【収入を得るために支出した金額】を計上していいっていう書いてある記事を読んだことがあります。 これを応用させてベット浮気による節税 [^2]なんかもできるかもしれません。 .

しかし、上記のようにベットごとに利益換算を分けることによって、損失がでているときは「ベット額=損失」となります。 つまりはベット額未満の配当額が生じることはないので、損失時に経費計上できることはないです。

ベット額 配当額 利益 -
3万 6万 +3万 ありえる
3万 1万 -2万 ありえない
3万 0万 -3万 ありえる

ただし、配当率1倍以下のゲームがあればこの限りではないですが、そのようなゲームは基本的には存在しないと思います。

ボーナスの扱い

オンラインカジノを始めると招待コードや入金キャンペーンでボーナスキャッシュを受け取れるらしいです。

実際にキャッシュとして出金するには条件が厳しいですが、これも言ってしまえば所得の一部になるはずじゃないですか。

では、どのタイミングで所得税が発生するのでしょうか? ボーナスが付与されたタイミング?

ボーナスが出金できるようになったタイミング?出金したタイミング?

このボーナスでカジノにてベットしたらどうなる?

あまりにもわからないですね、税理士ドットコムで聞こうかしら…

まとめ

今のオンラインカジノについての配当所得課税についてはまだまだ整備が進んでいないため、性質が一番近い競馬から推論するしかありません。

しかし、馬券購入からレース終了まで時間がかかるという性質の競馬の課税制度を、ベットからゲーム終了まで数分のオンラインカジノにそのまま適用して考えるのも得策とは言えません。

202X年のカジノ誘致に向けて税制についてもハッキリとした見解を先に出してもらうか、もういっそ法整備してほしいものです。


  1. カジノの中でもスロットであれば問題はなさそう。また、本場のカジノであれば問題なさそう。なぜなら1ゲームごとのベット額や勝敗なんてものは誰もメモっていないし記録に残っていない。

  2. 例えばルーレットで赤を本命にして1万円ベットすると、勝ったら2万配当を得て、負けたら配当無しで経費計上ができなくなります。そこで本命じゃない方(ここでは黒)にも少額ベットしておくことで負けても少額の配当を得ることができて、経費計上ができるというという考えです。

Suicaなどの交通系ICでバリスタ利用管理 SuiCafe ②

f:id:yy_kuso:20190803032409p:plain

はじめに

前回の記事を書いてから大分経ってしまいましたが,いろいろ更新したので,やったことだけざっと書き残しておきます.

MySQLを導入

前回まではドリンク回数管理をスプレッドシート側で行っており,月ごとにドリンク代を生産する際に手動で計算をしていました.

あまりにも面倒くさい上に,この仕様だとslack側に”誰が飲んだか”を通知できないでいました.

そこでMySQLを導入してちゃんとしたデータ管理をしてみたいと思います.

MySQLインストール

$ sudo apt-get install mysql-server

rootパスワードの入力して完了です.

SuiCafe用DBの準備

$ sudo mysql -uroot
MariaDB [(none)]> use mysql;
MariaDB [(none)]> update user set password=PASSWORD("mypassword") where User='root';
MariaDB [(none)]> update user set plugin="mysql_native_password";
MariaDB [(none)]> quit;
$ sudo /etc/init.d/mysql restart
$ mysql -u root -p
Enter password:
$ sudo mysql -uroot
> create user 'waiwai'@'localhost' identified by 'my_password';
> create database suicafe;
> use suicafe
> grant all privileges on suicafe.* to 'waiwai'@'localhost';
> CREATE TABLE `drink_log` ( `timestamp` timestamp NOT NULL COMMENT "TimeStamp", `id` CHAR(44) NOT NULL COMMENT "UserID");
> CREATE TABLE `users` (`id` CHAR(44) NOT NULL PRIMARY KEY COMMENT "UserID", `name` VARCHAR(20) NOT NULL COMMENT "UserName");

データの移行

スプレッドシートで記録されたドリンクデータをDB側に持ってきます.
なお,だるかったので,直接ぶち込みました.

> INSERT INTO drink_log (timestamp, id) VALUES 
("2018-11-01 19:39:11", "P4hlK======================================="),
("2018-11-02 13:52:59", "P4hlK======================================="),
…(続く) 
("2019-03-18 14:28:27", "44QM=======================================");


> INSERT INTO users (id, name) VALUES
("P4hlK=======================================", "waiwai"),
…(続く) 
("2ytlX=======================================", "roamer7038");

1ユーザあたり複数のidを持てるように調整しました.

月ごとのドリンク回数を表示する

条件に合うSQL文を頑張って作り出す.

> SELECT name, count(name) as count FROM drink_log INNER JOIN users 
ON drink_log.id = users.id where date_format(timestamp, '%Y-%m') = "2019-01"
GROUP BY name ORDER BY count DESC;
+------------+-------+
| name       | count |
+------------+-------+
| waiwai     |    12 |
| ya#######  |     4 |
| roamer7038 |     1 |
+------------+-------+

PythonからMySQLを操作できるようにする

$ sudo apt-get install default-libmysqlclient-dev
$ sudo pip install MySQL-python

成果物

完成したデータはGitHubにあげておきました.

最後に

この記事は30分で書いてます.半年前の実行メモを見ながら適当にコピペしてるだけなので,間違っている点が沢山あると思いますが,あまり突っ込まないでください.

PLEXチューナーの非公式Linuxドライバをインストールした話

f:id:yy_kuso:20190630051329p:plain

事の発端

Linuxでテレビ総合スレ 避難所 2

上記の掲示板で出ていたPLEX社製のTVチューナーの非公式Linuxドライバpx4_drvの進捗をたまに見ていた. このドライバは登場から1年経った今,公式のドライバよりも質が良いと巷では囁かれている.

そこで折角なら手元の録画鯖もこのドライバにリプレイスしてみようかなと思う.

以下のサイト様を大いに参考にさせてもらった.

なお,このページの内容は以下のページの環境を元に更新しています.

やったこと

公式ドライバのアンインストール

不必要になる公式ドライバを消し去っておきます.

$ sudo su -
# find /lib/modules -name usb-px4.ko | xargs rm
# find /lib/modules -name tty_Virtual.ko | xargs rm
# rm /etc/udev/rules.d/99-px4.rules
# depmod

px4_drvのインストール

px4_drvのREADMEの指示通りにインストールを進める. 途中,公式ドライバ内のファームウェアを持ってきているっぽい.

# cd ~/source
# git clone https://github.com/nns779/px4_drv
# cd px4_drv/fwtool/
# make
# wget http://plex-net.co.jp/plex/pxw3u4/pxw3u4_BDA_ver1x64.zip -O pxw3u4_BDA_ver1x64.zip
# unzip -oj pxw3u4_BDA_ver1x64.zip pxw3u4_BDA_ver1x64/PXW3U4.sys
# ./fwtool PXW3U4.sys it930x-firmware.bin
# mkdir -p /lib/firmware
# cp it930x-firmware.bin /lib/firmware/
# cd ../

次にこのサイト様から便利スクリプトをコピってきて使う. また,dkmsがなかったので,別途インストールしておく.

# yum install dkms
# vim dkms.install
. ./dkms.conf
cp -a `pwd` /usr/src/$PACKAGE_NAME-$PACKAGE_VERSION
dkms add -m $PACKAGE_NAME -v $PACKAGE_VERSION
dkms build -m $PACKAGE_NAME -v $PACKAGE_VERSION
dkms install -m $PACKAGE_NAME -v $PACKAGE_VERSION
# bash dkms.install
# reboot
# ls -l /dev/px4*
crw-rw-r-- 1 root video 241, 0  630 04:07 /dev/px4video0
crw-rw-r-- 1 root video 241, 1  630 04:07 /dev/px4video1
crw-rw-r-- 1 root video 241, 2  630 04:07 /dev/px4video2
crw-rw-r-- 1 root video 241, 3  630 04:07 /dev/px4video3

Linux用録画コマンドのインストール

バイス名がpx4-DTVからpx4videoに変わったので,pt1_dev.h内の記述も変えてコンパイルする.

# cd source/Linux_Driver/MyRecpt1/MyRecpt1/recpt1/
# sed -i".org" 's/-DTV/video/g' pt1_dev.h
# make clean
# sh ./configure --enable-b25
# make
# make install
# recpt1 --b25 --strip 27 10 /recorder/test.ts

これで録画できていればrecpt1コマンドの準備が完了.

Mirakurunの設定

Mirakurunの録画コマンド部分の設定を書き換えます.

# EDITOR=vim mirakurun config tuners
/dev/px4-DTV0 -> /dev/px4video0
/dev/px4-DTV1 -> /dev/px4video1
/dev/px4-DTV2 -> /dev/px4video2
/dev/px4-DTV3 -> /dev/px4video3
# pm2 restart all

rivarunコマンドから録画ができるか確認すれば完了.

感想

意外にも簡単にインストールできた. ドライバ製作者と先駆者の方々に感謝.

とりあえずはいろいろ録画してみて安定するか見てみようと思う.

chinachuをupdateしたら壊れた話

f:id:yy_kuso:20190630031749p:plain

事の発端

上記の記事から1年が経ち,なんとなく録画鯖のソフトウェアの更新をしておこうと思い

./chinachu updaterを実行して

pm2 restartしたら

┌───────────────────┬────┬──────┬───────┬─────────┬─────────┬────────┬─────┬──────────┬──────┬──────────┐
│ App name          │ id │ mode │ pid   │ status  │ restart │ uptime │ cpu │ mem      │ user │ watching │
├───────────────────┼────┼──────┼───────┼─────────┼─────────┼────────┼─────┼──────────┼──────┼──────────┤
│ chinachu-operator │ 3  │ fork │ N/A   │ errored │ 0       │ 0      │ 0%  │ 0 B      │ root │ disabled │
│ chinachu-wui      │ 2  │ fork │ N/A   │ errored │ 0       │ 0      │ 0%  │ 0 B      │ root │ disabled │
│ mirakurun-server  │ 1  │ fork │ 26034 │ online  │ 5       │ 0s     │ 0%  │ 5.8 MB   │ root │ disabled │
└───────────────────┴────┴──────┴───────┴─────────┴─────────┴────────┴─────┴──────────┴──────┴──────────┘

と出力するようになった.安易に更新したらぶっ壊れた.

原因究明

試しに./chinachu service operator executeしてみたところ,問題なく実行できた. つまりはpm2にて実行する際に失敗しているようだった. pm2 delete chinachu-wui chinachu-operatorで一度削除した後,pm2 start processes.jsonで登録し直したら,

[PM2][ERROR] Interpreter .nave/node does not seem to be available
[PM2][ERROR] Interpreter .nave/node does not seem to be available

と出力された.つまりは.nave/nodeがねぇよってことだ.

.nave/node.nave/installed/{version}/bin/nodeへのリンクのようだったがその存在はなかった. というか,{version}ディレクトリすらなかった.

なぜ?

./chinachu installer3) Node.js Environmentを試してみて,nodejsの再インストールをしてみたところ,以下のようなログを吐いた.

/home/chinachu/chinachu/.nave/nave.sh: 行 237: shasum: コマンドが見つかりません
shasum mismatch, expect 6c35b85a7cd4188ab7578354277b2b2ca43eacc864a2a16b3669753ec2369d52, got 6c35b85a7cd4188ab7578354277b2b2ca43eacc864a2a16b3669753ec2369d52

gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Binary install failed, trying source.
`/home/chinachu/chinachu/.nave/node' -> `/home/chinachu/chinachu/.nave/installed/10.15.3/bin/node'
`/home/chinachu/chinachu/.nave/npm' -> `/home/chinachu/chinachu/.nave/installed/10.15.3/bin/npm'
done.

./chinachu updaterではログが爆速で流れるので気づかなかったが,よく見たらここで失敗していた. どうやらコマンドshasumが見つかってないみたいだ.

sha1sumとかsha256sumとかはあるんだが…

直し方

$ sudo yum install perl-Digest-SHA

これでshasumコマンドがインストールされる.次に./chinachu installer3を選択すれば,今度は何事もなくインストールが終わる.

これでpm2 restart allしてみたら無事chinachuが起動してくれた. 一安心!!!

余談

ChinachuのIssuesにこんなのがあったのだが,もしかしたらこの辺の問題だったのではなかろうか.

この方は同じ症状になったが,/usr/bin/から持ってくることで解決していたようだ.