カメラを替えて那須に行ってステンドグラスと戯れて

乱暴に言えば飲み会のためだけに仙台に行くことになって、まあそれはそれで行きたいから行くのは良いのだけれど、 往復の交通費考えるともう少し目的があった方が良いかなあと思っていた。

東京から仙台に向かう間で1,2箇所観光することにして色々と調べていたところで、 正月の帰省時に父が薦めていた藤城清治美術館を思い出した。 那須にあるため立地的にも都合が良かった。

f:id:ekranoplan94:20170128105940j:plain

北関東の降雪事情には疎いので、若干雪が残っている事に少し驚きつつも、 閑古鳥とは言わないまでも閑散としていることも雰囲気も相まって非常にのんびりした空気が流れていた。

美術館の駐車場から入口までには少し距離があり、庭が整備されている。 館内は撮影禁止なので写真はないが、展示室の最後の部屋の展示物は非常に満足度が高かった。

f:id:ekranoplan94:20170128110511j:plain

本館に至るまでの庭には小さなチャペルがあって、その両脇の壁はステンドグラスでデザインサれている。

f:id:ekranoplan94:20170128100236j:plain

藤城清治美術館(公式ホームページ)

TwitterのJSONからURLを頻度順に抜き出すスクリプト

目的

収集したTwitterの投稿データに含まれるURLの出現頻度とそれらの順位を知りたかった。 statuses/*_timelineやsearch/tweetsのエンドポイントで取得したデータを想定とする。

スクリプト

find . -name "*.json" | xargs cat \ 
 | jq -r '.entities | if .urls == null then empty else .urls[].expanded_url end' \
 | awk '{c[$0]++}END{for(i in c)print c[i], i}' \
 | sort -k1 -n -r | head -n5

1行目は単純に*.jsonを検索して次に渡して、2行目はjqを使ってurlのvalueを取得、3行目はurlのカウント、4行目は頻度順にソートしてトップ5を表示。 media以下のURLを対象とするには、「.urls」と「.urls」の部分を「.media」と「.media」に置き換えればOK。

前提

  • jqがインストールされている
  • 1ポストが1ファイルとなったhoge.jsonが入力

Twitterの投稿データに含まれるURLの扱い

Twitterの投稿データに含まれるURLに関するデータはおおよそ以下の通りとなる。「media」はTwitter標準のメディア投稿機能(画像とか動画とか)を利用した場合に専用のスキーマに格納されるらしい?(参考: Entities — Twitter Developers

  • entities
    • media

      • media_url
      • media_url_https
      • url
      • display_url
      • expanded_url
    • urls

      • url
      • display_url
      • expanded_url

media_urlとmedia_url_httpsは画像ファイルが配置されているパスだが、今回はメディア表示ページのパスを使うことにしたので除外、 また、display_urlはクライアントでの表示用に「...」で省略された形式(http://hoge.com/fuga...)であるので除外。

urlはTwitterの標準機能の短縮URL「t.co」で短縮されたデータで、expanded_urlはその短縮URLが展開された形式なので、今回の用途にはexpanded_urlを抽出すれば良さそうという結論に至った。(展開されるのはあくまでも「t.co」で、外部の短縮URLサービスを利用したURLは展開されない)