「ジェットウォッシャー ドルツ」EW-DJ51-Aを買った

下の歯茎がなんかむずむずするというか違和感があったので歯医者に行った。歯茎には特に問題はなかったが虫歯が結構できていてショックを受けた。(治療中)
歯磨きは念入りにしているつもりだが、どうも限界があるようで、別の対策の必要性を感じた。
そこで前から気になっていたジェットウォッシャーを購入してみることにした。

開封

外箱(前面) f:id:hkou:20171207191830j:plain

外箱(後面)。歯と歯の間や歯周ポケットにはさまった食べカスや、水流の刺激による歯茎のケアになったりするらしい。
f:id:hkou:20171207191903j:plain

開封した。本体が入っている。
f:id:hkou:20171207191928j:plain

本体とノズルを組み立てた。
f:id:hkou:20171207192550j:plain

使ってみた感想

水流の強さが3段階で調整できるようになっている。
レビュー記事などを見ると最初は痛いと聞いていたので、一番弱いモードでやってみたがそれでもめちゃくちゃ痛かったが、何度もやっているうちに痛みにも慣れてきて今では中くらいのモードでやっている。
また、冷たい水でやるとかなり刺激が強いので温水でやるようにしている。
歯磨きをした後にジェットウォッシャーをすることが多いが、念入りに歯磨きをしたつもりでもジェットウォッシャーすると食べカスが出てきたりして、歯磨きって全然磨けてないんだなと実感する。

余談

ジェットウォッシャーを購入して2,3週間経過した後、また同じ商品を見てたら2000円ぐらい安くなっててショックを受けた。

AWS SESのバウンス・苦情メールをSNS経由で通知する(2017/12版)

概要

AWS SESのバウンス・苦情を管理したい。
これらを放置して一定の基準を超えてしまうとSESが停止されてしまうためである。詳細は以下のリンクを参照。

docs.aws.amazon.com

SESにはバウンス・苦情があった場合の通知機能があり、SNSを経由して他のサービスなどに通知ができるのでこれを試してみる。
構成は以下のとおり。まずはEメールで通知が受け取れることを確認してからLambdaで確認する。

f:id:hkou:20171216113334p:plain

SES

region

SESは日本リージョンがサポートされていない。(2017/12/16現在)なので他のリージョンを利用する。オレゴンに変更する。

f:id:hkou:20171216065233p:plain

送信制限

何もしていない初期状態のSESではSandboxモードになっており、任意のメールアドレスに好き勝手メール送信することができない。
本番運用するときは「sending limit increase」のリクエストをする必要がある。
Sandbox状態でも認証済みのメールアドレス、AWSが提供しているシミュレーション用のメールアドレスにはメールを送ることができるので今回はリクエストはせず、それらを利用する。

f:id:hkou:20171216065937p:plain

メールの認証をする

「Veryfy a New Email Address」をクリックする。 f:id:hkou:20171216094415p:plain

認証したいアドレスを入力(とりあえず自分のgmailアドレスを入力した) f:id:hkou:20171216094451p:plain

「Veryfy This Email Address」をクリックすると、認証確認メールを送った みたいな表示に変わる。 f:id:hkou:20171216094525p:plain

認証メールに記載されたリンクをクリックする。 f:id:hkou:20171216094700p:plain

無事認証されたようだ。 f:id:hkou:20171216094724p:plain

メール送信確認

認証されたメールでメール送信できるか確認する。
先程追加したメールを選択して「Send a Test Mail」をクリックする。
メールダイアログが表示されるので入力して「Send Test Mail」をクリックする。
f:id:hkou:20171216094844p:plain

ちゃんとメールが送信されたようだ。
f:id:hkou:20171216094955p:plain

SNSの設定

新規Topicを追加

SNSのコンソールから新しいTopicを作成する。
f:id:hkou:20171216102229p:plain

SESとSNSを関連付けさせる

SESのコンソールへ戻り、先程追加したEメールアドレスの詳細画面から「Notification」の項目を開く。
「Edit Configuration」ボタンをクリック。
f:id:hkou:20171216102445p:plain

Bounce」と「Complaints」に先程作成したSNS Topicを指定して「Save Config」をクリックする。
f:id:hkou:20171216102520p:plain

※注意点:SNSのTopicはSESと同じRegionで作成すること。SESと違うRegionで作成するとSES設定時に以下のようなエラーが発生する。

SNS topic arn:aws:sns:ap-northeast-1:0250XXXXXXXX:ses-test-jp is invalid. (Service: AmazonSimpleEmailService; Status Code: 400; Error Code: InvalidParameterValue; Request ID: 4903ea77-e200-11e7-b63a-XXXXXXXXXXXX)

f:id:hkou:20171216103058p:plain

サブスクリプションの追加

Bounce、Complaints通知が届くことを確認するために、まずはメールで通知されるように設定する。
先程作ったSNS Topicに対してEメールのサブスクリプションを追加する。

f:id:hkou:20171216104000p:plain

SNSのEメールサブスクリプションSNS同様に認証済みのEメールアドレスにしか送信することができないらしい。
上記で入力したEメールアドレスに認証メールが通知されているはずなので、SESと同じ要領でメールアドレスを認証済みにする。

Bounceメールを送ってみる

BounceやComplaintsになるメールアドレスはAWSがテスト用として提供しているのでこれを利用する。
docs.aws.amazon.com

先程と同様にToをBounce用のメールアドレスに設定してテストメールを送る。
f:id:hkou:20171216104750p:plain

SES→SNS→メール経由でBounce通知が送られてきた。
f:id:hkou:20171216111533p:plain

SNSの通知をLambdaで処理する

先程はSNSの通知先をEメールにしたが、次はLambdaに通知してみる。

新しいLambdaを作成する

LambdaはSNSとは別リージョンで作成しても問題ない。なので日本リージョンで作成した。
プリセットからSNS受信用Lambdaを選択する。
f:id:hkou:20171216111812p:plain

名前などを入力する。別リージョンで作るとSNSトピックがプルダウンでは出てこないようなのでARNを直接入力する。
f:id:hkou:20171216111942p:plain

Lambdaのコード

SNSから通知受け取れることを確認するだけなので、デフォルトのコードから一切変更していない。

'use strict';

console.log('Loading function');

exports.handler = (event, context, callback) => {
    //console.log('Received event:', JSON.stringify(event, null, 2));
    const message = event.Records[0].Sns.Message;
    console.log('From SNS:', message);
    callback(null, message);
};

先程と同じ要領でSESからテストメールを送る。
その後LambdaのCloudWatchログを表示してSNSの通知が来ていることを確認する。
f:id:hkou:20171216112139p:plain

あるリモートワークの1日

今日は寒いし荷物が来るのでリモートワークで働いた。
ついでにリモートワークしているときにどのような生活をしているかブログに記そうと思う。

起床(8:12)

GoogleHomeにセットしていたアラームで起きる。布団の外は寒いので枕元に置いてあったエアコンのリモコンで暖房をセット。暖まるまでTwitter見ながら待機。

朝の支度など(8:15~9:00)

シャワーして、ジェットウォッシャーと歯磨きして、洗濯機回して、Netflixでプリズマ☆イリヤ見ながら朝ごはん食べるなどした。朝のプリヤは脳に良い。洗濯はすぐ終わるので乾燥機にぶちこむ。乾燥機使って服が縮んだような気がするので今日は弱めの設定でやってみることにする。

仕事開始(9:10~)

パソコン起動して業務開始。リモートワークするときは2つPCを使う。一つは開発用、もう一つはビデオチャット用である。以前1台のマシンで両方やっていたがビデオチャットの不可が高く開発がしづらくなったので分割している。
ビデオチャットは常時接続しているのでいつでも好きな時にチームメンバーに声をかけることができる。

f:id:hkou:20171212122804j:plain

昼休憩(12:00~13:00)

昼ごはんを作る。あんまり凝ったものを作る気がない(作れない)ので冷食をチンして食べる。最近の冷食はメチャ旨いので良い。
食べ終わり、乾燥機が終了していたので洗濯物を取り出す。弱設定にしてみたけど縮み具合がどうなったのかイマイチよく分からない。洗濯物を人力で畳んで仕舞う。この工程も早く自動化したいなと思った。
色々終わったけどまだ時間があるので、散歩がてらちょっと遠目のコンビニでコーヒーを買いに行く。リモートワークしてると運動不足になるので出来るだけ積極的に運動しないと健康診断の結果がまずいことになる。

f:id:hkou:20171212123812j:plain

午後の業務開始(13:00~)

コーヒー飲んで眠気が覚めたので午後のギョムを頑張る。

注文していた食料が届く(15:00~)

昨日ネットスーパーで注文していた食材が届いた。リモートワークなら平日の配達も受け取ることができる。
ネットスーパーでは重かったり、まとめ買いできるものを購入する。(例えばミネラルウォーターとか)これによって普段の買い物量が削減でき買い物の荷物が多くなることが殆ど無くなった。

f:id:hkou:20171212140614j:plain

業務終了(18:00)

8時間働いたので終わり。お疲れ様です。

ジムで運動(18:30~19:30)

最近一番最初にサイクルマシンで汗かくまで漕ぐのがマイブームになっている。
f:id:hkou:20171212193803j:plain

帰宅、ごはん(20:00~)

昨日買っておいた食材でごはん作る。

だらだら過ごす(20:30~)

プリヤ見たり、少女終末旅行とか見たり、Youtube見たりして過ごす。

【WPF】 Bool型プロパティを反転してBindingしたい

ViewModelに定義したBool型のプロパティを反転(否定)してBindingしたくなった。
例えば処理中を表すプロパティがtrueの場合にボタンなどの各種コントロールをDisable状態にして触らせないようにしたい。

こんな変数をViewModelに定義して

private bool _Executing = false;
public bool Executing
{
    get => _Executing;
    set
    {
        _Executing = value;
        RaisePropertyChanged(nameof(Executing));
    }
}

XAMLにはこんなふうに書きたかった。しかしこのような書き方はできない

<Button IsEnabled="{Binding !Executing}">
  OK
</Button>

調べるとConverterを間に挟むしか無さそうということが分かった。でもこんなもののためにわざわざ専用のConverterを作成するのも面倒だなと思ったら、良さそうなライブラリを見つけた。

www.nuget.org

これを利用するとXAML内に式が書けるようで以下のように書ける。便利!

xmlns:qc="http://QuickConverter.CodePlex.com/"

<Button IsEnabled="{qc:Binding '!$P', P={Binding Executing}}">
  OK
</Button>

乾燥機台(のびのびスタンド DES-N76)を買った

以前、以下の記事で乾燥機(DE-N50WV-W)を購入したのだが、配置場所はテキトウに開いているスペースに置いておくかと考えていたが、乾燥機からの排水をどうにかしないといけないことに気がついた。

乾燥機の排水はいくつか方法があるけれど我が家のスペースから考えると洗濯機に付いている乾燥機用排水口を利用するしかない。
その為乾燥機台を別途購入することになった。(ところで乾燥機台の購入費用も含めると当初検討していたドラム型洗濯機の値段に匹敵しそうな気がするけど気にしないでおこう...)

hkou.hatenablog.com

乾燥機台も通販で購入した。別メーカーでもっと安い乾燥機台もあったけど、やはり同じメーカーでないと規格が合わなかったりするのではないかということで乾燥機(DE-N50WV-W)に対応済みの同じメーカーの乾燥機台を購入した。

f:id:hkou:20171123114847j:plain

ダンボールを開封

f:id:hkou:20171123115135j:plain

洗濯機の横幅に合うように組み立てていく。部品数も少なく単純な構造をしているわりには組み立てには1時間ぐらいかかって汗だくになった。通販で購入した場合恐らくは業者に組み立ててもらうプランがあると思うが、それを利用したほうが良いと思う。わたしは利用していないので全部自分で組み立てた。特に最後の乾燥機台の上に乾燥機を持ち上げるのは一人でやっていたので結構キツかった。 f:id:hkou:20171123120326j:plain

完成。 f:id:hkou:20171123130229j:plain

試しに乾燥機を稼働させてみたが崩れることもなく意外としっかりしている。これでひとまずは洗濯周りのシステムは完成した。

衣類乾燥機(日立 DE-N50WV-W)を買った

洗濯機が壊れて新しい洗濯機を購入するついでに衣類乾燥機を購入した。
本当はドラム式洗濯機を購入しようかと考えていたが、洗濯機+衣類乾燥機を購入した方がドラム式洗濯機買うよりも安くなり、なおかつそれぞれ専用品だから性能も良くなるというのをどこかで見て別々に購入することに決めた。別々に購入すると場所を取るけど今の部屋なら大丈夫だろうというのもある。

人気の製品らしく自分が購入したときは品切れで取り寄せしなければならなかった。購入してから2週間ほどで入荷されたようだ。ただし取り寄せの場合は入荷してから購入元都合で配送日が決まるらしく平日に配送されてきた。箱がめちゃくちゃでかい f:id:hkou:20171113092313j:plain

開封した。本体も結構でかい。 f:id:hkou:20171113120915j:plain

中身 f:id:hkou:20171113121157j:plain

とりあえず正常に動作するか洗濯物を入れて試運転を行った。まだ乾燥機台が届いていない為、床に直置きで稼働させたのだが排水することを知らず床が水たまりになった。それはそれとして性能は非常に良い。1時間動かしたが、洗濯物がカラカラに乾いてふんわりとした仕上がりになった。外に干してもここまで乾くことはないだろうと思う。以前の縦型洗濯機にも実は乾燥機能は付いていて洗濯物を干せない日などに使っていたが、2時間稼働させても生乾きだったのでやはり専用品は違うなと感じる。これは買ってよかった。課題として乾いた洗濯物を取り出す際に静電気がすごいことになってつらいのだが、探してみると対策品も売られているようだし試行錯誤してみよう。

追記

排水処理を考慮した結果、どうしても乾燥機台が必要との結論に至ったので乾燥機台を購入した。 hkou.hatenablog.com

日帰りツーリング(ひまわりの湯)

天気が良く絶好のツーリング日和だったので、久しぶりに「信州平谷温泉ひまわりの湯」までツーリングしてきた。
晴れてはいるのだがかなり寒い。それなりに防寒装備を着込んできたがずっと走っていると身体が冷え切ってしまった。 f:id:hkou:20171112100641j:plain

2時間ほどかけて到着。飯田街道をずっと走ってきたのだが、途中「道の駅どんぐりの里いなぶ」には非常にたくさんのライダーや観光客と思わしき人間が居たが、ここの道の駅にはそこまで人が居なかった。

それなりに人が入っていたので風呂の写真は無い。バイクで冷え切った身体で温泉に入る。最初は手足の末端がしびれて気持ち悪いがだんだん慣れてきて非常に心地よい。
内風呂も露天風呂も結構広く、そこまで他の客も少ないので気持ちよく入ることができた。 f:id:hkou:20171112112239j:plain

風呂で身体を温めた後は、道の駅に併設された「ひまわり亭」で昼ごはんを食べた。ひまわり定食。天ぷらと馬刺しと隠れて見えないけど鮎の塩焼き f:id:hkou:20171112122802j:plain

帰りは来た道とは反対にグルっと回って中央道を使った。紅葉がピークのようだ。 f:id:hkou:20171112125425j:plain

途中、恵那峡SAで小腹が空いたので屋台みたいなところで購入した。昼ごはんにも鮎の塩焼きを食べたけど、匂いにつられてもう一度食べたくなってしまった。 f:id:hkou:20171112140332j:plain

ついでに調子に乗って栗ソフトクリームも買ってしまった。 f:id:hkou:20171112141315j:plain

ツーリングまとめ。走行距離200kmで短めだけどそれなりに満足。もう秋も終わり冬なのでバイクのときは防寒装備してても16時ぐらいまでが活動限界かなぁと感じた。 f:id:hkou:20171113214856p:plain