議事録(88) - hamamatsu-rb/hamamatsu-rb.github.com GitHub Wiki
Hamamatsu.rb 88
- イスがギリギリ。16人が限界か
KPT振り返り
- リモート参加・・・カメラはある。可能性はあるのかも。Slackとかハングアウトとか?
- Slackはビデオチャット機能があるらしい
- おやつナイス
自己紹介
- ※個人の特定を難しくしてあります
- 浜松でRubyの仕事してる人
- C#、ERPパッケージの仕事してる人
- 組み込み系,機械学習とか
- 3回めくらいの初心者。普段はデザイン
- 技術系フリーランスの人。最近はAWS周り
- 初参加:製造業の方だけどWebサービスを作ろうと思ってる人。詳しい人に手伝ってもらっている。
- 普段は違う業界の人。
- 普段は組み込みC++の人。
- 普段はWebプログラマだが半分学生
- 社労士
- Railsの仕事を続けている人
- 4回目の人。定年退職した人
- 静岡でIT周りの仕事をしている人。Rubyは趣味と社内ツールで。Ruby会議行ってきた
LT、告知
東海道らぐ 6/30(土)
- https://tokaidolug.connpass.com/event/82497/
- 玄人向けから初心者向けまでずっとLT
- 13:30〜16:30 の3時間
- 鴨江アートセンター206号室
- 人数に余裕あるので
PlanetWalkerのご紹介
- https://www.planetwalker.biz/accounts/sign_in
- ここ3週間で稼働開始したサービス
- heroku/aws/rubyで動いてる
- 1人で開発
- 仕事依頼サービス
- 類似したシステムだと中抜きが大きい
- なんとかエージェントだと履歴によって蹴られる
- 決済にStripe使ってるのは洒落てる
- https://stripe.com/jp
- Stripe登録時に、サービス内容とか書くのがなんかいや。わかりずらい?
- 名古屋にStripeユーザーグループができるらしい
- 英語バージョンもあるよ
Menta(マッチングサービス)でオンライン上で勉強中なので作ったアプリケーションにアドバイス頂きたい
- Twitterにはアドレスを上げました
- https://twitter.com/rails17981126/status/1006528208035110913
- スタバレビュー用のサイト。ファンサイト的なもの
- スタバに限らなくてもいいかも
- 食べログのようなもの
- 自分で買ったコーヒーとかを投稿する
- 値段の情報は店が入れる
- レビューした店舗の情報が入るとより有用かも
- 混み具合がわかると助かる。町中数件あるので空いてるところに行きたい
- スタバ意識して並ばせている説
- 個人店舗だとやりやすいかも
読書会
- 4.1〜4.8/20:40まで
質問
-
4.2.1 元の配列長を超えたところに値を入れたらエラーにならない?
-
動的言語なのでエラーにはならない。
-
取り出すときにエラーにする方法がある。取り出すときにnilにならないで欲しい時はfetchで。
-
[]これはなんて読む?⇒ブラケットが正しい
-
英語で覚えておくといいかも
-
pushか<<か・・・pushの場合は複数入れられるが、<<は一個しか入れれない。
-
<<は続けて入れられる。 << a << b のような
-
<<派が多いかも
-
<<やpushは破壊メソッド
-
あえてjsを違う書き方をすると混乱しないかも
-
4.3.2 forが使われなくなってforおじさんとよばれるようになったりgoto文のように絶滅するか
-
Rubyだとfor文は書きにくい
-
whileは使うことがあるかも。ブロック文にしずらい
-
eachの逆順はrevere_eachがある
-
シャドーイング・・・警告出す奴が増えている
-
メソッドチェーン使う場合は{}で。do endだと収まりが悪い
-
配列の最後のカンマ・・・たまに見かける。意図的になることはない。PJの規約に従え
-
4.4.1 一番左のメソッドが一般的?・・・map派とmap_reduce派が居た。
-
inject・・・織り込むという意味。
-
Swiftだと、Rangeの...と..が逆の意味。
-
Rubyは昔..しかなかった。後付で...が増えた。
-
PerlはRangeオブジェクトはない
-
Rangeで分岐を書けるのは便利。綺麗にまとまる
-
"bad"から"bag"までとかはよく知らなかった
-
スプラット展開は使ったことなかった
-
mapはRangeに対しても使える
みんなのRGB変換プログラム
- 正規表現
def to_ints(hex)
/(#)(\w\w)(\w\w)(\w\w)/ =~ hex
[$2.to_i(16), $3.to_i(16), $4.to_i(16)]
end
- scanfのパワー
require 'scanf'
def to_ints(hex)
hex.scanf('#' + ('%02x' * 3))
end
def to_hex(r, g, b)
[r, g, b].map { |n| n.to_s(16).rjust(2, '0') }.inject('#') { |result, s| result + s }
end
- sprintfのパワー
def to_hex(r, g, b)
'#' + format('%02x' * 3, r, g, b)
end
- 力技
class ConvertRGB
def is_valid_unsigned_integer(num)
((Integer(num) rescue false) && num > -1 && num < 256)
end
def generate_code(num)
num.to_s(16).rjust(2, '0')
end
def to_hex(red, green, blue)
(is_valid_unsigned_integer(red) && is_valid_unsigned_integer(green) && is_valid_unsigned_integer(blue)) ? ('#' + generate_code(red) + generate_code(green) + generate_code(blue)) : nil
end
def to_ints(color_code)
ret = []
color_code.delete('#').scan(/.{1,#{2}}/).each { |hex|
ret.push((hex =~ /[0-9a-f][0-9a-f]$/i).nil? ? nil : hex.to_i(16))
}
ret.include?(nil) ? nil : ret
end
end
cv = ConvertRGB.new
p cv.to_hex(0, 0, 1)
p cv.to_ints('#ff09ff')
次回
- 4.7から。繰り返しの種類いろいろ
- 7/11(水)