ひがきの日記

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種類

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

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


参加者の声

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

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

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


P.S.

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

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

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

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

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

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

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

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

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

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

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

2011-11-12

関西Ruby会議04で初級者向けレッスンやってきた

2011年11月11日(金)・12日(土)に関西Ruby会議04が開催された。

「会議」という感じではないが、KOF (関西オープンソース2011)というイベントの会場で開催されるということもあり、新人Rubyistを勧誘 (洗脳?) すべく初級者向けレッスンも開催した。*1

レッスン内容

  • Rubyとは?
    • 余計な記述が少なく仕事に集中できる (LL)
    • すべてがオブジェクト (OO)
  • irb の使い方
  • るりまの使い方

大クラス主義、オープンクラス、ダック・タイピングなんかも話したかったけど、時間の都合で割愛した。


課題

初心者が対象なので FizzBuzz を出題した。

解答例1

まず一般的な回答例

(1..30).each do |i|
  case
  when i % 15 == 0 then puts "FizzBuzz"
  when i %  5 == 0 then puts "Buzz"
  when i %  3 == 0 then puts "Fizz"
  else                  puts i
  end
end
解答例2

TAをしてくれたアジャイルかわばたさんがワンライナーで書きたいと言って、その場で書いたもの。*2

(1..30).each{|i|puts i%15==0? "FizzBuzz": i%3==0? "Fizz": i%5==0? "Buzz" : i}

以下むりやり考えた逸般的な解答例。

解答例3

0 から 30 までの文字列配列を用意して、3の倍数と 5の倍数を潰す。

a = [*"0".."30"]
3.step(30, 3){|i|a[i].sub!(/\d*$/, "Fizz")}
5.step(30, 5){|i|a[i].sub!(/\d*$/, "Buzz")}
puts a[1..-1]
  • "0".. なので添字と内容が一致する
  • \d* なので数字がなくてもマッチ
  • $ なので末尾にマッチ
  • 1.. なので "0" は表示しない
解答例4

ググッて見つけたのをちょっと改造。

puts (1..30).map{|i|[[i, "Fizz"], ["Buzz", "FizzBuzz"]][i%5==0?1:0][i%3==0?1:0]}

5の倍数でないとき、あるときの配列に、3の倍数でないとき、あるときの配列が入っている。

*1Rubyをよく知らない人も多く集まる会場なので、初級者向けレッスンの伝統をやぶって初心者を対象にした。

*2:彼は英語キーボードに不慣れらしくtypoの連続で、まるでダメプログラマかのように見えた。