LoginSignup
13
13

More than 5 years have passed since last update.

シェルスクリプトは「バルス」に勝てるのか、体を張って確かめた!!(タニタ予告付き)

Last updated at Posted at 2016-01-16

2016年1月15日。あの、伝説のクジラを呼び覚ます禁断の呪文「バルス」をTwitter民に唱えさせる映画、「天空の城ラピュタ」が放送された!

その騒動に乗じて戦いを挑むべく、アイツが立ち上がった。

シェルスクリプトは「バルス」に勝てるのか、体を張って確かめたい!

Twitter REST APIの真の実力を知らされぬまま、リンク先の記事に書かれたとおりの準備を行い、戦いに挑むシェルスクリプト。

このボクに任せてください!!!

上映開始前の19時30分、意気揚々とREST APIを10並列でぶん回すシェルスクリプトを仕掛けた。

barusu1.jpg

奇襲開始!!

不安の色を全くうかがわせないシェルスクリプト。そして上映時間に突入。

戦績は終わってから集計するため、シェルスクリプトもTwitterクライアント 小鳥男を使って一緒になってバルス祭りに参加。

上映終了。

「では、戦果を見てみましょう!」

そう言いながら、先程のプログラムで生成された大量のデータを捌き、1分当たりのツイート数の集計。

1分間のツイート数集計
#! /bin/sh

cd kotoriotoko/APPS/barusu_search.sh.data

find RES -type f                                        | #<全ファイルを開く
xargs cat                                               | #
awk '/^2016/  {gsub(/[^0-9]/,"");                       # #<時刻行と
               printf($0);                              # # ツイートIDを含むURL行のみ抽出し
               next;             }                      # # 1ツイート1列化
     /^- http/{sub(/^.*\//,"");                         # #
               print "",$0;                             # #
               next;             }'                     | #
grep -E '^[0-9]{14} [0-9]+'                             | #<ゴミ行を除去
sort -u                                                 | #<重複ツイートを除去
awk '{print $1}'                                        | #<ツイートID列の除去
sed 's/[0-9][0-9]/& /g'                                 | #<秒の桁も除去
sed 's/ //'                                             | #
awk '{print $1,$2,$3,$4,$5}'                            | #
uniq -c                                                 | #<同分の数を集計
awk '{printf("%s/%s/%s %s:%s %d\n",$2,$3,$4,$5,$6,$1);}'  #<時刻と数のデータに

結果をExcelにコピペしてグラフ化してみると……。

vs_barusu.png

「あぁ……、上映開始時点からもう収集の限界レートこえてますね……。」

解説

REST APIの検索エンドポイントを高頻度アクセス可能なアプリケーション認証で回した時の最大呼び出し頻度は2秒あたり1回(厳密には15分間に450回)まで。そして1回で取得できる最大は100ツイート。従って1分間に取得できる最大ツイート数は3000個なのだ。

barusu2.jpg

【追加企画】シェルスクリプトは「タニタ」に勝てるのか、体を張って確かめたい!

うなだれるシェルスクリプトに、スタッフが言った一言。

こうなることは想像できててさ、もう一つ軽めの対戦カードを組んでおいたから。やって♥

その対戦カードとは「タニタ」!!!

株式会社タニタ(公式)2016/1月14日17:27のツイート

「タニタ」が「バルス」を超えたら
1.破滅の呪文「タニタ」セット限定販売
2.ラピュタパンを作る
3.「君をのせて」体重計作成

超えなかったら社名を1日「バルス」にします。

タニタはこともあろうにこんな宣言をぶち上げていたのだった。

「何、他にも無謀な戦いを挑むやつがいたのか!!!」

途端に目が輝き出すシェルスクリプト。

tanita.jpg

そういいながら、19時30分にタイムスリップし(え?)、再び戦いを挑むシェルスクリプト!

上映が終わり、今度は「タニタ」の分間ツイート数を集計することに。

果たして結果は!?

vs_tanita.png

驚きの結果は、CMの後で

CM

たぶん世界唯一のシェルスクリプト総合誌「月刊シェルスクリプトマガジン」。毎月25日発売。

バルスに敗れたシェルスクリプト。果たして「タニタ」に勝つことはできたのか?気になる結果は、次回2016年3月号に、たぶん寄稿します。

13
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13