shobylogy

叩けシンプルの杖

料理を並列化して夕食の品数を増やす(一人暮らし向け)

最近は、健康のため、可能な限り一食の品数を増やし、バランスの良い食事を心がけています。

今回は、一人暮らしの狭いキッチン、コンロ一つという条件下で料理を並列化し、可能な限り品数を増やす方法をご紹介します。

実際の結果がこのような感じになります。

概要

  • ルール
  • 単体で完成に近い食品を買う
  • 包丁を使う必要のない食材を買う
  • 下処理を一気にやる
  • 汁物と煮物を同時に作る
  • 余熱を使う
  • 鍋以外で一品作る

ルール

この記事は、以下の自分ルール下でのノウハウです。ご理解ください。

  • 可能な限り1品でも多く品数を増やす
  • 1時間弱のタイムアタック(ご飯が炊き上がるまでの時間)
  • 惣菜は禁止。ただし加工食品は許可

単体で完成に近い食品を買う

まずいきなりチートに近いですが、単体で完成に近い商品を買うことで、少ない手間で品数を増やせます。 これらを副菜に活用しましょう。

おすすめの食品が以下の物になります。

  • おかず
    • 納豆
    • 豆腐(冷奴)
    • ちくわ、はんぺん
    • 温泉卵
    • 海苔
  • サラダ
    • ベビーリーフ
    • ミニトマト
    • もやし
    • キャベツ
  • デザート
    • ヨーグルト
    • ヤクルト

包丁を使う必要のない食材を買う

火を通す必要のある食材であっても、包丁を使う必要のないものを買えば、調理が短縮できます。

具体的には、カット野菜*1、ミンチや細切れ肉などです。 魚も、お店によっては調理をお願いすることができますので活用しましょう。

下処理を一気にやる

食材の下処理は一度にまとめてやりましょう。

例えば、味噌汁、煮物、焼き物を同時に作る場合、それらに必要な食材の下処理は、一番最初にまとめて済ませておきます。

下処理をまとめて済ませておくことで、まな板を調理中の作業スペースとして活用できるようになります。

一人暮らしの狭いキッチンでも、シンクの端にまな板をおいて作業スペースを確保することで、スムーズに調理が進みます。

汁物と煮物を同時に作る

出汁を取り、その出汁を活用して汁物と煮物を作りましょう。

具体例としては、上記の写真にある味噌汁とかぼちゃ煮を同時に作るパターンを考えます。

  1. 出汁を多めに取る
  2. 出汁を鍋A(汁物)と鍋B(煮物)に分ける
  3. 鍋Aに豆腐を入れておく(出汁の余熱で火を通す)
  4. 鍋Bをコンロにかけ、かぼちゃを煮る
  5. 鍋Bをコンロから外し、余熱で火を通す
  6. 鍋Aをコンロにかけ、味噌を入れる

といったような手順になります。慣れるとコンロ一つでも汁物と煮物を並列で作れるようになります。

余熱を利用する

上でも書きましたが、コンロが一つしかない中で複数の調理をするためには余熱を活用する必要があります。

余熱を利用する際には、熱伝導率が低く、保温性の高いステンレスなどの鍋を使うのをおすすめします。

鍋以外で一品作る

コンロで煮物などを調理している間にも、ボウルを使って一品作ることができます。

以下のようなものが鍋を火にかけている短時間でも作れておすすめです。

  • ベビーリーフとミニトマトのサラダ
  • ごま油の塩キャベツサラダ
  • ちくわのゴマしそ和え

火を使わず、和えるだけの料理をしましょう。

まとめ

一人暮らしの狭いキッチンでも、調理を並列化することで、品数が多く、バランスの取れた食事を作ることができます。

単体で完成に近い食品や、包丁を使う必要のない食材を買い、下処理は一気にやりましょう。 また、余熱を使い、汁物と煮物を同時に作ったり、調理中に鍋以外で一品作ることで、品数を増やすことができます。

*1:きちんとパッケージしてあるものより、お店の人がカットした感じのカット野菜を買ってます。安心。

bitFlyerの過去チャートを1時間足で取得する

以前、bitFlyerの過去チャートを取得するという記事を書いたが、betterなサービスを発見したのでメモ。

CryptCompareというサービスのAPIで、1時間足であれば、Cryptwatch以上に過去に遡ってチャートを取得できる。*1

https://www.cryptocompare.com/api/

使い方は以下のような感じ。

https://min-api.cryptocompare.com/data/histohour?fsym=BTC&tsym=JPY&limit=2000&e=bitFlyer

取得件数は1度に2000件が上限。

toTs というパラメータを使用することで、指定したタイムスタンプ以前のデータも取得できる。

https://min-api.cryptocompare.com/data/histohour?fsym=BTC&tsym=JPY&limit=2000&e=bitFlyer&toTs=1446267600

*1:2015/8/9までは遡って取得できることを確認した。おそらくそれ以上過去のデータも存在するはず

Kerasで過学習を防止するためにEarlyStopping Callbackを使う

Kerasには過学習を防止するためのEarlyStopping Callbackが存在します。

コールバック - Keras Documentation

使い方

使い方は簡単で、modelのfitメソッドのcallbackに渡すだけです。

from keras.callbacks import EarlyStopping

model.fit(X_train, Y_train, callbacks=[EarlyStopping(), validation_split=0.25])

デフォルトでは val_loss の値を監視するため、fitメソッドには validation_data もしくは validation_split を渡す必要があります。

私の場合、training setとvalidation setとtest setを6:2:2の割合にするため、training setとtest setを8:2に分けた上で、validation_splitには0.25をセットしています。*1

結果

val_loss に変化が無くなったEpochでtrainingが打ち切られるため、過学習による局所最適化に陥ることを防止できます。

これにより、最適なEpoch数を手動で調整する手間が省けます。

以下の図は実際にEarlyStopping Callbackを用いたtrainingの結果です。val_lossに変化が無くなったタイミングで打ち切られているのが確認できると思います。*2

f:id:shoby:20170607223917p:plain

まとめ

KerasのEarlyStopping Callbackを用いることで過学習が防止できます。 手動で最適なEpoch数を調整する必要もなく、お手軽です。

参考

KerasでMNIST - 人工知能に関する断創録

*1:CourseraのMachine Learningコースでおすすめされていた割合

*2:keras-tqdmを用いて可視化しています

Jupyter NotebookでKerasのTraining進行状況を表示する(keras-tqdm)

Jupyter NotebookからKerasを使用すると、Trainingの進行状況がよくわからなくて不便ですよね。

keras-tqdmというライブラリを使うと、Jupyter NotebookでKerasのfitメソッドの進行状態をprogress barで表示してくれます。

GitHub - bstriner/keras-tqdm: Keras integration with TQDM progress bars

f:id:shoby:20170530231515p:plain

インストール方法

pipでインストールできます。

pip install keras-tqdm

使い方

modelのfitメソッドを呼び出す際に、callbackとして渡すだけです。

from keras_tqdm import TQDMNotebookCallback

model.fit(X_train, Y_train, verbose=0, callbacks=[TQDMNotebookCallback()])

トラブルシューティング

Widget Javascript not detected といったエラーが表示される場合、以下のコマンドを打った後に再起動する必要があるようです。

jupyter nbextension enable --py --sys-prefix widgetsnbextension

keras-tqdmが依存しているtqdmが内部でipywidgetsを使用しているため、ipywidgetsのセットアップが済んでいないとエラーが表示されるようです。

使用感

Keras上でもprogress barで各Epochの進行状況とlossが確認できるようになったため、学習経過の可視化に役立ちます。

ただし、Epoch数が増えてくるとその数だけprogress barが生成されて画面が圧迫されるので、EarlyStopping callbackを併用し、収束したタイミングで打ち切るようにするのをおすすめします。

まとめ

keras-tqdmを使うとJupyter Notebook上でもKerasのTraining進行状況が確認できて便利です。

Epoch数が増えてくると、大量にprogress barが生成されてしまうので、EarlyStopping callbackと併用するのをおすすめします。

bitFlyerの過去チャートを取得するAPI

bitFlyer公式では現在の価格を取得するAPIしか提供されていない。

ビットコイン取引所【bitFlyer Lightning】

過去のチャートを取得するにはCryptowatchというサービスのAPIを利用する。*1

Public Market REST API - Cryptowatch Docs

エンドポイントは以下。*2

https://api.cryptowat.ch/markets/bitflyer/btcjpy/ohlc

periodsというパラメータで何秒区切りかを指定でき、beforeとafterというパラメータにUNIX timestampを投げることで時間の指定もできる。

1日足で、2017/01/01以降のチャートを取得したい時は以下のような感じ。

https://api.cryptowat.ch/markets/bitflyer/btcjpy/ohlc?periods=86400&after=1483196400

Rate limitはCPUの処理時間ベースでかかる。

また、過去のチャートは無限に取得できるわけではなく、Cryptwatch上のチャートで閲覧できる範囲内しか取得できないようなので注意。 5分足などの短い間隔だと短い期間しか取得できない。

実際のチャートを参照しながら取得する範囲を決めると良い。

BTCJPY - bitFlyer リアルタイムチャート - Cryptowatch

*1:bitFlyer Lightningのチャート画面でも使われているサービス

*2:OHLCとはOpen-high-low-close chartの略で、海外でローソク足の代わりに使われているチャートらしい

Skype英会話のすゝめ

Skype英会話を始めて約3年が経ち、皆さんにも是非おすすめしたいと思うようになってきたのでこの記事を書きました。

概要

  • Skype英会話を始めて変わったこと
  • 良いところ
  • いまいちなところ
  • おすすめの学習ステップ

Skype英会話を始めて変わったこと

英語を話すことに抵抗感がなくなりました。 具体的には、英語で自分の意見を伝えることができるようになりました。

良いところ

安い

Skype英会話は1日1回30分受けられて、1ヶ月6000円程度が相場です。 普通の英会話教室なら、1回のレッスンが6000円程度からだと思います。

恥ずかしくない

Skypeで1対1で話せるので、どんなに下手でも恥ずかしさがありません。

低いモチベーションで続けられる

教室に通ったりする必要がないので、おそろしく低いモチベーションで続けられます。 最近は寝起きにパジャマでレッスンを受けてます。

いまいちなところ

  • 講師の質がバラバラ
  • 高レベルの英語学習には向いていない

講師の質がバラバラ

講師の質が一定ではありません。 Skype英会話の安さは人件費の安さから来ているのが原因です。

英語圏の発展途上国で学生のアルバイトを雇っていることが多いです。(だいたいフィリピン)

そのため、質の低い講師はやる気がなかったり、発音に癖があったり、おそろしく早口で全然聞き取れなかったりします。

必然的にベテランの講師や、優しい講師には人気が集まり、予約が困難になります。

高レベルの英語学習には向いていない

ビジネス英語や、学術英語、技術英語など、高レベルの英語学習には向いていません。 基本的に講師は英語教育のプロフェッショナルではないためです。 ある程度英語が話せて、さらに高いレベルを目指す方は、ビジネス英会話のスクールに通いましょう。

おすすめの学習ステップ

以下の順で学習していくとモチベーションが保てるような気がします。 (ラングリッチ以外のレッスン教材については把握してないのでなかったらごめんなさい)

  1. 発音レッスン
  2. TEDレッスン
  3. 講師の専門分野について聞く

発音レッスン

最初に発音レッスンを受けておくと、英語を話す恥ずかしさがだいぶ軽減されます。

「あ、今自分、なんか英語っぽい発音してるわ!」と思えるようになると、話すことに対する抵抗感が減ります。

TEDレッスン

TEDのビデオを見て、それについて話すレッスンです。 TEDは単純に見ていて面白いので、飽きずに続けることができます。

この辺り、おすすめです。

脳科学者自身が脳卒中で脳の機能が停止していく体験を語った話

ジル・ボルト・テイラーのパワフルな洞察の発作 | TED Talk | TED.com

養殖している魚の20%を鳥に食べられる風変わりな養殖場の話

ダン・バーバー: 魚と恋に落ちた僕 | TED Talk | TED.com

初級編のレッスンはものすごくつまらないので飛ばして面白そうなレッスンをやりましょう。 日本人は、中学高校で最低6年間、英語を学習しているので、話すことに対する抵抗感さえなくなれば、初歩の初歩のレッスンはやる必要がないと思います。

講師の専門分野について聞く

TEDレッスンに飽きたら、講師の専門分野について聞いてみましょう。 レッスン教材をやるよりも、深くて面白い話が聞けると思います。

講師は大体が大学生なので、自分の専門分野を持っています。 心理学、会計、経営学や起業について勉強している人もいました。

最近僕は、政治学を専攻していた講師に政治の話を聞いています。 難しすぎて目が覚めます。

まとめ

私の場合、Skype英会話を始めたことで、英語を話すことに抵抗感がなくなりました。 Skype英会話は安くて、恥ずかしくなく、低いモチベーションでも続けることができます。 ただし、講師の質がバラバラで、高レベルの英語学習には向いていないので注意が必要です。

発音レッスン、TEDレッスン、講師の専門分野について聞く、という順でレッスンを受けると、飽きずに続けられるような気がします。

分離型キーボードを買ったら肩こりが改善した話(Mistel Barocco)

最近、肩こりが悩みだったのですが、分離型キーボードを買ったら改善しました。

買ったのは、Mistel Baroccoというコンパクトなタイプの分離型キーボードです。*1

このような感じで仕事をしています。

なぜこれを選んだの?

手軽に入手でき、Happy Hacking Keyboardに使用感が近そうな分離型キーボードだったからです。

握力王の記事を読んでからErgoDoxも気になっていたのですが、入手と習得に時間がかかりそうだったので見送りました。

良かった点

胸を張って姿勢良くコーディングができるためか、肩こりが軽くなりました。 特に肩の前側から胸にかけての張りが少なくなったように感じます。

また、Macを中央に置いて、トラックパッドと併用できるのが便利でした。

キーボード自体の使用感もなかなか快適で、Happy Hacking Keyboard を使ったことのある方は1日使えば問題なく移行できると思います。

いまいちだった点

キーマップに癖があり、またカスタマイズの難易度も高かったです。

キーマップに関しては、~(チルダ)と`(バッククオート)の入力に癖があり、それぞれShift+ESC、Fn+ESCという入力に慣れるまでに時間がかかりました。 カーソルキーもFnとの組み合わせで入力が必要です。

カスタマイズに関しては、説明書を読んだだけではいまいち分からず、こちらの記事が大変参考になりました。

右CommandキーがFnキーとして使われており、Fnキーを他の箇所に移動させてからでないと右Commandキーをリマップすることができず、小一時間悩みました。

合わせて買った方が良いもの

左右のキーボード同士を繋ぐMicroB-to-MicroBケーブルがスパイラル式で微妙なため、ストレートの長めなタイプのケーブルを買った方が快適に使用できると思います。

また、姿勢良くコーディングしようと思うと、予想以上に手首に負担がかかるため、パームレストの導入をオススメします。 FILCOの分離型ウッドパームレストのSサイズがぴったりの大きさでした。

まとめ

分離型キーボードのMistel Baroccoを買ったらコーディング時の姿勢が良くなり肩こりが改善しました。

Macを真ん中に置きつつトラックパッドを併用できるのが便利です。

若干キーマップに癖があり、カスタマイズの難易度も高いのは慣れと注意が必要です。

MicroB-to-MicroBケーブルと、パームレストは合わせて購入するのをオススメします。

FILCO ウッドパームレストS 分離型(2分割) FWPR/S

FILCO ウッドパームレストS 分離型(2分割) FWPR/S

*1:赤軸にしました