家電三種の神器を買ってQOLが上がった件
先月に一大決心してルンバ、食器洗い乾燥機、ドラム式洗濯機を買いました。 全部かなりなライフチェンジングな買い物で満足しています。
どれも良かったですが、しいて言えば個人的な費用対効果としては ルンバ > 食洗機 > ドラム式
かなと思いました。参考にしていただけると幸いです。
ルンバ
iRobot ロボット掃除機アイロボット Roomba875 ルンバ875
- 出版社/メーカー: iRobot
- メディア:
- この商品を含むブログを見る
出社前にルンバかけて帰ったら終わっているというのが本当に感動的です。
最上位モデルの885と迷いましたが、部屋もそこまで広くないし予算の関係もあり875にしました。
- 掃除のクオリティは問題なし *1
- 今までは床掃除をしたら疲れ果てて棚とかはほとんど掃除してなかったけど、床はルンバが全部やってくれるのでそういった所の掃除に力を入れられるようになりました
- 音は結構大きい
あとよくルンバのレビュー記事にも書かれてたりしますが、副次的な効果としてルンバを使うために床に余計な物を置かなくなり、部屋が広くなりました。
食器洗い乾燥機
パナソニック 食器洗い乾燥機(ホワイト)Panasonic エコナビ NP-TR8-W
- 出版社/メーカー: パナソニック
- メディア:
- この商品を含むブログを見る
食器を入れてボタン押すだけで、数十分後に洗えて乾燥もされているというのは本当感動的です。
- 一番大きなタイプを買いましたが、思ったよりスペースを取るのでどのサイズのを使うかというのは、キッチンの大きさと要相談
- 設置のために分岐水栓の設置が必要なので、その分の予算も必要
- 自分で設置しましたがそこまで難しくは無かったです。
- が、ク◯シアン案件のリスクもあるので自己責任で
- 食器をたくさん入れるための入れ方は結構工夫が必要
- 音は結構大きい
- 水道代は手洗いに比べて少なくなるらしい(未確認)
ドラム式洗濯機
日立 11.0kgドラム式洗濯乾燥機【左開き】ライトグレーHITACHI ビックドラムスリム BD-S8800L-H
- 出版社/メーカー: 日立
- メディア:
- この商品を含むブログを見る
洗濯だけでなく乾燥もされているというのは本当感動(ry *2
選択肢が多すぎて非常に迷いましたが、日立にしました。
- 風アイロン*3は思っていたほど伸びなかったですが、許容範囲
- 音は結構大きい
- 水道代は縦型式に比べて少なくなるらしい(未確認)
GitHubでsquash mergingが出来るようになった。
最近某氏のGitの記事がバズったので対抗意識を燃やしてGitHubの新機能の記事を書いてみることにします。
ここ3日くらいのうちにプルリクをマージしてる人はUIの変化で気づいている人も多いかと思いますが、この機能はPull Requestをマージするときに一つのコミットにまとめてマージできます。
たとえばプルリク内で
[tmp] コメントアウト
とかデバッグ用
とかとりあえずここまで
みたいな開発時の一時的なコミットが散乱していて、最終的には一つにまとめたい、そんな時にはこちらの
Squash and merge
ボタンを使います。
そうすると一個のコミットにsquashされた状態でリクエスト先にマージされます、もちろんコミットコメントも編集可。 個人的にコミットはマージ前にちゃんと整理しよう派なので良い機能だと思います。*1
Chrome Developer Tools で帯域制限した状態のテストをする
Web開発をやっていると地方や海外の回線が遅い環境の場合の挙動確認を行いたい場合があったりするのですが、そんな時に便利なのがタイトルの機能です。
たとえば何もしない場合、今インターネットに繋いでいる回線でこのブログを開いた場合、だいたいこのブログ本体をgetするのに54.71msかかり、全体のロード時間は8.33sでした
制限方法
つぎに帯域制限をかける方法ですが、Developer Tools のDisable Cache
の横のNo Throttling
と書かれているプルダウンをクリックすることで選択できます。
試してみる
試しにRegular3G(750kb/s↑ 250kb/s↓ 100ms RTT)
で試してみると、ブログ本体をロードするのに330ms、全体のロード時間は18sでした。
Jinja2テンプレートでデリミタを文字列として表示する
ここ最近Jinja2というかAnsibleネタが続きますが、AnsibleのJinja2テンプレートでデリミタになってる文字列({{
, {%
など)自体を表示したい場合、{{}}
式の中に表示したい文字列を書きます
{{ "{% Hello }" }}
Jinja2テンプレートでincludeしたファイルにインデントをつける
環境
- Jinja2 2.2.8 *1
何に困っていたか
AnsibleでNginxの設定ファイルを作ってた時に、共通設定ファイルを作って必要な箇所でincludeしていたが、共通ファイルの方がインデント付いてなくて出来たファイルのインデントが崩れてしまう。
例
このファイルを(common.j2
とする)
location /common { proxy_pass https://common.example.com; }
このファイルに普通にincludeすると
server { listen 443 ssl http2; server_name example.com; {% include "common.j2" %} }
こうなる
server { listen 443 ssl http2; server_name example.com; location /common { proxy_pass https://common.example.com; } }
解決策
FilterブロックとIndentフィルター(この辺)を使います。
FilterとIndentを使ってこう書くと
server { listen 443 ssl http2; server_name example.com; {% filter indent %} {% include "common.j2" %} {% endfilter %} }
こうなります
server { listen 443 ssl http2; server_name example.com; location /common { proxy_pass https://common.example.com; } }
調整する
インデントを付ける幅を変えたい場合は第一引数にスペース幅を(デフォルトは4
)、最初の行をインデント付けたい場合は第二引数にTrue
を入れます。
こんな感じ(common.j2
もインデント幅が2になってるの前提)
server { listen 443 ssl http2; server_name example.com; {% filter indent(2,True) %} {% include "common.j2" %} {% endfilter %} }
*1:Ansible1.9.4に同梱のバージョン
Ansibleでパイプを使いたい場合はshellモジュールを使う
AnsibleにはCommandモジュールとShellモジュールがあるのですが、commandモジュールは安全な代わりに一つのコマンドしか実行できません。|
や;
なんかを使って複数のコマンドを同時に実行したい場合はShellモジュールを使いましょう。
Commandの場合はパイプ以降が解釈されてないのかechoの出力として表示されます。
% ansible node1 -i ./hosts -m command -a 'echo "Hello World" | cut -d" " -f 1' node1 | success | rc=0 >> Hello World | cut -d -f 1
Shellの場合はちゃんと想定通りの結果が返ります。
% ansible node1 -i ./hosts -m shell -a 'echo "Hello World" | cut -d" " -f 1' node1 | success | rc=0 >> Hello
AWS上に構築したAnsible Towerのバージョンアップ
会社で使っているAnsible Towerのインスタンスが急にEC2のDynamic Inventory出来なくなり*1、急きょバージョンアップすることになったのでそのメモ。
基本的に以下のページの手順に従うだけです。
12. Upgrading an Existing Tower Installation — Ansible Tower Installation and Reference Guide v2.4.4
まったく複雑な設定をしてなかったのでかなり楽ちんでした。
前提
- Ansible Towerのバージョンは
2.3.1
->2.4.4
- Ansibleが用意してくれているAMIをそのまま使用。特にHA構成やDBをlocalhostから外部に移行といったことはしていません。
- OSはUbuntu
- TowerのライセンスはFreeTrail版
手順
- 準備
- バージョンアップには10GB以上の空きディスクが必要なので、空けておく
- 念の為にEBSボリュームのスナップショットをとっておく
- サーバにSSHする、Rootになる
- Setupスクリプトのアーカイブに行って欲しいtarballのリンクを確認し、wgetで取ってくる。最新版でいいのであれば
latest
でOK
wget http://releases.ansible.com/ansible-tower/setup/ansible-tower-setup-latest.tar.gz
- tarballを解凍する
tar xvzf ansible-tower-setup-latest.tar.gz
- configureスクリプトを実行する、localで実行する場合は
--local
をつける
./configure --local
でOK
- setupスクリプトを実行
./setup.sh
- 終わり
*1:現在も原因不明