Go + anaconda でツイッターにビデオをアップロード

メモ。

github.com/ChimeraCoder/anaconda は、media_category に現時点では対応していない。
仮にこのパラメーターを指定すると、アップロードが非同期になる。docs/upload-finalize

append は1つ5MBに制限されているので、大きなビデオファイルを取り扱うときは5MB毎に分割してあげる必要がある。 docs/upload-append

// e.g.
mediaMaxLen := 5 * 1024 * 1024 // 5MB
segment := 0
for i := 0; i < totalBytes; i += mediaMaxLen {
    var mediaData string
    if i+mediaMaxLen < totalBytes {
        mediaData = base64.StdEncoding.EncodeToString(bytes[i : i+mediaMaxLen])
    } else {
        mediaData = base64.StdEncoding.EncodeToString(bytes[i:])
    }
    if err = api.UploadVideoAppend(media.MediaIDString, segment, mediaData); err != nil {
        break
    }
    segment += 1
}
if err != nil {
    log.Fatal("Failed to UploadVideoAppend")
}

サンプル

Google OAuth2 トークンを取得する with Go

GAE/Go をちょいちょい触っている。
その中の Pull queue を試そうとしたとき、OAuth2 のトークンが必要になったので取得したメモ。

手順

[utahta@mbp google-oauth2]% go run oauth2_token.go
Input ClientID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com
Input Secret: XXXX-XXXXXXXXXXXXXXXXXXXXXX
Input Scopes: https://www.googleapis.com/auth/taskqueue,https://www.googleapis.com/auth/taskqueue.consumer
Start Execute API
ブラウザで以下のURLにアクセスし、認証して下さい。
https://accounts.google.com/o/oauth2/authxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Input auth code: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
token is saved to token.json
[utahta@mbp google-oauth2]% cat token.json
{"access_token":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX","token_type":"Bearer","refresh_token":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX","expiry":"2016-08-16T21:46:52.012038137+09:00"}

ソースコード

トークンめも

リフレッシュトークンは 1 クライアント 25 個まで。それ以上は古いものから消えていく。

Using OAuth 2.0 to Access Google APIs  |  Google Identity Platform  |  Google Developers

参考

GolangでGoogle Driveにアクセスするためのトークンを取得 - Qiita
OAuth2.0によるGoogle+ APIのアクセス方法
Google APIのAccess Tokenをお手軽に取得する - Qiita

MRI 検査をしてきた話

6月の上旬頃から謎の首の痛みに悩まされ、いったん治まってきたと思いきや再びぶり返して、歩くだけで痛いという状態異常になってしまったので、仕方なく病院に行った。

整形外科での診断は、ストレートネックと強い肩こりという話だったのだけど、数日たっても良くならなかったので再度行ったら MRI 検査をしますかと言われた。

こちらとしては、痛いのを直して欲しいのもそうだけど、原因が何なのか知りたかったのでぜひにとお願いした。

MRI 検査は予約制らしく、検査可能な時間が提示されたので、翌日の10時頃をチョイスした。
看護師さんは、iPad(だった気がする)でポチポチ予約登録をしていた。

この時点で値段のことは一切教えてくれなくて(聞くのも忘れていた)、帰ってからそういえばMRIって高そうだなと思い調べたところ、大体一部位につき8,000円くらいが相場のようだった。
何箇所やるのかも分かっていなかったので、2~3万くらいを覚悟したけど、結果的に7,800円くらいで済んだので安くて良かった(アンカリング効果)

翌日、病院で受付をすませると、とにかくパンツだけになってコレを羽織ってくれと指示され、ありがちな病院服に着替えさせられた。

予約制なだけあって、すぐに名前を呼ばれ MRI 検査室に連れていかれた。

説明によると、3分~5分間撮影してちょっとインターバルを挟むといったことを何回か繰り返し、検査完了まで30分程度かかるそうだった。
もっと早く終わると思っていたので、すこし面食らった。

特に僕の場合は、首の検査だったので、ツバを飲み込まないでくださいと言われたのがキツかった。
3分~5分のあいだ必死に我慢して、わずかなインターバル中に飲み込むしかなかった。

そういえば MRI 検査の前に、検査中は音が猛烈にうるさいのでヘッドフォンの着用をどうぞと言われた。
Jポップ、洋楽、ラジオから好きなのを選んでくださいと言われたので、「じゃあももクロで」と言いかけたけど止めた。
好きにしてくださいと言ったところ、洋楽が流れだした。

検査機械の中は想像通りせまかった。
分かってることだし平気だろうと思ってたけど、入った瞬間はなかなか怖かった。
狭いところが得意ではないのか、一般的にそう思うのかは分からない。
目をつぶっている方が恐怖を感じたので、あえて開けていた。

しばらくすると落ち着いてきたので良かった。

その後はとにかく退屈な検査が終わるまでの時間を耐えた。
音ゲーをよくする影響で検査中のドコドコドコという音が8分の連打に感じたりした。

検査が終わると結果を郵送するか、手渡しで整形外科まで持っていくか選択できた。
郵送にすると1週間くらいかかると言われたので、手渡しで持っていくことにした。
それでも結果を教えてくれたのは、3日後ぐらいだった。(画像データの確認とかしてるのか?よく分からない)

検査の結果は、軽度のヘルニアだった。
おとなしくしていれば痛みも治まるでしょうという話をされて終わった。

下手に首ポキポキ系の整体に行かなくてよかったかもなと思った。

ヘルニアは対策があんまりなさそうだけど、数日間おとなしくしていたら痛みは引いた。

いまは変な寝相をしないように気を使ったりしている。
とくに本を読みながら寝落ちしたりすると非常に危険ということが分かった。

今後は些細なことに気を使い、もうすこし丁寧に生きていこうと思う。
(なんだか歳を感じる結びになった)