第1回 製麺会結果

 大人8人、子供4人、小麦粉が6kg+α出て、6000円の収入(自分と風邪で参加できなかった妻子分除く)。収支とんとんであった。製麺初心者や小さなお子様が参加する場合に必要となる時間とエネルギーの見積もりが甘かった。会場で試食に供したのはあらかじめ仕込んでおいた1kg分だけだった。

なお会費・食材費別とし、会費は大人1人500円(乳幼児無料)・小麦粉は500円/1kgに設定した。 またもし余れば、小麦粉は500円/1kg・取り粉は100円/250gで参加者に分けることにした。

 

結構前の話を振り返って書いているせいか、まあこんなものではないかという気がする。

製麺会準備 その2

■ 概要

 製麺会の会場を押さえ、小麦粉と運搬用品の発注を完了し、麺打板と麺打棒の目当てをつけた。外堀は埋まった。ただ相変わらず費用は気になる。

■ 会場の確定

自宅近くの文化センターに手狭ながら調理室があったので、そこを借りることにした。費用は予約時前払いで1300円だった。ちょうど誰も使っていなかったので下見させていただき、下記を確認した。設備にはやや年季が入っているものの、まず問題なさそうである。

  • 車道から調理室まで段差なしでアクセス可能(エレベータあり)
  • ガス台×3、流し×3、冷蔵庫×1が壁際および講師机にある
  • 調理台は講師用を除いて6台。麺打ちに耐える強度と、麺打板を置ける広さがある
  • 一般的食器類・調理用具があり、特に寸胴が備品としてあるのがポイント高い
  • ホワイトボードあり(書けるボードマーカーがあるかは見忘れた…)
  • うどん踏み用スペースはないが、机を動かせるので、部屋の隅にござやビニールを敷けばOK

しかし予約のためには直接窓口まで行く必要がある、というのは正直面倒であった。あと駐車場がないので、自動車利用の参加者が多いと厳しいかも。

■ 小麦粉の調達

日清製粉のWebサイトによれば、小麦粉は500gで大体1リットルとのこと。打ち粉含めて14kg買うと28リットルになる。適当に買う塩一袋とあわせてコンテナ一個くらいで、まあ屋内保存できそう。

というわけで岡坂商店宛に赤丸金魚5kg×2、打ち粉澱粉 二番2kg×2と、ついでに鎌田醤油 だし醤油 500mlを発注した。発送方法として「常温商品限定おまかせ配送」にすると送料を数百円ほどけちれるようなので、それを選択した。合計5300円だった。 

■ 機材の調達

巻き込んだ先輩と相談したところ、麺打板・麺打棒は新調となった。近所のホームセンターで見繕ったところ、板は910*910*4.5mmで1200円 、丸棒は910*30mmΦで800円くらいだった。板については、ラワン材ベニヤを使うと生地にケバが混じってしまうことがあるので、シナ合板を選ぶことにした。一方、自宅内での保管の都合で、板の高さは890mmに抑える必要がある。2cmだけ自分で切り取るとか面倒すぎるので、これは買うときの有料オプションで切ってもらうことにする。

一方、台車と折りたたみコンテナ×2として、Amazonで安く売られていた中山トラスコのを買った。合計7200円だった。

www.amazon.co.jp

www.amazon.co.jp

台車のハンドルを立てた状態で折りたたみコンテナを載せると、コンテナの角が微妙にはみ出すが許容範囲。高さ方向に余裕があるのでコンテナの少なくとも片方は50Lタイプでも良かったかもしれないが、自宅内で他の用途に使っているコンテナと寸法を合わせておきたいという事情もあり、ひとまずこれで良しとした。

なお台車はたたんで専用カバーを被せてみたら、玄関先にほどよくまとまった。

■ どんぶり勘定

経費と設備をあわせて、ざっくり1万6千円を支払った。これから小物を買い足していくとして、当初見積もりの2万円は良い線かもしれない。

ただ設備分をどう費用負担するかは製麺会が軌道に乗ったら決めようと思う。初回参加者で全部払うのはフェアじゃない一方、趣味とはいえ赤字運営では長続きしないので…。

製麺会準備

■ 概要

十年来、手打ちうどんを趣味で作る会に参加してきたが、主催者の転勤に伴ってしばらく休止していた。しかし日々製麺欲が高まってきて抑えられなくなったので自分で主催することにし、会場・食材・機材の準備に着手。とりあえず数家族程度の小規模開催には差し支えなさそうな見通しが立った。見積費用は二万円。思ったより高かったが、実行に移したい。

ただ参加者に費用負担をお願いするからには、忘れ物防止のためチェックリストを作らないとダメそう。小物多すぎる。

■ 会場選び

自分と参加者の両方の都合から会場は都内に設定する。しかし都区内のレンタルキッチンは一回15000円とかが相場らしい(参考)。恐ろしい。食材価格に比べて桁で高く、話にならない。というかその値段だったらホテルの一室でやった方が安いのでは…。ほら製麺だけなら火を使わないし。

それはそれとして、行政管理の文化センターの類にある調理室を狙うことにする。区にもよるが、予約作業が繁雑(Webはもとより電話でも予約受付不可だったり…)な代わりに一回2000円程度で済むようだ。ひとまず全参加者に対する区内在住/在勤メンバの割合について厳しいルールのないところを絞り込んでおく。

【ざっくり見積:3000円】

■ 食材選び

うどんの基本は小麦粉と塩、水であって、他に必要なのは打ち粉だけである(参考:手打ちうどんの作り方)。

小麦粉はこれまでの主催者が用意してくださっていた中でも標準的な「金魚」を使うことにする。打ち粉と合わせて、発注先はこれまた前・主催者御用達の「岡坂商店」。香川まで買い出ししなくて済む世の中は大変便利である。あ、塩はその辺のスーパーで一番安いのを買う。

www.udon2ban.com

分量は参加予定者の数と自宅収納スペースとに鑑みて、小麦粉10kg+打ち粉4kgと仮定する。卵やネギなどのトッピングや、うどん醤油など調味料の類は後で考える。

【ざっくり見積:5000円】

■ 機材選び

まず製麺に直接必要な機材は以下の通り。

  • 製麺包丁(福井工作所の手切包丁が理想)
  • 麺打板(1m×1m×0.5cmくらいのベニヤ板)
  • 麺打棒(1m×2cmΦくらいの木の棒)
  • ビニール袋(破けないよう厚手の45リットル程度のサイズ)
  • 料理秤(2kgまで対応できること)

手切包丁を新品で買うと七万円くらいする。以前はもう少し安かった印象があるが…まあ需要と供給の大人の都合もあるのだろう、仕方ない。そこで大昔に当該包丁とともに活躍した先輩に声をかけて貸していただけないかご相談。ありがたいことに包丁・板・棒のセットを参加者として持って来ていただけそうとのお返事。これで一番の山を乗り越えられたといえよう。もっとも厚手のビニール袋は見つけにくいので地道に近所の店屋を回る必要はある。

 

次に製麺会に必要またはあると便利なのは以下の通り。

  • 運搬用台車・搬送用折りたたみコンテナ
  • ゴミ袋
  • 麺入れタッパー(屋台で多用されるような薄手のプラパックでも可)
  • キッチンタイマー
  • 打ち粉用粉ふるい・ちりとり・受け皿
  • 麺洗い用のザル(プラスチック製で受け皿とセットならベター)
  • 布巾
  • 滑り防止ゴムマット(ベニヤの麺打板が机の上で暴れないように)
  • 爪楊枝(生地に空気が入ったときに穴を開けて逃がす)
  • 輪ゴム
  • 鉄砲ザル
  • 寸胴と、それにあわせた長めの菜箸
  • 手洗い石けん・食器洗剤

とにかく安くあげることを重視するので、都区内の地の利を活かして、借りる料理室にありそうなものとか、その近くの店で買えそうなものは当日調達する作戦を採る。大体百均で揃えるとして、台車とコンテナさえあれば企画が当日全焼することもないだろう。都区内は車事情が厳しいことから、台車をはじめとした運搬用具には多少お金をかけても引き合うと睨んで品定めする(大物なので家族の承認待ち)。

しかし台車高いなあ…。使用頻度は低いので収納性さえ良ければ助かるのだが、そういう品はあまりないようだ。

【ざっくり見積:10000円】

■ どんぶり勘定

経費が8000円、設備が10000円で、切り上げて合計二万円。包丁のあてはあったものの、正直思ったより高くなった。

これで大人が10人参加するとして、参加費は二千円となる。経験によれば一桁高い。切りよく千円くらいに収めたい。というかこれまで参加してきた会は500円くらいだった。経費だけでも800円なのに、なんだあれ魔術か。

 

 

まだまだ修行が必要である。

PyAutoGuiを試す

■ 概要

本来やりたいことが行き詰まったのでGUI操作自動化の味見をした。

Windows7(32bit) + Python3.6.1とでPyAutoGuiを利用して、単純なマウス操作とキーボード操作ができることを確認し、おおむね満足した。

■ 参照記事

公式(多分) の最新ドキュメントと、下記blog記事を参照してさっくり試した。

whitecat-student.hatenablog.com

www.slideshare.net

 

■ 試行手順

インストールは"pip install pyautogui"で一発。

まずはインタラクティブシェルでマウスカーソルを画面左上に動かしてみる。

  >>> import pyautogui

  >>> pyautogui.moveTo(x=100, y=200)

うまく動いた。

画面サイズの最大値は"pyautogui.size()"で求まるので、後は適当に座標計算すればどこにでも飛べるはず(マルチディスプレイ環境でどうなるかは不明)。

 

キーボード操作も模擬できる。使えるキー名は"pyautogui.KEYBOARD_KEYS"を表示させることでわかる。というわけで試す。

  >>> pyautogui.press(["ctrl", "alt", "delete"])

  >>> pyautogui.hotkey("ctrl", "alt", "delete")

…どちらもうまくいかない…。特殊キー操作だからダメなのか?

  >>> pyautogui.press("a")

は当然のように期待通り動いた。

  >>> pyautogui.press("numlock")

も動くので、なんちゃってLチカもできる。

 

とりあえず初回の試行としては満足した。

ただ、他アプリ操作は自前環境なら起動時間待ちなど試行錯誤でどうにかなりそうだが、Win32API利用なしで一般化できるのかは今後の課題。 公式ドキュメントなどに記載があるように、バグって暴走するのも怖い。

また"pyautogui.locateOnScreen()"を使うと、与えた画像ファイルと一致する画面表示座標を返してくれるようだが、透過画像に対してはうまく行かないことがあるようだ。ブラウザ上の透過画像をファイル保存して与えてみたが、Noneが帰ってきてしまった。このあたりは割り切るべきなのかもしれない。

 

我が家に地球儀がやってきた

■ 概要

「リプルーグル 地球儀 クランブルック型 アンティーク 日本語版 31470」を入手した。大変楽しい。

f:id:Huck:20170820165130j:plain

■ 入手までの四方山話

子供の頃から地球儀は好きだった。できれば東京大学総合研究博物館にある直径数メートルの巨大地球儀を自室に置けたらどれほどかと思う。ただ自室に置くとすると、サイズ選定は将来の生活スタイル変更も織り込んで慎重に行う必要がある。

というわけで、形式選定。Webにはニッチな情報がなく、限界を感じる。とりあえず近所の丸善で地球儀フェアをしていたときに現物チェックし、判断の一助とする。

形式が決まっても、今度は英語版と日本語版の間で迷う。日本語版は古いのが実家にあるから英語版に挑戦してみたい反面、Web上の画像を比較する限りでは、可読性の点で日本語版の方が明らかに優れている。悩む。しかし悩み抜いた末、英語版がヤードポンド法準拠と知って切り捨てる。山の高さや海の深さがフィート表示って、メートル法で生活している人にとってそれはどうなんですかね。

 

■ 入手後のあれこれ

所望の品は、結局日本半周して我が家にやってきた。通販の定めとはいえ複雑なものを感じつつ開封の儀を執り行う。おお、なかなか良いではないか。設置性に一抹の不安を感じてはいたが、台座のサイズがさほどでもなかったので、結局問題なかった。

そうして世界中眺め回しているうちに、北極点にタイムスケールがあることに気づいた。このスケールを回して、現在地の時刻に合わせれば、各緯度の時間がわかるという原理的なスケールである。国や地方によって標準時は異なるが、これはこれでわかりやすいので良い。子供への教育の一助にもなるだろう。

 

ただ全てが素晴らしいわけではない。現在地から見た東西方向の感覚は、目の錯覚の関係か、どうも地球儀より正距方位図法の方がしっくりくるようだ。これは電波伝搬を考える上で 少々苦しい。十字シールを作って地球儀に貼れば良いという話題も目にしたが、率直に言って美しい解とは思えない。つまり、二次元平面の地図にも、地球儀にも、それぞれ見方として優れているところがあるのであって、地球儀があれば地図は不要と言うことにはならないわけで、まあ両方使い分けましょうというのが落としどころのようである。

 

ただそれでも私は地球儀が好き。

 

あ、地図は地図で大好きですよ。比べるのが野暮と言うことに今更気づいただけ。地球儀を眺めて、気になった土地をWeb地図や航空写真で見直してみると、新たな発見あるある。

地球儀をくるっと回してたまたま停まった土地、たとえばミクロネシアのサワタン島とかいかがでしょうか。Web上の写真を見ながら、そこにどうやって行けば良いのかとか考えはじめると…。

Pythonでデジタル地図に色々プロットするための準備 その2

■ 概要

 Basemap公式サイトのインストール手順に則らず、非公式パッケージを利用したらBasemap利用環境があっさり整った。ドキュメンテーションがしっかりしていない公式サイトは滅びるべきである。

■ はじめに

公式の説明書きにしたがってうまくいかなかった上にストレージ容量を無駄に食いつぶされたので、ひとまず余計なものを消しにかかる。

…と思ったら"OSGeo4W"のアンインストーラが見当たらない。スタートメニューにあるsetupプログラムからはインストールしかできない。かといってWindows標準の「プログラムのアンインストール」に項目があるわけでもない。酷い。今時のインストーラならもう少し気のきいた振る舞いをして欲しかった。しかし仕方ないので直接ファイルを削除。レジストリ環境変数は特に設定されていなかったのでそのまま。

 ■ 再出発

もう公式は信じられないので、下記サイトを参考に非公式wheelからのpyprojとBasemapのインストールを試みる。

blog.livedoor.jp

 

% pip install pyproj-1.9.5.1-cp36-cp36m-win32.whl

% pip install basemap-1.1.0-cp36-cp36m-win32.whl

 …両方とも特にエラー無く終了。昨日の苦労は一体…。

 

■ 備忘

"pip list"した結果は下記の通り。備忘のため記録。

basemap (1.1.0)
cx-Freeze (5.0.2)
cycler (0.10.0)
flake8 (3.3.0)
matplotlib (2.0.2)
mccabe (0.6.1)
numpy (1.13.1)
olefile (0.44)
Pillow (4.2.1)
pip (9.0.1)
pycodestyle (2.3.1)
pyflakes (1.5.0)
pyparsing (2.2.0)
pyproj (1.9.5.1)
pyshp (1.2.11)
python-dateutil (2.6.1)
pytz (2017.2)
pywin32 (221)
selenium (3.4.3)
setuptools (28.8.0)
six (1.10.0)
wxPython (4.0.0b1)

Pythonでデジタル地図に色々プロットするための準備 その1

■ 概要

 アーアアアアアアア!アーグブイ!アーグシー!

■ はじめに

ざっくり調べたところ、2017年7月現在、Pythonでデジタル地図を扱うには"basemap"パッケージが主流のようだ。他にはイギリス気象局がリリースしている"Cartopy"がある模様。ただ今回はまず初めての準備なので、主流に合わせていく。

興味をそそられる例を挙げていて、説明も必要十分そうに見えた下記サイトを参考に進めることにした。

qiita.com

qiita.com

basemapやcartopyで地図上でplot | mwSoft

 

 

■ 前座:各種パッケージインストールは多分成功

ほぼPython3.6.1(Windows7, 32bit)入れただけの環境から出発する。

インストール手順は公式を参照するのが最善という経験則から、この時点では日本語解説記事はまだ参考にしない。まずはグラフ描画ライブラリ"matplotlib"から。

% pip install matplotlib

で下記パッケージが一度に入った。

  • cycler-0.10.0
  • matplotlib-2.0.2
  • numpy-1.13.1
  • pyparsing-2.2.0
  • python-dateutil-2.6.1
  • pytz-2017.2

numpyは1.2.1より新しいものを入れろ、と公式には書いてあったが、1.13.1って新しいと見ていいのかな?小数点表記内の桁上がりでバージョン表記されるといつも迷う。

次に"PROJ4"と"GEOS"をインストールする。"pip search geos"とやると*geos* 0.2.1が入るだろうことがわかるが、最新のリリースは3.6.2なので罠だろう。こういうのやめてほしい。

Windowsインストール用バイナリを探すと、どちらも"OSGeo4W"の一部として配布されているようだ。これだと今使わないものまで一緒に入ってくる気がしたが、他に妙案も出なかったのでWeb install。カスタムインストールとして、ライブラリ名検索窓に"PROJ4", "GEOS"と入れてフィルタされたものだけチェックして実行。関連パッケージ含めてインストールには少々時間がかかった。というかPython本体とか色々入れられていたような…システムディスクのSSDがだいぶ圧迫されてきたぞ。

さておき、オプション扱いされていたが必要そうなので画像処理ライブラリ"Pillow"も入れておく。

% pip install pillow

これは簡単。

■ 本題:basemapインストールに失敗

いよいよbasemap本体のインストールに取りかかる。

公式の説明書きにはWindowsインストーラバイナリがあるかのように書かれているが見つからないので大人しくソースコードを入手してビルドする。GitHubのリポジトリから延々110MBダウンロードして、setup.pyにgeos_c.hの一つ上のディレクトリ階層を追記してから

% python setup.py install

を実行。

No module named 'numpy.distutils._msvccompiler' in numpy.distutils

(中略)
error: Command "cl.exe (中略) /Fobuild\temp.win32-3.6\Release\src/_geoslib.obj" failed with exit status 127

 

 "numpy-1.13.1+mkl-cp36-cp36m-win32"を代わりに使ってみても状況は変わらず。次回持ち越しとする。

■ 所感

最新のPythonで気軽に何かやってみたいと思ったとき、関連パッケージがpipで扱われていなかったらいったん立ち止まるべきなのかもしれない。pip偉大。