いつも旅のなか

私はそのとき、恋人と、ある文学賞が、かなり切実にほしかった。恋人と文学賞というくみあわせにあんまり意味はない。しゃぶしゃぶ食べたいな、新発売のチョコレートも食べたいけど、というくらいの並列でしかない。

この旅行から帰ってすぐ、私は三十歳になった。今考えてみると、あの退屈な、自転車の遠出が唯一の大冒険だったネパール旅行は、以前の旅行と同じくやっぱり何かを示唆していたような気がしてならない。親切なだれかがどこかへ連れていってくれるのを待っていたってどうしようもない、先に何があるのかわからなくても、それがどんなにみみっちいことでも、自分ひとりで動き出さなきゃいけないときは少なからずある。それでも心配することはない、途方に暮れたとき周囲を見渡せば、自分に向かって差し出されたてのひらが必ずある。あの旅とそっくり同じようなことを、ごくふつうの日々で私が知っていくのは、三十歳をすぎてからだった。

面白かった。オススメです。

swf ファイルから 特定の id(tag) を持つ DefineBinaryDataTag のデータを取り出す

swftools ( swfextract ) が手元に入らなくて、swf ファイルの仕様書ちょっと見たら簡単に書けそうだったので、go で書きました。いわゆる radiko を録音する時に必要なやつ。

github.com

http://wwwimages.adobe.com/content/dam/acom/en/devnet/pdf/swf-file-format-spec.pdf

に仕様書があるのでこれ通りに適当に必要なところだけパースしていく。 2018 年はこんなもんパースしないようにしたい。

構成

f:id:soh335:20171221210902p:plain

ヘッダー

f:id:soh335:20171221210604p:plain

rect ってやつだけ特殊。 あと最初の signature が C ( 0x43 ) だったら最初の 8 byte 以降 ( Frame Size のとこ)が zlib で圧縮されてる。

Rect

f:id:soh335:20171221210915p:plain

5 bit に長さが入っていてそのあとその長さのが四個ある。

タグ

f:id:soh335:20171221211038p:plain

最初の 10 bit がタグタイプで、6 bit が長さ。長さが 0x3f ( 最大)だったら、そのあとに本当の長さが unsigned integer32 で入ってる。

DefineBinaryDataTag

f:id:soh335:20171221211154p:plain

目的のやつ。Tag と Data が分かれば良い。