ひがきの日記

2018-03-23

桜川本店4個セットの組み合わせ

大阪カヌレ専門店カヌレステマ企画 第3弾。

堂島店ではホワイトデー需要も終わり落ち着きを取り戻した感があるが、桜川本店では相変わらず春休み需要に沸いているようだ。

Instagram桜川4個セットを投稿している人がいて、桜川店での4個セット価格が570円と判明した。

堂島店に引き続き桜川本店も 4個セットの組み合わせを表示してみる。

menu = <<EOF.lines.map{|l| l.chomp.split(/\s+/)}.each_with_object({}){|(v,k), _| _[k] = v.to_i}
120 しろ
130 ほうじ茶
130 抹茶あんこ
130 黒糖くるみ
150 珈琲
140 あんず
160 ベリーベリー
170 ばなナッツ
EOF

price = 570

combinations = menu.keys.combination(4).to_a
set4p = combinations.select{|caneles| caneles.map{|c| menu[c]}.sum == price}
  .select{|caneles| seasons.any?{|season| caneles.include?(season)}}
  .reject{|caneles| seasons.all?{|season| caneles.include?(season)}}

set4p.size                      # => 10
combinations.size               # => 70

set4p
# => [["しろ", "ほうじ茶", "珈琲", "ばなナッツ"],
#     ["しろ", "抹茶あんこ", "珈琲", "ばなナッツ"],
#     ["しろ", "黒糖くるみ", "珈琲", "ばなナッツ"],
#     ["しろ", "珈琲", "あんず", "ベリーベリー"],
#     ["ほうじ茶", "抹茶あんこ", "珈琲", "ベリーベリー"],
#     ["ほうじ茶", "抹茶あんこ", "あんず", "ばなナッツ"],
#     ["ほうじ茶", "黒糖くるみ", "珈琲", "ベリーベリー"],
#     ["ほうじ茶", "黒糖くるみ", "あんず", "ばなナッツ"],
#     ["抹茶あんこ", "黒糖くるみ", "珈琲", "ベリーベリー"],
#     ["抹茶あんこ", "黒糖くるみ", "あんず", "ばなナッツ"]]

全8種を使用していたが、頻度はバラバラだった。

caneles = set4p.flatten.sort
caneles.uniq.size    # => 8

puts menu.keys.map{|c| "%4d %s" % [caneles.count(c), c]}
# >>    4 しろ
# >>    5 ほうじ茶
# >>    5 抹茶あんこ
# >>    5 黒糖くるみ
# >>    7 珈琲
# >>    4 あんず
# >>    4 ベリーベリー
# >>    6 ばなナッツ

2018-03-19

【訂正】ホワイトデーの組み合わせ

ホワイトデーも終わり、そろそろカヌレも落ち着くかと思いきや、春休みということで連日賑わっているようだ。

前回「ホワイトデー4個セットの組み合わせを洗い出す」に間違いがあることが分かった。

カヌレ堂では、毎月フレーバーの変わる 1ヶ月限定のカヌレが存在する。

4個セットには必ず限定カヌレのどちらか 1つが入っていたらしい。*1

4個セットの組み合わせは以下のように訂正する。

seasons = %w[ベリーベリー ばなナッツ]

combinations = menu.keys.combination(4).to_a
set4p = combinations.select{|caneles| caneles.map{|c| menu[c]}.sum == price}
  .select{|caneles| seasons.any?{|season| caneles.include?(season)}}
  .reject{|caneles| seasons.all?{|season| caneles.include?(season)}}

set4p.size                      # => 8
combinations.size               # => 70

set4p
# => [["しろ", "くろ", "千葉落花生", "ばなナッツ"],
#     ["しろ", "ほうじ茶キャラメル", "千葉落花生", "ばなナッツ"],
#     ["しろ", "きなこ五穀", "千葉落花生", "ベリーベリー"],
#     ["しろ", "抹茶ピスタチオ", "千葉落花生", "ベリーベリー"],
#     ["くろ", "ほうじ茶キャラメル", "きなこ五穀", "ばなナッツ"],
#     ["くろ", "ほうじ茶キャラメル", "抹茶ピスタチオ", "ばなナッツ"],
#     ["くろ", "きなこ五穀", "抹茶ピスタチオ", "ベリーベリー"],
#     ["ほうじ茶キャラメル", "きなこ五穀", "抹茶ピスタチオ", "ベリーベリー"]]

カヌレ 4個の合計が 600円になる組み合わせは 8通りに減った。

caneles = set4p.flatten.sort
caneles.uniq.size    # => 8

puts menu.keys.map{|c| "%4d %s" % [caneles.count(c), c]}
# >>    4 しろ
# >>    4 くろ
# >>    4 ほうじ茶キャラメル
# >>    4 きなこ五穀
# >>    4 抹茶ピスタチオ
# >>    4 千葉落花生
# >>    4 ベリーベリー
# >>    4 ばなナッツ

しかし、全8種が使われており、使用頻度も均等であった。

*1:両方入ることはないだろう。

2018-03-15

ホワイトデー4個セットの組み合わせを洗い出す

大阪カヌレ専門店「カヌレ」では、8種類のカヌレを販売しており、1個単品から購入できる。*1

ところがホワイトデー*2期間は単品では購入できず、8個, 16個, 24個の箱入りか、4種ランダムのセットしか販売していなかった。*3

4種入りは 600円で販売されており、購入してみるとセットに含まれるカヌレ 4個の合計金額はちょうど 600円であった。*4

つまり本当にランダムではなく、合計金額が 4個で 600円になる組み合わせが何種類かあるようだ。

堂島*5での組み合わせを全て表示してみた。

menu = <<EOF.lines.map{|l| l.chomp.split(/\s+/)}.each_with_object({}){|(v,k), _| _[k] = v.to_i}
120 しろ
140 くろ
140 ほうじ茶キャラメル
150 きなこ五穀
150 抹茶ピスタチオ
170 千葉落花生
160 ベリーベリー
170 ばなナッツ
EOF

combinations = menu.keys.combination(4).to_a
set4p = combinations.select{|caneles| caneles.map{|c| menu[c]}.sum == 600}

set4p.size                      # => 12
combinations.size               # => 70

set4p
# => [["しろ", "くろ", "千葉落花生", "ばなナッツ"],
#     ["しろ", "ほうじ茶キャラメル", "千葉落花生", "ばなナッツ"],
#     ["しろ", "きなこ五穀", "千葉落花生", "ベリーベリー"],
#     ["しろ", "きなこ五穀", "ベリーベリー", "ばなナッツ"],
#     ["しろ", "抹茶ピスタチオ", "千葉落花生", "ベリーベリー"],
#     ["しろ", "抹茶ピスタチオ", "ベリーベリー", "ばなナッツ"],
#     ["くろ", "ほうじ茶キャラメル", "きなこ五穀", "千葉落花生"],
#     ["くろ", "ほうじ茶キャラメル", "きなこ五穀", "ばなナッツ"],
#     ["くろ", "ほうじ茶キャラメル", "抹茶ピスタチオ", "千葉落花生"],
#     ["くろ", "ほうじ茶キャラメル", "抹茶ピスタチオ", "ばなナッツ"],
#     ["くろ", "きなこ五穀", "抹茶ピスタチオ", "ベリーベリー"],
#     ["ほうじ茶キャラメル", "きなこ五穀", "抹茶ピスタチオ", "ベリーベリー"]]

70通りの組み合わせの中で 600円になるのは 12通りであった。

全ての種類が使われているのか。自分の好きなカヌレが 4種セットでは買えないとなると悔しいではないか。*6

caneles = set4p.flatten.sort
caneles.uniq.size    # => 8

全8種類が使われているようだ。

しかし偏りはどうか。特定の種類だけ多く含まれると、それが品切れすると 4種セットが組めなくなる。

puts menu.keys.map{|c| "%4d %s" % [caneles.count(c), c]}
# >>    6 しろ
# >>    6 くろ
# >>    6 ほうじ茶キャラメル
# >>    6 きなこ五穀
# >>    6 抹茶ピスタチオ
# >>    6 千葉落花生
# >>    6 ベリーベリー
# >>    6 ばなナッツ

使用頻度は全て同じであった。これは偶然か。狙ってやっているならスゴイ。

*1:種類ごとに単価は異なる。1個 120円から 170円。

*2:調べてみると、日本にはホワイトデーという謎の風習があるらしい。

*3バレンタインと異なり、お菓子を買い慣れていない客が多数訪れるため、選択肢を減らしているらしい。

*4:お得なセットではなく、4個を単品で購入するのと同額。

*5カヌレ堂は桜川本店と堂島店の2店舗がある。

*6:ランダムなので確実に買うことはできないが。

2014-06-07

Rails Girls Osaka にカヌレを差し入れしてみた

Rails Girls という、主に女性を対象としたプログラミングのワークショップがあり、去る 2014年6月6日・7日 大阪Rails Girls Osaka が開催された。

Rails Girls には、おやつの時間があるらしいので、例によって例のごとくカヌレカヌレを差し入れた。*1
Rails Girls Kyoto では阿闍梨餅が差し入れされたらしいので、大阪も負ける訳にはいかない。

今回は、カヌレ堂が百貨店に出展する際の雰囲気をどこまで再現できるか挑戦してみた。

f:id:mas-higa:20140607150133j:image:medium:right

ショーケースいっぱいにカヌレの並ぶ様は形容し難い。参加人数と自分のサイフを考えると、そこまでの数で圧倒することはできないのが残念。

カヌレ堂の催事では、デニムのワンピースに身をつつみ、ベレー帽をかぶったキレイなお姉さんがトングでカヌレを取ってくれる。
自分もデニムのシャツで臨んだが、ベレー帽は用意できなかった。

おっさんがカヌレを取り分けてくれても嬉しくないであろうから、トングを用意して、セルフで紙皿に取ってもらうことにした。

紙皿と紙ナプキンはカヌレ堂をイメージして未晒しにこだわった。
未晒しの紙皿はサイズのバリエーションが少なく、カヌレに対して少し大きめになってしまったのが悔まれる。

最近カヌレ堂が取り上げられた雑誌も展示してみた。
たまたま家にあったブックスタンドが黒猫のモチーフだったので、トングのスタンドも黒猫で統一してみた。
そこで止めれば良かったものを、黒猫マステ、黒猫付箋と黒猫で統一してしまったのはやりすぎた感が否めない。

用意したカヌレは全 8種類

  • しろ (プレーン)
  • ほうじ茶
  • 黒糖くるみ
  • あんず
  • 黒豆きなこ
  • 梅 (6月限定)
  • れもん (6月限定)
  • あんこ餅 (不定期限定)

カヌレ以外にも、おやつはたくさんあると聞いていたので、ひとり 2〜3 個を目安に用意したが、主催者側から ひとり 2個というアナウンスがなされた。
8種から 2個選ぶというのが、また楽しさをプラスしたのではないだろうか (と思いたい)

「若干余っていますので、おかわりをどうぞ」と奨めると何人もおかわりに来てくれた。
これは嬉しい!


参加者の声

カヌレ堂、聞いたことあって気になってたんです」
カヌレ大好きなので、帰りに買いに行きたいくらいです」*2
などなど*3

Rails Girls が、どんな雰囲気なのか分からず不安もあったが、なんとか喜んでもらえたと思う。

差し入れに関してスタッフのくにちゃんには何度も問い合わせをしてすみませんでした。
私のことは嫌いになってもカヌレ堂のことは嫌いにならないでください。


P.S.

カヌレを提供したら、さっさと帰るつもりでいたのだが、アフターパーティー & More に誘っていただいたので、あつかましくも参加させていただいた。

スタッフでもコーチでもないのにすみません。

案の定パーティーでは所在なく、ひとりもくもくと料理をいただいていたのだが、突然 参加者の女性に話しかけられた。

なんとその女性は、数年前に KOF で、私が講師をした Ruby初級者向けレッスンの受講者だったらしい。

こんなところでお会いするとは!*4

彼女が今 Rails を使っていることに、ほんの少しでも影響を与えていたとしたら、こんな嬉しいことはない。

そして彼女の一言が、今後の私にも大きく影響するんだと思う。
ほんとうにありがとう。

*1:9ヶ月ぶりのエントリがまたカヌレとは…

*2:お店では「ひがきに聞いた」と言ってもらえればスムーズに会話が進むと思います。

*3:「お店の方ですか」という想定内の質問もいただいた。従業員ではありません。

*4:この驚きと感動を素直に表現できないコミュ障ですみません。彼女にはまったく伝わっていなかったでしょうが喜んでいます。

2013-09-18

関西Ruby会議05でカヌレを配布してみた

去る 2013年8月31日、関西Ruby会議05 が開催された。

今年もスタッフとして参加し、おやつ係を担当した。


なぜおやつが必要なのか

f:id:mas-higa:20130918221729j:image:medium:right

1日中、会議に集中していては頭が回らなくなる。糖分が必要。

Minami.rb の勉強会では、毎回おやつの時間があって楽しい。美味しい。

そこで関西Ruby会議でも、おやつ配布することにした。

おやつはカヌレカヌレに決めた。


カヌレとは

フランスのボルドー女子修道院で古くから作られていた菓子。蜜蝋を入れることと、カヌレ型と呼ばれる小さな型で焼くことが特徴である。そもそもカヌレとは、「溝のついた」という意味である。外側は黒めの焼き色が付いており固く香ばしいが、内側はしっとりとして柔らかい食感を持つ。 ─── Wikipedia より

カヌレ堂とは

大阪桜川にあるカヌレ専門店。

フランス産まれのカヌレを日本風にアレンジ。

6種類のレギュラーメニューに加え、月替わりの 2種類、計 8種類のカヌレが楽しめる。

関西の IT系勉強会では、カヌレ堂のカヌレがよく食されている。


カヌレを 3個ずつ配布

全種類を一人で食べるのは多すぎる。しかし 1個だと物足りない。

多すぎず少なすぎず、3個がちょうどよいのではないか。

カヌレの種類を選べなくすることでワクワク感を演出。

どうしても違う味のカヌレが食べたければ、他の参加者と交換してもらう。

何が当たったか見せ合ったり、トレードしたりで、コミュニケーションの助けにもなったのではないか。

80人余りの参加者がカヌレの袋を除き込んでニコニコしている光景が、個人的にはとても楽しかった。


反省点

  • Ruby や関西Ruby会議とカヌレは、まったく無関係。
  • ドタキャンした人が 30人近くいて、カヌレが余った。
    • 余分に貰ってくれる人がいて無駄にならずに済んだ。
  • この企画に夢中になりすぎて、他の仕事がおろそかになった。*1

謝辞

ありがとうございました。

*1:すみません。実行委員の皆さん、すみません。

*2カヌレ堂さんもツイートを見ていたらしい