五日目、去年は確かここまででしたね。
昨日は手首が痛くて何もできなかった。 湿布を貼ってたらだいぶマシだけど、ずっとルートビアが飲みたくなって困る。
現状
かわいい物がすき。 ↓ かわいいさによって良さの順番をつける。 ↓ もっとかわいさの得れる総量を増やしたい。 ↓ 自分もかわいくなりたい。 ↓ 無理でしょ。 ↓ あきらめる。 ↓ やっぱりかわいくなりたい。 ← いまこのへん。 ↓ 死
五日目、去年は確かここまででしたね。
昨日は手首が痛くて何もできなかった。 湿布を貼ってたらだいぶマシだけど、ずっとルートビアが飲みたくなって困る。
現状
かわいい物がすき。 ↓ かわいいさによって良さの順番をつける。 ↓ もっとかわいさの得れる総量を増やしたい。 ↓ 自分もかわいくなりたい。 ↓ 無理でしょ。 ↓ あきらめる。 ↓ やっぱりかわいくなりたい。 ← いまこのへん。 ↓ 死
特に書くことがない。
lxcであそんだ。
三号くんください。
今更になってRackのドキュメントと解説記事をよんでやっとRackがどういうものかを気づいて感動した。 こことここを読んだら大体わかった気になった。あとすこしのソース。 よくわからないまま使っていたけどそういうものなのかとなって完全に感動していた。 middlemanをrackで動かしてそれからせいてき配信へと切り替えた。 寝ていなかったらここでも見れる。
最近Rails Tutorialを読んでいる途中で(最近止まってる。読まないと)、適当に触ってたRailsとかそのへんのことがわかってきて良い。 Rails Tutorial読んでたらなにか書いてみたくなって、OpenYoをRailsで再実装し始めてる。 最近オーガニゼーションを作ってnna774/OpenYoからOpenYo/OpenYoへと移管した。 移管したら元のレポジトリのURIから301リダイレクトかけてくれるの便利。
あとなにか書くことあるかな。
バイト先の冷蔵庫ににキリンガラナが入荷してめっちゃひさしぶりに飲んで感動していた。
キリンガラナは神。 pic.twitter.com/7LR7HMm1CO
— 友利のな (@nonamea774) 2015, 12月 2 こんなもんか。三号くんください。
一日目はこちら。
昨日(1日)は後輩の誕生日だったので飲みに行っていた。めでたい。
誤って授業に今日は行けなかった。悲しみがある:sadpanda:
去年も毎日よくわからない記事を毎日書こうとしてたけど、 前川さんに関する記事を書こうとして、
好きな二次元アイドルにファンレター書いて公開するの、自分の気持ちを確かめるきっかけになるし、本気の想いをこめた文章を生み出せるので、本当に皆さんにもやってほしい。本気でそのアイドルが好きなら、言葉をぶつけてほしい。ファンレター流行れ。
http://t.co/1gOay968VB
— 々々(のまのま) (@Cast_A) 2014, 10月 17 書けなくなったので止まった記憶。
今年もよくわからないの毎日更新する目標は立てるぞ。
1日目。
京都の冬は寒くて良くない。
気がついたら予選について何も書かないまま本戦を迎えてしまった。
isuconとはiikanjini Speed Up Contestの略で、高速化コンテストです。詳細はリンク先を掘ってもらえるとわかると思います。
うちのチームの予選については
SQL初心者の留年野郎がISUCON予選通過した方法、 チーム学生自治のメンバーとしてカレーを買いに行った話 #ISUCON
あたりを参照してください。
というわけで「チーム学生自治」という名前でISUCONの本戦に出てきました。
チーム名は、こういうの
チーム学生自治のイメージ画像です pic.twitter.com/KqO3I3OWru
— ウイウ (@uiureo) 2015, 10月 31 というわけではなく、
私はチーム系「山科御池」推しだったんだけど、わたしが選んだあみだくじによって「チーム学生自治」に決まりました。
— 友利のな(鴨川水量bot) (@nonamea774) 2015, 10月 31 みたいな感じです(Tweet中のチーム系はチーム名のタイポ)。
結論から言うと、
isucon結果です。 #isucon pic.twitter.com/6uy1sGBfNe
— 友利のな(鴨川水量bot) (@nonamea774) 2015, 10月 31 学生チームは全員再起動テストに失敗し、失格となりました。 結果的には本戦の時間中ずっと寝続けて何もしなければ学生枠優勝して5万円が手に入ったという感じです。 途中で一度再起動テストは行ってそこでは問題なかったのですが、最後の再起動テストは行ってなかった、という感じです。 本戦中は点数的に負けるかなー とは思っていたのですが、Failで失格となるとは思ってなかったので、 :sadpanda:。
とった戦略は、
APIの呼び方とかが5種類しかないのにDBに入ってたので、展開してしまったのとか(私が書いたのですがバグらせてつらかった)、
parallelというgemでAPIリクエストを並列化して呼ぶようにしたこととか、
nginxとunicornのプロセスを増やすとか、
アクセスログを眺めてみたら意外と静的ファイルにもアクセスが来ていたので、nginxに返してもらうこととか、
accept-encodingにgzipが入っていたので、gzip_staticで配信したとか、
ぱっと思いつくのはそのへんです。
使用言語はRubyですが、golangだと初期実装が10倍ぐらい点が高いと聞いてつらい気持ちになった。 tenki APIが遅かったのでどうにかならないかとずっといろいろ見ていたら Last-modifiedヘッダが付いてるということまでは気づいていたのに、 If-modified-sinceを思いつけなかったのは反省点っぽい(Failしたこと以上の反省点はないが)。 RACK_ENVがdevelopmentであったということを聞いた時はなるほどなぁ という感じでした。
ここより上も雑でしたが。
会社のTシャツ着てきたら、 @nonamea774 と被った
— 辛子明太子@イカID: pastak (@pastak) 2015, 10月 31 おはようございます、チーム学生自治から渋谷の最新ファッション事情をお届けします pic.twitter.com/pVOZwnAhVA
— ウイウ (@uiureo) 2015, 10月 31 isucon中に作業用のプリエンプティブVMが殺されないことを祈る。
— 友利のな(鴨川水量bot) (@nonamea774) 2015, 10月 31 最近手元のWindowsマシンで作業することをほとんど諦めて、その都度家のサーバやGCPのプリエンプティブVMやKMCのサーバで作業しています。
今日の作戦として「とにかく高速化する」が挙げられています。
— 友利のな(鴨川水量bot) (@nonamea774) 2015, 10月 31 めっちゃかっこいいプラッチック名刺だ。 pic.twitter.com/KxTQKFV8Vl
— 友利のな(鴨川水量bot) (@nonamea774) 2015, 10月 31 https://t.co/nQXEV4jFIA 名刺の画像なんだけど、この線の部分もちゃんと出ててすごい。
— 友利のな(鴨川水量bot) (@nonamea774) 2015, 10月 31 本戦参加者に配られた名刺なのですが、自分の描いたイラストがいい感じに名刺にされてて感動した。 別のイベントに持って行ってもいいぐらいかもしれない。
懇親会では食べきれないほどの寿司とピザとビールが出た。
次も出るぞ!!
貴サークルは木曜日 東地区 "ム" ブロック 55bに配置されています。
今回初参加のサークル「いっと☆わーくす!」で、木曜日(三日目) 東-ム55bに配置されました。全てがうまくいけばおそらくPietに関する本が出ると思います。需要は無いでしょうがよろしくお願いします。 #C89WebCatalog https://t.co/Spsotf9ewt
— 友利のな(鴨川水量bot) (@nonamea774) 2015, 10月 30 Piet本を出します。出します。 前回のC88で出したペーパーについてはこちらをご覧ください。
サークルカットです。

ブログを書くまでがYAPCです。
## 追記スペース ##
2015/10/30 追記……
ひ~~ ぜんぜん書けていない……。 とりあえず何も書かないよりはマシなので少しだけ書きます。
https://github.com/bradfitz/talk-yapc-asia-2015 が個人的にはかなり興味深かったです。 Golangの最適化をするときはとりあえずここを見ながらやります。 このトークです。
hnagaminさんのトークで私のPietのアレが少し言及されていました。
## 追記スペース ここまで ##
もうすぐ一月だよ?
タイトル通りなので簡単に。
C88でPietに関するペーパーを頒布しました。無料配布です。 レポジトリに行けば歴史が見れますし、ここにPDFがあります。 また今回/piet/を新しく用意したので、なにか書くかもしれません。
2日目に友人がサークル参加していたところに置いてもらっていただけなので、すごくアウェーな中の頒布でした。 三日目のKMCのブースでも来た人に押し付けてもらっていたので、そっちで見かけた人のほうが多いかもしれません。 そもそも20枚か25枚しか刷っていないので、見かけていない人のほうが多いかもしれません。
また、C89に応募しました。受かったらPietに関する本を懲りずに出す予定です。需要……。
申し込み書を会場で買ってもらったのですが、その次の週のYAPCが終わるまでの間、東京に滞在するのにもかかわらず京都に買った同人誌とともに送ってしまったので、 あわてて通販で買い直したという悲しみを背負った応募です。 これで落ちていたらかなしいなぁ。
もし落ちていたら冬は18きっぷで帰ってると年跨ぐし、行かなくてもいいかなぁ という気分です(予告なく変更の可能性があります)。 最近は駅メモのおかげで電車に乗りたい気持ちが高まってるし、こんなこと言っていても行くかもしれないですが。
最近バイトでGolangを書いてみたりしてるのだけれど、Golangへの細かい不満はあるんだけど、 今回のは小さな不満がどうでも良くなるような感じの不満だ。
golangのhttp.Get()、エンコードして渡したURIをデコードしてからリクエスト送るの、完全に気が狂ってると思うんだけど、なんでこんな風になってるんだ。
— 中野のな(鴨川水量bot) (@nonamea774) 2015, 7月 16 GoogleのAPI扱ってたら、%2Fを含んだURIにリソースが置かれて、それをGolangのnet/httpで取りに行こうとしてたら、何故かうまく行かなくて、 fmt.Print(resp.Request.URL.String())してみたら、なぜか%2Fが/に直されていたので、それに関するツイート。
あきらかにバグだと思ってググってみたら、仕様らしくて、Won't Fixらしい。
@nonamea774 urlの仕様上、pathは%エンコード可能で%2fはエンコード対象ではないけれど世の中のサーバの殆どが%2fをデコードして扱ってるので、ならばgolangは療法持つかーって RawPath も持ってるという経緯だと思います。
— mattn (@mattn_jp) 2015, 7月 16 @nonamea774 req.Opaque を変えて下さい。 http://t.co/WNPV79ENX1
— mattn (@mattn_jp) 2015, 7月 16 こういう時の対処法を教えて頂いて、その通りに修正したら上手く行くかと思い、次の時に試してみた。
golangのnet/http、%2Fを/に書き換えられるのを、それを区別するサーバの為に回避するのはOpaqueを変更すれば良いということはわかったんだけど、307 リダイレクトで飛ばされるときも勝手に%2Fを/にされてるっぽくて困るのだけれど、これは回避できるのかな……。
— 中野のな(鴨川水量bot) (@nonamea774) 2015, 7月 21 Opaqueを書き換えて、狙ったところにリクエストを送ることには成功したものの、 そこから307リダイレクトされた先に欲しいコンテンツが有る(言ってしまうと、Google Cloud StorageのAPIです)。 そしてそのリダイレクトする時にもまた%2Fを/に書き換えられてしまい、思ったところにリクエストを飛ばしてくれない(これもRequest.URL.String()を見て判明した)。
HTTPクライアントにリクエストハンドラ的なものがあるとgolang.org/pkg/net/http/を眺めていると気づいたのだけれど、
CheckRedirectとかでなんとか出来るかと思ったら、これでリクエストを書き換えることはできない……?
— 中野のな(鴨川水量bot) (@nonamea774) 2015, 7月 21 なような感じでできなさそうな感じである。
しょうがないので今のとこ、
cmd := exec.Command("curl", "-L", uri)
のようなひどいコードでごまかしてるが、何とかする方法は無いのでしょうか。誰か教えてください。 流石に何か方法が無いなら完全に壊れていると思うし、何かあるとは思うけれど、見つけられなかった……。
CheckRedirectでリクエストを書き換えることはできそうな感じだったけれど、 そこのリクエストには既に%2Fを/に書き換えられて破壊されたURIが格納されていた という感じでした。
一応そこから心のこもった置換で(%2Fの使われている場所は大体予測できる)もとに戻すことはできそうな感じだけれど……。 なんとかならないのかなぁ……。