読者です 読者をやめる 読者になる 読者になる

Perlがくしゅう帳(Rubyも)

プログラミングの勉強会の参加記録や学んだことなど。 twitter ID : @tomcha_で活動しています。 最近は主にPerl関連の勉強会やコミュニティに参加しています。移転前のブログはこちら->http://ruby.doorblog.jp/

ぬか漬のすゝめ

Perl Perl入学式

Perl入学式in大阪でサポーターをしているtomcha_です。 アドベントカレンダーというものに人生初参戦してみました。 さて、お題を何にしようかと少ない引き出しを探りながら色々思案しまして決まったのがこちら。

ぬか漬をつけよう!

です。

地元を離れて花の都でひとり暮らしする若手ITエンジニアのみなさん、食生活気にしていますか?野菜を食べていますか?寿司ばっかり食っていませんか?
若いうちから暴飲暴食して食生活に気を付けないと、ちょっと年を取ったらやれ痛風だの、高血圧だの、糖尿病だの、虚血性脳心臓疾患だの、取り返しがつかなくなるかもしれません。
かといって、エンジニアの方は仕事で夜遅くてなかなか自炊もできない、外食やコンビニだと野菜を食べる機会が少ない。

そんな方の為に、安くて簡単で美味しくてご飯のお供にも、ビールのおつまみにも(もちろん衣笠丼の付け合せとしても)なる自家製ぬか漬の紹介をしてみようと思います。

何を用意すれば良い?

用意するものは至ってシンプル。 - ぬか漬容器 - ぬか漬容器は琺瑯製がおすすめ。プラスチック製は匂いが外に漏れるらいしです。また、長くぬか床を使うにつれ、野菜の水分がぬかに出てくるのでその対策のため「水取り器」が必要です。容器と水取り器がセットになった、一人用に丁度良いのがこちら。私もこれを使ってます。

野田琺瑯 ぬか漬け美人 TK-32

野田琺瑯 ぬか漬け美人 TK-32

  • 米ぬか
    • 普通にスーパーなんかで売ってます。が、全国チェーンのめし屋、「◯◯(地名が入る)食堂」(まいどおおきに食堂)では、店舗で精米しているところでは無料で新鮮なぬかを持ち帰りできたりします。上記の容器なら、1.5kgが適量です。
    • ぬかに対して13%、約200gくらいです。
  • くず野菜
    • キャベツや白菜の切れ端、人参や大根の切れ端など、最初のぬか床環境構築時に必要です。
  • 昆布、鷹の爪
    • 少量で良いので、スーパーで買いましょう。昆布は5cm×5cmが4〜5枚、鷹の爪は2〜3本くらいです。

環境構築編

プログラミング開発も、ぬか漬けも、最初の環境構築が大事です。最初の準備は半日もかからないので、休日にやっちゃいましょう。そう、新しいバージョンのPerlをマシンにインストールしている待ち時間とか使えますね。

  1. 水1.5リットルを沸かし、塩を全て溶かしてから冷まし、食塩水を作ります。
  2. ぬか漬容器にぬか1.5kgを全部入れ、冷ました塩水を少しずつ入れて手で混ぜていきます。
  3. 塩水を全部入れ終わり、ぬか床のやわらかさが均一になれば、くず野菜、昆布、鷹の爪を入れて軽く混ぜてならします。
  4. ぬか床の初期値設定は完了しました。ここから、くず野菜で発酵させ、ぬか床を本番環境に変化させます。

さて、ここからの注意点ですが、おすすめは「容器を冷蔵庫の野菜室で寝かす」です。本番環境も同じですが、ぬか漬けが早く漬かるのは常温下での保管です。しかし、ぬか床は定期的に混ぜて上層と下層を入れ替えないと腐って駄目にしてしまいます。常温なら環境構築時で1日2回位、本番環境で1日1回のペースで混ぜる必要がありますが、エンジニアのみなさんは仕事に勉強会に懇親会、何かと忙しく「そんな手間なことやってられん!」のではないでしょうか。
その点、冷蔵庫の中なら、漬かるペースは遅くなりますが、手入れのペースも長い間隔で十分になるので、こちらの方がおすすめです。冷蔵庫保管なら、まず2週間から20日ほど、1日1回混ぜるペースで寝かせます。くず野菜は1周間くらいで交換してもよいでしょう。
そして、2週間ほど頑張ればぬか床のデプロイです。本番環境に育ったぬか床にお好きな野菜を漬けていきましょう。

野菜の漬け方、手入れ

野菜の種類、浅漬・古漬けの好みにもよりますが、大体の目安です。

  • きゅうりは水で洗って軽く塩で揉んで漬けます。塩分控えめが良いので、塩で揉まずにそのまま漬けても構いません。
  • 茄子は、「へた」の部分を包丁でそぎ落とし、茄子の先端からへたに向かって半分に切り込みを入れ、間にぬかを挟むようにして漬けます。
  • 長芋は、まず根っこをガスコンロで軽く炙って燃やします。皮は剥かずに縦に切って、漬けます。
  • おおむね冷蔵庫保管で3日くらい漬かると食べごろです。あと、オクラとか白菜の芯も美味しいです。ぬか床を混ぜるのも冷蔵庫保管なら3日に1回ペースで大丈夫です。

f:id:tomcha0079:20141206170942j:plain

f:id:tomcha0079:20141206171040j:plain

f:id:tomcha0079:20141206171454j:plain

f:id:tomcha0079:20141206171812j:plain

手順とサイクルに慣れてくれば、簡単に野菜生活が満喫できます。あったかいご飯と味噌汁と漬け物、最高の和食ライフです。

あれ、Perlの話がない?

ぬか漬けライフの1番の問題点、それは「可視性」です。
ぬか漬けを漬けている琺瑯の容器を冷蔵庫の野菜室にしまっていると、ついつい「あれ?今何の野菜漬けてたっけ?いつ漬けたんだっけ?」と忘れてしまう事がしばしば。そんなぬか床を可視化するプログラムをPerl入学式で学習した内容と、第5回、6回で学習する予定の内容+αで作ってみました。

今まで習った事+αでぬか床を再現してみる

まずはプログラムのイメージ像を考えます。 - ぬか床の状態(何をいつ漬けたか)を1つのテキストファイルに書き込む。1行に1野菜+日付、古い順番に行を足していく。 - 上記のファイルを「読み込む(中の状態を確認する)」「追記する(新しい野菜を漬ける)」「任意の行を抽出(削除)する(ぬか床から漬かった野菜を取り出す)」

これでぬか床の状態を管理できそうですね。

それぞれの機能は、3つのサブルーチンにして、必要な時に読み出す様にしてみました。引数に「テキストファイルのパス」や「野菜の情報」を渡しています。受け渡しにはリファレンスを使い、データを弄る時はデリファレンスしています。超短いコードなので、使い処を掴んでもらえれば幸いです。

で、perl入学式の資料にはない+αがこちらです。

ファイルの読み書き

open関数を使って、ファイルの読み書きをしています。ファイルの操作は昨年度、今年度は学習内容には含めていませんが、初年度の資料に解説が書いてありますので、参考にしてみて下さい。 2012年の第5回資料

配列の操作(splice関数)

Perl入学式の資料では出てこなかった配列操作のsplice関数を使っています。push,pop,shift,ushiftは配列の先頭と末尾のデータを追加したり取り出したりする関数でしたが、splice関数は、配列の中のデータを削除できる関数です。 書式は、 splice(対象の配列, 削除を開始するインデックス, 何個削除するか) です。

モジュール化

Perl入学式では、書いたコードの拡張子は「.pl」でした。また、書いたコードを実行するには、>perl hoge.pl で実行しました。しかし、前回習ったサブルーチンで一部の機能を本体のプログラムから切り離したならば、その切り離した部品をモジュールにして、色んな場所で使い回す方法があります。具体的には、ファイルの拡張子を「.pm」にして、使おうとするプログラムのファイルで「useする」です。

今回は、実際に3つのサブルーチンがモジュールとして使えるか、「test.pl」から使ってみました。

use lib "./lib"; の行でモジュールとして読み込む「nukaduke.pm」が置いてあるパスを読みに行けるようにしています。そして、 use nnukaduke; の行で「nukaduke.pm」を読み込んでます。拡張子.pmは書きません。 プログラムの中でpickle、lookin、takeoutのサブルーチンを呼び出してますね。

これから習う事でwebサービスにしてしまう

で、せっかく3つのサブルーチンをモジュール化したので、第5回以降で習う予定の「Mojolicious::Lite」というwebアプリを作るモジュールと食い合わせて、webサービス化してみました。

ソースコードGithubコチラに公開してあります。コード量もものすごく少ないしょうもない簡単なwebアプリなので、コードもすぐ読めると思いますので、参考にしてもらえると幸いです。

で、とりあえずwebアプリとして急遽公開してみました。(超思いつき&締め切りギリギリ)

俺のぬか漬け

http://www.tomcha.net:8080

今のところの問題点。
俺のぬか漬けを俺以外の誰かが勝手に漬けたり取り出したり出来てしまう!
野菜をクリックしたり、取り出すボタンを押すなよ!絶対に押すなよ、押すんじゃないぞ!

まぁ、ちゃんとサービスにするには、twitter認証とかでユーザー毎の管理にするとか色々付け足していく必要がありますね。

まとめ

hachiojipmの@uzullaさんが先日ブログで書かれていた様に、「とりあえず何か作ってみる精神」がとにかく大事ですね。こんなクソアプリでも手を動かして何か完成させる体験が次のステップに繋がっていくのだと思います。

Perl入学式に1年参加すれば、この様な簡単なwebサービスが作れる知識はつくので、今年度あと2回の講義、頑張っていきましょう!
また、in大阪では、スピンオフ企画として第1回なにわPerlを12月13日土曜日に開催します。 ゆるーい初心者向けの企画なので、ぜひご参加下さい。興味があればぬか漬アプリの説明とかもいたします。

さて、明日のPerl入学式アドベントカレンダーはin東京サポーターのかるぱねるらさんで、タイトルは「perldoc便利ってはなし」です。perldoc、自分は全然使えてないのでとても楽しみですね!