min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

bash 複数の録画tsファイルのサイズをawkで合計する

7時のニュースを録画したtsファイルがある。

$ ls -shal | grep 7PM

f:id:min117:20180415025254p:plain

これのファイルサイズ(1列目)を合計したい。awkを使う。

まずは1列目を取り出す。フィールドの区切り(Field Separater)に文字「G」を指定して1つめの変数($1)だけ取り出せば良い。

f:id:min117:20180415025907p:plain

$ ls -shal | grep 7PM | awk -FG '{print $1}'

f:id:min117:20180415030050p:plain

1行だけ変なのがある。サイズが 720M なので、フィールド区切りされなかったようだ。その行だけ無視する。

$ ls -shal | grep 7PM | awk -FG '{print $1}' | grep -v M

f:id:min117:20180415030327p:plain

あとは各行を合計して変数aに++していき最終行に合計サイズaを出力する。awkのシングルクオーテーションの開始終了に注意。

$ ls -shal | grep 7PM | awk -FG '{print $1}' | grep -v M | awk '{a=+$1;print $1} END{print "-----¥n" a}'

f:id:min117:20180415031345p:plain

超便利。Linuxほんと最高。

min117.hatenablog.com

 

iPhone の充電ケーブル(掘り出し物)をAmazonのタイムセールで買う → 一瞬で売り切れ

Amazonがタイムセール祭りをやっている。本日2018/3/25 の 23:59 まで。

f:id:min117:20180325084613p:plain

Amazon MasterCard GOLD 会員なので

min117.hatenablog.com

ポイントは稼げそうだ。

f:id:min117:20180325084620p:plain

ちょうどiPhoneの充電ケーブル(ライトニングケーブル)が壊れたので欲しかった。スマホ充電って実はけっこう重要なことだと思っていて、設定もこまめに見直してバッテリーをもたせている。

min117.hatenablog.com

ましてや充電ケーブルとなると毎日使うものだから、買う時はそこそこの値段しても良いモノを買いたい。安いとすぐ壊れるから。

 

 

 

眺めていたらやたらと売れているのがある。見た時点で97%が「カートに追加済み」。なんだこれ。

f:id:min117:20180325084651p:plain

詳細を見てみる。

f:id:min117:20180325085229p:plain

挿し口が金属製で、かなり頑丈そう。

折り曲げに強い

充電中にランプがつく光り方も控えめで暗闇でも使いやすそう。

かなり良さげ。コメント欄の評判も良いものばかり。買うことにする。

と思ったら、色を黒にするか白にするか迷っているうちに売り切れてしまった

f:id:min117:20180325084751p:plain

良いモノはみんな買うのが速い…キャンセル待ちに登録したけど望み薄そう。今回は縁がなかった。こういうときは「買うべきときではない」って判断するようにしてる。今回は購入を見送ることにする。 

 

新モデル RaspberryPi 3 B+ を海外サイト PIMORONI で購入 → 船便で取り寄せる

「3月14日の『パイデー』(円周率が3.14159……だから)に、Raspberry Pi財団は新しいモデルを発表した」とのこと。

makezine.jp

ラズパイの新機種となれば即買いだ。仕事が忙しくて2週間も遅れてしまったが、さっそく買うことにする。

思えば2年前、初めてPi3 が出た時も即買いだった。

min117.hatenablog.com

 

 

 

RaspberryPiを買うとなれば正規代理店が王道。

KSYのサイトを覗いてみると、なんと日本国内では「発売日未定」だった。

「Raspberry Pi 3 B+」発表のお知らせ - Raspberry Pi Shop by KSY

f:id:min117:20180325002730p:plain

「価格や発売日などは未定です」とある。

f:id:min117:20180325001800p:plain

こんなにスペックが良いのに。今すぐ手に入れられないとは…

f:id:min117:20180325001810p:plain

とくに無線がac対応して高速になっているのと、有線LANがPOCに対応している(電源ケーブルがなくてもLANケーブルから電気を送り込める)のはかなり魅力的。

f:id:min117:20180325001818p:plain

欲しい。今すぐほしい。

f:id:min117:20180325001826p:plain

ということで、今すぐ買うことにする

以前、RaspberryPi ZERO を海外購入した時と同じ方法を使う。

min117.hatenablog.com

イギリスの RaspberryPi専門店「PIMORONI」だ。

サイトを覗いてみたら バッチリ Pi3 B+ を扱っている

Raspberry Pi 3 Model B+shop.pimoroni.com

f:id:min117:20180325001723p:plain

さっそく購入する。金額はたったの3,980円

f:id:min117:20180325004131p:plain

日本国内より安いんじゃないか?秋葉原で原稿(Pi3 B)を買うだけでも5,000円は下らないのに。

速攻でポチる(ADD TO CART)。

f:id:min117:20180325004302p:plain

支払いに進む。PayPalAmazon Pay が選べるようだ。

f:id:min117:20180325001640p:plain

海外との取引をするときは PayPal を使うのが一番安全

PayPalとは、簡単に言えば「クレジットカードの情報(カード番号とか期限とか)を取引の相手方に一切漏らさずに取引するための仲立ちサービス」

自分のクレジットカード情報はPayPalだけに渡り、そこから先に漏れることは決してない。PayPalが仲立ちして決済処理してくれる。いわば国際間取引におけるメルカリのようなものだ。

これまでも、例えばドイツから部品を買ったり

min117.hatenablog.com

アメリカ(ebay)から細かいものを買ったり

min117.hatenablog.com

毎回 PayPal を使ってきたが、一度も「品物が届かない」とか「多く支払われた」とかいう事故は一度も無かった。PayPalほんと最高。

 

 

今回は、PayPalで使うクレジットカードを変更してから決済する。「1,000円以上の買い物をするとポイントバック」というキャンペーン dカードGOLD がやっているので、これに応募できるようにするためだ。

min117.hatenablog.com

PayPal 決済画面の「支払方法」の右にある「変更」をクリックして

f:id:min117:20180325001628p:plain

決済用のクレジットカードをdカードGOLDに変更する。

f:id:min117:20180325001621p:plain

 

船便をどうするか選ぶ(速達か通常か)。イギリスから発送なので時間がかかるのは想定済みだから、通常で充分。

f:id:min117:20180325001649p:plain

一番安い(通常便・時間がかかる)でOK。5ポンド。5日から10日には届くプランだ。全く問題ない。

f:id:min117:20180325001656p:plain

合計額が出た。RaspberryPi本体に船便を入れても 32.17ユーロ。5,024円。安い

f:id:min117:20180325001741p:plain

以前、あきばおー楽天市場店から「RaspberryPI 3 無印」を取り寄せた際は 6,000円近くしていた。はるか遠いイギリスからの船便のほうが1,000円も安いとは…

f:id:min117:20180325001710p:plain

注文確定。PIMORONIからも「オーダー受け付けました」メールがきた。

 f:id:min117:20180325001754p:plain

早ければ月末には来るだろう。かなり楽しみ。

dカードGOLD 会員限定キャンペーンが届いたので申し込む

docomoからdカードGOLD会員限定の特典が届いた。GOLD所持者限定でdポイントを分け合うらしい。

f:id:min117:20180324232950p:plain

dポイントプリペイドカードにチャージすることで現金と同じように使う方法が確立できているので手間のかからないキャンペーンなら参加する。

min117.hatenablog.com

 

 

 

日々のお財布チェックの際に、「クレカ絡みでおトクになりそうなWebキャンペーン」はだいたい潰していたつもりだったが、今回チラシの上部「1000万ポイント山分けキャンペーン」のほうは見た記憶がない。調べてもWebに載っていなかった。

つまり本当に会員だけに限定のキャンペーンのようだ。

f:id:min117:20180324233012p:plain

1000万ポイントを山分けキャンペーン

 ①  dカードGOLDの会員限定

 ② このチラシを受け取った人のみに限定

 ③ このチラシにあるURLで申し込みした人のみに限定。

 ④ 4/10までに申し込んだ人のみに限定

 ⑤ カードで1,000円以上の買い物をした人のみ限定

 

これは結構オトクかもしれない

だってそもそもdカードGOLDの契約者は現在300万人しかいない。

www.nttdocomo.co.jp

ということは(ポイント山分けの母数)が300万人に絞られる

 

そのうち、チラシを受け取っても読まずに捨ててしまう(②をクリアできない)人が「3人に2人」居たとすると母数は100万人になる。

 

さらに、③④を満たせない人も出てくる。

つまり

「わざわざURLに飛んで申し込みするなんてダルい」

「気づいたら4/10を過ぎてしまっていた」

ということで、③④を満たせない人が出てくるはずだ。3人に1人がそうだとすると、30万人が脱落する。つまり母数は60万人に絞られる

 

さらにさらに⑤のハードルが高いdカードGOLDを持ってはいるけど(ポイント狙いのみで)全く使わない人、つまり眠りカードとして持っているだけの人も多いだろうから。仮に3人に1人がそうだとすると母数はさらに絞られて20万人になる。

 

ここまで絞られたとすれば「1000万ポイントを20万人で分ける」ことになる。つまり…1人あたり50ポイント(50円)

 

「①から⑤までやってもたったの50円かよ。ダル。やめとこ。

ってなる人が多いことを想定すると、さらに母数は減る。

 

もし1000万ポイントを1万人で分けることになれば何もしないのに1,000ポイント手に入るわけだ。

 

今回のは、申し込みだけしておいて損は無さそうだ。

 

 

 

 

指定されたURLに飛ぶ。

f:id:min117:20180325000246p:plain

「今すぐエントリー」

f:id:min117:20180325000330p:plain

条件はこれ。「合計1,000円以上のお買い物いただいた方」という条件がある。いつもならその時点でスルーを決めるが、今回はこのあと5,000円の買い物をする(RaspberryPi 3 B+を買うので条件は満たす。

f:id:min117:20180325000340p:plain

エントリーボタンを押すと、dアカウントでログインさせられる。

f:id:min117:20180325000347p:plain

キャンペーン申し込み完了。

f:id:min117:20180325000356p:plain

f:id:min117:20180325000402p:plain

付与されるのは「期間限定」ポイントかそれじゃプリペイドにチャージできないからあまり価値はないけど、まあこのままにして様子をみることにする。

 

追記)2018年7月

ポイント山分けの結果が出た。

f:id:min117:20180816224143p:plain

f:id:min117:20180816224149p:plain

 ・たったの163ポイント

 ・3月に申し込みして、結果が出たのが7月(4ヶ月もかかる)。

 ・ポイントは「期間限定」(使える期間が限られる)

 ・ポイントを使える期間はたったの1ヶ月強(付与は7/19、利用は8/31まで)。

だめだこりゃ。ドコモ利用者をなめすぎ。

 

参考)

min117.hatenablog.com

格安SIM 今月の0-SIM(ゼロシム)使用料は → 0円

月間500MBまで通信料が無料の0-SIM(ゼロシム)2回線契約している。

f:id:min117:20180323001255p:plain

1つ目の回線の0SIMは、楽天カード入会ポイントを活用して買ったスマホに入れて家族に持たせてある

min117.hatenablog.com

2つ目の0SIMはメルカリで買ったスマホに挿して自分で使っている。

min117.hatenablog.com

テザリングもできて最高。

min117.hatenablog.com

 

それぞれのカードの使用量を確認してみる。

1つ目、家族に渡しているほうのSIMは2016年に契約したもの(気づけばもう2年も使っているのか)。

請求金額は 0円。タダ。2年間で一度もお金がかかったことがない

f:id:min117:20180323001916p:plain

使用量を確認。月に500MBまでは無料で使えるのにたったの35MBしか使っていない。家族の行動範囲はほぼWiFiでカバーする状況になっているから、SIM通信はほとんどしていないからだ。

f:id:min117:20180323001720p:plain

つまり、WiFiをしっかりと設定すればデータプランは最小で済むということ。スマホ会社の「●●ギガ!」なんて契約はしなくていいということだ(お金の無駄)。

 

 

 

2つ目の回線は自分で持ち歩くしテザリングも使うから、そこそこ使用量は多い。今月も「もうすぐ500MBを超えますよ」の注意メールSONYから送られてきた(広告の少ない、テキストだけのシンプルなメール。SONYにはやはり好感が持てる)。

f:id:min117:20180323002656p:plain

回線自体は2017年に契約して1年近く使っている。使用料はこちらも 0円。結構使った感があったんだけど。無料回線…ほんと最高。

f:id:min117:20180323002513p:plain

Root取って改造研究するために買った HTC butterflyが手元にあるが

min117.hatenablog.com

いろいろあってまだ Rootは取れていない。うまくいったらSIMフリーして0-SIMの3回線目を契約して使ってみるかな。

PHPからbash(radikoスクリプト)を叩いてラジオ録音する → 成功

昨年作った radiko Premium の再生スクリプト

min117.hatenablog.com

もともと録音用のスクリプトだったので、少しイジるとラジオ録音ができる。htmlで画面を作ってPHPを呼び出し、shell_exec() から叩けるようにすれば、録音アプリのできあがり。

 

 

 

完成画面.html はこれ。

録音したいラジオ局録画秒数を選んで、録音開始ボタンを押すだけ。

f:id:min117:20180319234422p:plain

開始するとPHPの画面に飛ぶ。自分用なので出力は装飾せず、ほとんどがメモ。

f:id:min117:20180319234600p:plain

音符マークを押せば、録音したファイルの一覧に飛ぶ。こちらもhttpdの標準そのままの無骨な画面だが、結局これが一番使いやすい。

f:id:min117:20180319234710p:plain

録音ファイル.mp3 をクリックするだけで再生できる。

f:id:min117:20180319234813p:plain

もうね。ほんと使いやすい。だって自分用だから。実務的な機能しか載せてないので、曲を選ぶ→録音する→聞く が一瞬でできる。無骨でも即時で動く軽さが一番良い。

 

 

あと、ラジコプレミアムに入っているので全国のラジオを扱えるradikoホント最高。

エリアフリーとは ? | radiko.jp

PHP からbash(atコマンド)を叩いてテレビを予約録画する → 成功

前回は fedora のコンソール(bash)で、atコマンドを利用して予約録画できるようにした。

min117.hatenablog.com

ここまでくれば、あとはPHPでWeb画面を作り、入力にあわせてbashで処理していけばいい。さっそくテレビの予約録画画面を作った。

 

 

 

画面(html)はこれ。開始時刻とチャンネル、予約録画秒数を指定して「予約録画セット」を押すだけ。

recYOYAKU.html

f:id:min117:20180319000712p:plain

押すとPHPに画面が遷移する。見た目はカッコ悪いけど、当面は必要な情報がとれれば良し。そのうちJavaScriptでも使って整形する。

recYOYAKU.php

f:id:min117:20180319000719p:plain

ソースはこれ。

recYOYAKU.html

f:id:min117:20180319002914p:plain

f:id:min117:20180319003041p:plain

f:id:min117:20180319003213p:plain

recYOYAKU.php

f:id:min117:20180319003714p:plain

f:id:min117:20180319003644p:plain

録画が実行されているかをサーバでモニタリングするのには即席のスクリプトを使った。for文でコマンドを回せばいいだけだが、一点だけ注意なのは「atコマンドによる予約状況を全ユーザ分すべて確認するにはatqコマンドを管理者権限で叩く必要」がある点。あらかじめ sudo しておくとよい。

$ sudo -s

# for i in `seq 1 100`; do echo "$i"; ls -shal | grep 予約; cat myAT.sh; sudo atq; sleep 2; clear; done

f:id:min117:20180319001903p:plain

f:id:min117:20180319005011p:plain

予約が正常にされたかどうかは、atqコマンドの出力=黄色枠部分に(rootでされた)予約が1行増えるかどうかで判断できる。

myAT.shはPHPにより毎回作られるので、赤枠部分のように、作成日付を出力するようにした。PHP内で、fputs()を使って書いている。

 

これでもう、iPhoneだろうがAndroidだろうがiPadだろうがWebブラウザさえあれば全世界どこからでも予約録画できる環境は作れた。

次回は Google Home Mini に連携させる。「ねえGoogle、●●時に NHK を予約して」というオーダに合わせて予約録画できるようにする

次回に続く。