tohokuaikiのチラシの裏

技術的ネタとか。

Tリーグの観客数(2018年度)

先週末から2年目のTリーグが始まった。

tleague.jp

Yahoo!ニュースとかにも出てなかったので気になって観客数を調べてみた。

こちらに結果のまとめデータを出すために作ったスクリプトを置いておきます。

去年の開幕戦は、両国国技館で盛大にやったのでこんな感じ。

試合日 曜日 開始時刻 男女 ホームチーム 観客数 アウェイチーム 会場
2018/10/24 19:00 男子 TT彩たま 5624 KM東京 墨田区両国国技
2018/10/25 19:00 女子 名古屋 4572 日本生命 墨田区両国国技

先週の2年目開幕戦は沖縄宜野湾市なのでこんな感じ。

試合日 曜日 開始時刻 男女 ホームチーム 観客数 アウェイチーム 会場
2019/10/19 18:00 男子 琉球 812 岡山 宜野湾宜野湾市
2019/10/20 13:00 男子 琉球 971 KM東京 宜野湾宜野湾市

うーん、厳しい・・・しかし、宜野湾市ということを勘案すると

試合日 曜日 開始時刻 男女 ホームチーム 観客数 アウェイチーム 会場
2018/12/3 19:00 男子 琉球 1720 KM東京 宜野湾宜野湾市
2018/12/4 19:00 男子 琉球 814 TT彩たま 宜野湾宜野湾市
2018/12/24 14:00 男子 琉球 1002 岡山 宜野湾宜野湾市
2018/12/25 19:00 男子 琉球 1207 KM東京 宜野湾宜野湾市
2019/2/21 19:00 男子 琉球 510 岡山 宜野湾宜野湾市
2019/2/22 19:00 男子 琉球 615 TT彩たま 宜野湾宜野湾市
2019/10/19 18:00 男子 琉球 812 岡山 宜野湾宜野湾市
2019/10/20 13:00 男子 琉球 971 KM東京 宜野湾宜野湾市

こんな感じ。開幕カードはさすがにアレとしても去年のKM東京との試合が平日に行われているのを勘案してもうーん…。

なんか厳しそうね。

ついでに

クロス集計で。

会場別

会場 累積観客 試合日数 1日平均
墨田区両国国技 20351 4 5088
横浜市横浜文体 4677 2 2339
渋谷区青山学院 3751 2 1876
仙台市ゼビオA 3166 2 1583
越谷市越谷総合 2757 2 1379
春日部ウィング 2651 2 1326
福井市福井県 2579 2 1290
立川市立川立飛 15990 13 1230
金沢市いしかわ 2410 2 1205
さいたまサイデン 2239 2 1120
岡山市岡山武道 8785 8 1098
名古屋武田テバ 11573 11 1052
帯広市帯広総合 2073 2 1037
西尾市西尾総合 1987 2 994
宜野湾宜野湾市 5868 6 978
羽曳野はびきの 3779 4 945
北九州市北九州 1826 2 913
大阪市大阪府 1784 2 892
高砂市高砂総合 5060 6 843
岸和田岸和田総 1550 2 775
貝塚市貝塚総合 1488 2 744
苫小牧苫小牧総 1305 2 653
豊見城豊見城市 1110 2 555
大阪市おおアリ 1019 2 510

チーム別

男子

ホーム主催 累積観客
KM東京 20505
TT彩たま 17902
岡山 10059
琉球 7772
アウェイ 累積観客
KM東京 19271
岡山 15966
琉球 12488
TT彩たま 8513
合計 累積観客
KM東京 39776
TT彩たま 26415
岡山 26025
琉球 20260

女子

ホーム主催 累積観客
KA神奈川 22788
名古屋 14962
日本生命 8559
ニッペM 7231
アウェイ 累積観客
日本生命 24036
ニッペM 11276
KA神奈川 9154
名古屋 9074
合計 累積観客
日本生命 32595
KA神奈川 31942
名古屋 24036
ニッペM 18507

土日・平日(開幕戦・最終戦除く)

土日・平日 平均観客数
土日 1241
平日 908

Gitの差分ファイルを削除リスト込みで取得する(WindowsのSourceTree)

既に9年前のエントリーになってしまっていたこれ… tohokuaiki.hateblo.jp

SourceTreeからカスタムアクションで使いたいなと思い、WindowsのBatファイル化できないかと思った。あ、PowerShellの場合は.ps1だっけ? SourceTreeでコミット間の差分ファイル一覧をテキストファイルに出力する方法 - Qiita

スクリプトの作成

ところが、SourceTreeには自前でbashが使えるので結局Shellファイルにした。 リポジトリのルートから

/usr/bin/bash get_gitdiff.sh <from-commit-id> <to-commit-id>

という感じで実行するイメージ。

get_gitdiff.shをこんな感じで作る。

ARCHIVE_INFO_FILE=archive_info.txt
DELETE_FILES_INFO=deleted_files.txt
T_TIME=`date "+%Y%m%d_%H%M%S"`
T_DAY=`date "+%Y%m%d"`

# $1に新しい方、$2に古い方のハッシュ
if [ $# -ne 2 ]; then
    echo "引数が不正です。コミットは2つ指定してください。" >&2
    exit 1
fi

if [ $1 = "-1" ]; then
    echo "未コミットを指定しないでください。" >&2
    exit 1
fi

# コミット情報の表示
echo "指定したコミット情報" > $ARCHIVE_INFO_FILE
echo "From: [古いコミット]" >> $ARCHIVE_INFO_FILE
git log --format="%cd - %cn<%ce> %s" -n 1 $2 >> $ARCHIVE_INFO_FILE
echo "Until: [新しいコミット]" >> $ARCHIVE_INFO_FILE
git log --format="%cd - %cn<%ce> %s" -n 1 $1 >> $ARCHIVE_INFO_FILE

# 削除したファイルの提示
echo "[削除したファイル]" > $DELETE_FILES_INFO
git diff --diff-filter=D --name-only $2 $1 >> $DELETE_FILES_INFO

# 差分抽出
git archive --prefix=$T_DAY/ $1 `git diff --diff-filter=d --name-only $2 $1` -o archive_$T_TIME.tar
tar -rf archive_$T_TIME.tar $DELETE_FILES_INFO $ARCHIVE_INFO_FILE
gzip archive_$T_TIME.tar
rm $DELETE_FILES_INFO $ARCHIVE_INFO_FILE
exit 0

後で見た時に、どのコミット間の情報かというのをarchive_info.txtに残し、削除したファイルはdeleted_files.txtにまとめて手動で削除してもらう。

これをリポジトリルートにおいておく。

SourceTreeのカスタムアクションに追加

ツール>オプション>カスタム操作
と選択して、「追加」する。

実行するスクリプトは、インストールしたSourceTreeの配下にあるbash
私は自分のユーザーディレクトリに入れたので、C:\Users\xxxx\AppData\Local\Atlassian\SourceTree\git_local\bin\bash.exe だった。

パラメータはこんな感じ

$REPO/get_gitdiff.sh $SHA

f:id:tohokuaiki:20191007130333p:plain

実行

Historyで2つのコミットを選択して右クリックからカスタムアクションで実行。

参考記事

Vagrant上のLaravelをPhpStormでXdebugしたい

…ができない。(2019/10/10できた)

VagrantIPアドレスが192.168.56.125である。OSはDebian GNU/Linux 10

Laravel側

$ php -v
PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.7.0RC2, Copyright (c) 2002-2019, by Derick Rethans

で、/etc/php/7.3/cli/conf.d/20-xdebug.ini

zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_host=192.168.56.1
xdebug.remote_port=9002
xdebug.idekey=PHPSTORM

として、

$ ./artisan serve --host=0.0.0.0

しておく。ブラウザでアクセス時に

$ for i in 1 2 3 4 5 6 7 8 9 10 11 12; do netstat -an|grep 9002; sleep 1; done

しておくと、

tcp        0      1 192.168.56.125:54642    192.168.56.1:9002       SYN_SENT
tcp        0      1 192.168.56.125:54652    192.168.56.1:9002       SYN_SENT
tcp        0      1 192.168.56.125:54660    192.168.56.1:9002       SYN_SENT

となって、ホスト側の9002ポートにアクセスしに行っているのが分かる。

PhpStorm側

settingで、Serverはこんな感じ。LドライブはVagrantのsamba共有をネットワークドライブに割り当て。 f:id:tohokuaiki:20190910183241p:plain

Debugはこんな感じ。
f:id:tohokuaiki:20190910183413p:plain

で、Run設定はこんな感じ。 (メニュー) Run > Edit Confirugations...「+」→「PHP Remote Debug」 f:id:tohokuaiki:20190910183654p:plain

ブラウザ側

COOKIEXDEBUG_REMOTE_SESSIONを入れろって言うのと、XDEBUG_SESSIONを入れろって言うのがあって、とりあえず両方を入れてみた。
f:id:tohokuaiki:20190910183806p:plain

…んが、ブレイクポイントを設定してリロードしても何も起きず…

なんでやねん。

追記(2019.10.10)

評価期間が終わったので買うかーとライセンスを買ったらできた。なんの変更も無く…

えー。そうなの?それとも1ヶ月でアップデート来てたから再インストールしたのが原因かしら?

ちなみに、CSSとか読みこむときにいちいち止まってたと思ったら

./artisan serve で起動したやつにつなげてserver.phpの1行目で止まるのでなんぞ―と思ったら

f:id:tohokuaiki:20191011154650p:plain

が不要だった。CSSもなんもかんもserver.phpだもんね。

拍と拍子についてScratchで再現するための知識

拍と拍子についてはよくわかんなかったけど、これが一番分かりやすかった。

拍は、リズムの中に大中小を付けるっていう事ね。 ameblo.jp

で、これをScratchで何秒周期…というのを考えると、楽譜の左上に♪120とかある。これはどういう意味かというと detail.chiebukuro.yahoo.co.jp

ということで、1拍が120分(ぶんの)の1分(ぷん)ということらしい。0.083秒・・・4分音符が0.5秒ね。

千と千尋の神隠しの 「いつも何度でも」は三拍子の歌なんだけど、楽譜を見ると♩120になってる(0.5秒)。実際にScratchでこの拍をとると若干遅い。♩132っていうのもある。(0.45秒)木村弓さんはこのリズムで歌ってる感じ。

Scratchの「〇秒待つ」は小数点以下をどれだけ認識してくれるのか問題

こんな感じで、300回ほどループさせた。 f:id:tohokuaiki:20190902122633p:plain

0.45秒待つ場合だと、300回=300×3×0.45=405秒、0.454545だと、300回=300×3×0.454545=409.0905・・6分の曲で4秒ズレる。

で、色々と数字を比較したところの結論から言うと…

結果
0.44 0.43 遅れ発生
0.451 0.459 同期
0.449 0.451 遅れ発生

ということで、どうも小数点第三位以下は切り捨てているらしい。

LaravelのAuthのURIを変更する。

routes/web.php

<?php
Auth::routes();

って書くと、自動的に

GET|HEAD | login                  | login            | App\Http\Controllers\Auth\LoginController@showLoginForm                | web,guest    |
POST     | login                  |                  | App\Http\Controllers\Auth\LoginController@login                        | web,guest    |
POST     | logout                 | logout           | App\Http\Controllers\Auth\LoginController@logout                       | web          |
POST     | password/email         | password.email   | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail  | web,guest    |
GET|HEAD | password/reset         | password.request | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web,guest    |
POST     | password/reset         | password.update  | App\Http\Controllers\Auth\ResetPasswordController@reset                | web,guest    |
GET|HEAD | password/reset/{token} | password.reset   | App\Http\Controllers\Auth\ResetPasswordController@showResetForm        | web,guest    |
GET|HEAD | register               | register         | App\Http\Controllers\Auth\RegisterController@showRegistrationForm      | web,guest    |
POST     | register               |                  | App\Http\Controllers\Auth\RegisterController@register                  | web,guest    |

が登録されるのがあれだなー、/loginじゃなくて、/user/loginとかにしたいなーって思ったときにどうしよう?って思ったんだけど、ひとつづつ

<?php
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');

とかしていけばいいのか。

いや、prefixを使えばよかっただけだった。

<?php
Route::prefix('admin')->group(function(){
    Auth::routes();
});

で全部adminが付いた。

更に、

<?php
Route::name('admin.')->prefix('admin')->group(function(){
    Auth::routes();
});

でNameにもadmin.がprefixされるようになる。