みんなのちからになりたい

コピペでブログラムつくっていきたい

◯分で作れちゃう常備菜が作れないひとが見る記事

新生活が始まる時期に多い記事

新生活で一人暮らしを始める方が多くなるこの時期に多くなる記事が、「簡単常備菜」とか「◯分でできる常備菜」という記事になります。

最近だとこういう記事です。

gathery.recruit-lifestyle.co.jp

app-note.com

非常に便利な記事で、おそらく多くの新生活を始める方が参考にして実行していくことと思います。

そしておそらく多くの方がさまざまな事情で脱落していくのではないかと思います。

わたしももちろんその中の一人で、最初はがんばって作ってたのですが、仕事が忙しくなったりすると疲れて帰ってきてお皿に盛りつけるだけの常備菜ですらめんどくさくてすぐ食べられるコンビニ弁当やカップラーメン、出来物ののお惣菜で済ますことが多くなってきます。

そもそも常備菜が作れるような方は自己管理、規律ができている方で、料理を作るのがめんどくさいとさほど思わない方なのではないかと思ったりしました。

常備菜を作るにあたっての問題点

常備菜に限りませんが、わたしが思う問題点として

  • 何日日持ちがするかよくわからない
    • 3日とか書いてありますが、多少ずれても食べられるにせよ、残業があったりすると毎日食べれるかわからない
    • いっぱい作らなければ良いというソリューションがあるにせよ、ならその都度作ればいいのでは問題
  • ◯分とは言いますが、調理時間は◯分だけど材料用意して切って調理して洗うまで考えると思ったより時間がかかる
    • 休日にやるにしても、常備菜を1つだけ作ることはせず、この際何種類か作るわけで、買い物まで含めるとなんだかんだで半日から一日作業になる
    • 一日の作業で数日楽になるのだからそれくらいがんばればいいというソリューション
  • 毎回概ね同じ食材で同じものを作ってしまう
    • 記事に載っているもののなかで簡単そうなものを延々と作り続ける問題
    • 常備菜で日々の栄養すべてを補えるわけではないので別にいいのでは...

以上のことが挙げられます。

休日にまとめて作る方が多いのではないかと思われますが、遊びに行ってしまったりすると作れなかったりしますし、平日に作るにしても残業やらジムやら習い事やらで時間が無かったりします。

結局どうしてるのか

わたしの場合、作ること自体は好きなのですが、洗い物が嫌いなのと、やはり何日日持ちがするかよくわからないという問題がどうしても気になって、だったら作れる日だけ作る、しかも調理器具1個で、という感じにしています。

どういうことか

要はこういうことです。

  • 材料は予め食べやすい大きさに切って冷凍しておく
  • 鍋に材料を入れて煮込む
  • 食べる
  • まあまあおいしい

という感じです。

いまのような寒い時期は特に楽で、鍋にしてしまえばだいたいおいしいのでなにも考えず冷凍しておいた大根や人参、きのこや肉を適当に入れて弱火で煮込み、その間にお風呂に入り、お風呂から上がったら鍋ができてるというスタイルで過ごしています。

注意する点

ひとつだけ大きな問題がありまして、それはなにかといいますと、冷凍したものを解凍して食材として使用するとだいたい冷凍しなかったときよりおいしくないというものです。

もちろん冷凍に向き不向きの食材はありますので、よく吟味して自分の中で妥協できる範囲内の食材をチョイスする必要があります。

基本的に冷凍から解答するとしなっしなになって食感が悪くなるのですが、その分味の染みが早くはなります。

わたしがよく冷凍してる食材として大根人参がありますが、冷凍するとき空気をよく抜いたり水分を拭き取る等のセオリーがありますが、これらのことをやっても野菜自体の水分があるため、どうしてもしなっしなになってしまいます。

夏はどうするか

冬から春先にかけての寒い季節は鍋にすればどうとでもなるのですが、夏のような暑い季節は鍋にするというソリューションは使えませんし、暑いというだけでなにもしたくなくなります。

その点をすべて見越したソリューションが生で食べるというものです。

夏になると夏野菜というものが売られ始めますので、生で食べられる野菜を買って、冷蔵庫に入れておけば帰ったら冷たい野菜をマヨネーズやらドレッシングやらを掛けて食べることになります。

基本的にはきゅうりやトマトがこれにあたりますが、これだけでは栄養が足りないので、サラダチキン等の肉類やお惣菜で補うことになります。

野菜の日持ちに関してですが、トマトはともかくきゅうりを何日も冷蔵庫にぶち込んでおくのは危険なため、常温の涼しいところに置いておくと良いと思います。

なすも非常に良いのですが、さすがに生でかじるわけにもいかないので、適当にぶつ切りにして耐熱容器に入れ、ごま油と塩コショウして電子レンジで2分ほどチンするとおいしくいただけますし、その際にハムやブロックベーコン等入れるとビールのおつまみにも最高になります。

まとめ

ある程度の法則性のある生活でないと常備菜に対するリスクが発生するため、早く帰れた日は時間があるので材料を買ってきて簡単なものを作り、そうでない場合はあるもので適当にしのぎましょうということになります。

もちろん、資金が潤沢であれば外食のほうが自炊よりバランスが取れるため、そちらのほうがおすすめです。

WordPress REST API v2にendpointを追加する

なんでこんなこと書いてるか

WordPress、初心者なのでやりたいことやろうとすると既存の仕組み使ってどうやってやればいいのか調べるコストがなかなかに高くてよくわからないので、調べてみるとREST API返してくれるようなのでそれ使えばWordPressは記事登録/保管庫として使用し、ViewはExpressとか使えば好きにできるんじゃないかということで実験としてチャレンジしてる次第です。

まじめにこれやろうとするとBasicなりOAuthなりのAuth通す必要があって、今回はちょい試すくらいなのですべて端折ります。

WordPress REST API v2

v1とv2がありますが、正直v1だとendpointの追加がめんどそうだったのでv2にしました。

ちゃんとやる場合はここみてください。すばらいしい記事です。

takahashifumiki.com

v1でやるひとはここみてください。

wp-api.org

今回はv2でやっていきます。

tax_query使えない問題

WP REST APIではtax_queryでごちゃっと取ってくるのができないっぽい問題があるのを解決していきます。

ソリューション

SearchWPを買う

カスタムフィールドとかを検索できるようにするサイト内検索の有償のプラグインがあり、これをREST APIで使うようにするプラグインを導入することで解決できるぽいです。

searchwp.com

https://calderawp.com/doc/searchwp-api-queries/

お金で解決するなら間違いなくこれでしょう。

こんな感じでできるっぽいです。

/wp-json/swp-api/tax_query[taxonomy]=category&tax_query[terms]=api&tax_query[field]=slug

自力でendpointを追加してtax_queryの結果を返す

やってみると意外と簡単でした。

まず、ここみてください。

v2.wp-api.org

以上です。

functions.phpにぶち込んでください。

3行でまとめますと

  • register_rest_routeでendpoint登録
  • そこのcallbackにデータ取得する関数を追加
  • 思う存分tax_query使って結果を返す

以上です。

これではなんなので短いサンプルを書きまして、これにて終了させていただきます。

add_action( 'rest_api_init', 'dt_register_api_hooks' );
function dt_register_api_hooks() {
    register_rest_route( 'wp/v2/test', '/umaa/(?P<id>\d+)', array(
        'methods' => 'GET',
        'callback' => 'get_title',
    ) );
}

function get_title( $data ) {
    $posts = get_posts( array(
        'author' => $data['id'],
    ) );

    if ( empty( $posts ) ) {
        return null;
    }

    return $posts[0]->post_title;
}

投資信託を始めるためにネット証券で口座開設する際に注意すべき点いくつか

投資信託もしくは株式の売買には証券会社に口座を開設する必要がありますが、今年に入って新たに開設したらなにやら前よりめんどくさくなっていたのでメモっておきます。

口座開設の申込をする

いまはいろんな証券会社があり、証券会社によっていろんな特徴があるためどれを選んだら良いかわかりづらいかもしれません。

基本はSBI証券は抑えておいたほうが良いと思います。

簡単に説明すると

  • 株式や債券、投資信託など主要商品がすべて取引できる
  • SBIネット銀行と連携させ、ハイブリッド預金に入れると金利が0.05%(2016年1月現在)になる

などが大きいと思います。

どこも口座開設及び維持費は無料なので、この際いくつか開設しておいても良いと思います。

各証券会社ともキャンペーンを行っているので、それで決めてもいいかもしれません。

申し込みにはいまはマイナンバー必須

申し込みには本人確認書類を提出する必要があります。

前までは本人確認書類(免許証やパスポート等)で良かったのですが、2015年の12月くらいから、マイナンバーが必須になりました。

なので、マイナンバーがまだ届いていない、もしくは受け取っていないひとは申込みできません。

基本は、マイナンバー+本人確認書類となっているので、必ず用意しておきます。

また、マイナンバーの個人番号カードであればそれ一枚で公的な身分証明書として使用できるため、無料なので作っておいたほうが良いと思います。(写真もスマホで撮ってアップロードするだけですしね)

一昔前はこれらの書類をコピーとったりして郵送する必要がありましたが、いまはどれもスマホやデジカメで撮った写真をアップロードするだけで申込できます。

特定口座と一般口座

申し込みの際、証券会社の口座を特定口座と一般口座のどちらで開設するか選択する必要があります。

特定口座にも特定口座(源泉徴収あり)と特定口座(源泉徴収なし)があります。

詳しいことは以下を見てもらうとして、めんどくさい手続きを取りたくないひとはとりあえずここは特定口座(源泉徴収あり)にしておきます。

特定口座とは http://www.smbcnikko.co.jp/service/account/tokutei/index.html

一般口座 http://www.smbcnikko.co.jp/terms/japan/i/J0078.html

口座開設のお知らせ

口座が開設されると、郵便で口座開設のお知らせが届きます。

本人限定受取郵便の場合は本人しか受け取れない上、受け取りの際に本人確認書類を提示する必要があります。

受け取った口座開設のお知らせにはログインIDと初期認証番号(もしくは初期パスワード)が書かれているので、実際にログインできるか確認します。

もしかしたらですが、マイナンバーが証券会社で登録されないとログイン出来ないかもしれません(カブドットコムで申し込みしたときはそうでした)

その場合、口座開設のお知らせを受け取ってからマイナンバーの登録が完了するまでの間、約1〜2週間程度ログインできないことになります。

証券会社の口座に入金する

口座開設のお知らせが来て無事に証券会社に口座が作られましたが、まだ取引はできません。

証券会社に口座はできましたが、口座にお金が入っていないので入金を行います。

口座開設のお知らせに振込先口座の番号が書いてあるので、そこに自分の銀行口座から入金を行います。

普通に入金する方法もありますが、いまは銀行と証券会社が提携していれば

などが利用できます。

口座振替(自動引き落とし)

証券会社のページから入金依頼をすると、自動で自分の銀行口座から引き落としを行い、証券会社の口座に入金する方式です。

即時入金はされず、だいたい2~3営業日後に入金されるところが多いと思います。

振込手数料は無料です。

リアルタイム口座振替

取引で口座の金額が不足した場合に、自動で自分の銀行口座から引き落としを行い、証券会社の口座に入金する方式です。

即時入金されるのが特徴で、振込手数料は無料です。

自動スイープ

SBI証券楽天証券は自身のネット銀行と契約していると自動スイープを使えます。

SBIネット銀行ではSBIハイブリッド預金楽天銀行ではマネーブリッジと読んでいますが、どちらも似たような機能で、証券会社とネット銀行の口座を連携させると、普通預金の金利が優遇されるというものです。

SBIネット銀行は株式や投資信託等の購入で自動で引き落としされますが、楽天銀行の場合は入金するという一手間があります。

ただし、楽天銀行のマネーブリッジは年0.10%(2016年1月現在)で、SBIネット銀行のSBIハイブリッド預金年0.05%(2016年1月現在)となっており、金利の面ではマネーブリッジのほうが有利となっています。

こちらも振込手数料は無料です。

口座の確認

証券口座に入金すると株式や投資信託の売買ができるようになりますが、売買の前に口座を確認してみましょう。

申し込みの際に特定口座(源泉徴収あり)にしましたが、証券会社によっては特定口座になっていない場合がありました(カブドットコムではそうでした)

その場合、口座開設のお知らせの同封書類をよくみると、特定口座の申込書が同封されていると思います。

この申込書を返送して受理されて初めて特定口座が使用できるようになります。

この特定口座の申込書にもマイナンバーと本人確認書類が必要になるので準備しておきましょう。

やっと取引できる

ここまで長かったですが、これで心置きなく取引できます。

おつかれさまでした。

最後に

申し込みは簡単なのですが、一通り手続きが済むまで2週間程度はかかると思います(一般口座だと最速3日程度で取引できるようです)

マイナンバーがなかった頃は申し込みから取引開始まで1週間もしなかった気もしますが、とんでもないことになりましたね…

楽天証券の場合、楽天市場やカードを持っていたからかわかりませんが、一番スムーズに口座開設まで行きました。

書類の往復も少なく、特定口座にも一発でなってましたが、他ではあれだけ手続きで時間のかかるマイナンバーの登録が画像のアップロード一発で登録されて逆に不安になるくらいでした。

一番めんどくさかったのがカブドットコム証券で、画像のアップロードをして口座開設のお知らせが来たにもかかわらずシステムの不具合でアップロードがされてないと言われて結果的にすごく時間がかかりました。

どの証券会社も似たようなプロセスで申し込みを行うと思いますので、参考になれば幸いです。

2015年よかったもの◯選

今年買ってよかったもの◯個みたいのが年末になるとよく出てきますが、最近なぜかあんまお金使ってないので買ったものもそうだけど知ったり使ったりしてよかったものをぼく個人としてもまとめておきたいのです。

ちなみに順不同なので先に上げたのがより良いとかじゃないです。

Game Of Thrones

www.star-ch.jp

Twitterで知って観始めたんですが、おもしろすぎてすごいやばい感じです。

RPG好きならハマる気がします。RPGっていうとよくあるのが剣と魔法の世界ですが、GoTの世界は魔法というよりかは呪術的な感じで、まあドラゴンとか怪物っぽいのとか出てきますが現実とそれほどかけ離れた世界観ではないところがまた良い感じです。

なのでグロいのとかエロいのとか普通に出てくるのでエロいのはともかくグロいのが苦手なひとはちょっとあれかもしれないですが、とにかくおもしろいのでオススメです。

Wikiで世界観とか登場人物とか読んでるだけであっというまに時間が過ぎていくところもやばくて、これみておもしろそうと思ったらぜひみて欲しいですね。

ゲーム・オブ・スローンズ - Wikipedia

最近知ったのですが、CSかレンタルでしかみれないと思ったらPlayストアにあったのでストリーミングでもみれるのかもしれないです。

ガンダムサンダーボルト

ガンダムサンダーボルトは前から名前だけは知ってたんですが、ガンダム漫画ってだいたい良くない意味でやばい感じのが多いのでスルーしてたんですが、映像化するってのを知ってからKindleで1巻無料になったので読んでみたらすごいおもしろくて、なんでこれいままで読まなかったんだ馬鹿かよ...って自分を怒ったくらいです。

で、ガンプラEXPOで映像みたらこれまたすごいやばい感じの出来で、個人的にはORIGINもういいからこっちまじめに作ってくれよ...って感じなので、ぜひともみてほしいですね。

big-3.jp

マッドマックス

今年はガンダムORIGINとマッドマックスしか映画館で観てないですが、マッドマックスまじでここ数年でいちばんのおもしろさですごいやばい感じがしましたね。

帰省したとき地元の映画館で観たんですが、200席位あるとこで3人しかいなかったのですごいやばかったですし、すごい快適に観れてさらにやばい感じがしましてすごくよかったです。

将棋フォーカスからNHK杯の流れ

cgi2.nhk.or.jp

cgi2.nhk.or.jp

小学校が部活とは別に学内クラブみたいなのに入らなくてはならなかったので将棋クラブになんとなしに入ってそこから将棋はやってたんですが、中学に入ったら麻雀覚えてそこから将棋はまったくやってなかったんですが、なんのきっかけか忘れたけどEテレの将棋フォーカスみたらおもしろくて、そこから毎週たのしみにみてるという感じです。

特に将棋フォーカス前半の講座がすごいおもしろくて、なるほどそういう考えがあるのかと毎回勉強になって、あいかわらず将棋はまったく指さないけどこういう考えがなんとなく仕事の考えに活かされてる感じがしないでもない感じです。

午前は藤田綾さんから清水市代さん行って、少し休憩はさんで午後はサンソンみたいな流れで過ごせた日曜は最強なのですごいオススメです。

NHK夏休み子ども科学電話相談

http://www.nhk.or.jp/radiosp/kodomoq/index.html

自分が小さいころもあった気がしてそのころ聴いてた気がしないでもないんですが、togetterのまとめ記事がホッテントリしたのをみたらおもしろくて、そこから聴けるときは聴いて、帰宅の電車の中ではまとめをみるみたいな感じで過ごしてました。

おもしろいのもあれですが、おとなでもすごい勉強になるので来年も聴いていきたいですね。

togetter.com

Cloud9

c9.io

VS2015になってNTVS入れたらNodejsがまともにVSで使えるということで最初はこの組み合わせで最高じゃん!って感じで使ってたんですが、React使うようになってくるとjsx書くときインテリセンスだそうとしてるのかリアルタイムエラーだそうとしてるのかわからんけど激重でまともに書いてられなくて、jsx書くときだけ別のエディタで書いてそれをコピペでVSに貼り付けるという不毛なことしててまじファックだったんですけど、たまたまネットのなんかの記事でCloud9いいよみたいの出てて使ってみたらまじ最高だったという話です。

VSもすごくいいんですが、別途Nodeとかサーバとか用意しなくちゃならないし、その点Cloud9ならIDEやらサーバやらなんやらひとまとめで自動で用意されてしかも公開までできるといういたれりつくせり具合で、もう個人で開発してちょっと公開して遊ぶくらいならこれでいいじゃんという感じです。

Herokuもすごくいいんですが、だんだん厳しくなってきましたし、Cloud9からHerokuにデプロイもできるみたいですし、とりあえずCloud9使っとけば仕事の空き時間に個人プロジェクト作って遊ぶときに環境作らず自宅でもそのまま作業できるのはすごくいいと思いました。

www.visualstudio.com

github.com

HA-FX850

これは前にも書きましたが、そんな感じですごい満足度高いのでやばさしか感じられないですね。

ginzanomama.hatenablog.com

NW-A25

せっかくハイレゾ聴けるイヤホン買ったのでという感じで流れで買いましたが、iPhoneよりかんぜんに音がいいのでオススメできますね。

ハイレゾ音源ですが、ぶっちゃけハイレゾ音源作るにあたってリマスタとかかけるわけで、それによって情報量が増えるのでCDで出したものよりよく聴こえるという感じに思ってて、実際ハイレゾ音源を圧縮音源にして聴いてみてもぼくらみたいなおっさんはたぶんたいして違いがわからないと思います。

偽レゾ問題とかありますが、ぼくとしてはリマスタかけてるなら買ってもいいかなという感じで、CDからハイレゾにアプコンしましたとか書いてあったら普通にCDレンタルなり圧縮音楽買うかなという感じなので、おっさん連中はそんなこと気にせずイヤホン良いの買ってたのしみましょう。

透明な色

これも前に書きましたが、かんぜんにオススメなので買うなりレンタルするなりしたほうがいいですね。

ginzanomama.hatenablog.com

象印 まほうびんステンレスタンブラー

これも前に書きましたが、かんぜんに買ってよかったです。

これ買った一週間後にサーモスのタンブラーも自宅用で買いましたが、満足度はかんぜんに象印のまほうびんステンレスタンブラーの勝ちです。

縁の厚さと持ちやすさとでかさがすごいやばい感じで、買う前に実物さわったときは微妙かなあと思ったのですが、使ってみるとやばいって感じでしたね。

ginzanomama.hatenablog.com

鶏のコンフィ

これも前に書きましたが、これによってぼくのフードコンテナ生活に革命が起きたといっていいほどのやばさを感じました。

なによりいいのが、やり方次第によってはまったく手を汚さず調理できることで、食べ終わったあともジップロックを捨てるだけというやばさ。

ぼくは昼飯用にしか使ってないですが、いろんな用途につかえるということでさらにやばい気持ちになりますね。

ginzanomama.hatenablog.com

カビキラー キッチン用アルコール除菌

これも前に書きましたが、なんかのブログみて買ってみたところ、実際の効果はよくわからないにせよ、お腹壊したりしてないので効果はあるんだと思いますが、これやってるから大丈夫という安心感を買っただけでもよかったなと思えたものです。

食材に掛けても大丈夫なので、ぼくの場合はフードコンテナを洗ったらシュッとして水切りで放置、それ以外でも洗ってしばらく使ってなかったジップロックコンテナとかまた洗うのめんどいのでシュッとして拭かなくてもいいらしいけど軽く拭いてそのまま使うとかよくやってます。

ginzanomama.hatenablog.com

メレル ジャングルモック

MERRELL JUNGLE MOC

地元の友だちが持ってて、散歩するならこれいいよと言われて東京戻ってから買ってみたら実際良かったという話です。

たぶんこれは好みの問題があるので実際試着しないとわからないんだけども、この手の用途によく使われるジョグシューズやニューバランスとかのスニーカーより靴自体が固くてしかも靴底が厚いので、履いた瞬間にすごい違和感があると思います。

こんなんでまじで大丈夫か?と不安な気持ちになりますが、1時間位履いて歩いてみるとなるほどこれは楽だわという感じです。

価格も1万くらいだし、雨の日は履いたことないですが防水だし、スウェードっぽいのが嫌じゃなければ試しに履いてみたらいいと思います。

よつばと!13巻

だいたい年一で年末くらいに単行本出てたのに3年ぶりに出たということで、すごいやばい感じがしましたね。

単行本でしか追ってないのでいまも連載してるか知らないですが、冨樫仕事しろみたいな感じにならなければいいなと思いますね。

まとめ

今年は特に Game Of Thrones と HA-FX850 と 鶏のコンフィ がよかったですし、よつばと!が出たのもよかったですし、仕事的にはReactを実戦投入できたのもよかったので、来年もがんばっていきたいなって思いましたね。

こちらからは以上です。

fluentdでログを整形してElasticsearchに送ってやる方法

Kibanaでグラフ表示するまでよくわからない問題

プロの方はElasticsearchでみただけでわかるのかもしれないですけど、初心者なぼくとしてはKibanaでグラフ表示してみてなんだこりゃあってのが多くてつらいので、ログ整形がんばっていくという話です。

要は、これの続きです。

ginzanomama.hatenablog.com

ソリューション

すごく勉強になるページがあったので、これみてやっていきます。

qiita.com

fluentのプラグイン入れまくる

何に使うのかはよくわかってないけどあとで調べます。

  • fluent-plugin-file-alternative
  • fluent-plugin-parser
  • fluent-plugin-forest
  • fluent-plugin-amplifier-filter
  • fluent-plugin-numeric-monitor
  • fluent-plugin-growthforecast
  • fluent-plugin-rewrite
/opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-file-alternative fluent-plugin-parser fluent-plugin-forest fluent-plugin-amplifier-filter fluent-plugin-numeric-monitor fluent-plugin-growthforecast fluent-plugin-rewrite

レスポンスタイムをミリ秒に

流れ的に言うと、Elasticsearchに入れる前にフィルタしてログ整形してElasticsearchに流すという感じのようです。

ざっくりこのように変更。

<source>
    # 入力に in_tail プラグインを指定
    type tail
    # 監視するログファイルのパスを指定
    path /var/log/httpd/access_log
    # ログにつけるタグを指定
#    tag apache.access
    tag apache.access_filter
    # 監視するファイルをどの行まで読み込んだかを記録するファイルの指定
    pos_file /var/log/td-agent/httpd-access_log.pos
    # ログの書式を指定
    #format apache2
    format /^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)?" (?<status>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)" (?<response_time>[^ ]*))?$/
    time_format %d/%b/%Y:%H:%M:%S %z
</source>

<match apache.access_filter.**>
  type amplifier_filter
  remove_prefix apache.access_filter
  add_prefix apache.access
  ratio      0.001
  key_names  response_time
</match>

<match apache.access>
    type elasticsearch
    type_name access_log
    host localhost
    port 9200

    logstash_format true
    logstash_prefix apache-log
    logstash_dateformat %Y%m%d
    include_tag_key true
    tag_key @log_name
    flush_interval 10s
</match>

確認すると

f:id:ginzanomama:20151224211218p:plain

うまくいったあ!

ここまでくればあとはなんとかなりそうです。

まとめ

fluentd、奥が深い。


高速スケーラブル検索エンジン ElasticSearch Server (アスキー書籍)

高速スケーラブル検索エンジン ElasticSearch Server (アスキー書籍)

Kibanaを入れる

Kibanaを入れなければならない

システムトラブルでログを追ってくのがつらたんなのでKibanaとやらを入れて可視化して楽にしてきたいと思います。

Kibanaとは

www.elastic.co

See the Value in Your Data
* Flexible analytics and visualization platform
* Real-time summary and charting of streaming data
* Intuitive interface for a variety of users
* Instant sharing and embedding of dashboards

ざくり言うと、いろんなデータを可視化するよというものです。

今回はCentOS 6.7の鯖があったのでそれにぶちこんでいきます。

Java入れる

KIbana入れるにはElasticsearch入れなければならず、ElasticsearchはJavaがいるということでJava入れます。

yum -y install java-1.8.0-openjdk

Elasticsearch入れる

最新版(2.1.1)を入れていきます。

yumで入れられるようですが、GPG入れたりなんなりしなくちゃならないけどドキュメント読んでがんばりましょう。

https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-repositories.html

基本的に書いてあるとおりにやるだけです。

GPGキー

rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

/etc/yum.repos.d/ に elasticsearch.repo 作る

ファイル作ったら以下を書き込みます。

[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

yum install elasticsearch

ぶったたきます。

 yum install elasticsearch 

起動確認

動くか確かめましょう。サービスで起動させてみます。

service elasticsearch start
elasticsearch を起動中:                                    [  OK  ]

動いたっぽいです。止めるときはstopで。

自動起動

chkconfig elasticsearch on

やってみる

ドキュメントに Run curl -X GET http://localhost:9200/ って書いてあるのでぶったたいてみます。

curl -X GET http://localhost:9200/
{
  "name" : "Jane Foster",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.1.1",
    "build_hash" : "40e2c53a6b6c2972b3d13846e450e66f4375bd71",
    "build_timestamp" : "2015-12-15T13:05:55Z",
    "build_snapshot" : false,
    "lucene_version" : "5.3.1"
  },
  "tagline" : "You Know, for Search"
}

よくわからないけど動いてるようです。

そもそもElasticsearchがなんなのかよくわかってないですが、ぐぐってみると要は全文検索エンジンで、REST APIでデータを入出力できるので便利ですという感じっぽいです。

なのでログ解析とかに向いてるってことですかね。

それをKibanaで可視化するという感じっぽいです。

Kibana入れる

wgetで落として解凍しましょう。

wget https://download.elastic.co/kibana/kibana/kibana-4.3.1-linux-x64.tar.gz
tar -xvzf kibana-4.3.1-linux-x64.tar.gz

config/kibana.ymlいじる

ドキュメントに

* Open config/kibana.yml in an editor
* Set the elasticsearch.url to point at your Elasticsearch instance

と書いてあるのでそのとおりにやりましょう。

起動

./bin/kibana

  log   [10:37:54.770] [info][status][plugin:kibana] Status changed from uninitialized to green - Ready
  log   [10:37:54.790] [info][status][plugin:elasticsearch] Status changed from uninitialized to yellow - Waiting for Elasticsearch
  log   [10:37:54.800] [info][status][plugin:kbn_vislib_vis_types] Status changed from uninitialized to green - Ready
  log   [10:37:54.803] [info][status][plugin:markdown_vis] Status changed from uninitialized to green - Ready
  log   [10:37:54.809] [info][status][plugin:metric_vis] Status changed from uninitialized to green - Ready
  log   [10:37:54.814] [info][status][plugin:spyModes] Status changed from uninitialized to green - Ready
  log   [10:37:54.821] [info][status][plugin:statusPage] Status changed from uninitialized to green - Ready
  log   [10:37:54.830] [info][status][plugin:table_vis] Status changed from uninitialized to green - Ready
  log   [10:37:54.843] [info][listening] Server running at http://0.0.0.0:5601
  log   [10:37:59.853] [info][status][plugin:elasticsearch] Status changed from yellow to yellow - No existing Kibana index found
  log   [10:38:04.378] [info][status][plugin:elasticsearch] Status changed from yellow to green - Kibana index ready

なんか動いてるっぽいですね。

ブラウザで localhost:5601 にアクセスしてみると

f:id:ginzanomama:20151223191259p:plain

動いてるっぽいですね。

ApacheのログをKibanaでみる

ぐぐってみるとどうやらこういうことのようです。

Apache -> td-agent(fluentdのいろいろ入ってるやつ) -> Elasticsearch -> Kibana

なのでtd-agent入れていきます。

td-agent入れる

ドキュメントみて入れていきましょう。

docs.fluentd.org

Before Installation

インスコするまえにやっとけということでやっておきましょう。

docs.fluentd.org

入れる

入れましょう。

curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh

起動

立ち上げましょう。

/etc/init.d/td-agent start
Starting td-agent:                                         [  OK  ]

ドキュメントみると以下がサポートされてます。とりあえずstartしましょう。

$ /etc/init.d/td-agent start
$ /etc/init.d/td-agent stop
$ /etc/init.d/td-agent restart
$ /etc/init.d/td-agent status

試す

ドキュメントに書いてあるのでとりあえず書いてみましょう。

curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test

デフォルトだと /var/log/td-agent/td-agent.log に書いてあるのでみてみると

2015-12-20 11:33:22 +0900 debug.test: {"json":"message"}

書いてありましたね!

fluent-plugin-elasticsearch入れる

Fluentdで受けたログをElasticSearchに保存するプラグイン入れます。

/opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch

ApacheのログをElasticSearchに書く

そのものずばりのすばらしいページがあるのでこの通り書きましょう。

http://enomotodev.github.io/post/install-elasticsearch/ http://enomotodev.github.io/post/install-fluentd/

こんな感じで書きました。

/etc/td-agent/td-agnet.conf

<source>
    # 入力に in_tail プラグインを指定
    type tail
    # 監視するログファイルのパスを指定
    path /var/log/httpd/access_log
    # ログにつけるタグを指定
    tag apache.access
    # 監視するファイルをどの行まで読み込んだかを記録するファイルの指定
    pos_file /var/log/td-agent/httpd-access_log.pos
    # ログの書式を指定
    format apache2
</source>

<match apache.access>
    type elasticsearch
    type_name access_log
    host localhost
    port 9200

    logstash_format true
    logstash_prefix apache-log
    logstash_dateformat %Y%m%d
    include_tag_key true
    tag_key @log_name
    flush_interval 10s
</match>

確認

/etc/init.d/td-agent restart
curl -XGET http://localhost:9200/_aliases?pretty
{
  ".kibana" : {
    "aliases" : { }
  },
  "apache-log-20151220" : {
    "aliases" : { }
  }
}

こんなのが返ってくれば大丈夫です。

Kibanaでみる

この通りにしましょう。

Index name or pattern に apache-log-* を入れれば表示されるはずです。

http://enomotodev.github.io/post/install-elasticsearch

MySQLのスロークエリを可視化する

とりあえずスロークエリ吐き出すようにしておきましょう。

my.cnfに追加

slow_query_log=1
long_query_time=0.5
slow_query_log_file=/etc/httpd/logs/slow_query.log
log_queries_not_using_indexes=1

service mysqld restart とかしといてください。

fluent-plugin-mysqlslowquery入れる

入れましょう。

/opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-mysqlslowquery

/etc/td-agent/td-agnet.conf いじる

とりあえずこんな感じにしときます。

<source>
    type mysql_slow_query
    path /etc/httpd/logs/slow_query.log
    tag mysql.slow_query
</source>

<match mysql.slow_query>
    type elasticsearch
    type_name slow_query_log
    host localhost
    port 9200
    logstash_format true
    logstash_prefix slowquery-log
    logstash_dateformat %Y%m%d
    include_tag_key true
    tag_key @log_name
    flush_interval 1s
</match>

あとは Kibana の Index name or pattern に slow_query_log* とか入れると出てくるはずです。

まとめ

とりあえず動かすこと重点でパラメータの意味とかまだわからないですが、とりあえず動いたのでこれからいろいろいじっていきたいなと思いましたね。

こちらからは以上です。


高速スケーラブル検索エンジン ElasticSearch Server (アスキー書籍)

高速スケーラブル検索エンジン ElasticSearch Server (アスキー書籍)

すね肉を喰らう 炊飯器炊飯ボタン編

3週にわたってお届けしてきたすね肉を喰らうシリーズ、今回で最終回を迎えることになりました。

ginzanomama.hatenablog.com

ginzanomama.hatenablog.com

いきなり結論

結論から言いますと、かんぜんに美味いとうことです。

ただ、ぼくの知識不足から致命的ではないにせよ失敗しましたが、この調理法に間違いはありませんでした。

すね肉を買う

今週も安心のハナマサで買ってまいりました。

f:id:ginzanomama:20151220174853p:plain

炊飯器に入れる

f:id:ginzanomama:20151220175238j:plain

今回は新じゃが売ってたのでそれをぶちこみます。

皮をむかなくていいのですごい楽でいいですね。

水を入れる

f:id:ginzanomama:20151220175407j:plain

水を材料が浸るくらい入れます。

思えばここが失敗の原因でしたが、この後リカバリーできます。

失敗したくなければ水は多めに入れましょう。

材料が浸ってから2cmくらい入れれば十分でしょう。

炊飯ボタンを押して炊きあがりを待つ

炊きあがりを待ちましょう。だいたい1時間ちょいくらいだと思います。

炊きあがると以下のようになります。

f:id:ginzanomama:20151220175816j:plain

状況を報告しますと、まずじゃがいもはかんぜんに火が通っていて食べごろでした。

すね肉ですが、火はかんぜんに通っていて、箸をぶっさしても貫通し、かんぜんに食べられるというのがわかります。

ただし、ちょい固いなもうちょい煮崩れするくらいまでやりたいなと思ったため、2度めの炊飯ボタンを押すことを決意します。

ここが失敗と成功の分かれ道で、みるとわかりますがかんぜんに水分が足りません。

ぼくはこのまま炊飯ボタンを押したためあやうくやばい感じになるところでしたが、水を足すか予め水を多く入れておくことをオススメします。

2度めの炊飯ボタンを押した結果

f:id:ginzanomama:20151220180222j:plain

みるとわかりますが、かんぜんに水分がありません。

俗にいう空炊き状態ですが、最近の炊飯器が進化してるのか幸い特に問題もなく、肉も柔らかくなってました。

このあともう一回作って2度めも水を浸るくらいまでにして炊飯ボタン押しましたが、柔らかさは間違いなく浸るくらいまで水を入れてた方でした。

結論

炊飯ボタン最強伝説でした。

もう煮込み料理は炊飯器でいいんじゃないかと思ってきました。

炊飯器の唯一の欠点は、上蓋も当然洗いますが、においが炊飯器に付くことで、これをやってからご飯を炊いたことがないのでお米に匂いがつくかわかりませんが、その懸念があることでしょうか。

とにかく手間もかからず材料入れて水入れてボタン押すだけでおいしくできるのはやばい感じです。

これからも炊飯器調理を推し進めていきたい、そう思いました。

こちらからは以上です。


Jupyter NodeJSで日本語で落ちてた例のアレ

昨日のアレ、やはり日本語で落ちてたっぽく、おっかけてくとダイジェストコンペアで相違が起きるためエラーぶん投げて終わるみたいな感じっぽかったので、とりあえずそこコメントにしたら動きました。

ginzanomama.hatenablog.com

ちゃんとした直し方はあるんだろうけどPythonさっぱりわからないし、とりあえず社内で使う分にはいまのところ問題ないのでこれでいくことにしましたね。

/anaconda2/lib/python2.7/site-packages/jupyter_client/session.py 848:849

#  if not compare_digest(signature, check):
#    raise ValueError("Invalid Signature: %r" % signature)

こんな感じでスクレイピングもできるのでいろいろ遊べそうです。

f:id:ginzanomama:20151216205109p:plain


入門 Python 3

入門 Python 3

Jupyter Notebook入れてNodejsのカーネルも入れる

Jupyter Notebook

これみてすごい便利そうだったので入れてみました。

techlife.cookpad.com

ちょうど仕事の隙間にあたって比較的自由時間が多かったというのもあります。

ちなみにPythonはまったくさわったこと無いのでよろしくお願いします。

インストール

公式サイトの手順通りにやりましょう。なにごとも基本が大事です。

http://jupyter.readthedocs.org/en/latest/install.html#new-to-python-and-jupyter

Python2と3の違いがよくわからないですが、2のほうがモジュール多いとぐぐって 見かけたので2で入れてみます。

Anacondaのインストール

Python noobはAnaconda入れろとのことなので入れます。

https://www.continuum.io/downloads

今回はCentos7にぶち込むのでPython2.7の64bitをダウンロードしてコマンドぶったたきます。

bash Anaconda2-2.4.1-Linux-x86_64.sh

途中なんやらいろいろ選択肢が出てきて不安な気持ちになりますが、ここみて落ち着きましょう。

www.task-notes.com

Jupyterのインストール

シェルを再起動してコマンドぶったたきます。

conda install jupyter

起動確認

インストールはできたはずなので起動するか確認します。

jupyter notebook

http://localhost:8888 にアクセスすると動作しているはずです。動かなかったら祈りましょう。

サーバで動かしたい

ローカルで動いてもあまりうれしくないのでサーバで動かします。

事前にfirewallとかはどうにかして下さい。

サーバでの動かし方も書いてあるのでざっくりこの通りにしましょう。

http://jupyter-notebook.readthedocs.org/en/latest/public_server.html

ざっくり読むとconfig使っていくつか書き換えれば動くようです。

今回は社内で使うので特にセキュアにせずザル運用します。

c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 9999

portは変えたかったら書き換えて、変えたくなかったら8888のまま動作します。 今回はめんどいので書き換えてません。

http://サーバのアドレス:8888 にアクセスすると動作しているはずです。動かなかったら祈りましょう。

起動ディレクトリを変更したい

起動するとぼくの場合ホームディレクトリで動いててディレクトリやらファイルやら作り放題削除され放題なのでどういうことなの...と思って起動ディレクトリ変更したかったのですが、configに書けばいいのでした。

c.NotebookApp.notebook_dir = u'jupyter'

こんなふうに書くと /起動ディレクトリ/jupyter になるので安心です。

これみると気づくのですが、要は起動したディレクトリがホームディレクトリになるので、Jupyter Notebook用のディレクトリ掘ってそこから起動してもよいということにもなります。

用途次第ですが、ディレクトリ単位で管理するひとはこっちのほうが便利そうですね。

カーネル入れてみる

本題ですが、いまのところぼくとしてはPythonのノートが使えても特に嬉しいことがないので違う言語のカーネル入れていきます。

とりあえずぼく的に身近なところでnodejsを使えるようにしていきます。

Jupyterで使えるカーネル

先人の教えにより以下をみるべしとのことなので、他のカーネル入れたくなったらここみましょう。

github.com

みてみると、見事なまでにnode無いですが、ぐぐると見つかりました。

github.com

とりあえずnode入れないと動かないので入れてないひとは入れて下さい。

Jupyter NodeJS入れる

Installationにおもいっきり書いてあるのでそのとおりにやっていきます。

最新のリリースからファイル落としてきてコマンドぶったたきます。

github.com

tar xf jupyter-nodejs-1.1.0.tgz
cd package
npm install && node install.js
ipython console --kernel nodejs

やってみればわかるんですが、node入れたばっかの環境だとたぶんzmq.hがないとかなんとか言われると思うのでzeromqを入れておきます。

yum install zeromq
yum install zeromq-devel

これを入れてから再度 node install.js してみるとまたエラーがでると思います。

Error: ENOENT: no such file or directory, open '/home/.ipython/kernels/nodejs/kernel.json'

install.js みると .ipython/kernels/nodejs/kernel.json に書き込もうとしてるけどディレクトリがないってことなので適当に作っていきます。

イシューみると0.12で直すって書いてあるけどまだ出てないので作るしか無いって感じです。

ディレクトリ作って再度実行すると成功すると思います。

動かす

インストールさえできれば

ipython console --kernel nodejs

で動くと思います。

notebookでも動くのでいじくり回して遊びましょう!

npmでモジュール入れればだいたいなんでも動くっぽいですが、コンソールみてたら日本語の文字コードシリアライズで引っかかって落ちてるっぽいのでなんかする必要があるのかも知れませんが、もう帰りたいので今日は帰ります。

Pythonわかればもっといろいろできそうですが、残念ながらまったくわからないのでこれからがんばっていきたいですね。

こちらからは以上です。


入門 Python 3

入門 Python 3

すね肉を喰らう 炊飯器保温ボタン編

前回の反省点と改善案を踏まえ、炊飯器で料理してみた結果を報告したいと思います。

ginzanomama.hatenablog.com

炊飯器でやってみた結果

いきなり結論から言いますと、失敗しました。

最後に反省点がありますので、みなさんは同じ失敗をしないようにしてください。

以下、報告です。

すね肉を買う

ちょい遠征してハナマサで買ってきました。

f:id:ginzanomama:20151213142904j:plain

高いか安いかわかりませんが、これしかなかったのでこんなもんなんだと思います。

2塊あるので2回に分けて使えて経済的です。

炊飯器に入れる

f:id:ginzanomama:20151213143108j:plain

野菜類は基本的に冷凍してるので、冷凍庫にあった野菜を適当にぶち込みます。

もちろん冷凍してないほうがいいのはいうまでもありませんが、毎日自炊できるならともかく、イット業界は日々の突発的なトラブルと残業が切り離せないので週末に食材を買ったら切って冷凍するようにしています。

ローレルもとりあえず入れてますが、なくてもいいと思います。

あとは前回の反省を踏まえ、コンソメを一欠片ぶちこんでおきます。

アツアツの熱湯をダバァする

f:id:ginzanomama:20151213143546j:plain

炊飯器保温調理の基本ですが、お湯はアツアツの熱湯を入れます。

で、保温ボタン押して2時間待ちます。

ほっとくだけなので3時間でも4時間でもいいんですが、ぼくの腹がもたないので今回は2時間としました。

2時間後

f:id:ginzanomama:20151213143810j:plain

2時間後の姿がこちらです。

一見できてるようにみえますが、いちおう肉も中までギリ火が通ってるという程度で、じゃがいももガチガチです。

ここでこれ以上保温しても無意味だと悟り、素直に鍋に入れて1時間煮込みました。

まったく無駄な時間を過ごしたと思いました。

失敗の原因と反省点

失敗の原因は明らかで、冷凍した野菜をぶち込んだため、お湯の温度が冷めてその状態で保温したため温度が足りなかったということです。

常温の野菜であればもしかしたら大丈夫かもしれませんが、肉の温度も冷たいのでむずかしいと思われます。

また、最大の失敗は鍋に移し換えて煮込んだことで、冷静に考えればそのまま炊飯ボタンを押せばよかったのではとすべてが終わった後で思いましたが、ぼくの腹がもたなかったので冷静な判断ができませんでした。事前にパンでも食ってればよかったなと思いました。

反省点としましては、すでに前述しているように最初から水入れて炊飯ボタン押せばよかったということです。

ここで一つ言い訳させてもらえると、炊飯ボタンがどれくらいの温度で調理されるのかまったく理解できていなかったため、炊飯ボタンに信頼を置けなかったことが最大の失敗でした。

よくよく考えれば米に水入れてふっくら炊きあがる炊飯ボタンに信頼を置けなかったぼく自身に問題があり、炊飯ボタンが悪いわけではありませんでした。

次回はこの反省を踏まえ、最初から炊飯ボタンで調理してみようと思いました。

こちらからは以上です。