Rubyと仲良くなりたい٩( 'ω' )و

Rubyと仲良くなりたい日々のこと

TokyuRuby会議12で初LTをしてきました

TokyuRuby会議

TokyuRuby会議は、Ruby関連のLT大会です。 美味しいものを飲み食いしながらLTを展開するわいわいした会です。 主催者が、この会は「Ruby好きなRubyistを愛でる花見」というようなことを仰っていて、なるほどその通り!と思いました。
普通のLT大会と違って、LT王と飯王の2種類の王が選ばれます。 サントリーさんがスポンサーとなってくださってからは、ビール飲み放題ということでも有名です。

TokyuRuby会議12 - Regional RubyKaigi

今年のTokyuRuby会議

今年は、VOYAGE GROUPさんのオフィスを提供いただき、ビールスポンサーのサントリーさん、コーヒースポンサーのツクルバさんにそれぞれ美味しいビール、美味しいコーヒーをご提供いただいていました。
昔は完全持ち込みで公民館みたいなところで開催してらしたとか。今では無限ビールで有名なLT大会になっていますが、これまでTokyuRuby会議を支えてくださったサントリーの方が今年定年退職されるとのことで花束を贈呈する一幕もあり、歴史を感じました。

初LTをしてきました

TokyuRuby会議は、エントリーのハードルがもっとも低いLT大会(でも王になるハードルは高い)と言われていたのでとりあえずとにかくエントリーしました。そして、去年のTokyuRuby会議に行ったおかげで今の私があるので、その内容を話したいと思い、「TokyuRuby会議行ったら人生変わったww」というタイトルで、表示を頑張りました。

f:id:Chinatz:20180730094926p:plain

よかった点

  • TokyuRuby会議が好きな常連さんが多いので、テーマが場に合っていた。
  • お酒のおかげもあって結構ウケて嬉しかった。
  • いい話!という感想をたくさんいただけて励みになった。
  • 5分いっぱい使って、伝えたかったところまでは全部言えた。
  • 某Asakusa勢の方が「ビール口に含んでるときに笑うスライド出さないでほしいw」と呟いていて嬉しかった笑。

残念だった点

  • 利根川さんに頼りすぎた感。
  • 最初1分ものすごく緊張して足の震えが止まらない。
  • スライドの話題に出させていただいた恩人にお会いできなかった。
  • LT王も自分でエントリーしないといけないことに気づいてなくて後半戦始まってからエントリーしたので、ナウで投票してもらうチャンスを逃していた。

LTをしてみて、大勢のRubyistの方達の前でLTをする、というハードルが若干下がった気がするのと、来年は技術系のお話でエントリーしてみたい(参加する気満々)というモチベーションになって、結果、やってみて本当によかったです。
LTよかった!とかアイコンと本人が一致した!とかで声をかけてくれる人も多くて、やって損することは何もないとも思いました。

当日スタッフもしてきました

運営スタッフではなく、当日のみお手伝いをする当日スタッフをしました。
ご飯周りの整理整頓のお手伝いをさせていただいたのですが、出し方にも工夫が必要でスタッフの人は細かいところをフォローしていらっしゃるのを知りました。
例えば、未開封のものや自分でパンに乗せないと食べられないなどの一手間必要なものは、全然手をつけられなかったり、奥の方に置いているものやパッと見で何なのかわからないものは声をかけないとなかなか手をつけられなかったりなので、運営側で食べてもらえるように配置、トッピング、声かけをしていました。
運営スタッフの方は来る人来る人に自然に声をかけて料理がはけていくのをサポートしていてさすが!と思いました。

当日スタッフをやってみて、これだけのイベントをスムーズに回していてしかも「無理しない」運営をしているのは、積み重ねてきたものや細かな気配りがあってのことだと感じました。
運営スタッフの皆様、本当にありがとうございます。

羊を8匹並べるだけの話

眠れなくて羊を数えていたら羊が8匹になった。 どうすれば羊が8匹並ぶのか考えると、なんか色なパターンで考えてしまった。

ただ並べる

ただ羊を8匹並べる。

"🐏"*8

🐏🐏🐏🐏🐏🐏🐏🐏

mapで並べる

mapでただ羊を並べる。collectでも良い。

p (1..8). map {|n| "🐏" }.join

🐏🐏🐏🐏🐏🐏🐏🐏

犬が混じってる

4匹の羊の中に犬が混じっているので、羊だけキープして他は削除したのちに倍に増やして結合する。

sheep = ["🐏", "🐅", "🐏", "🐅", "🐏", "🐏"]
sheep.keep_if { |n| n =~ /[🐏]/ } 
p (sheep*2).join

🐏🐏🐏🐏🐏🐏🐏🐏

羊を縦に並べる

横に並んでいる羊を一匹ずつ縦に並べる。

sheep = "🐏🐏🐏🐏🐏🐏🐏🐏"
sheep.each_char do |n|
  puts(n)
end

🐏
🐏
🐏
🐏
🐏
🐏
🐏
🐏

ショーンとユキちゃん

ショーンは大人羊。ユキちゃんは子羊。

class Sheep
  def body
    p "🐑"*8
  end
end

shaun = Sheep.new
yukichan = Sheep.new

def yukichan.body
  p "🐏"*8
end

shaun.body
yukichan.body

🐑🐑🐑🐑🐑🐑🐑🐑
🐏🐏🐏🐏🐏🐏🐏🐏

羊がいっぱい٩( 'ω' )و
おやすみなさい。

マジックナンバー

マジックナンバーとは

書いて字のごとく、魔法の数字と言う意味。 プログラミングでマジックナンバーとは、何の数字かよくわからない数字のこと。

よくわからない数字とは?

例えば、こういう式があるとします。

apple = 100
tax_included_price = (apple *1.03).to_i
print "りんごの税込価格は#{tax_included_price }"

流石にここまでコンパクトだと(apple *1.03).to_iが消費税込みの金額を表していると推測出来ますが…。

例えば、ここだけを切り取ると、1.03が何の数字なのか謎です。

(apple *1.03).to_i

1.03と言うのは、消費税導入時の税率をあえて使いました。 消費税導入後はしばらく税率やらお題目やらが変わるような動きはなかったので、当初ならば消費税といえば誰でも3%だとわかるよね、と言う感じだと思います。

でも、実際今わからないのです。

今、何の数字かわかっても、未来の自分や未来の共同開発者には何の数字かわからない、と思った方が良いでしょう(ということを最近学びました)。

修正してみる

マジックナンバーを用いるのは辞めて定数で定義します。

TAX_RATE = 1.03
apple = 100
tax_included_price = (apple *TAX_RATE).to_i
print "りんごの税込価格は#{tax_included_price }"

定数として定義しておくことで(apple *TAX_RATE).to_iが何なのかわかるようになります。 さらに税率が変わっても、どこを変更すべきか明確で使い回しもききやすいです。

まとめ

マジックナンバーを生み出さないように、今は何の数字かわかっても未来の自分にはわからない、自分には何の数字かわかっても他の人には何の数字かわからない、ことを認識しましょう(ということを最近学びました)。