[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
営業から「SOC2 がほしい」と言われた。SOC については ちょっと前にも書いた。ここで「必要なのは本当に『SOC2』なのか、それとも『SOC1 Type2』なのか」に注意しなければならない。
SOC1 レポートは二種類ある (SOC2 レポートも同様の二種類がある)
Type1 レポートでは宣言が評価されるだけに過ぎないので、どんなに統制がボロボロでも宣言さえ立派なら問題ないレポートが出てくる。そのため、Type1 では不足とされる場合が多い。Type2 レポートがあって初めて妥当に統制が守られていることが確認できる。
しかし、紛らわしいのであまり分かってないと「SOC (1 の Type) 2 レポートがいる」と言われてしまうのである。SOC2 が欲しいと言われたら SOC2 なのか SOC1 の Type2 なのかを確認する必要がある。
今時 jQuery ばっかりなのもどうなのよ、と思い Vue.js を始めてみた。今まで作ってきたキャラクターのデータをうんにゃんするアプリはどうもこっちの方が便利な気がする。
詰まったところとかの話をちょこちょこ書いていくつもり。
会社の後輩の発表にいちゃもんをつけるときの観点
先日、次男の誕生日だったので横浜のアンパンマンミュージアムにいってきた。ミュージアム本館に入らずとも隅から隅までアンパンマンで次男の興奮具合がすごいことになっていた。アンパンマンでない部分がほとんど見つけられず、なにもかもがアンパンマンであった。
また、ショッピングモールの中央部には遊ぶためのスペースがあり、いくつかのおもちゃがサンプルとしておかれている。「ああ、これは子どもが気に入ったものを買って帰らざるを得ない何かだ」と頭抱えること請け合い。我が家はアンパンマンのボールを購入することに。次男お気に入り。このボール、次男に初めての二語を口にさせるに至ったスーパーアイテムだ (「アンパンマン いた」)。
しかし、少々アクセスが良くないように感じる。もしかしたらもっとアクセスしやすい方法があるのかもしれないが、ちょっと大変である。
「Discord の bot を衝動的に作り始めるにはプログラミング環境を整えるのが少し大変なのでは?」からの「Windows 標準機能だけでできればいいじゃん!」がきっかけだった。なお、Mac とか Linux とか使っているユーザは自前でより良い方法を使えるだろう、と考えているので知らないのである。
結論として挫折した。以下のようなものを書いてみたが、これ以上は無理。しかも結局 jq を入れた。jq コマンドはhttps://stedolan.github.io/jq/から入手。
@echo off
setlocal enabledelayedexpansion
set botCommand=ボットのコマンド名
set botLength=6
set token=Tokenの情報
set channel=チャンネルのID
curl -X GET -H "Authorization:Bot %token%" https://discordapp.com/api/channels/%channel%/messages > tmp_log
for /l %%n in (0,0,0) do (
type tmp_log | jq .[0].id > tmp_lastId
for /f %%a in (tmp_lastId) do (
if "%%a" neq "null" (
set messageId=%%a
set messageId=!messageId:"=!
set url=https://discordapp.com/api/channels/%channel%/messages?after=!messageId!
call echo !url! > url
) else (
echo skipped
)
for /f "usebackq" %%a in (`findstr %botCommand% tmp_log`) do (
echo %%a%
if "%%a"=="" (
echo not found
) else (
set /a dice=!random!*%botLength%/32767
echo !dice!
if "!dice!"=="0" (
curl -X POST -H "Content-Type:application/json" -H "Authorization:Bot %token%" -d "{\"content\": \"0だったよ\"}" https://discordapp.com/api/channels/%channel%/messages
)
if "!dice!"=="1" (
curl -X POST -H "Content-Type:application/json" -H "Authorization:Bot %token%" -d "{\"content\": \"1だったよ\"}" https://discordapp.com/api/channels/%channel%/messages
)
if "!dice!"=="2" (
curl -X POST -H "Content-Type:application/json" -H "Authorization:Bot %token%" -d "{\"content\": \"2だったよ\"}" https://discordapp.com/api/channels/%channel%/messages
)
if "!dice!"=="3" (
curl -X POST -H "Content-Type:application/json" -H "Authorization:Bot %token%" -d "{\"content\": \"3だったよ\"}" https://discordapp.com/api/channels/%channel%/messages
)
if "!dice!"=="4" (
curl -X POST -H "Content-Type:application/json" -H "Authorization:Bot %token%" -d "{\"content\": \"4だったよ\"}" https://discordapp.com/api/channels/%channel%/messages
)
if "!dice!"=="5" (
curl -X POST -H "Content-Type:application/json" -H "Authorization:Bot %token%" -d "{\"content\": \"5だったよ\"}" https://discordapp.com/api/channels/%channel%/messages
)
)
)
for /f %%b in (url) do (
timeout /t 10 /nobreak > nul
curl -X GET -H "Authorization:Bot %token%" %%b% > tmp_log
)
)
)
問題点は以下の3つ。
遅延変数がもうちょっとわかりやすくなり、for や if が使いやすくなり、json を強引にでもパースできるようになればもうちょっとやれるかもしれないけど……
半年ほど前の Windows 10 の更新で curl コマンドや ssh コマンドなどがコマンドプロンプトからも使えるようになったので「やれるかも」と思ったのだがまだちょっと早かった。