ユーレックスのオイルヒーター RF11ES を買ってみた

eureks.co.jp

買ったのは、1月8日あたり。大体2週間くらい使ってるけど、なかなか良い。

オイルヒーターの評価をみると、暖かい・暖かくないという意見が入りまじっていて、すこし不安だったけど、いまのところ十分に暖かくて買って良かった。

即暖性が低くて風通しの良い場所ではあまり効果がないとか、住宅環境に左右される感あるので、こう意見が入りまじっているのかなと感じた。
いま住んでいる部屋は気密性が高くて、8畳くらいの大きさなので、良い感じに効果がでているのかもしれない。

エアコンを使っていたときは、暖まりが悪いうえに乾燥してツラかったし、指先が寒くて PC を触るのもツラかったので、本当に買って良かった。

問題は電気代。エコ運転でも大体1時間に15円くらいかかるらしい。
寝るとき・外出するときは消すようにしていて、帰宅時間の1時間くらい前から運転を開始するようにタイマー設定する運用をしている。
のだけど、寝るときに消すのをしばしば忘れる。音がしないし、点けてること自体を忘れる。
RF11ES は何時間後に点ける消すといった設定しかできないけど、もうワンランク上の RFX11EH は何時から何時まで点けるといった細かい設定ができるので、こちらを買った方が良かったかもしれない。
数千円をケチった結果、電気代で損をしそうである。

ところで、買ったあとに知ったのだけど、オイルヒーターの次世代版ともいえるスマートヒーターとやらもあるらしい。
バルミューダ | SmartHeater2(スマートヒーター2)| 睡眠のための、まったく新しい暖房
お値段3倍くらい違うので買えないけど、即暖性の低さが解消されていたりスマホから操作できたり、とても良さそう。

Go 1.6 で HTTP Request Context

Go 1.6(for Google App Engine)で、Go 1.7 の HTTP Request Context のような事をするメモ。

golang.org/x/net/context だけでいけるかな〜と思ったけど、そんなわけなくて、ゴリラ系のフレームワークを使った。

フレームワーク

なるべく簡素にしたいし、http.Handler をそのまま使いたかったので、以下を選択。

gorilla/contextHTTP Request Context の代替です。
リクエストオブジェクトをキーにして値をグローバルな変数に保管する的なことをしている。

自前のミドルウェアを用意して、リクエスト毎に値を保つコードを書くとこんな感じ。

import (
    ...
    "github.com/gorilla/context"
)

...

func MyMiddleware(w http.ResponseWriter, req *http.Request, next http.HandlerFunc) {
    bag := &ExampleBag{}
    context.Set(req, "contextKey", bag) // http.Request毎に保管する
    next(w, req) // MyHandler 呼び出し
    context.Delete(req, "contextKey")
}

...

func MyHandler(w http.ResponseWriter, req *http.Request) {
    bag, ok := context.Get(req, "contextKey").(*ExampleBag)
    ...
}

Go 1.7 > では

func MyMiddleware(w http.ResponseWriter, req *http.Request, next http.HandlerFunc) {
    bag := &ExampleBag{}
    ctx := context.WithValue(req.Context(), "contextKey", bag) // req.Context 便利
    next(w, req.WithContext(ctx))
}

...

func MyHandler(w http.ResponseWriter, req *http.Request) {
    bag, ok = req.Context().Value("contextKey").(*ExampleBag)
    ...
}

番外

Go 1.7 になったら、下記フレームワークに置き換えたい