出会い系サイトで70人と実際に会ってその人に合いそうな本をすすめまくった1年間のこと
出会い系サイトで70人と実際に会ってその人に合いそうな本をすすめまくった1年間のこと
- 作者: 花田菜々子
- 出版社/メーカー: 河出書房新社
- 発売日: 2018/06/01
- メディア: Kindle版
- この商品を含むブログを見る
その人のことがわからないと本はすすめられないし、本のことも知らないとすすめられないし、さらに、その人に対して、この本はこういう本だからあなたに読んでほしいという理由なしではすすめられないんじゃないかとも思う。 自分が初めて体験し、立ち現れたものが何なのか、よくわからなかった。吉田さんを掘り下げておすすめする本を考えることはすごく面白かったけど、吉田さんは何を受け取ったのだろうか? うれしかっただろうか? ただ、興奮の余韻はいつまでも頭から離れなかった。この面白さの正体を知りたかった。
面白かった。
ファーストラヴ
- 作者: 島本理生
- 出版社/メーカー: 文藝春秋
- 発売日: 2018/07/09
- メディア: Kindle版
- この商品を含むブログを見る
「人助けしたいやつはたいてい同情できる人間しか助けたがらない。助けたくない人間まで助けなきゃいけないのが医者と弁護士だ。だから迦葉くらい引いてる人間のほうが向いてるって。正直、兄貴のことはアホだと思ってたから、俺びっくりしちゃってさ。こいつには 敵 わないかもしれないってそのとき思ったんだよ。でも敵わないのが嬉しかったんだよな。変かもしれないけど」
面白かった!。島本さんの本は初めて読んだので他のも読んでみる予定。
gorilla/sessions と gorilla/context と net/http.Request.WithContext で気をつけること
net/http
には net/http.Request.WithContext という context を紐付け直すメソッドがある。
実装はこうなっている。
func (r *Request) WithContext(ctx context.Context) *Request { if ctx == nil { panic("nil context") } r2 := new(Request) *r2 = *r r2.ctx = ctx // Deep copy the URL because it isn't // a map and the URL is mutable by users // of WithContext. if r.URL != nil { r2URL := new(url.URL) *r2URL = *r.URL r2.URL = r2URL } return r2 }
ところで、session を扱おうとすると gorilla/sessions というのが出てきたりする。 echo*1 とか gin*2 のコミュニティ?の session ライブラリでも使われたりする。のでまだメジャなライブラリと言えるかもしれない。
gorilla/sessions は gorilla/context という標準の context package が出てくる前に生まれた request scope な値を入れるためのライブラリに依存している。
これは map[*http.Request]map[interface{}]interface{}
という map で管理するというもの。
また
Important Note: If you aren't using gorilla/mux, you need to wrap your handlers with context.ClearHandler or else you will leak memory! An easy way to do this is to wrap the top-level mux when calling http.ListenAndServe:
という記述があり、要は最後にこの map から request object を消去しないとメモリリークするという話。
ただ、ここで上の Request.WithContext
の実装見てわかるのだがポインタが変わるので、gorilla/context の map に入った request object を消すことが出来ない。
なので、context.ClearHandler
を使ってもメモリリークする。
echo とか gin にはライブラリの context object があってそこに request やメタデータを入れられるのでそちらで管理している限りは request object のポインタは変わらず、最後に context.ClearHandler
を呼べば無事 map から消去出来る。
もし Request.WithContext
を使いたいのであれば gorilla/context の map に request object を入れなければ良い。 gorilla/sessions
の store interface には Get
と New
(https://godoc.org/github.com/gorilla/sessions#Store) という method があり、Get は gorilla/context を利用してしまうので New の方を呼び、その session object 自体を Request.WithContext
で紐づけてあげれば良い。
結論
gorilla/sessions v2 頑張ってほしい。
ペンギン・ハイウェイ
小説読んだの前すぎて覚えてないけど、そういえばゆったりしたテンポだったなというのを映像を見て思い出した。 面白かった。曲も良かった。
インクレディブル・ファミリー
面白いけどなんか感想を言語化仕切れない感じがしているので他の人の感想を聞きたい。
君の名前で僕を呼んで
- 作者: アンドレアシマン,Andre Aciman
- 出版社/メーカー: オークラ出版
- 発売日: 2018/04/20
- メディア: Kindle版
- この商品を含むブログを見る
僕は数週間、彼の鋭い目つきをあからさまな敵意の表れだと誤解していた。だけどそれは、まったくの見当外れだった。シャイな人間にとっての、他人の視線の受け止め方にすぎなかった。 自分たちふたりが世界でいちばんシャイな人間だということに、僕はようやく気づいたんだ。
映画の方を先に観たけど、これを読むとさすが脚色賞という感じ。 ただ、映画に書いてない大事なシーンがいくつもあって4章目はただひたすらすごい。この4章目を読むために映画も1、2、3章目もあるような気がした。